:root{
    --navy: #17253f;
    --navy-soft: #24395c;
    --gold: #c69a3f;
    --gold-soft: #e3c884;
    --stone: #f4f1e9;
    --paper: #fbfaf6;
    --ink: #2c2a25;
    --ink-soft: #5b5850;
    --line: rgba(23,37,63,0.14);
    --serif: 'Fraunces', serif;
    --sans: 'Archivo', sans-serif;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:var(--sans);
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
  }
  a{color:inherit;text-decoration:none;}
  img{max-width:100%;display:block;}
  .wrap{max-width:1120px;margin:0 auto;padding:0 32px;}
  section{padding:96px 0;}
  h1,h2,h3{font-family:var(--serif);font-weight:500;margin:0;color:var(--navy);}
  p{margin:0;}

  /* focus visibility */
  a:focus-visible, button:focus-visible{outline:2px solid var(--gold); outline-offset:3px;}
  @media (prefers-reduced-motion: reduce){
    *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
  }

  /* ===== HEADER ===== */
  header{
    position:sticky; top:0; z-index:50;
    background:rgba(251,250,246,0.92);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  body.admin-bar header{top:32px;}
  .nav{
    display:flex; align-items:center; justify-content:space-between;
    padding:14px 32px; max-width:1120px; margin:0 auto; position:relative;
  }
  .brand{display:flex; align-items:center; gap:12px;}
  .brand img{height:46px; width:auto;}
  .brand-text{font-family:var(--serif); font-size:1.05rem; color:var(--navy); line-height:1.15;}
  .brand-text small{display:block; font-family:var(--sans); font-weight:600; font-size:0.62rem; letter-spacing:0.06em; color:var(--gold);}
  .menu{display:flex; gap:28px; font-size:0.92rem; font-weight:600; color:var(--navy-soft);}
  .menu a{position:relative; padding:4px 0;}
  .menu a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--gold);transition:width .25s ease;}
  .menu a:hover::after{width:100%;}
  .btn-cta{
    background:var(--navy); color:var(--stone); font-weight:700; font-size:0.85rem;
    padding:11px 22px; border-radius:2px; border:1px solid var(--navy);
    white-space:nowrap;
  }
  .btn-cta:hover{background:var(--navy-soft);}
  .menu-toggle{display:none; background:none; border:none; cursor:pointer; padding:6px;}
  .menu-toggle span{display:block; width:24px; height:2px; background:var(--navy); margin:5px 0;}
  .nav-actions{display:flex; align-items:center; gap:12px;}
  .nav-student{
    display:inline-flex; align-items:center; gap:6px;
    font-size:0.78rem; font-weight:700; color:var(--navy); white-space:nowrap;
    padding:7px 12px; border:1px solid var(--gold); border-radius:999px;
    transition:background .2s ease, color .2s ease;
  }
  .nav-student svg{width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round;}
  .nav-student:hover{background:var(--gold); color:var(--navy);}
  .menu a, .brand-text{white-space:nowrap;}
  @media (max-width:1240px){
    .menu{gap:24px;}
  }
  .cta-short{display:none;}
  @media (max-width:1180px){
    .nav-student{padding:8px;}
    .nav-student-label{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}
  }
  @media (max-width:1040px){
    .menu{display:none;}
    .menu.menu-open{
      display:flex; position:absolute; top:100%; left:0; right:0; z-index:60;
      flex-direction:column; gap:0; padding:12px 32px 18px;
      background:var(--paper); border-bottom:1px solid var(--line);
    }
    .menu.menu-open a{padding:10px 0;}
    .menu-toggle{display:block; order:3;}
    .nav-actions{order:2; margin-left:auto; margin-right:8px;}
  }
  @media (max-width:560px){
    .brand-text{display:none;}
    .cta-full{display:none;}
    .cta-short{display:inline;}
    .nav-cta{padding:10px 14px; font-size:0.8rem;}
    .nav-actions{gap:8px; margin-right:2px;}
  }

  /* ===== HERO ===== */
  .hero{
    padding:88px 0 70px;
    background:linear-gradient(180deg, var(--stone) 0%, var(--paper) 100%);
    position:relative; overflow:hidden;
    border-bottom:1px solid var(--line);
  }
  .eyebrow-bar{display:flex;align-items:center;gap:12px;margin-bottom:22px;}
  .eyebrow-bar .rule{width:40px;height:2px;background:var(--gold);}
  .eyebrow-bar span{font-family:var(--sans);font-weight:700;font-size:0.78rem;color:var(--navy-soft);}
  .hero h1{font-size:clamp(2.1rem, 3.6vw, 3.15rem); line-height:1.14; max-width:640px;}
  .hero h1 em{font-style:italic; color:var(--gold);}
  .hero .sub{margin-top:22px; font-size:1.08rem; color:var(--ink-soft); max-width:480px; line-height:1.6;}
  .hero .ctas{margin-top:36px; display:flex; gap:16px; flex-wrap:wrap;}
  .btn-primary{
    background:var(--gold); color:var(--navy); font-weight:700; font-size:0.95rem;
    padding:15px 28px; border-radius:2px; display:inline-flex; align-items:center; gap:10px;
  }
  .btn-primary:hover{background:var(--gold-soft);}
  .btn-outline{
    border:1px solid var(--navy); color:var(--navy); font-weight:700; font-size:0.95rem;
    padding:14px 26px; border-radius:2px;
  }
  .btn-outline:hover{background:var(--navy); color:var(--stone);}
  .hero .wrap{position:relative; z-index:1;}
  .hero .wrap > div{max-width:640px;}
  .hero-symbol{
    position:absolute; z-index:0; pointer-events:none;
    top:50%; right:max(-60px, calc((100vw - 1120px) / 2 - 60px));
    width:min(44vw, 520px); transform:translateY(-50%);
    opacity:var(--hero-symbol-opacity, 1);
  }
  .hero-symbol-svg{display:block; width:100%; height:auto; overflow:visible;}
  .hs-gold{fill:var(--gold);}
  .hs-navy{fill:var(--navy);}
  .hs-letters{transform-box:fill-box; transform-origin:center; animation:hs-letters 0.9s ease-out 1.25s both;}
  .hs-runner{animation:hs-run 1.5s cubic-bezier(.22,.68,.25,1) 0.2s both;}
  .hs-bob{animation:hs-bob 0.25s ease-in-out 0.2s 5 alternate;}
  @keyframes hs-run{
    0%{transform:translateX(-240px) skewX(-10deg); opacity:0;}
    12%{opacity:1;}
    80%{transform:translateX(4px) skewX(-2deg);}
    100%{transform:none; opacity:1;}
  }
  @keyframes hs-bob{from{transform:translateY(0);} to{transform:translateY(-3px);}}
  @keyframes hs-letters{from{opacity:0; transform:scale(0.9);} to{opacity:1; transform:none;}}

  /* ===== ABOUT ===== */
  .about .wrap{display:grid; grid-template-columns:320px 1fr; gap:64px; align-items:start;}
  .about-photo{position:relative;}
  .about-photo .frame{position:absolute; top:-16px; left:-16px; width:100%; height:100%; border:1px solid var(--gold); z-index:0;}
  .about-photo img{position:relative; z-index:1; width:100%; height:auto; display:block; filter:contrast(1.04);}
  .about-label{font-weight:700; font-size:0.78rem; letter-spacing:0.03em; color:var(--gold); margin-bottom:14px;}
  .about h2{font-size:clamp(1.7rem,2.6vw,2.3rem); margin-bottom:22px;}
  .about-quote{
    font-family:var(--serif); font-style:italic; font-size:1.28rem; color:var(--navy);
    line-height:1.55; border-left:3px solid var(--gold); padding-left:24px; margin-bottom:26px;
  }
  .about p.body{font-size:1rem; color:var(--ink-soft); line-height:1.75; max-width:60ch;}
  .about-name{margin-top:28px; padding-top:20px; border-top:1px solid var(--line);}
  .about-name strong{display:block; font-family:var(--serif); font-size:1.15rem; color:var(--navy);}
  .about-name span{font-size:0.85rem; color:var(--ink-soft);}

  /* ===== TIMELINE (Formação) ===== */
  .timeline-section{background:var(--navy); color:var(--stone);}
  .timeline-section .about-label{color:var(--gold-soft);}
  .timeline-section h2{color:var(--stone);}
  .timeline-section .section-sub{color:rgba(251,250,246,0.65); max-width:56ch; margin-top:14px; font-size:1rem; line-height:1.65;}
  .timeline{margin-top:56px; position:relative;}
  .timeline::before{content:"";position:absolute; left:19px; top:6px; bottom:6px; width:1px; background:rgba(251,250,246,0.22);}
  .t-item{display:grid; grid-template-columns:40px 1fr; gap:26px; padding-bottom:40px; position:relative;}
  .t-item:last-child{padding-bottom:0;}
  .t-dot{width:40px; height:40px; border-radius:50%; border:1px solid var(--gold); display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-size:0.85rem; color:var(--gold-soft); background:var(--navy); z-index:1;}
  .t-item h3{font-size:1.15rem; color:var(--stone); font-weight:500;}
  .t-item .t-org{font-size:0.86rem; color:var(--gold-soft); font-weight:600; margin-top:4px;}
  .t-item .t-desc{font-size:0.92rem; color:rgba(251,250,246,0.6); margin-top:8px; line-height:1.6; max-width:56ch;}
  .cert-grid{margin-top:64px; display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(251,250,246,0.16); border:1px solid rgba(251,250,246,0.16);}
  .cert-cell{background:var(--navy); padding:26px 22px;}
  .cert-cell .cert-kicker{font-size:0.7rem; font-weight:700; letter-spacing:0.05em; color:var(--gold); text-transform:uppercase; margin-bottom:10px;}
  .cert-cell p{font-size:0.92rem; color:rgba(251,250,246,0.85); line-height:1.5;}

  /* ===== SERVICES ===== */
  .services .head{max-width:640px; margin-bottom:60px;}
  .services h2{font-size:clamp(1.7rem,2.6vw,2.3rem);}
  .services .head p{margin-top:16px; color:var(--ink-soft); font-size:1.02rem; line-height:1.6;}
  .service-row{
    display:grid; grid-template-columns:70px 1fr 220px; gap:32px; align-items:start;
    padding:34px 0; border-top:1px solid var(--line);
  }
  .service-row:last-child{border-bottom:1px solid var(--line);}
  .service-num{font-family:var(--serif); font-size:1.3rem; color:var(--gold);}
  .service-row h3{font-size:1.28rem; color:var(--navy); margin-bottom:10px;}
  .service-row p{color:var(--ink-soft); font-size:0.96rem; line-height:1.65; max-width:56ch;}
  .service-tag{font-size:0.78rem; font-weight:700; color:var(--navy-soft); border:1px solid var(--line); padding:8px 14px; border-radius:2px; text-align:center; align-self:start; justify-self:end;}

  /* ===== CONTACT / FOOTER ===== */
  footer{background:var(--stone); border-top:1px solid var(--line);}
  .contact-cta{padding:90px 0 60px; text-align:left;}
  .contact-cta h2{font-size:clamp(1.9rem,3.4vw,2.7rem); max-width:620px;}
  .contact-cta p{margin-top:18px; color:var(--ink-soft); font-size:1.05rem; max-width:520px;}
  .contact-cta .ctas{margin-top:32px; display:flex; gap:16px; flex-wrap:wrap;}

  /* ===== BOOKING FORM ===== */
  .contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start;}
  .booking-form{
    margin-top:8px; background:var(--paper); border:1px solid var(--line);
    padding:32px; border-radius:2px; box-shadow:0 24px 50px -30px rgba(23,37,63,0.25);
  }
  .booking-form h3{font-size:1.15rem; color:var(--navy); margin-bottom:6px;}
  .booking-form .form-sub{font-size:0.88rem; color:var(--ink-soft); margin-bottom:22px;}
  .form-field{margin-bottom:16px; display:flex; flex-direction:column; gap:6px;}
  .form-field label{font-size:0.78rem; font-weight:700; color:var(--navy-soft); letter-spacing:0.02em;}
  .form-field input, .form-field select, .form-field textarea{
    font-family:var(--sans); font-size:0.95rem; color:var(--ink); background:#fff;
    border:1px solid var(--line); border-radius:2px; padding:11px 12px; outline:none;
  }
  .form-field input:focus, .form-field select:focus, .form-field textarea:focus{
    border-color:var(--gold); box-shadow:0 0 0 3px rgba(198,154,63,0.15);
  }
  .form-field textarea{resize:vertical; min-height:80px;}
  .btn-submit{
    width:100%; margin-top:6px; background:var(--gold); color:var(--navy); font-weight:700;
    font-size:0.98rem; padding:15px 24px; border:none; border-radius:2px; cursor:pointer;
    font-family:var(--sans);
  }
  .btn-submit:hover{background:var(--gold-soft);}
  .form-note{font-size:0.78rem; color:var(--ink-soft); margin-top:12px; text-align:center;}
  .form-note[data-state="success"]{color:#246b3b;}
  .form-note[data-state="error"]{color:#a32626;}
  .form-consent{display:flex; align-items:flex-start; gap:10px; margin:4px 0 16px; font-size:0.8rem; line-height:1.45; color:var(--ink-soft); cursor:pointer;}
  .form-consent input{width:16px; height:16px; margin:2px 0 0; flex:none; accent-color:var(--navy);}
  .legal h3{font-size:1.05rem; margin:22px 0 8px;}
  .form-privacy{font-size:0.75rem; text-align:center; margin-top:6px;}
  .form-privacy a, .footer-legal{text-decoration:underline; text-underline-offset:2px;}
  .form-privacy a:hover, .footer-legal:hover{color:var(--navy);}

  /* ===== PÁGINA LEGAL ===== */
  .legal-page{padding:72px 0 88px; background:var(--paper);}
  .legal{max-width:720px;}
  .legal h1{font-size:clamp(2rem,4vw,2.6rem); margin-bottom:8px;}
  .legal-updated{font-size:0.85rem; color:var(--ink-soft); margin-bottom:28px;}
  .legal h2{font-size:1.25rem; margin:34px 0 10px;}
  .legal p, .legal li{color:var(--ink-soft); line-height:1.7; font-size:0.98rem;}
  .legal p + p{margin-top:12px;}
  .legal ul{padding-left:20px; margin:0;}
  .legal li + li{margin-top:6px;}
  .legal ul + p{margin-top:12px;}
  .legal a{color:var(--navy); text-decoration:underline; text-underline-offset:2px;}
  .legal-back{margin-top:40px;}
  .legal-back .btn-outline{display:inline-block; text-decoration:none;}
  .legal-footer{background:var(--stone);}
  .btn-submit:disabled{opacity:0.65; cursor:wait;}
  .contact-honeypot{position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden;}
  .booking-popup{
    width:min(560px, calc(100% - 32px)); max-height:min(90vh, 760px); overflow-y:auto;
    padding:32px; border:1px solid var(--line); border-radius:2px;
    background:var(--paper); color:var(--ink); box-shadow:0 24px 70px rgba(23,37,63,0.28);
  }
  .booking-popup::backdrop{background:rgba(23,37,63,0.68); backdrop-filter:blur(3px);}
  .booking-popup-header{display:flex; justify-content:space-between; align-items:center; gap:16px;}
  .booking-popup-header .about-label{margin:0;}
  .booking-popup h2{font-size:clamp(1.55rem,4vw,2rem); margin:0 0 10px;}
  .booking-popup .form-sub{font-size:0.95rem; color:var(--ink-soft); margin:0 0 22px;}
  .booking-popup-close{
    width:38px; height:38px; padding:0; border:1px solid var(--line);
    background:transparent; color:var(--navy); font-size:1.7rem; line-height:1;
    cursor:pointer;
  }
  .booking-popup-close:hover{background:var(--stone);}
  .booking-popup .form-field{margin-bottom:14px;}
  .booking-popup .btn-submit{margin-top:0;}

  /* ===== FOOTER / LOCATION ===== */
  .footer-map{height:150px; margin:0 0 18px; overflow:hidden; border:1px solid var(--line);}
  .footer-map iframe{width:100%; height:100%; border:0; display:block;}
  .footer-location h3{font-size:1.15rem; color:var(--navy); margin:0 0 6px;}
  .footer-location p{font-size:0.86rem; color:var(--ink-soft); line-height:1.5; margin:0 0 8px;}
  .footer-location .address-line{font-family:var(--serif); font-size:1rem; color:var(--navy);}
  .foot-col .footer-map-link{display:inline-block; margin-top:2px; color:var(--navy); font-weight:700;}
  .foot-col .footer-map-link:hover{color:var(--gold);}
  @media (max-width:860px){
    .contact-grid{grid-template-columns:1fr;}
    .footer-map{height:140px;}
  }
  .foot-grid{
    display:grid; grid-template-columns:1fr 1fr; gap:32px;
    padding:44px 0; border-top:1px solid var(--line);
  }
  .footer-location{grid-column:1 / -1; max-width:560px;}
  .foot-grid .brand{margin-bottom:14px;}
  .foot-grid .brand img{height:64px; width:auto;}
  .foot-col h4{font-family:var(--sans); font-size:0.78rem; font-weight:700; letter-spacing:0.04em; color:var(--navy); margin-bottom:14px;}
  .foot-col p, .foot-col a{display:block; font-size:0.92rem; color:var(--ink-soft); margin-bottom:8px;}
  .foot-grid .foot-col:not(:first-child) a{overflow-wrap:anywhere;}
  .foot-col a:hover{color:var(--navy);}
  .foot-col .social-links{display:flex; align-items:center; gap:12px;}
  .foot-col .social-links a{
    display:inline-flex; align-items:center; justify-content:center;
    width:40px; height:40px; margin:0; border:1px solid var(--line); border-radius:50%;
    color:var(--navy); transition:background .2s ease, color .2s ease, border-color .2s ease;
  }
  .foot-col .social-links a:hover{background:var(--navy); border-color:var(--navy); color:var(--paper);}
  .social-links svg{width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}
  .social-links svg .social-icon-fill{fill:currentColor; stroke:none;}
  .foot-bottom{border-top:1px solid var(--line);}
  .foot-bottom-inner{
    padding:14px 0; display:grid; grid-template-columns:1.4fr 1fr auto;
    align-items:center; gap:24px; font-size:0.8rem; color:var(--ink-soft);
  }
  .footer-brand{display:flex; align-items:center; gap:16px; min-width:0;}
  .footer-brand img{display:block; width:auto; height:58px;}
  .footer-brand span{font-size:0.88rem; color:var(--ink-soft);}
  .footer-brand:hover span{color:var(--navy);}

  /* ===== RESPONSIVE ===== */
  @media (max-width:860px){
    .hero-symbol{width:min(90vw, 420px); right:-22%; --hero-symbol-opacity:0.22;}
    .about .wrap{grid-template-columns:1fr;}
    .about-photo{max-width:280px; margin:0 auto 8px;}
    .cert-grid{grid-template-columns:1fr;}
    .service-row{grid-template-columns:1fr; gap:10px;}
    .service-tag{justify-self:start;}
    .foot-grid{grid-template-columns:1fr 1fr; gap:24px;}
    .foot-grid .foot-col:first-child{grid-column:1 / -1;}
    .foot-bottom-inner{grid-template-columns:1fr auto;}
    .footer-brand{grid-column:1 / -1;}
  }
  @media (max-width:782px){
    body.admin-bar header{top:46px;}
  }
  @media (max-width:560px){
    section{padding:64px 0;}
    .wrap{padding:0 20px;}
    .nav{padding:12px 20px;}
    .menu.menu-open{padding-left:20px; padding-right:20px;}
    .foot-grid{grid-template-columns:1fr 1fr; gap:22px 16px;}
    .foot-grid .foot-col:first-child{grid-column:1 / -1;}
    .foot-bottom-inner{grid-template-columns:1fr; gap:10px;}
    .footer-brand{grid-column:auto; align-items:flex-start;}
    .contact-cta{padding:64px 0 44px;}
    .booking-popup{padding:24px 20px;}
  }