* { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Inter', sans-serif; scroll-behavior: smooth; }
body { background-color: #f8fafc; color: #334155; line-height: 1.6; -webkit-font-smoothing: antialiased; }
.container { max-width: 1200px; margin: 0 auto; padding: 0 20px; width: 100%; }

/* Modal Popup de Boas-Vindas */
.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(15, 23, 42, 0.75);
    backdrop-filter: blur(4px);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
    padding: 16px;
}
.modal-content {
    background: #fff;
    padding: 32px 24px;
    border-radius: 20px;
    max-width: 440px;
    width: 100%;
    text-align: center;
    position: relative;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
    animation: modalIn 0.3s ease-out;
}
@keyframes modalIn {
    from { transform: translateY(20px); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}
.modal-close {
    position: absolute;
    top: 14px;
    right: 14px;
    background: #f1f5f9;
    border: none;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    font-size: 1.3rem;
    color: #475569;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
}
.modal-close:hover {
    background: #e2e8f0;
    color: #0f172a;
}
.modal-content h3 {
    color: #0f172a;
    font-size: 1.5rem;
    font-weight: 800;
    margin-bottom: 12px;
}
.modal-content p {
    color: #475569;
    font-size: 1rem;
    margin-bottom: 8px;
    line-height: 1.5;
}
.modal-btn {
    background: #0284c7;
    color: #fff;
    border: none;
    padding: 14px 24px;
    border-radius: 12px;
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
    margin-top: 20px;
    width: 100%;
    transition: background 0.2s;
}
.modal-btn:hover {
    background: #0369a1;
}

/* Header & Logo */
.logo-img { height: 48px; width: auto; display: block; max-width: 170px; object-fit: contain; }

.nav { display: none; } /* Oculto no desktop, usado no mobile */
.mobile-cta { display: none; }

.btn-primary { background: #22c55e; color: #fff; text-decoration: none; padding: 14px 28px; border-radius: 12px; font-size: 1.05rem; font-weight: 700; display: inline-block; transition: background 0.3s; box-shadow: 0 6px 20px rgba(34, 197, 94, 0.3); text-align: center; }
.btn-primary:hover { background: #16a34a; }

/* Hero Grid (Com Espaçamento Superior Ampliado para o Header Fixo) */
.hero { background: #fff; padding: 120px 0 60px 0; text-align: center; }
.hero-container-grid { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 50px; align-items: center; }
.badge-location { display: inline-block; background: #f1f5f9; color: #0284c7; border: 1px solid #e2e8f0; padding: 6px 14px; border-radius: 20px; font-size: 0.85rem; font-weight: 700; margin-bottom: 20px; }
.hero-action { margin-top: 10px; }

/* Container do Vídeo Mais Compacto e Dinâmico */
.hero-video-wrapper {
    width: 100%;
    display: flex;
    justify-content: center;
}
.video-container.vertical-video {
    position: relative;
    width: 100%;
    max-width: 270px;
    aspect-ratio: 420 / 525;
    margin: 0 auto;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.12);
    border: 1px solid #cbd5e1;
    background: #000;
}
.video-container.vertical-video video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Highlights Grid */
.highlights-section { padding: 50px 0; background: #f8fafc; border-top: 1px solid #e2e8f0; border-bottom: 1px solid #e2e8f0; }
.highlights-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px; }
.highlight-box { background: #fff; border: 1px solid #e2e8f0; padding: 24px 16px; border-radius: 12px; text-align: center; box-shadow: 0 4px 15px rgba(0,0,0,0.02); transition: transform 0.3s; }
.highlight-box:hover { transform: translateY(-4px); border-color: #0284c7; }
.icon-circle { font-size: 2rem; margin-bottom: 10px; }
.highlight-box h3 { font-size: 1.2rem; color: #0f172a; margin-bottom: 6px; font-weight: 700; }
.highlight-box p { font-size: 0.9rem; color: #64748b; }

/* About */
.about { padding: 80px 0; background: #fff; text-align: center; }
.section-tag { font-size: 0.8rem; font-weight: 700; color: #0284c7; letter-spacing: 1px; margin-bottom: 12px; text-transform: uppercase; }
.about h2 { font-size: 2.2rem; color: #0f172a; margin-bottom: 20px; max-width: 750px; margin-left: auto; margin-right: auto; line-height: 1.3; }
.about-lead { font-size: 1.15rem; font-weight: 600; color: #334155; margin-bottom: 16px; max-width: 800px; margin-left: auto; margin-right: auto; }
.about p { font-size: 1.05rem; color: #475569; max-width: 800px; margin: 0 auto; line-height: 1.7; }

/* Services */
.services { padding: 80px 0; text-align: center; background: #f8fafc; }
.services h2 { font-size: 2.2rem; color: #0f172a; margin-bottom: 8px; }
.subtitle { font-size: 1.1rem; color: #64748b; margin-bottom: 50px; max-width: 650px; margin-left: auto; margin-right: auto; padding: 0 10px; }
.services-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 24px; text-align: left; }
.service-card { background: #fff; padding: 32px 28px; border-radius: 16px; box-shadow: 0 4px 20px rgba(0,0,0,0.03); border: 1px solid #e2e8f0; position: relative; transition: all 0.3s; display: flex; flex-direction: column; justify-content: space-between; }
.service-card:hover { transform: translateY(-4px); box-shadow: 0 10px 25px rgba(2, 132, 199, 0.1); border-color: #0284c7; }
.service-card.highlight { background: #f0f9ff; border: 2px solid #0284c7; }
.card-badge { position: absolute; top: 20px; right: 20px; background: #0284c7; color: #fff; font-size: 0.7rem; font-weight: 700; padding: 4px 10px; border-radius: 6px; letter-spacing: 0.5px; }
.service-icon { font-size: 2.2rem; margin-bottom: 15px; }
.service-card h3 { color: #0f172a; margin-bottom: 12px; font-size: 1.35rem; font-weight: 700; }
.service-card p { color: #475569; font-size: 1rem; margin-bottom: 20px; }
.card-link { color: #0284c7; text-decoration: none; font-weight: 700; font-size: 0.95rem; display: inline-flex; align-items: center; gap: 6px; margin-top: auto; }
.card-link:hover { text-decoration: underline; }

/* Testimonials */
.testimonials { padding: 80px 0; background: #0f172a; color: #fff; text-align: center; }
.testimonials h2 { font-size: 2.2rem; margin-bottom: 12px; color: #fff; }

/* Tech Section */
.tech-section { padding: 80px 0; background: #fff; text-align: center; }
.tech-section h2 { font-size: 2.2rem; color: #0f172a; margin-bottom: 12px; max-width: 750px; margin-left: auto; margin-right: auto; line-height: 1.3; }
.tech-grid { max-width: 850px; margin: 40px auto 0 auto; text-align: left; }
.tech-card { background: #f8fafc; padding: 40px; border-radius: 16px; border: 1px solid #e2e8f0; box-shadow: 0 4px 20px rgba(0,0,0,0.03); }
.tech-card h3 { color: #0284c7; font-size: 1.5rem; margin-bottom: 15px; font-weight: 700; }
.tech-card p { font-size: 1.05rem; color: #475569; margin-bottom: 20px; line-height: 1.7; }
.tech-list { list-style: none; display: flex; flex-direction: column; gap: 12px; }
.tech-list li { font-size: 1rem; color: #334155; }

/* Team */
.team { padding: 80px 0; background: #f8fafc; text-align: center; }
.team h2 { font-size: 2.2rem; margin-bottom: 12px; color: #0f172a; }
.team-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 30px; text-align: left; margin-top: 50px; }
.team-card { padding: 35px; border: 1px solid #e2e8f0; border-radius: 16px; background: #fff; box-shadow: 0 4px 15px rgba(0,0,0,0.02); }
.team-card h3 { color: #0f172a; margin-bottom: 6px; font-size: 1.35rem; font-weight: 700; }
.team-card .role { display: block; color: #0284c7; font-weight: 700; margin-bottom: 16px; font-size: 0.9rem; text-transform: uppercase; letter-spacing: 0.5px; }
.team-card p { color: #475569; font-size: 1rem; }

/* Footer */
.footer { padding: 70px 0; background: #e2e8f0; }
.footer-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 50px; text-align: left; }
.footer-info h3 { margin-bottom: 15px; color: #0f172a; font-size: 1.5rem; }
.footer-info p { margin-bottom: 12px; color: #334155; font-size: 1.05rem; }
.footer-responsavel { font-size: 1.05rem; color: #334155; }

/* Botão Flutuante do WhatsApp */
.whatsapp-float {
    position: fixed;
    bottom: 24px;
    right: 24px;
    background: #25d366;
    color: #fff;
    padding: 14px 22px;
    border-radius: 50px;
    font-weight: 700;
    font-size: 1rem;
    box-shadow: 0 6px 20px rgba(37, 211, 102, 0.4);
    z-index: 998;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: transform 0.3s, background 0.3s;
}
.whatsapp-float:hover {
    background: #20ba5a;
    transform: scale(1.05);
}

/* Responsividade Avançada */
@media (max-width: 1024px) {
    #nav-desktop { display: none !important; }
    .desktop-cta { display: none !important; }
    #mobile-menu-btn { display: flex !important; }
    .nav { position: fixed; top: 75px; left: 0; width: 100%; background: #0f172a; flex-direction: column; padding: 24px 20px; gap: 16px; clip-path: polygon(0 0, 100% 0, 100% 0, 0 0); transition: clip-path 0.4s ease-in-out; z-index: 999; text-align: center; box-shadow: 0 10px 20px rgba(0,0,0,0.15); display: flex !important; }
    .nav.active { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); }
    .nav a { color: #fff; font-size: 1.1rem; padding: 8px 0; width: 100%; display: block; }
    .mobile-cta { display: block; margin-top: 8px; width: 100%; text-align: center; background: #22c55e; color: #fff !important; padding: 14px !important; border-radius: 100px; }
    
    .hero-container-grid { grid-template-columns: 1fr; text-align: center; gap: 30px; }
    .badge-location { margin-left: auto; margin-right: auto; }
    .video-container.vertical-video { max-width: 250px; aspect-ratio: 420 / 525; margin: 0 auto; }
    .footer-grid { grid-template-columns: 1fr; gap: 30px; }
}

@media (max-width: 480px) {
    .container { padding: 0 16px; }
    .logo-img { height: 40px; }
    .whatsapp-float { bottom: 16px; right: 16px; padding: 12px 18px; font-size: 0.9rem; }
}
/* Nossa História: carrossel e texto lado a lado */
.about-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: center; margin-top: 36px; text-align: left; }
.history-carousel { position: relative; width: 100%; min-width: 0; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 20px; background: #eaf1f8; box-shadow: 0 16px 36px rgba(15, 50, 100, .14); }
.history-carousel-track, .history-slide { width: 100%; height: 100%; }
.history-slide { position: absolute; inset: 0; object-fit: cover; opacity: 0; transition: opacity .55s ease; }
.history-slide.is-active { opacity: 1; }
.history-arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; border: 0; border-radius: 50%; background: rgba(255,255,255,.92); color: #123a73; font-size: 20px; cursor: pointer; box-shadow: 0 2px 10px rgba(0,0,0,.15); }
.history-prev { left: 14px; }
.history-next { right: 14px; }
.history-dots { position: absolute; left: 0; right: 0; bottom: 14px; display: flex; justify-content: center; gap: 8px; }
.history-dot { width: 9px; height: 9px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.65); cursor: pointer; }
.history-dot.is-active { background: #fff; transform: scale(1.25); }
.about-copy .about-lead { max-width: none; margin: 0 0 16px; }
.about-copy p { max-width: none; margin: 0; }
.service-icon { width: 48px; height: 48px; display: flex; align-items: center; justify-content: flex-start; color: #0284c7; margin-bottom: 15px; }
.service-icon svg { width: 42px; height: 42px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 760px) {
  .about-layout { grid-template-columns: 1fr; gap: 28px; }
  .history-carousel { aspect-ratio: 4 / 3; }
  .about-copy { text-align: left; }
}

/* Ajuste visual da seção Nossa História conforme referência aprovada */
.about { padding: 88px 0 96px; background: #fff; text-align: center; }
.about .container { max-width: 1200px; }
.about .section-tag { margin-bottom: 14px; color: #1683c5; letter-spacing: 1.2px; }
.about h2 { max-width: 780px; margin: 0 auto 34px; color: #111827; font-size: clamp(2rem, 3vw, 2.45rem); line-height: 1.22; font-weight: 750; text-align: center; }
.about-layout { max-width: 1120px; margin: 0 auto; grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr); gap: clamp(32px, 5vw, 64px); align-items: center; text-align: center; }
.about-copy { max-width: 510px; margin: 0 auto; text-align: center; }
.about-copy .about-lead { max-width: 500px; margin: 0 auto 18px; color: #475569; font-size: 1.12rem; line-height: 1.65; font-weight: 650; }
.about-copy p:not(.about-lead) { max-width: 500px; margin: 0 auto; color: #526078; font-size: 1.04rem; line-height: 1.75; }
.history-carousel { aspect-ratio: 4 / 3; border-radius: 18px; box-shadow: 0 14px 34px rgba(15, 50, 100, .12); }
@media (max-width: 760px) {
  .about { padding: 68px 0 76px; }
  .about h2 { margin-bottom: 26px; }
  .about-layout { grid-template-columns: 1fr; gap: 26px; }
  .about-copy { max-width: 620px; text-align: center; }
  .about-copy .about-lead, .about-copy p:not(.about-lead) { max-width: 620px; text-align: center; }
}

/* Referência visual novembro: maior destaque para a abertura e cartões */
:root { --bio-navy:#173d78; --bio-blue:#234e91; --bio-text:#5a6981; --bio-surface:#f4f7fc; }
body { color:var(--bio-text); }
.hero { min-height: 740px; padding: 158px 0 96px; display:flex; align-items:center; background:#fff; }
.hero .container { max-width: 1280px; padding-left:28px; padding-right:28px; }
.hero-container-grid { grid-template-columns:minmax(0,1.35fr) minmax(360px,.85fr); gap:clamp(44px,6vw,100px); align-items:center; }
.hero .hero-text-content { max-width:720px !important; text-align:left !important; margin:0 !important; }
.hero .badge-location { margin-left:0 !important; margin-right:0 !important; background:#eff5ff; color:#20549a; border-color:#d9e6f9; }
.hero h1 { font-size:clamp(40px,4.1vw,60px) !important; line-height:1.13 !important; color:#14376c !important; max-width:740px; }
.hero .hero-text-content > p { max-width:610px !important; margin-left:0 !important; margin-right:0 !important; font-size:clamp(17px,1.4vw,20px) !important; color:#5b6981 !important; }
.hero .hero-action { justify-content:flex-start !important; }
.hero-video-wrapper { justify-content:center; }
.video-container.vertical-video { max-width:420px; width:100%; aspect-ratio:420/525; border-radius:24px 24px 80px 24px; }
.highlights-section { padding:56px 0; background:#f5f8fd; }
.highlights-grid { gap:20px; }
.highlight-box { border-radius:16px; padding:30px 20px; }
.highlight-box h3 { color:var(--bio-navy); }
.about { background:#f4f7fc; padding:100px 0; text-align:left; }
.about .container { max-width:1280px; padding:0 28px; }
.about-layout { max-width:none; margin:0 auto; grid-template-columns:minmax(320px,.78fr) minmax(0,1.45fr); gap:clamp(40px,5vw,74px); align-items:center; text-align:left; }
.history-carousel { aspect-ratio:4/4.6; max-height:520px; border-radius:26px 72px 26px 26px; box-shadow:0 12px 30px rgba(22,54,102,.09); }
.about-copy { max-width:none; width:100%; margin:0; text-align:left; }
.about .section-tag { text-align:left; color:#2354a2; font-size:.78rem; letter-spacing:1.4px; margin-bottom:18px; }
.about h2 { color:#173d78; max-width:750px; margin:0 0 22px; text-align:left; font-size:clamp(32px,3vw,44px); line-height:1.14; font-weight:800; }
.about-copy .about-lead { font-weight:400; font-size:1.14rem; line-height:1.8; color:#5b6981; max-width:750px; margin:0 0 18px; text-align:left; }
.about-copy p:not(.about-lead) { max-width:750px; margin:0; color:#5b6981; font-size:1.14rem; line-height:1.85; text-align:left; }
.services { background:#fff; padding:100px 0; }
.services .container { max-width:1280px; }
.services h2 { color:#173d78; }
.services-grid { grid-template-columns:repeat(6,minmax(0,1fr)); gap:20px; }
.service-card { grid-column:span 2; border-radius:16px; padding:28px 26px; min-width:0; box-shadow:none; border:1px solid #e2e9f5; }
.service-card.highlight { grid-column:span 3; background:#eaf2fe; border:1px solid #cadbf5; min-height:285px; }
.service-card.highlight:first-child { background:linear-gradient(120deg,#173d78,#28559e); color:#fff; border-color:transparent; }
.service-card h3 { color:#173d78; }
.service-card p { color:#64738b; line-height:1.7; }
.service-card.highlight:first-child h3, .service-card.highlight:first-child p, .service-card.highlight:first-child .card-link { color:#fff; }
.service-card.highlight:first-child .service-icon { color:#fff; }
.service-card.highlight .card-badge { background:#dbe6f8; color:#24529a; border-radius:20px; }
.service-card.highlight:first-child .card-badge { background:rgba(255,255,255,.15); color:#d7e4ff; }
.service-icon { color:#1b4b8d; }
.service-card:not(.highlight) .service-icon { background:#f0f4ff; border-radius:12px; width:52px; height:52px; align-items:center; justify-content:center; }
.service-card:not(.highlight) .service-icon svg { width:32px; height:32px; }
@media(max-width:1024px) {
 .hero { min-height:0; padding:145px 0 80px; }
 .hero-container-grid { grid-template-columns:1fr; gap:40px; }
 .hero .hero-text-content { text-align:center !important; margin:0 auto !important; }
 .hero .badge-location { margin-left:auto !important; margin-right:auto !important; }
 .hero .hero-text-content > p { margin-left:auto !important; margin-right:auto !important; }
 .hero .hero-action { justify-content:center !important; }
 .video-container.vertical-video { max-width:360px; }
 .about-layout { grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:32px; }
 .services-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .service-card, .service-card.highlight { grid-column:span 1; }
}
@media(max-width:760px) {
 .hero { padding:126px 0 65px; }
 .hero .container { padding:0 20px; }
 .hero h1 { font-size:clamp(32px,8vw,44px) !important; }
 .video-container.vertical-video { max-width:310px; }
 .about { padding:72px 0; }
 .about .container { padding:0 20px; }
 .about-layout { grid-template-columns:1fr; gap:32px; }
 .history-carousel { aspect-ratio:4/3.8; max-width:500px; margin:0 auto; }
 .about-copy { text-align:left; }
 .about .section-tag,.about h2,.about-copy .about-lead,.about-copy p:not(.about-lead) { text-align:left; }
 .about h2 { font-size:clamp(30px,7vw,39px); }
 .services { padding:72px 0; }
 .services-grid { grid-template-columns:1fr; }
 .service-card, .service-card.highlight { grid-column:span 1; }
}

/* Reconstrução visual do site BIO original, com seções e cartões amplos */
html { scroll-behavior:smooth; scroll-padding-top:95px; }
body { color:#596982; }
h1,h2,h3,h4 { letter-spacing:-.025em; }
.section-tag { color:#1d55a2; font-size:12px; font-weight:700; letter-spacing:1.25px; }
.hero { min-height:calc(100vh - 78px); padding:120px 0 75px; }
.hero-container-grid { max-width:1140px !important; grid-template-columns:minmax(0,1.35fr) minmax(350px,.85fr); gap:70px; }
.hero h1 { font-size:clamp(42px,4vw,55px) !important; letter-spacing:-.04em !important; }
.hero .hero-text-content > p { font-size:18px !important; }
.video-container.vertical-video { width:100%; max-width:420px; border-radius:24px 24px 72px 24px; overflow:hidden; }
.highlights-section { padding:32px 0; }
.about { background:#f4f7fb; padding:90px 0; }
.about-layout { max-width:1100px; grid-template-columns:360px minmax(0,1fr); gap:60px; }
.history-carousel { width:100%; max-height:425px; aspect-ratio:360/425; border-radius:44px 72px 18px 18px; }
.about h2 { font-size:clamp(31px,2.7vw,40px); }
.about-copy .about-lead,.about-copy p:not(.about-lead) { font-size:18px; line-height:1.8; }
.services { padding:80px 0; }
.services .container { max-width:1140px; }
.services .section-tag,.services h2,.services .subtitle { text-align:center; }
.services .subtitle { max-width:620px; margin:14px auto 45px; }
.services-grid { gap:16px; }
.service-card { padding:26px; }
.service-card:not(.highlight) { text-align:center; min-height:235px; }
.service-card:not(.highlight) .service-icon { margin:0 auto 14px; }
.service-card:not(.highlight) h3 { font-size:20px; }
.service-card.highlight { min-height:270px; padding:28px; }
.service-card.highlight h3 { font-size:22px; }
.service-card .service-icon svg { fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.feature-panel { padding:82px 0; }
.feature-panel .container { max-width:1140px; }
.feature-layout { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,.75fr); gap:75px; align-items:center; }
.feature-copy h2 { font-size:clamp(30px,3vw,42px); line-height:1.16; margin:20px 0 22px; }
.feature-copy p { font-size:18px; line-height:1.85; margin:0 0 26px; }
.feature-checks { list-style:none; margin:24px 0 34px; padding:0; }
.feature-checks li { display:flex; align-items:baseline; gap:12px; margin:13px 0; font-size:17px; }
.feature-checks li:before { content:'✓'; flex:none; display:inline-grid; place-items:center; width:21px; height:21px; border-radius:50%; background:rgba(117,164,234,.25); font-size:12px; font-weight:800; }
.implants-panel { background:#173d78; color:#dbe6f6; }
.implants-panel h2,.implants-panel h3 { color:#fff; }
.implants-panel .section-tag { color:#c0d6f9; }
.implants-panel .feature-checks li:before { color:#fff; }
.feature-visual-inner { min-height:390px; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; gap:16px; padding:36px; border-radius:22px 22px 70px 22px; background:rgba(255,255,255,.09); }
.feature-visual-inner svg { width:135px; height:150px; fill:none; stroke:currentColor; stroke-width:2.3; opacity:.75; }
.feature-visual-inner h3 { font-size:23px; margin:0; }
.feature-visual-inner p { font-size:16px; line-height:1.5; max-width:250px; margin:0; }
.feature-visual-kicker { font-size:11px; font-weight:700; letter-spacing:2px; }
.feature-brand { margin-top:16px; padding:17px 22px; background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.15); border-radius:14px; display:grid; gap:6px; }
.feature-brand strong { color:#fff; }
.ortho-panel { background:#eaf2fd; color:#55657e; }
.ortho-panel h2,.ortho-panel h3 { color:#173d78; }
.ortho-panel .feature-layout { grid-template-columns:minmax(0,.75fr) minmax(0,1.35fr); }
.ortho-panel .feature-visual-inner { background:#dbe8fa; color:#25518e; }
.ortho-panel .feature-checks li:before { color:#24529a; }
.tech-section { background:#fff; padding:88px 0; }
.tech-section .container,.benefits-section .container,.team .container,.location-section .container { max-width:1140px; }
.tech-section .section-tag,.tech-section h2,.tech-section .subtitle,.benefits-section .section-tag,.benefits-section h2,.team .section-tag,.team h2,.team .subtitle,.location-section .section-tag,.location-section h2 { text-align:center; }
.tech-section h2,.benefits-section h2,.team h2,.location-section h2 { color:#173d78; font-size:clamp(29px,2.8vw,38px); line-height:1.2; margin:16px auto; max-width:790px; }
.tech-section .subtitle,.team .subtitle { max-width:570px; margin:14px auto 55px; font-size:18px; line-height:1.75; }
.technology-layout { display:grid; grid-template-columns:1.35fr .7fr; gap:54px; align-items:start; }
.technology-copy h3 { color:#173d78; font-size:21px; }
.technology-copy > p { font-size:18px; line-height:1.8; margin:14px 0 28px; }
.technology-benefits { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; }
.technology-benefits > div { background:#f4f7fb; border:1px solid #e3eaf5; border-radius:14px; padding:20px; }
.technology-benefits span { color:#2354a2; font-size:23px; }
.technology-benefits h4 { color:#173d78; margin:10px 0 5px; font-size:19px; }
.technology-benefits p { margin:0; line-height:1.6; }
.technology-image-inner { min-height:405px; border-radius:20px; background:linear-gradient(140deg,#e4edf9,#f8fbff); display:flex; flex-direction:column; align-items:center; justify-content:center; padding:25px; text-align:center; gap:20px; color:#1b4b8d; }
.technology-image-inner svg { width:170px; height:170px; stroke:currentColor; stroke-width:3; fill:none; }
.benefits-section { background:#f4f7fb; padding:85px 0; }
.benefits-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-top:42px; }
.benefit-card { background:#fff; border:1px solid #e6edf6; border-radius:16px; padding:25px; }
.benefit-icon { display:grid; place-items:center; width:43px; height:43px; background:#eef5ff; border-radius:12px; color:#2255a4; font-size:22px; margin-bottom:16px; }
.benefit-card h3 { font-size:20px; color:#173d78; margin:0 0 9px; }
.benefit-card p { font-size:17px; line-height:1.7; margin:0; }
.team { background:#fff; padding:85px 0; }
.team-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; max-width:1100px; margin:0 auto; }
.team-card { padding:0; border:1px solid #e5ebf4; border-radius:16px; overflow:hidden; background:#fff; box-shadow:none; }
.team-photo { height:210px; background:linear-gradient(135deg,#e9f1fa,#dce8f7); }
.team-photo-pending { display:flex; align-items:center; justify-content:center; background:#f4f7fb; color:#71809a; font-size:14px; }
.team-card-body { padding:22px; }
.team-label { display:inline-block; background:#eef4ff; color:#2354a2; font-size:11px; font-weight:750; padding:6px 11px; border-radius:20px; letter-spacing:.6px; margin-bottom:12px; }
.team-card h3 { color:#173d78; font-size:20px; margin:0 0 7px; }
.team-card .role { display:block; color:#2052a0; font-weight:650; margin-bottom:16px; }
.team-card p { font-size:16px; line-height:1.7; margin:0; color:#71809a; }
.cta-section { background:linear-gradient(110deg,rgba(17,51,99,.94),rgba(25,67,125,.94)),linear-gradient(45deg,#1d3d6e,#3862a0); padding:105px 20px; color:#e0eafa; text-align:center; }
.cta-section h2 { color:#fff; font-size:clamp(30px,3vw,42px); max-width:730px; margin:0 auto 18px; }
.cta-section p { max-width:690px; font-size:18px; line-height:1.75; margin:0 auto 28px; }
.location-section { background:#fff; padding:90px 0; }
.location-layout { display:grid; grid-template-columns:1.2fr .85fr; gap:36px; margin-top:45px; align-items:start; }
.location-layout iframe { width:100%; min-height:400px; border:0; border-radius:18px; }
.location-info > p { font-size:17px; line-height:1.8; margin:0 0 19px; }
.location-info h3 { font-size:15px; color:#173d78; margin:18px 0 6px; }
.location-info .btn-primary,.location-info .maps-link { display:block; text-align:center; width:100%; margin-top:13px; }
.maps-link { border:1px solid #c6d7f0; border-radius:30px; padding:13px 20px; color:#2354a2; font-weight:650; }
.footer { background:#0d2747; color:#93a8c2; padding:62px 0 25px; }
.footer-grid { display:grid; grid-template-columns:1.1fr 1fr 1fr; gap:65px; }
.footer h3 { color:#e5eef9; font-size:17px; margin-bottom:16px; }
.footer p { font-size:15px; line-height:1.8; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.12); margin-top:38px; padding-top:22px; font-size:14px; }
@media(max-width:900px) {
 .feature-layout,.ortho-panel .feature-layout,.technology-layout,.location-layout { grid-template-columns:1fr; gap:30px; }
 .feature-visual { max-width:550px; width:100%; margin:0 auto; }
 .benefits-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .team-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .footer-grid { grid-template-columns:1fr 1fr; gap:28px; }
}
@media(max-width:760px) {
 .hero { min-height:0; padding:125px 0 65px; }
 .hero-container-grid { grid-template-columns:1fr; gap:34px; }
 .about-layout { grid-template-columns:1fr; }
 .history-carousel { max-width:480px; margin:0 auto; }
 .feature-panel,.tech-section,.benefits-section,.team,.location-section { padding:65px 0; }
 .feature-copy h2 { font-size:31px; }
 .feature-copy p,.technology-copy > p { font-size:16px; }
 .feature-visual-inner { min-height:290px; }
 .benefits-grid,.team-grid,.footer-grid { grid-template-columns:1fr; }
 .technology-benefits { grid-template-columns:1fr 1fr; }
 .location-layout iframe { min-height:320px; }
}
@media(max-width:420px) { .technology-benefits { grid-template-columns:1fr; } }

/* Screenshot-matched dental specialty icon treatment */
.services .service-card .service-icon {display:flex;align-items:center;justify-content:center;width:54px;height:54px;min-width:54px;border-radius:13px;background:#eff3ff;color:#151a24;box-shadow:none;border:0;margin-bottom:15px;}
.services .service-card .service-icon svg {width:31px;height:31px;stroke:#151a24;stroke-width:1.45;fill:none;stroke-linecap:round;stroke-linejoin:round;}
.services .service-card:not(.highlight) .service-icon {margin:0 auto 15px;}
.services .service-card:not(.highlight) {border:1px solid #e5ebf6;border-radius:14px;background:#fff;box-shadow:none;}
.services .service-card:not(.highlight) h3 {color:#13386f;}
.services .service-card:not(.highlight) p {color:#7988a2;}

/* Full-viewport BIO hero and enlarged header logo 2026-11-09 */
header {padding: 8px 0 !important;}
header .logo-img {height:70px !important;max-width:215px !important;width:auto !important;}
.hero {min-height:100vh !important;min-height:100svh !important;box-sizing:border-box;padding:120px 0 60px !important;display:flex;align-items:center;}
.hero > .container {width:100%;}
@media(max-width:760px){header .logo-img {height:52px !important;max-width:170px !important;} .hero {min-height:100svh !important;padding:120px 0 50px !important;}}

/* Transparent cropped BIO logo */
header .logo-img{height:82px !important;max-width:160px !important;width:auto !important;}
@media(max-width:760px){header .logo-img{height:64px !important;max-width:130px !important;}}

/* Accessibility and responsive hardening 2026-11-09 */
.skip-link{position:fixed;top:-90px;left:16px;z-index:20000;padding:12px 18px;background:#123a73;color:#fff;border-radius:8px;}
.skip-link:focus{top:12px;}
:where(a,button,[tabindex]):focus-visible{outline:3px solid #e49a00;outline-offset:4px;}
html{scroll-padding-top:110px;}
img,video,iframe{max-width:100%;}
@media(max-width:760px){html{scroll-padding-top:90px;} .hero-container-grid{min-width:0;} .hero-text-content,.hero-video-wrapper{min-width:0;} .modal-content{max-height:calc(100dvh - 32px);overflow-y:auto;} }
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto !important;}*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;}}

/* Hero title: keep clinic name together */
.hero h1{font-size:clamp(34px,3.3vw,46px) !important;line-height:1.17 !important;}
.hero-brand-line{white-space:nowrap;}
@media(max-width:760px){.hero h1{font-size:clamp(26px,6.4vw,36px) !important;}}
@media(max-width:360px){.hero h1{font-size:clamp(23px,6.2vw,28px) !important;}}

/* Real imagery in team, treatments and technology 2026-11-09 */
.team-photo{overflow:hidden;}
.team-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 25%;}
.feature-real-photo{display:block;width:min(100%,300px);height:240px;object-fit:cover;object-position:center 30%;border-radius:16px;margin:12px auto 20px;}
.technology-real-photo{display:block;width:100%;height:100%;min-height:300px;object-fit:cover;object-position:center 35%;border-radius:inherit;}
.technology-image-inner:has(.technology-real-photo){padding:0;overflow:hidden;}
.technology-image-inner:has(.technology-real-photo)>span{position:absolute;bottom:14px;left:14px;right:14px;background:rgba(14,42,75,.82);color:white;padding:10px 12px;border-radius:10px;}
@media(max-width:760px){.feature-real-photo{height:210px;}.technology-real-photo{min-height:240px;}}

/* Larger treatment photography and concise copy */
.implants-panel .feature-layout,.ortho-panel .feature-layout{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(28px,4vw,64px);align-items:center;}
.implants-panel .feature-real-photo,.ortho-panel .feature-real-photo{width:100%;max-width:none;height:clamp(380px,38vw,540px);object-fit:cover;object-position:center 34%;margin:8px 0 0;border-radius:20px;}
.implants-panel .feature-visual,.ortho-panel .feature-visual{width:100%;max-width:none;min-width:0;}
.implants-panel .feature-visual-inner,.ortho-panel .feature-visual-inner{padding:16px;min-height:0;}
.implants-panel .feature-copy h2,.ortho-panel .feature-copy h2{font-size:clamp(27px,2.7vw,39px);line-height:1.2;}
.implants-panel .feature-copy>p,.ortho-panel .feature-copy>p{line-height:1.65;}
.implants-panel .feature-checks,.ortho-panel .feature-checks{margin-top:20px;margin-bottom:24px;}
@media(max-width:900px){.implants-panel .feature-layout,.ortho-panel .feature-layout{grid-template-columns:1fr;gap:26px;}.implants-panel .feature-real-photo,.ortho-panel .feature-real-photo{height:clamp(310px,62vw,480px);}.implants-panel .feature-visual,.ortho-panel .feature-visual{max-width:650px;}}
@media(max-width:760px){.implants-panel .feature-real-photo,.ortho-panel .feature-real-photo{height:340px;}.implants-panel .feature-copy h2,.ortho-panel .feature-copy h2{font-size:29px;}}

/* Face-focused crop for Marco portrait */
.team-photo .marco-team-photo{width:100%;height:100%;object-fit:cover;object-position:center 17%;}

/* Marco portrait alignment with other clinical team photos */
.team-card-marco .team-photo{position:relative;overflow:hidden;}
.team-card-marco .team-photo .marco-team-photo{width:100%;height:100%;object-fit:cover;object-position:center 15%;transform:scale(1.65);transform-origin:center 18%;}

/* Updated Marco portrait: natural crop without zoom */
.team-card-marco .team-photo .marco-team-photo{transform:none !important;object-fit:cover;object-position:center 32%;}

/* Marco portrait full image, without crop or zoom */
.team-card-marco .team-photo{background:#fff;display:flex;align-items:center;justify-content:center;}
.team-card-marco .team-photo .marco-team-photo{width:100%;height:100%;object-fit:contain !important;object-position:center center !important;transform:none !important;}

/* Implantodontia reference screenshot: wide copy and portrait image */
@media(min-width:901px){.implants-panel .feature-layout{grid-template-columns:minmax(0,1.75fr) minmax(300px,.9fr);gap:clamp(38px,5vw,85px);align-items:center;}.implants-panel .feature-copy h2{font-size:clamp(30px,2.9vw,38px);line-height:1.2;max-width:690px;}.implants-panel .feature-copy>p{font-size:17px;line-height:1.85;max-width:690px;}.implants-panel .feature-checks li{font-size:16px;line-height:1.45;}.implants-panel .feature-visual{max-width:360px;justify-self:center;}.implants-panel .feature-visual-inner{padding:0;background:transparent;border-radius:16px;min-height:0;display:block;overflow:hidden;}.implants-panel .feature-real-photo{width:100%;height:450px;object-fit:cover;object-position:center 32%;border-radius:16px;margin:0;}.implants-panel .feature-brand{margin-top:18px;}}
@media(max-width:900px){.implants-panel .feature-visual{max-width:430px;margin:0 auto;}.implants-panel .feature-visual-inner{padding:0;background:transparent;min-height:0;border-radius:16px;overflow:hidden;}.implants-panel .feature-real-photo{height:420px;width:100%;margin:0;object-fit:cover;object-position:center 32%;border-radius:16px;}}
@media(max-width:480px){.implants-panel .feature-real-photo{height:380px;}.implants-panel .feature-copy h2{font-size:29px;}}

/* Reliable accessible mobile dropdown navigation */
@media(max-width:1024px){header{isolation:isolate;}header #nav-menu{position:absolute !important;top:100% !important;left:0 !important;right:0 !important;width:100% !important;max-height:calc(100dvh - 70px);overflow-y:auto;visibility:hidden;opacity:0;pointer-events:none;clip-path:none !important;transform:translateY(-8px);transition:opacity .2s ease,transform .2s ease,visibility .2s ease;z-index:1100 !important;}.nav.active{visibility:visible !important;opacity:1 !important;pointer-events:auto !important;transform:translateY(0) !important;}#mobile-menu-btn{position:relative;z-index:1101;touch-action:manipulation;min-width:44px;min-height:44px;justify-content:center;}}
@media(min-width:1025px){header #nav-menu{display:none !important;}}

/* Mobile hero: institutional video before copy, desktop unchanged */
@media(max-width:760px){.hero .hero-container-grid{display:flex !important;flex-direction:column !important;align-items:stretch !important;gap:28px !important;}.hero .hero-video-wrapper{order:0 !important;width:100%;}.hero .hero-text-content{order:1 !important;width:100%;max-width:420px !important;text-align:left !important;margin:0 auto !important;}.hero .hero-text-content .badge-location{margin-left:0 !important;margin-right:0 !important;}.hero .hero-text-content h1{text-align:left !important;font-size:clamp(28px,7vw,36px) !important;line-height:1.16 !important;}.hero .hero-text-content>p{text-align:left !important;margin-left:0 !important;margin-right:0 !important;font-size:16px !important;line-height:1.75 !important;}.hero .hero-action{justify-content:flex-start !important;}.hero .hero-action .btn-primary{width:100%;max-width:420px;padding:15px 18px;}.hero .video-container.vertical-video{width:100%;max-width:340px !important;margin:0 auto;}.hero{padding-top:110px !important;padding-bottom:65px !important;}}

/* Prevent technology caption and floating CTA from covering mobile hero */
.technology-image-inner{position:relative;}
@media(max-width:760px){.technology-image-inner:has(.technology-real-photo)>span{display:none !important;}.whatsapp-float{display:none !important;}.hero .hero-text-content{position:relative;z-index:1;}.hero .hero-action{position:static;}.hero .hero-action .btn-primary{position:static;display:inline-flex;justify-content:center;align-items:center;box-sizing:border-box;max-width:100%;white-space:normal;text-align:center;}}

/* Clean technology benefit cards: no decorative icons */
.technology-benefits{gap:14px;align-items:stretch;}
.technology-benefits>div{padding:23px 24px;background:#f7f9fc;border:1px solid #e1e9f3;border-radius:16px;box-shadow:0 3px 12px rgba(20,52,92,.035);display:flex;flex-direction:column;justify-content:center;min-height:126px;}
.technology-benefits h4{margin:0 0 8px;font-size:19px;line-height:1.3;font-weight:700;}
.technology-benefits p{font-size:15px;line-height:1.55;color:#61738d;}
@media(max-width:760px){.technology-benefits{grid-template-columns:1fr !important;gap:12px;}.technology-benefits>div{padding:20px 22px;min-height:0;text-align:left;align-items:flex-start;}.technology-benefits h4{font-size:19px;margin:0 0 6px;}.technology-benefits p{font-size:15px;line-height:1.5;}}

/* Opt-in sound control for institutional hero video */
.hero .video-container{position:relative;}
.hero-sound-toggle{position:absolute;right:14px;bottom:14px;z-index:3;display:inline-flex;align-items:center;gap:7px;background:rgba(15,42,77,.86);color:#fff;border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:10px 14px;min-height:44px;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 4px 15px rgba(0,0,0,.16);backdrop-filter:blur(6px);}
.hero-sound-toggle:focus-visible{outline:3px solid #fff;outline-offset:3px;}
@media(max-width:760px){.hero-sound-toggle{right:12px;bottom:12px;font-size:13px;padding:9px 12px;}}

/* Hide legacy video audio toggle on all devices */
#hero-sound-toggle,.hero-sound-toggle{display:none !important;}

/* Discreet sound icon, replacing the old large audio button */
.hero .video-container{position:relative;}
#hero-sound-toggle.hero-sound-icon{display:flex !important;position:absolute;right:13px;bottom:13px;z-index:5;width:42px;height:42px;padding:0;align-items:center;justify-content:center;border-radius:50%;background:rgba(15,42,77,.76);color:#fff;border:1px solid rgba(255,255,255,.35);box-shadow:0 3px 12px rgba(0,0,0,.18);cursor:pointer;backdrop-filter:blur(5px);}
#hero-sound-toggle.hero-sound-icon .sound-on{display:none;}
#hero-sound-toggle.hero-sound-icon.is-sounding .sound-on{display:block;}
#hero-sound-toggle.hero-sound-icon.is-sounding .sound-off{display:none;}
#hero-sound-toggle.hero-sound-icon:focus-visible{outline:3px solid #fff;outline-offset:3px;}

/* Welcome notice: explicit audio opt-in and discreet silent alternative */
.modal-silent-btn{display:block;margin:12px auto 0;padding:8px 12px;border:0;background:transparent;color:#506783;font-size:14px;text-decoration:underline;text-underline-offset:3px;cursor:pointer;}
.modal-silent-btn:focus-visible{outline:2px solid #184b79;outline-offset:3px;border-radius:4px;}

/* Restore persistent floating WhatsApp icon on mobile and desktop */
a.whatsapp-float{display:flex !important;position:fixed !important;right:20px;bottom:20px;width:58px;height:58px;padding:0 !important;border-radius:50%;align-items:center;justify-content:center;background:#25d366;color:white;z-index:1100;box-shadow:0 5px 18px rgba(0,0,0,.22);}
a.whatsapp-float svg{display:block;flex:none;}
@media(max-width:760px){a.whatsapp-float{display:flex !important;right:16px;bottom:calc(16px + env(safe-area-inset-bottom, 0px));width:54px;height:54px;}}

/* Team portraits: preserve natural framing and harmonize the three cards */
#corpo-clinico .team-photo{height:265px;overflow:hidden;background:linear-gradient(140deg,#f0f3f5,#e7edf1);display:flex;align-items:center;justify-content:center;}
#corpo-clinico .team-photo img,#corpo-clinico .team-card-marco .team-photo .marco-team-photo{width:100%;height:100%;object-fit:contain !important;object-position:center center !important;transform:none !important;}
#corpo-clinico .team-card-marco .team-photo{background:linear-gradient(140deg,#f0f3f5,#e7edf1);}
@media(max-width:700px){#corpo-clinico .team-photo{height:280px;}}

/* Harmonized Marco portrait with actual edited studio background */
#corpo-clinico .team-card-marco .team-photo{background:#e7edf0;}
#corpo-clinico .team-card-marco .team-photo .marco-team-photo{object-fit:cover !important;object-position:center 43% !important;transform:none !important;}

/* Marco portrait: fill entire photo area without lateral blank strip */
#corpo-clinico .team-card-marco .team-photo .marco-team-photo{display:block;width:100% !important;height:100% !important;object-fit:cover !important;object-position:center 10% !important;transform:none !important;}
