/*
Theme Name: INSER Landing
Theme URI: https://leonardotamiosso.github.io/inser/
Author: Leonardo Tamiosso
Author URI: https://www.instagram.com/leonardotamiosso/
Description: Tema exclusivo para o site do Instituto de Saúde e Educação Renato Bitencourt (INSER) — Medicina, Odontologia, Harmonização Orofacial, Psicologia e Estética em Santiago/RS.
Version: 1.5.0
Text Domain: inser-theme
*/

  :root{
    --ink: #16181A;
    --ink-soft: #5B625F;
    --ink-faint: #8B928E;
    --paper: #F6F4EE;
    --paper-deep: #EFEBE1;
    --surface: #FFFFFF;
    --line: rgba(22,24,26,0.10);
    --line-strong: rgba(22,24,26,0.16);
    --blue: #1E6F9C;
    --teal: #33A79D;
    --grad: linear-gradient(135deg, var(--blue) 0%, var(--teal) 100%);
    --grad-soft: linear-gradient(135deg, rgba(30,111,156,0.10) 0%, rgba(51,167,157,0.10) 100%);
    --shadow-sm: 0 2px 10px rgba(22,24,26,0.05);
    --shadow-md: 0 14px 40px -18px rgba(22,24,26,0.22);
    --shadow-lg: 0 30px 70px -24px rgba(22,24,26,0.28);
    --radius: 22px;
    --radius-sm: 12px;
    --ease: cubic-bezier(0.16, 1, 0.3, 1);
    --maxw: 1320px;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:auto; scroll-padding-top:100px;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'Satoshi', -apple-system, sans-serif;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  ul{margin:0;padding:0;list-style:none;}
  button{font-family:inherit;cursor:pointer;}
  ::selection{background:var(--teal);color:#fff;}
  :focus-visible{ outline:2px solid var(--blue); outline-offset:3px; border-radius:4px; }

  .wrap{ max-width:var(--maxw); margin:0 auto; padding:0 clamp(20px, 5vw, 64px); }

  h1,h2,h3,h4{
    font-family:'Cabinet Grotesk', sans-serif;
    margin:0;
    letter-spacing:-0.02em;
    line-height:1.02;
  }

  .eyebrow{
    font-family:'JetBrains Mono', monospace;
    font-size:12px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase;
    color:var(--blue);
    display:flex; align-items:center; gap:10px;
  }
  .eyebrow::before{ content:''; width:20px;height:1px; background:var(--grad); display:inline-block; }
  .eyebrow.on-dark{ color:#eafffb; }
  .eyebrow.on-dark::before{ background:#fff; opacity:.7; }

  p.lede{ font-size:clamp(16px,1.6vw,19px); line-height:1.65; color:var(--ink-soft); max-width:52ch; }

  .btn{
    display:inline-flex; align-items:center; gap:10px;
    padding:15px 26px; border-radius:100px; font-size:15px; font-weight:600;
    border:1px solid transparent;
    transition:transform .45s var(--ease), box-shadow .45s var(--ease), background .3s ease;
    white-space:nowrap;
  }
  .btn:active{transform:scale(0.97);}
  .btn-primary{ background:var(--ink); color:#fff; box-shadow:var(--shadow-sm); }
  .btn-primary:hover{ box-shadow:var(--shadow-md); transform:translateY(-2px); }
  .btn-ghost{
    background:rgba(255,255,255,0.6); border:1px solid var(--line-strong); color:var(--ink);
    backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  }
  .btn-ghost:hover{ background:#fff; transform:translateY(-2px); }
  .btn-on-dark{
    background:rgba(255,255,255,0.14); color:#fff; border:1px solid rgba(255,255,255,0.4);
    backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  }
  .btn-on-dark:hover{ background:rgba(255,255,255,0.24); }
  .btn svg{width:18px;height:18px;flex-shrink:0;}

  /* ---------- NAV ---------- */
  header.site-nav{ position:fixed; top:0; left:0; right:0; z-index:220; padding:16px 0; transition:padding .4s var(--ease); }
  .nav-inner{
    max-width:var(--maxw); margin:0 auto; padding:10px 14px 10px 20px;
    display:flex; align-items:center; justify-content:space-between;
    background:rgba(255,255,255,0.14);
    border:1px solid rgba(255,255,255,0.28);
    box-shadow:inset 0 1px 0 rgba(255,255,255,0.3);
    border-radius:100px;
    backdrop-filter:blur(14px) saturate(150%); -webkit-backdrop-filter:blur(14px) saturate(150%);
    transition:background .4s ease, box-shadow .4s ease, border-color .4s ease;
  }
  header.site-nav.scrolled .nav-inner{
    background:rgba(246,244,238,0.65);
    border-color:rgba(255,255,255,0.5);
    box-shadow:var(--shadow-sm), inset 0 1px 0 rgba(255,255,255,0.6);
  }
  .brand{ display:flex; align-items:center; gap:10px; }
  .brand img{height:22px;width:auto;}
  .nav-inner .brand img{ filter:brightness(0) invert(1); transition:filter .5s ease; }
  header.site-nav.scrolled .nav-inner .brand img{ filter:none; }
  nav.links{ display:flex; gap:28px; }
  nav.links a{ font-size:14px; font-weight:500; color:#fff; transition:color .25s ease, opacity .25s ease; opacity:.85; }
  header.site-nav.scrolled nav.links a{ color:var(--ink-soft); opacity:1; }
  nav.links a:hover{ opacity:1; }
  header.site-nav.scrolled nav.links a:hover{ color:var(--ink); }
  .nav-cta{display:flex;align-items:center;gap:12px;}
  header.site-nav:not(.scrolled) .nav-cta .btn-ghost{ background:rgba(255,255,255,0.14); color:#fff; border-color:rgba(255,255,255,0.4); }
  .icon-btn{
    width:40px;height:40px;border-radius:100px;flex-shrink:0;
    display:flex;align-items:center;justify-content:center;
    border:1px solid rgba(255,255,255,0.4); background:rgba(255,255,255,0.14); color:#fff;
    transition:background .3s ease, border-color .3s ease, transform .3s var(--ease);
  }
  .icon-btn svg{ width:18px;height:18px; }
  .icon-btn:hover{ transform:translateY(-2px); }
  header.site-nav.scrolled .icon-btn{ background:var(--surface); border-color:var(--line-strong); color:var(--ink); }
  .burger{
    display:none; width:40px;height:40px; border-radius:100px;
    border:1px solid rgba(255,255,255,0.4); background:rgba(255,255,255,0.14);
    align-items:center; justify-content:center;
  }
  header.site-nav.scrolled .burger{ background:#fff; border-color:var(--line-strong); }
  .burger span, .burger span::before, .burger span::after{
    content:''; display:block; width:16px;height:1.5px; background:#fff; position:relative;
    transition:transform .35s var(--ease), opacity .25s ease, top .35s var(--ease), background .3s ease;
  }
  header.site-nav.scrolled .burger span, header.site-nav.scrolled .burger span::before, header.site-nav.scrolled .burger span::after{ background:var(--ink); }
  .burger span::before{ position:absolute; top:-5px; }
  .burger span::after{ position:absolute; top:5px; }
  .burger.open span{ background:transparent !important; }
  .burger.open span::before{ top:0; transform:rotate(45deg); background:var(--ink) !important; }
  .burger.open span::after{ top:0; transform:rotate(-45deg); background:var(--ink) !important; }

  .mobile-menu{
    position:fixed; inset:0; z-index:210;
    background:rgba(246,244,238,0.98); backdrop-filter:blur(20px);
    display:flex; flex-direction:column; justify-content:center; padding:32px;
    transform:translateY(-100%); transition:transform .5s var(--ease);
  }
  .mobile-menu.open{ transform:translateY(0); }
  .mobile-menu a{ font-family:'Cabinet Grotesk', sans-serif; font-size:34px; padding:14px 0; border-bottom:1px solid var(--line); }

  /* ---------- RAIL ---------- */
  .rail{ position:fixed; left:28px; top:50%; transform:translateY(-50%); z-index:150; display:flex; flex-direction:column; gap:22px; align-items:flex-start; }
  .rail::before{ content:''; position:absolute; left:3px; top:4px; bottom:4px; width:1px; background:rgba(255,255,255,0.3); }
  .rail.dark::before{ background:var(--line-strong); }
  .rail button{ background:none;border:none;padding:0; display:flex; align-items:center; gap:10px; color:rgba(255,255,255,0.6); }
  .rail.dark button{ color:var(--ink-faint); }
  .rail .dot{ width:7px;height:7px;border-radius:50%; background:currentColor; transition:background .35s ease, transform .35s ease, box-shadow .35s ease; flex-shrink:0; }
  .rail .label{
    font-family:'JetBrains Mono', monospace; font-size:11px; letter-spacing:0.06em; text-transform:uppercase;
    opacity:0; transform:translateX(-6px); transition:opacity .35s ease, transform .35s ease; white-space:nowrap; color:#fff;
  }
  .rail.dark .label{ color:var(--ink); }
  .rail button.active .dot{ background:var(--teal); box-shadow:0 0 0 4px rgba(51,167,157,0.25); transform:scale(1.3); }
  .rail button:hover .label{ opacity:1; transform:translateX(0); }
  @media (max-width: 1080px){ .rail{ display:none; } }

  @media (min-width: 1081px){
    .wrap{ padding-left:clamp(100px, 9vw, 150px); }
    .hero-slide .content, .hero-controls{ padding-left:clamp(100px, 9vw, 150px); }
  }

  /* ---------- HERO (full-bleed stacked slides) ---------- */
  .hero{ position:relative; height:100dvh; width:100%; overflow:hidden; }
  .hero-slide{
    position:absolute; inset:0;
    opacity:0; transform:scale(1.06);
    transition:opacity 1.1s var(--ease), transform 1.6s var(--ease);
    pointer-events:none;
    will-change:opacity, transform;
  }
  .hero-slide.active{ opacity:1; transform:scale(1); pointer-events:auto; }
  .hero-slide .bg{
    position:absolute; inset:0;
    background-size:cover; background-position:center;
  }
  .hero-slide .scrim{
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(10,14,16,0.15) 0%, rgba(10,14,16,0.25) 45%, rgba(8,12,13,0.78) 100%);
  }
  .hero-slide .content{
    position:absolute; left:0; right:0; bottom:0;
    padding:0 clamp(20px,5vw,64px) clamp(64px,9vw,110px);
    max-width:var(--maxw); margin:0 auto;
    color:#fff;
  }
  .hero-slide .content-inner{ max-width:680px; }
  .hero-slide .eyebrow{ margin-bottom:18px; }
  .hero-slide h1, .hero-slide h2.slide-title{
    font-size:clamp(34px, 5.4vw, 66px);
    color:#fff;
    margin-bottom:18px;
    text-wrap:balance;
  }
  .hero-slide p.lede{ color:rgba(255,255,255,0.82); margin-bottom:28px; }
  .hero-actions{ display:flex; gap:14px; flex-wrap:wrap; }
  .hero-facts{ display:flex; gap:clamp(20px,3vw,40px); margin-top:38px; padding-top:24px; border-top:1px solid rgba(255,255,255,0.22); }
  .hero-facts .fact b{ display:block; font-family:'Cabinet Grotesk', sans-serif; font-size:26px; color:#fff; }
  .hero-facts .fact span{ font-size:11.5px; color:rgba(255,255,255,0.65); font-family:'JetBrains Mono', monospace; letter-spacing:0.04em; }

  /* ---------- CABEÇALHO DAS PÁGINAS INTERNAS (sem carrossel) ---------- */
  .page-header{ position:relative; height:56vh; min-height:380px; width:100%; overflow:hidden; }
  .page-header .bg{ position:absolute; inset:0; background-size:cover; background-position:center; }
  .page-header .scrim{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(10,14,16,0.25) 0%, rgba(10,14,16,0.35) 40%, rgba(8,12,13,0.82) 100%); }
  .page-header .content{
    position:absolute; left:0; right:0; bottom:0;
    padding:0 clamp(20px,5vw,64px) clamp(48px,7vw,76px);
    max-width:var(--maxw); margin:0 auto;
    color:#fff;
  }
  .page-header .content-inner{ max-width:680px; }
  .page-header .back-link{
    display:inline-flex; align-items:center; gap:7px;
    font-size:13px; font-weight:600; color:#fff;
    padding:9px 18px 9px 14px; border-radius:100px;
    background:rgba(255,255,255,0.16);
    border:1px solid rgba(255,255,255,0.32);
    backdrop-filter:blur(16px) saturate(180%); -webkit-backdrop-filter:blur(16px) saturate(180%);
    box-shadow:inset 0 1px 0 rgba(255,255,255,0.25);
    margin-bottom:22px;
    transition:background .3s ease, transform .3s var(--ease);
  }
  .page-header .back-link:hover{ background:rgba(255,255,255,0.28); transform:translateX(-3px); }
  .page-header .eyebrow{ margin-bottom:18px; color:rgba(255,255,255,0.9); }
  .page-header h1{ font-size:clamp(32px, 4.6vw, 54px); color:#fff; margin-bottom:14px; text-wrap:balance; }
  .page-header p.lede{ color:rgba(255,255,255,0.82); margin:0; }

  /* ---------- PÁGINA DOUTORES (grupos por especialidade) ---------- */
  .doc-group{ margin-bottom:64px; }
  .doc-group:last-child{ margin-bottom:0; }
  .doc-group-head{ display:flex; align-items:baseline; gap:14px; margin-bottom:26px; padding-bottom:16px; border-bottom:1px solid var(--line); }
  .doc-group-head h2{ font-size:clamp(24px,3vw,34px); }
  .doc-count{ font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--teal); letter-spacing:0.06em; }

  .doc-list{ display:flex; flex-direction:column; gap:28px; }
  .doc-profile{
    display:grid; grid-template-columns:minmax(240px, 340px) 1fr; gap:clamp(24px, 4vw, 52px);
    align-items:start;
    background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
    padding:clamp(14px, 1.8vw, 22px);
    box-shadow:var(--shadow-sm);
    transition:box-shadow .45s var(--ease), transform .45s var(--ease);
  }
  .doc-profile:hover{ box-shadow:var(--shadow-md); transform:translateY(-3px); }
  .doc-photo{ border-radius:calc(var(--radius) - 8px); }
  .doc-info{ padding:clamp(4px, 1.2vw, 16px) clamp(4px, 1.4vw, 20px) clamp(4px, 1.2vw, 14px) 0; display:flex; flex-direction:column; gap:14px; align-self:stretch; justify-content:center; }
  .doc-role{ margin:0; font-family:'JetBrains Mono',monospace; font-size:12.5px; letter-spacing:0.05em; text-transform:uppercase; color:var(--teal); }
  .doc-name{ font-family:'Cabinet Grotesk',sans-serif; font-size:clamp(26px, 3.2vw, 38px); line-height:1.08; letter-spacing:-0.02em; margin:0; }
  .doc-tags{ display:flex; flex-wrap:wrap; gap:8px; margin:2px 0 4px; padding:0; list-style:none; }
  .doc-tags li{ font-family:'JetBrains Mono',monospace; font-size:11.5px; letter-spacing:0.03em; color:var(--ink-soft); background:var(--paper); border:1px solid var(--line-strong); border-radius:100px; padding:6px 13px; }
  .doc-bio{ max-width:62ch; padding-top:16px; border-top:1px solid var(--line); }
  .doc-bio p{ margin:0 0 14px; font-size:16px; line-height:1.72; color:var(--ink-soft); }
  .doc-bio p:last-child{ margin-bottom:0; }
  .doc-how{ margin:6px 0 0; font-size:13.5px; color:var(--ink-soft); display:flex; flex-wrap:wrap; gap:4px 12px; align-items:baseline; }
  .doc-how span{ font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:0.05em; text-transform:uppercase; color:var(--ink-faint); }
  .doc-actions{ margin-top:4px; }
  @media (max-width:760px){
    .doc-profile{ grid-template-columns:1fr; }
    .doc-photo{ max-width:420px; width:100%; }
    .doc-info{ padding:4px 6px 8px; }
  }

  /* ---------- FORMULÁRIO DE CONTATO ---------- */
  .contact-form{ max-width:640px; }
  .contact-form .cf-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  .contact-form .cf-field{ margin-bottom:18px; display:flex; flex-direction:column; gap:7px; }
  .contact-form label{ font-size:12px; font-weight:600; color:var(--ink-soft); font-family:'JetBrains Mono',monospace; letter-spacing:0.03em; text-transform:uppercase; }
  .contact-form input, .contact-form select, .contact-form textarea{
    padding:13px 16px; border-radius:14px; border:1px solid var(--line-strong);
    background:var(--surface); font-family:'Satoshi',sans-serif; font-size:14.5px; color:var(--ink);
    transition:border-color .25s ease, box-shadow .25s ease;
  }
  .contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus{
    outline:none; border-color:var(--teal); box-shadow:0 0 0 3px rgba(51,167,157,0.15);
  }
  .contact-form textarea{ resize:vertical; min-height:120px; font-family:inherit; }
  .contact-form .btn{ border:none; cursor:pointer; }
  .contact-form .btn:disabled{ opacity:0.6; cursor:default; }
  .contact-form .cf-status{ margin:14px 0 0; font-size:13.5px; min-height:1.3em; }
  .contact-form .cf-status.ok{ color:var(--teal); font-weight:600; }
  .contact-form .cf-status.err{ color:#c0392b; font-weight:600; }
  @media (max-width:640px){ .contact-form .cf-row{ grid-template-columns:1fr; } }

  .hero-controls{
    position:absolute; left:0; right:0; bottom:26px; z-index:5;
    display:flex; align-items:center; gap:18px;
    padding:0 clamp(20px,5vw,64px);
    max-width:var(--maxw); margin:0 auto;
  }
  .hero-dots{ display:flex; gap:9px; }
  .hero-dots button{ width:26px; height:4px; border-radius:4px; background:rgba(255,255,255,0.35); border:none; transition:background .4s ease, width .4s ease; }
  .hero-dots button.active{ background:#fff; width:40px; }
  .hero-arrows{ display:flex; gap:8px; margin-left:auto; }
  .hero-arrows button{
    width:44px;height:44px;border-radius:100px; border:1px solid rgba(255,255,255,0.4);
    background:rgba(255,255,255,0.14); backdrop-filter:blur(10px);
    display:flex;align-items:center;justify-content:center; color:#fff;
    transition:transform .3s var(--ease), background .3s ease;
  }
  .hero-arrows button:hover{ background:rgba(255,255,255,0.28); transform:translateY(-2px); }
  .hero-arrows svg{ width:18px;height:18px; }
  .scroll-cue{
    position:absolute; bottom:26px; right:clamp(20px,5vw,64px);
    display:none;
  }

  @media (max-width: 760px){
    .hero-facts{ display:none; }
    .hero-controls{ bottom:18px; }
  }

  /* ---------- WAVE DIVIDER ---------- */
  .wave-divider{ position:relative; height:120px; overflow:hidden; background:transparent; margin-top:-1px; }
  .wave-divider.wave-divider-sm{ height:70px; }
  .wave-track{
    position:absolute; top:50%; left:0; width:200%; height:70px; transform:translateY(-50%);
    animation:wave-scroll 16s linear infinite;
  }
  .wave-track svg{ width:50%; height:100%; float:left; }
  @keyframes wave-scroll{ from{ transform:translate(0,-50%);} to{ transform:translate(-50%,-50%);} }
  @media (prefers-reduced-motion: reduce){ .wave-track{ animation:none; } }

  /* ---------- SECTION GENERIC ---------- */
  section{ position:relative; padding:clamp(70px,9vw,130px) 0; }
  /* Seções bem abaixo da primeira tela: o navegador só gasta esforço de
     renderização nelas quando estão perto de aparecer. Fica de fora da
     última seção (Unidades) de propósito — como ela fica perto do fim
     da página, a diferença entre o tamanho estimado e o real causava
     um salto visível no scroll bem na reta final. */
  #institucional{ content-visibility:auto; contain-intrinsic-size:auto 1500px; }
  #areas{ content-visibility:auto; contain-intrinsic-size:auto 680px; padding-top:clamp(50px,6vw,90px); padding-bottom:clamp(50px,6vw,90px); }
  #equipe{ content-visibility:auto; contain-intrinsic-size:auto 850px; }
  .section-head{ max-width:680px; margin-bottom:clamp(40px,6vw,64px); }
  #areas .section-head{ margin-bottom:clamp(28px,4vw,40px); }
  .section-head h2{ font-size:clamp(28px,3.6vw,44px); margin-top:16px; }
  .section-head p.lede{ margin-top:16px; }

  /* ---------- ABOUT ---------- */
  .about{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:clamp(32px,6vw,80px); align-items:start; }
  .about-visual{
    position:sticky; top:120px; border-radius:28px; background:var(--surface);
    border:1px solid var(--line); padding:clamp(26px,3vw,38px); box-shadow:var(--shadow-sm);
  }
  .about-gallery{
    display:grid; grid-template-columns:repeat(3, 1fr); gap:6px;
    border-radius:16px; overflow:hidden; margin-bottom:24px;
  }
  .about-gallery img{ width:100%; height:100%; object-fit:cover; display:block; }
  .about-gallery .g-wide{ grid-column:1 / -1; aspect-ratio:16/7; }
  .about-gallery .g-sq{ aspect-ratio:1/1; }
  .about-visual .year{
    font-family:'Cabinet Grotesk', sans-serif; font-weight:800; font-size:clamp(50px,6.4vw,80px);
    background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; line-height:0.9;
  }
  .about-visual .year-label{ font-family:'JetBrains Mono', monospace; font-size:11.5px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-soft); margin-top:10px; }
  .about-visual hr{ border:none; border-top:1px solid var(--line); margin:22px 0; }
  .about-visual .addr{ font-size:14.5px; line-height:1.6; color:var(--ink-soft); }
  .about-visual .addr b{ color:var(--ink); display:block; margin-bottom:4px; font-family:'Cabinet Grotesk',sans-serif; font-size:15.5px;}

  .about-body p{ font-size:16.5px; line-height:1.72; color:var(--ink-soft); margin:0 0 18px; }
  .about-body p:first-of-type{ font-size:18.5px; color:var(--ink); }
  .read-more-btn{
    display:inline-flex; align-items:center; gap:8px;
    font-family:'JetBrains Mono', monospace; font-size:12.5px; letter-spacing:0.05em; text-transform:uppercase;
    color:var(--ink); padding:12px 18px; border:1px solid var(--line-strong); border-radius:100px;
    margin:6px 0 26px; transition:background .3s ease, border-color .3s ease;
  }
  .read-more-btn:hover{ background:var(--ink); color:#fff; border-color:var(--ink); }
  .read-more-btn svg{ width:14px;height:14px; }
  .values{ display:grid; grid-template-columns:repeat(2, 1fr); gap:12px; }
  .values li{ display:flex; align-items:center; gap:10px; font-size:13.5px; color:var(--ink-soft); padding:11px 15px; background:var(--surface); border:1px solid var(--line); border-radius:100px; }
  .values li svg{ width:14px;height:14px; flex-shrink:0; color:var(--teal); }

  @media (max-width:900px){
    .about{ grid-template-columns:1fr; }
    .about-visual{ position:static; }
    .values{ grid-template-columns:1fr 1fr; }
  }

  /* ---------- AREAS ---------- */
  .areas-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
  .area-card{
    background:var(--surface); padding:clamp(18px,2vw,24px); display:flex; flex-direction:column; gap:10px; min-height:150px;
    transition:background .35s ease, transform .4s var(--ease), box-shadow .4s var(--ease), opacity .9s var(--ease);
    position:relative; z-index:1;
  }
  .area-card:hover{
    background:var(--surface); transform:translateY(-5px) scale(1.015);
    box-shadow:var(--shadow-md); z-index:2;
  }
  .area-card .icon{ width:30px;height:30px; color:var(--blue); transition:transform .45s var(--ease), color .35s ease; }
  .area-card .icon svg{ width:100%; height:100%; }
  .area-card:hover .icon{ transform:scale(1.15) rotate(-6deg); color:var(--teal); }
  .area-card h4{ font-size:15.5px; font-family:'Cabinet Grotesk',sans-serif; transition:color .3s ease; }
  .area-card p{ font-size:12.5px; color:var(--ink-soft); line-height:1.45; margin:0; }
  @media (max-width:980px){ .areas-grid{ grid-template-columns:repeat(2,1fr);} }
  @media (max-width:560px){ .areas-grid{ grid-template-columns:1fr;} }

  /* ---------- TEAM FILTERS (segmented control glass) ---------- */
  .team-filters{
    display:inline-flex; flex-wrap:nowrap; gap:4px;
    padding:5px;
    border-radius:100px;
    background:rgba(255,255,255,0.5);
    border:1px solid rgba(255,255,255,0.7);
    backdrop-filter:blur(20px) saturate(180%); -webkit-backdrop-filter:blur(20px) saturate(180%);
    box-shadow:var(--shadow-sm);
    margin-bottom:32px;
    max-width:100%;
    overflow-x:auto; -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    scroll-behavior:smooth;
  }
  .team-filters::-webkit-scrollbar{ display:none; }
  .team-filter{
    border:none; background:transparent;
    padding:10px 20px; border-radius:100px;
    font-size:13.5px; font-weight:600; color:var(--ink-soft);
    transition:background .4s var(--ease), color .3s ease, box-shadow .4s ease;
    white-space:nowrap;
    flex-shrink:0;
  }
  .team-filter.active{ background:var(--ink); color:#fff; box-shadow:var(--shadow-sm); }
  .team-filter:not(.active):hover{ color:var(--ink); }
  @media (max-width:560px){
    .team-filter{ padding:10px 14px; font-size:12.5px; }
  }

  /* ---------- TEAM CAROUSEL ---------- */
  .team-carousel-wrap{ position:relative; }
  .team-card.is-hidden{ display:none; }

  .team-track{
    display:flex; flex-wrap:wrap; gap:24px 20px;
    align-items:flex-start;
    overflow-x:visible;
    padding:6px 6px 26px;
    margin:0 -6px;
    cursor:default;
    transition:filter .2s ease;
  }
  .team-track::-webkit-scrollbar{ display:none; }
  .team-track.dragging{ cursor:grabbing; }
  .team-card{
    flex:0 0 clamp(240px, 27vw, 300px);
    background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
    overflow:hidden; display:flex; flex-direction:column;
    transition:transform .5s var(--ease), box-shadow .5s var(--ease), opacity .4s ease;
    user-select:none;
  }
  .team-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); }
  .team-photo{ position:relative; aspect-ratio:4/5; overflow:hidden; background:var(--grad-soft); flex-shrink:0; width:100%; }
  .team-photo img{ width:100%; height:100%; object-fit:cover; transition:filter .35s ease, transform .35s ease; pointer-events:none; -webkit-user-drag:none; }
  .team-photo .initials{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:'Cabinet Grotesk',sans-serif; font-size:42px; font-weight:700; color:var(--blue); background:var(--grad-soft); }
  .team-photo .room{ position:absolute; top:12px; right:12px; font-family:'JetBrains Mono',monospace; font-size:10.5px; letter-spacing:0.05em; background:rgba(22,24,26,0.55); color:#fff; padding:5px 10px; border-radius:100px; backdrop-filter:blur(6px); }
  .team-info{ padding:18px 20px 22px; display:flex; flex-direction:column; gap:9px; flex:1; }
  .team-info .name{ font-family:'Cabinet Grotesk',sans-serif; font-size:16.5px; line-height:1.22; max-height:2.44em; overflow:hidden; display:block; }
  .team-info .role{ font-size:11.5px; font-family:'JetBrains Mono',monospace; color:var(--teal); letter-spacing:0.03em; text-transform:uppercase; line-height:1.35; max-height:2.7em; overflow:hidden; display:block; }
  .team-info .reg{ font-size:11.5px; color:var(--ink-faint); min-height:1.3em; }
  .team-info p.bio{ font-size:12.5px; line-height:1.5; color:var(--ink-soft); margin:0; flex:1; max-height:4.5em; overflow:hidden; }
  .team-info p.bio.expanded{ max-height:none; overflow:visible; }
  .team-info .read-more-mini{
    background:none; border:none; padding:0; margin-top:2px;
    font-size:11.5px; font-weight:600; color:var(--blue);
    text-align:left; align-self:flex-start;
  }
  .team-info .read-more-mini:hover{ color:var(--teal); }
  .team-info .wa{
    margin-top:6px; display:inline-flex; align-items:center; gap:7px; font-size:12px; font-weight:600; color:var(--ink);
    padding:10px 14px; border-radius:100px; border:1px solid var(--line-strong);
    transition:background .3s ease, border-color .3s ease; align-self:flex-start;
  }
  .team-info .wa:hover{ background:var(--ink); color:#fff; border-color:var(--ink); }
  .team-info .wa svg{ width:14px;height:14px; }

  @media (max-width:760px){
    .team-track{
      flex-direction:column;
      flex-wrap:nowrap;
      overflow-x:visible;
      cursor:default;
      padding:6px 6px 6px;
    }
    .team-track.dragging{ cursor:default; }
    .team-card{ flex:0 0 auto; width:100%; max-width:420px; margin:0 auto; }
  }


  /* cursor:pointer do card fica comentado — reativar junto com o clique do modal (ver JS) */
  /* .team-card{ cursor:pointer; } */

  /* ---------- TEAM MODAL (glass, brilho branco, fade-in estilo Apple) ---------- */
  .team-modal-overlay{
    position:fixed; inset:0; z-index:420;
    background:rgba(10,14,15,0.5);
    backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);
    display:flex; align-items:center; justify-content:center;
    padding:clamp(16px,4vw,40px);
    opacity:0; pointer-events:none;
    transition:opacity .5s var(--ease);
  }
  .team-modal-overlay.open{ opacity:1; pointer-events:auto; }
  .team-modal{
    position:relative;
    width:100%; max-width:560px; max-height:86vh; overflow-y:auto;
    border-radius:28px;
    background:rgba(255,255,255,0.55);
    border:1px solid rgba(255,255,255,0.7);
    backdrop-filter:blur(30px) saturate(180%); -webkit-backdrop-filter:blur(30px) saturate(180%);
    box-shadow:0 0 0 1px rgba(255,255,255,0.4) inset, 0 40px 90px -30px rgba(20,30,32,0.35), 0 0 80px rgba(255,255,255,0.5);
    transform:scale(0.92) translateY(14px);
    transition:transform .55s var(--ease);
    padding:clamp(26px,4vw,40px);
  }
  .team-modal-overlay.open .team-modal{ transform:scale(1) translateY(0); }
  .team-modal-close{
    position:absolute; top:18px; right:18px; z-index:2;
    width:38px;height:38px;border-radius:100px;
    background:rgba(255,255,255,0.6); border:1px solid rgba(255,255,255,0.8);
    backdrop-filter:blur(10px);
    display:flex;align-items:center;justify-content:center; color:var(--ink);
  }
  .team-modal-head{ display:flex; align-items:center; gap:18px; margin-bottom:26px; }
  .team-modal-photo{ width:84px;height:84px; border-radius:22px; overflow:hidden; flex-shrink:0; background:var(--grad-soft); box-shadow:0 8px 24px -10px rgba(20,30,32,0.3); }
  .team-modal-photo img{ width:100%; height:100%; object-fit:cover; }
  .team-modal-photo .initials{ width:100%;height:100%; display:flex; align-items:center; justify-content:center; font-family:'Cabinet Grotesk',sans-serif; font-size:26px; font-weight:700; color:var(--blue); }
  .team-modal-id .name{ font-family:'Cabinet Grotesk',sans-serif; font-size:22px; display:block; }
  .team-modal-id .role{ font-family:'JetBrains Mono',monospace; font-size:11.5px; text-transform:uppercase; letter-spacing:.04em; color:var(--teal); display:block; margin-top:4px; }
  .team-modal-id .reg{ font-size:12px; color:var(--ink-soft); display:block; margin-top:2px; }

  .team-modal-fade > *{ opacity:0; transform:translateY(10px); transition:opacity .5s var(--ease), transform .5s var(--ease); }
  .team-modal-overlay.open .team-modal-fade > *{ opacity:1; transform:translateY(0); }
  .team-modal-overlay.open .team-modal-fade > *:nth-child(1){ transition-delay:.08s; }
  .team-modal-overlay.open .team-modal-fade > *:nth-child(2){ transition-delay:.16s; }
  .team-modal-overlay.open .team-modal-fade > *:nth-child(3){ transition-delay:.24s; }

  .services-label{ font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-faint); margin:0 0 14px; }
  .services-skeleton{ display:flex; flex-direction:column; gap:10px; margin-bottom:18px; }
  .services-skeleton span{
    display:block; height:14px; border-radius:8px;
    background:linear-gradient(90deg, rgba(22,24,26,0.09), rgba(22,24,26,0.15), rgba(22,24,26,0.09));
    background-size:200% 100%;
    animation:skeleton-pulse 2.4s ease-in-out infinite;
  }
  .services-skeleton span:nth-child(1){ width:88%; }
  .services-skeleton span:nth-child(2){ width:64%; }
  .services-skeleton span:nth-child(3){ width:76%; }
  @keyframes skeleton-pulse{ 0%,100%{ background-position:0% 0; } 50%{ background-position:100% 0; } }
  .services-note{ font-size:13px; color:var(--ink-soft); line-height:1.5; margin:0 0 22px; }
  .team-modal .wa{
    display:inline-flex; align-items:center; gap:8px; font-size:13.5px; font-weight:600; color:#fff;
    background:var(--ink); padding:12px 20px; border-radius:100px;
  }
  .team-modal .wa svg{ width:15px;height:15px; }
  @media (prefers-reduced-motion: reduce){ .services-skeleton span{ animation:none; } }

  /* ---------- LOCATIONS ---------- */
  .locations{ display:grid; grid-template-columns:repeat(2, 1fr); gap:20px; max-width:820px; }
  .loc-card{
    background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:clamp(26px,2.6vw,34px); display:flex; flex-direction:column; gap:16px;
    transition:transform .45s var(--ease), box-shadow .45s var(--ease), border-color .3s ease;
  }
  .loc-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:rgba(51,167,157,0.35); }
  .loc-card .badge{ font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:0.08em; text-transform:uppercase; color:var(--teal); display:flex; align-items:center; gap:8px; transition:gap .3s ease; }
  .loc-card:hover .badge{ gap:11px; }
  .loc-card .badge svg{ width:14px;height:14px; }
  .loc-card h4{ font-size:21px; }
  .loc-card .addr-line{ font-size:14px; color:var(--ink-soft); line-height:1.6; }
  .loc-card .hours{ font-size:13px; color:var(--ink-soft); display:flex; justify-content:space-between; padding-top:14px; border-top:1px solid var(--line); }
  .loc-card .hours b{ color:var(--ink); font-weight:600; }
  .loc-card .cta-row{ margin-top:auto; display:flex; flex-direction:column; gap:8px; }
  .loc-card .cta-row a{ display:flex; align-items:center; gap:8px; font-size:13px; font-weight:600; }
  .loc-card .cta-row a svg{ width:14px;height:14px; color:var(--teal); flex-shrink:0; }
  @media (max-width:980px){ .locations{ grid-template-columns:1fr; } }

  .about-gallery .g-sq, .about-gallery .g-wide{ cursor:pointer; transition:filter .35s ease; }
  .about-gallery img:hover{ filter:brightness(1.06); }
  .gallery-cta{
    position:relative;
    margin-top:-38px; margin-bottom:24px;
    display:flex; justify-content:flex-end;
    pointer-events:none;
  }
  .gallery-cta button{
    pointer-events:auto;
    display:inline-flex; align-items:center; gap:8px;
    font-family:'JetBrains Mono', monospace; font-size:11.5px; letter-spacing:0.05em;
    color:#fff; background:rgba(20,22,24,0.45);
    border:1px solid rgba(255,255,255,0.35);
    backdrop-filter:blur(14px) saturate(160%); -webkit-backdrop-filter:blur(14px) saturate(160%);
    padding:9px 16px; border-radius:100px;
    box-shadow:var(--shadow-sm);
    transition:background .3s ease, transform .3s var(--ease);
  }
  .gallery-cta button:hover{ background:rgba(20,22,24,0.65); transform:translateY(-2px); }
  .gallery-cta svg{ width:14px;height:14px; }

  /* ---------- LIGHTBOX (liquid glass) ---------- */
  .lightbox-overlay{
    position:fixed; inset:0; z-index:400;
    background:rgba(8,10,11,0.72);
    backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
    display:flex; align-items:center; justify-content:center;
    padding:clamp(16px,4vw,40px);
    opacity:0; pointer-events:none;
    transition:opacity .45s var(--ease);
  }
  .lightbox-overlay.open{ opacity:1; pointer-events:auto; }
  .lightbox-stage{ width:100%; max-width:980px; }
  .lightbox-frame{
    position:relative; border-radius:26px; overflow:hidden;
    background:rgba(255,255,255,0.06);
    border:1px solid rgba(255,255,255,0.2);
    backdrop-filter:blur(34px) saturate(180%); -webkit-backdrop-filter:blur(34px) saturate(180%);
    box-shadow:var(--shadow-lg);
    transform:scale(0.97); transition:transform .45s var(--ease);
  }
  .lightbox-overlay.open .lightbox-frame{ transform:scale(1); }
  .lightbox-imgwrap{ position:relative; background:rgba(0,0,0,0.35); display:flex; align-items:center; justify-content:center; min-height:240px; }
  .lightbox-imgwrap img{ width:100%; max-height:68vh; object-fit:contain; display:block; opacity:0; transition:opacity .35s ease; }
  .lightbox-imgwrap img.loaded{ opacity:1; }
  .lightbox-bar{
    display:flex; align-items:center; justify-content:space-between; gap:12px;
    padding:16px 20px; color:#fff;
  }
  .lightbox-caption{ font-size:13.5px; font-weight:500; }
  .lightbox-count{ font-family:'JetBrains Mono',monospace; font-size:11px; color:rgba(255,255,255,0.6); letter-spacing:.05em; }
  .lightbox-close{
    position:absolute; top:16px; right:16px; z-index:2;
    width:38px;height:38px;border-radius:100px;
    background:rgba(20,22,24,0.5); border:1px solid rgba(255,255,255,0.3);
    backdrop-filter:blur(14px);
    display:flex;align-items:center;justify-content:center; color:#fff;
  }
  .lightbox-arrow{
    position:absolute; top:50%; transform:translateY(-50%); z-index:2;
    width:44px;height:44px;border-radius:100px;
    background:rgba(20,22,24,0.5); border:1px solid rgba(255,255,255,0.3);
    backdrop-filter:blur(14px);
    display:flex;align-items:center;justify-content:center; color:#fff;
    transition:background .3s ease, transform .3s var(--ease);
  }
  .lightbox-arrow:hover{ background:rgba(20,22,24,0.75); }
  .lightbox-arrow.prev{ left:16px; }
  .lightbox-arrow.next{ right:16px; }
  .lightbox-arrow svg, .lightbox-close svg{ width:17px;height:17px; }
  @media (max-width:640px){
    .lightbox-bar{ flex-direction:column; align-items:flex-start; gap:4px; }
  }

  /* ---------- CTA STRIP ---------- */
  .cta-strip{
    background:var(--ink); border-radius:32px; padding:clamp(46px,6vw,76px);
    display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap;
    color:#fff; position:relative; overflow:hidden;
  }
  .cta-strip::before{ content:''; position:absolute; inset:0; background:radial-gradient(700px 300px at 90% 0%, rgba(51,167,157,0.35), transparent 60%); }
  .cta-strip h3{ font-size:clamp(24px,3.2vw,38px); max-width:14ch; position:relative; }
  .cta-strip .btn-primary{ background:#fff; color:var(--ink); position:relative; animation:cta-pulse 2.8s ease-in-out infinite; }
  @keyframes cta-pulse{
    0%, 100%{ box-shadow:0 0 0 0 rgba(255,255,255,0.45); }
    50%{ box-shadow:0 0 0 10px rgba(255,255,255,0); }
  }
  @media (prefers-reduced-motion: reduce){ .cta-strip .btn-primary{ animation:none; } }
  .cta-strip .btn-primary:hover{ background:var(--paper); }

  /* ---------- FOOTER ---------- */
  footer{ padding:60px 0 30px; border-top:1px solid var(--line); }
  .footer-top{ display:grid; grid-template-columns:1.4fr repeat(3, 1fr); gap:32px; padding-bottom:44px; }
  .footer-brand .brand{ margin-bottom:14px; }
  .footer-brand p{ font-size:13.5px; color:var(--ink-soft); max-width:32ch; line-height:1.6; }
  .footer-col h5{ font-family:'JetBrains Mono',monospace; font-size:10.5px; letter-spacing:0.1em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:14px; }
  .footer-col a, .footer-col span{ display:block; font-size:13.5px; color:var(--ink-soft); padding:5px 0; }
  .footer-col a:hover{ color:var(--ink); }
  .footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding-top:24px; border-top:1px solid var(--line); font-size:12px; color:var(--ink-faint); flex-wrap:wrap; gap:12px; }
  .footer-bottom a{ color:var(--ink-faint); }
  .footer-bottom a:hover{ color:var(--ink); }
  .socials{ display:flex; gap:10px; }
  .socials a{ width:36px;height:36px;border-radius:100px; border:1px solid var(--line-strong); display:flex;align-items:center;justify-content:center; }
  .socials svg{ width:15px;height:15px; }
  @media (max-width:900px){ .footer-top{ grid-template-columns:1fr 1fr; } }
  @media (max-width:560px){ .footer-top{ grid-template-columns:1fr; } .footer-bottom{ flex-direction:column; align-items:flex-start; } }

  .reveal{ opacity:0; transform:translateY(24px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
  .reveal.in{ opacity:1; transform:translateY(0); }

  @media (prefers-reduced-motion: reduce){
    *{ transition-duration:0.01ms !important; animation-duration:0.01ms !important; }
    .reveal{ opacity:1; transform:none; }
  }

  @media (max-width:900px){
    nav.links, .nav-cta .btn-ghost, .nav-cta .icon-btn{ display:none; }
    .burger{ display:flex; }
  }

/* ---------- CONTEÚDO GENÉRICO (páginas criadas no WordPress) ---------- */
.wp-page-content{
  font-size:16.5px; line-height:1.75; color:var(--ink-soft);
}
.wp-page-content h1, .wp-page-content h2, .wp-page-content h3, .wp-page-content h4{
  font-family:'Cabinet Grotesk', sans-serif; color:var(--ink); letter-spacing:-0.01em;
  margin:1.6em 0 0.6em;
}
.wp-page-content h1{ font-size:32px; }
.wp-page-content h2{ font-size:26px; }
.wp-page-content h3{ font-size:21px; }
.wp-page-content h4{ font-size:18px; }
.wp-page-content p{ margin:0 0 20px; }
.wp-page-content a{ color:var(--blue); text-decoration:underline; text-underline-offset:2px; }
.wp-page-content a:hover{ color:var(--teal); }
.wp-page-content ul, .wp-page-content ol{ margin:0 0 20px; padding-left:22px; }
.wp-page-content li{ margin-bottom:8px; }
.wp-page-content img{ max-width:100%; height:auto; border-radius:16px; margin:24px 0; }
.wp-page-content blockquote{
  margin:24px 0; padding:16px 22px; border-left:3px solid var(--teal);
  background:var(--surface); border-radius:0 12px 12px 0; font-style:italic; color:var(--ink);
}
.wp-page-content hr{ border:none; border-top:1px solid var(--line); margin:32px 0; }
.wp-page-content table{ width:100%; border-collapse:collapse; margin:0 0 20px; }
.wp-page-content th, .wp-page-content td{ padding:10px 14px; border:1px solid var(--line); text-align:left; }

/* ---------- COMPATIBILIDADE COM ELEMENTOR ---------- */
/* Conteúdo criado pelo Elementor sempre fica dentro de um contêiner
   com a classe .elementor. Devolvemos aqui os valores padrão do
   navegador nesses trechos, pra nosso CSS (pensado pra essa landing)
   não brigar com o estilo que o Elementor já aplicou nas páginas
   antigas do INSER. */
.elementor h1, .elementor h2, .elementor h3,
.elementor h4, .elementor h5, .elementor h6{
  font-family: inherit;
  margin: revert;
  letter-spacing: normal;
  line-height: normal;
}
.elementor a{ color: revert; text-decoration: revert; }
.elementor ul, .elementor ol{ margin: revert; padding: revert; list-style: revert; }
.elementor p{ margin: revert; }

/* ---------- BLINDAGEM CONTRA CSS GLOBAL DO ELEMENTOR ---------- */
/* O Elementor continua ativo como plugin e carrega seu próprio CSS
   global em TODAS as páginas do site, inclusive na nossa home. Se
   alguma regra dele (ou de outro plugin) usar nomes de classe
   parecidos ou seletores genéricos demais, pode acabar escondendo
   nosso conteúdo. Aqui garantimos, com !important, que a estrutura
   dos cards de profissional nunca perde essa disputa. */
/* o :not(.is-hidden) é essencial aqui — sem ele, o !important também
   vence a regra que esconde os cards de outras categorias no filtro,
   e os cards ficam acumulando invisíveis no layout a cada troca */
.team-card:not(.is-hidden){ display:flex !important; flex-direction:column !important; }
.team-photo{ flex-shrink:0 !important; }
.team-info{
  display:flex !important; flex-direction:column !important;
  visibility:visible !important; opacity:1 !important;
}
.team-info .name, .team-info .role, .team-info .reg{
  display:block !important; visibility:visible !important; opacity:1 !important;
}
.team-info p.bio{ display:block !important; visibility:visible !important; opacity:1 !important; }
.team-info .wa{ display:inline-flex !important; visibility:visible !important; opacity:1 !important; }
