:root{
    --ink:#2A2521;
    --paper:#FBF7F2;
    --wash:#F3EBE1;
    --sand:#EFE2D3;
    --line:#E2D6C7;
    --line-soft:#EDE4D8;
    --muted:#6B6058;
    --accent:#9B3B52;
    --accent-deep:#7A2A3E;
    --glow:#F8DFC9;
    --glow-line:#E9BF9C;
    --display:"Fraunces", Georgia, "Times New Roman", serif;
    --body:"Archivo", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
    --gutter:24px;
    --measure:1140px;
  }
  *,*::before,*::after{box-sizing:border-box;}
  html{-webkit-text-size-adjust:100%;}
  body{
    margin:0;background:var(--paper);color:var(--ink);
    font-family:var(--body);font-size:17px;line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;}
  .wrap{max-width:var(--measure);margin:0 auto;padding:0 var(--gutter);}
  /* ---------------- type ---------------- */
  h1,h2,h3{font-family:var(--display);font-weight:500;letter-spacing:-0.014em;margin:0;}
  h1{font-size:clamp(2.4rem,5.4vw,4rem);line-height:1.05;font-variation-settings:"SOFT" 20;}
  h2{font-size:clamp(1.8rem,3.4vw,2.7rem);line-height:1.13;}
  h3{font-size:1.26rem;line-height:1.3;}
  p{margin:0;}
  .eyebrow{
    font-size:.76rem;font-weight:600;letter-spacing:.15em;
    text-transform:uppercase;color:var(--accent);margin:0;
  }
  .lede{font-size:1.17rem;color:var(--muted);max-width:56ch;}
  .small{font-size:.95rem;color:var(--muted);}
  /* ---------------- header ---------------- */
  .masthead{
    position:sticky;top:0;z-index:60;
    background:rgba(251,247,242,.93);
    backdrop-filter:saturate(1.3) blur(10px);
    border-bottom:1px solid var(--line);
  }
  .masthead__inner{display:flex;align-items:center;gap:28px;height:72px;}
  .logo{display:flex;align-items:baseline;gap:9px;text-decoration:none;margin-right:auto;line-height:1;}
  .logo b{font-family:var(--display);font-weight:600;font-size:1.34rem;letter-spacing:-0.02em;color:var(--ink);}
  .logo span{font-size:.68rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);}
  .nav{display:flex;gap:26px;align-items:center;}
  .nav a{
    text-decoration:none;font-size:.94rem;color:var(--muted);
    padding:5px 0;border-bottom:1.5px solid transparent;
    transition:color .18s ease,border-color .18s ease;
  }
  .nav a:hover{color:var(--ink);}
  .nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--accent);}
  .btn{
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    font-family:var(--body);font-size:.94rem;font-weight:500;text-decoration:none;
    padding:12px 22px;border:1.5px solid var(--accent);border-radius:2px;
    background:var(--accent);color:#fff;cursor:pointer;
    transition:background .18s ease,border-color .18s ease,color .18s ease;
  }
  .btn:hover{background:var(--accent-deep);border-color:var(--accent-deep);}
  .btn--ghost{background:transparent;color:var(--accent);}
  .btn--ghost:hover{background:transparent;color:var(--accent-deep);border-color:var(--accent-deep);}
  .btn--sm{padding:9px 17px;font-size:.88rem;}
  .btn--light{background:var(--paper);color:var(--ink);border-color:var(--paper);}
  .btn--light:hover{background:var(--glow);border-color:var(--glow);color:var(--ink);}
  .menu-toggle{display:none;background:none;border:1px solid var(--line);border-radius:2px;padding:8px 13px;font:inherit;font-size:.88rem;cursor:pointer;}
  /* ---------------- layout ---------------- */
  .section{padding:96px 0;}
  .section.is-tight{padding:68px 0;}
  .section.is-first{padding-top:78px;}
  .section.is-wash{background:var(--wash);}
  .section.is-sand{background:var(--sand);}
  .split{display:grid;grid-template-columns:.85fr 1.15fr;gap:60px;align-items:start;}
  /* ---------------- hero ---------------- */
  .hero__grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}
  .hero h1{margin-top:20px;}
  .hero .lede{margin-top:22px;}
  .hero__actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px;}
  /* --------- signature: before / after --------- */
  .flip{border:1px solid var(--line);background:var(--paper);border-radius:3px;overflow:hidden;}
  .flip__tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line);background:var(--wash);}
  .flip__tab{
    font:inherit;font-size:.84rem;font-weight:600;letter-spacing:.04em;
    padding:13px 10px;background:none;border:0;border-bottom:2.5px solid transparent;
    color:var(--muted);cursor:pointer;transition:color .18s ease,border-color .18s ease,background .18s ease;
  }
  .flip__tab:hover{color:var(--ink);}
  .flip__tab[aria-selected="true"]{color:var(--ink);background:var(--paper);border-bottom-color:var(--accent);}
  .flip__panel{padding:28px 26px 24px;display:none;}
  .flip__panel.is-shown{display:block;animation:fade .4s ease both;}
  @keyframes fade{from{opacity:0;transform:translateY(5px);}to{opacity:1;transform:none;}}
  .flip__label{
    font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
    color:var(--muted);margin-bottom:14px;
  }
  .policy{
    font-family:var(--display);font-size:.95rem;line-height:1.62;color:#8A7F74;
    border-left:2px solid var(--line);padding-left:16px;
  }
  .policy s{text-decoration-color:var(--glow-line);text-decoration-thickness:1.5px;}
  .flip__obj{
    font-size:1.06rem;line-height:1.45;margin-bottom:20px;
  }
  .flip__obj em{
    font-style:normal;
    background:linear-gradient(transparent 60%, var(--glow) 60%);
  }
  .rule-list{list-style:none;padding:0;margin:0;counter-reset:r;}
  .rule-list li{
    position:relative;padding:11px 0 11px 34px;border-top:1px solid var(--line-soft);
    font-size:.95rem;line-height:1.5;
  }
  .rule-list li::before{
    counter-increment:r;content:counter(r);
    position:absolute;left:0;top:11px;
    width:21px;height:21px;border-radius:50%;
    background:var(--glow);color:var(--accent-deep);
    font-size:.72rem;font-weight:600;
    display:flex;align-items:center;justify-content:center;
  }
  .rule-list b{font-weight:600;}
  .flip__check{
    margin-top:20px;padding:14px 16px;background:var(--wash);border-radius:2px;
    font-size:.9rem;color:var(--muted);
  }
  .flip__check b{display:block;color:var(--ink);font-weight:600;font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;margin-bottom:6px;}
  .flip__foot{
    padding:13px 26px;border-top:1px solid var(--line);background:var(--wash);
    font-size:.86rem;color:var(--muted);
  }
  /* ---------------- grids ---------------- */
  .grid-3{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:44px;}
  .grid-3 > article{padding:32px 30px 34px 0;border-right:1px solid var(--line);}
  .grid-3 > article:last-child{border-right:0;padding-right:0;}
  .grid-3 > article:not(:first-child){padding-left:30px;}
  .grid-3 h3{margin-bottom:10px;}
  .grid-3 p{color:var(--muted);font-size:.97rem;}
  .grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:3px;overflow:hidden;margin-top:44px;}
  .grid-2 > article{background:var(--paper);padding:32px 30px;}
  .grid-2 h3{margin-bottom:14px;}
  .grid-2 ul{list-style:none;padding:0;margin:0;}
  .grid-2 li{
    padding:9px 0 9px 22px;border-top:1px solid var(--line-soft);
    font-size:.95rem;color:var(--muted);position:relative;
  }
  .grid-2 li::before{
    content:"";position:absolute;left:0;top:18px;
    width:9px;height:9px;border-radius:50%;background:var(--glow);border:1px solid var(--glow-line);
  }
  /* ---------------- steps ---------------- */
  .steps{border-top:1px solid var(--line);margin-top:48px;}
  .step{
    display:grid;grid-template-columns:74px 1fr .85fr;gap:36px;
    padding:34px 0;border-bottom:1px solid var(--line);align-items:start;
  }
  .step__n{font-family:var(--display);font-size:1.5rem;color:var(--accent);padding-top:2px;}
  .step p{color:var(--muted);font-size:.97rem;margin-top:10px;}
  .step__out{font-size:.9rem;color:var(--muted);line-height:1.7;padding-top:6px;}
  .step__out b{
    display:block;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
    color:var(--ink);font-weight:600;margin-bottom:9px;
  }
  .step__out div{border-bottom:1px solid var(--line-soft);padding-bottom:6px;margin-bottom:6px;}
  .step__out div:last-child{border-bottom:0;}
  /* ---------------- case note ---------------- */
  .case{border:1px solid var(--line);background:var(--paper);border-radius:3px;padding:38px 36px;margin-top:22px;}
  .case__tag{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);}
  .case h3{margin:14px 0 16px;font-size:1.55rem;}
  .case p{color:var(--muted);max-width:66ch;}
  .case__list{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px;padding-top:22px;border-top:1px solid var(--line);}
  .chip{
    font-size:.8rem;border:1px solid var(--line);border-radius:2px;
    padding:5px 12px;color:var(--muted);background:var(--wash);
  }
  /* ---------------- registration block ---------------- */
  .reg{border:1px solid var(--line);border-radius:3px;overflow:hidden;margin-top:40px;}
  .reg > div{
    display:grid;grid-template-columns:250px 1fr;gap:24px;
    padding:15px 24px;border-bottom:1px solid var(--line);align-items:baseline;
  }
  .reg > div:last-child{border-bottom:0;}
  .reg > div:nth-child(odd){background:var(--wash);}
  .reg dt{font-size:.78rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);}
  .reg dd{margin:0;font-size:.98rem;}
  .todo{
    font-size:.82rem;color:#8A5A1E;
    background:#FBF0DC;border:1px dashed #DBB87C;border-radius:2px;padding:2px 9px;
  }
  /* ---------------- FAQ ---------------- */
  .faq{border-top:1px solid var(--line);margin-top:52px;}
  .faq details{border-bottom:1px solid var(--line);padding:20px 0;}
  .faq summary{cursor:pointer;font-size:1.02rem;list-style:none;display:flex;justify-content:space-between;gap:20px;font-weight:500;}
  .faq summary::-webkit-details-marker{display:none;}
  .faq summary::after{content:"+";color:var(--accent);flex:none;font-weight:600;}
  .faq details[open] summary::after{content:"\2013";}
  .faq p{margin-top:12px;color:var(--muted);font-size:.97rem;max-width:68ch;}
  /* ---------------- contact ---------------- */
  .contact__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:start;margin-top:52px;}
  .field{margin-bottom:20px;}
  .field label{
    display:block;font-size:.74rem;font-weight:600;letter-spacing:.12em;
    text-transform:uppercase;color:var(--muted);margin-bottom:7px;
  }
  .field input,.field textarea,.field select{
    width:100%;font:inherit;font-size:.97rem;color:var(--ink);
    padding:12px 13px;border:1px solid var(--line);background:#fff;border-radius:2px;
  }
  .field textarea{min-height:130px;resize:vertical;}
  .field input:focus,.field textarea:focus,.field select:focus{
    outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent);
  }
  .formnote{font-size:.85rem;color:var(--muted);margin-top:14px;}
  .info dt{
    font-size:.74rem;font-weight:600;letter-spacing:.12em;
    text-transform:uppercase;color:var(--accent);margin-top:26px;
  }
  .info dt:first-child{margin-top:0;}
  .info dd{margin:7px 0 0;color:var(--muted);font-size:.97rem;}
  .info a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line);}
  .info a:hover{color:var(--accent);border-bottom-color:var(--accent);}
  /* ---------------- band + footer ---------------- */
  .band{background:var(--ink);color:var(--paper);padding:82px 0;}
  .band h2{max-width:22ch;}
  .band p{color:#BCAFA2;margin-top:18px;max-width:52ch;}
  .band__actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px;}
  .band .btn--ghost{color:var(--paper);border-color:rgba(251,247,242,.35);}
  .band .btn--ghost:hover{color:var(--paper);border-color:var(--paper);}
  .footer{padding:44px 0;border-top:1px solid var(--line);}
  .footer__inner{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:center;}
  .footer nav{display:flex;gap:22px;flex-wrap:wrap;}
  .footer a{text-decoration:none;color:var(--muted);font-size:.9rem;}
  .footer a:hover{color:var(--accent);}
  .footer small{font-size:.84rem;color:var(--muted);}
  /* ---------------- motion ---------------- */
  .rise{opacity:0;transform:translateY(13px);animation:rise .68s cubic-bezier(.2,.7,.3,1) forwards;}
  .rise:nth-child(2){animation-delay:.05s;}
  .rise:nth-child(3){animation-delay:.1s;}
  .rise:nth-child(4){animation-delay:.15s;}
  @keyframes rise{to{opacity:1;transform:none;}}
  :focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
  @media (prefers-reduced-motion:reduce){
    *{animation:none!important;transition:none!important;}
    .rise{opacity:1;transform:none;}
  }
  /* ---------------- responsive ---------------- */
  @media (max-width:980px){
    .hero__grid,.split,.contact__grid{grid-template-columns:1fr;gap:44px;}
    .grid-3{grid-template-columns:1fr;}
    .grid-3 > article{border-right:0;border-bottom:1px solid var(--line);padding:28px 0;}
    .grid-3 > article:not(:first-child){padding-left:0;}
    .grid-3 > article:last-child{border-bottom:0;}
    .grid-2{grid-template-columns:1fr;}
    .step{grid-template-columns:52px 1fr;gap:22px;}
    .step__out{grid-column:2;}
    .reg > div{grid-template-columns:1fr;gap:5px;}
  }
  @media (max-width:720px){
    body{font-size:16px;}
    .section{padding:64px 0;}
    .section.is-first{padding-top:48px;}
    .menu-toggle{display:block;}
    .masthead__inner{gap:14px;}
    .masthead__inner > .btn{display:none;}
    .nav{
      display:none;position:absolute;left:0;right:0;top:72px;
      flex-direction:column;align-items:stretch;gap:0;
      background:var(--paper);border-bottom:1px solid var(--line);
      padding:6px var(--gutter) 16px;
    }
    .nav.is-open{display:flex;}
    .nav a{padding:13px 0;border-bottom:1px solid var(--line);}
    .case{padding:28px 22px;}
    .flip__panel{padding:24px 20px 20px;}
    .flip__foot{padding:13px 20px;}
  }

  /* honeypot: visually gone, still reachable by bots */
  .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
  .btn[disabled]{opacity:.55;cursor:default;}
  .field input[aria-invalid="true"],.field textarea[aria-invalid="true"]{border-color:var(--accent);}
  .formnote.is-error{color:var(--accent-deep);font-weight:500;}
  .formnote.is-sent{color:var(--ink);font-weight:500;}
