  :root{
    --ink:#15130F;
    --ivory:#F7F4EC;
    --ivory-2:#EFEADB;
    --gold:#A69544;
    --gold-soft:#C9BB84;
    --wine:#6B1E23;
    --wine-soft:#8A2A30;
    --stone:#6B655A;
    --line: rgba(21,19,15,0.14);
    --serif: 'Fraunces', serif;
    --sans: 'Inter', sans-serif;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family: var(--sans);
    background: var(--ivory);
    color: var(--ink);
    line-height:1.5;
    -webkit-font-smoothing: antialiased;
  }
  img{max-width:100%; display:block;}
  a{color:inherit; text-decoration:none;}
  .wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
  @media (max-width:640px){ .wrap{padding:0 20px;} }

  ::selection{ background: var(--gold-soft); color: var(--ink); }

  /* Focus visibility */
  a:focus-visible, button:focus-visible{
    outline: 2px solid var(--wine);
    outline-offset: 3px;
  }

  /* ---------- Top bar ---------- */
  .topbar{
    position: sticky; top:0; z-index: 50;
    border-bottom: 1px solid var(--line);
  }
  .topbar::before{
    content:"";
    position:absolute; inset:0; z-index:-1;
    background: rgba(247,244,236,0.92);
    backdrop-filter: blur(8px);
  }
  .topbar-inner{
    display:flex; align-items:center; justify-content:space-between;
    padding: 18px 0;
  }
  .brand{ display:flex; align-items:center; gap:12px; transition: opacity .2s ease; }
  .brand:hover{ opacity:0.72; }
  .brand-mark{
    width:38px; height:38px; flex-shrink:0;
    border: 1.5px solid var(--ink);
    position:relative;
    transition: border-color .2s ease;
  }
  .brand:hover .brand-mark{ border-color: var(--wine); }
  .brand-mark::before{
    content:"";
    position:absolute; top:6px; left:6px; right:-6px; bottom:-6px;
    border: 1.5px solid var(--gold);
  }
  .brand-name{
    font-family: var(--serif);
    font-weight:600;
    font-size: 1.05rem;
    letter-spacing:0.01em;
    line-height:1.15;
  }
  .brand-name span{
    display:block;
    font-family: var(--sans);
    font-weight:500;
    font-size:0.62rem;
    letter-spacing:0.16em;
    text-transform:uppercase;
    color: var(--gold);
    margin-top:2px;
  }
  nav.primary{ display:flex; align-items:center; gap:34px; }
  nav.primary a{
    font-size:0.86rem; font-weight:500; letter-spacing:0.01em;
    color: var(--ink); position:relative; padding: 4px 0;
  }
  nav.primary a::after{
    content:""; position:absolute; left:0; right:0; bottom:0; height:1px;
    background: var(--wine); transform: scaleX(0); transform-origin:left;
    transition: transform .25s ease;
  }
  nav.primary a:hover::after{ transform: scaleX(1); }
  nav.primary a.nav-cta{
    display:inline-block;
    background: var(--ink); color: var(--ivory) !important;
    padding: 11px 24px; font-size:0.82rem; font-weight:600;
    letter-spacing:0.02em;
    border: 1px solid var(--ink);
    transition: background-color .25s ease, border-color .25s ease;
  }
  .nav-cta::after{ display:none; }
  nav.primary a.nav-cta:hover{ background: var(--wine); border-color: var(--wine); }
  .menu-toggle{ display:none; background:none; border:none; cursor:pointer; }

  @media (max-width: 880px){
    nav.primary{
      position:fixed; inset: 66px 0 0 0; background: var(--ivory);
      flex-direction:column; align-items:flex-start; gap:0;
      padding: 10px 24px 24px; transform: translateY(-110%);
      transition: transform .3s ease; border-top:1px solid var(--line);
    }
    nav.primary.open{ transform: translateY(0); }
    nav.primary a{ width:100%; padding:16px 0; border-bottom:1px solid var(--line); }
    nav.primary a::after{ display:none; }
    nav.primary a.nav-cta{
      width:auto; padding:12px 24px; margin-top:16px;
      text-align:center; border-bottom:none;
    }
    .menu-toggle{ display:block; }
  }

  /* ---------- Hero ---------- */
  .hero{
    position:relative;
    padding: 116px 0 92px;
    overflow:hidden;
    border-bottom:1px solid var(--line);
    isolation:isolate;
  }
  .hero::before{
    content:"§";
    position:absolute; z-index:0; pointer-events:none; user-select:none;
    top:-7%; right:-1%;
    font-family:var(--serif); font-weight:600;
    font-size:30rem; line-height:1;
    color: var(--gold); opacity:0.09;
  }
  .hero-grid{
    position:relative; z-index:1;
    display:grid; grid-template-columns: 1.2fr 0.8fr; gap:72px; align-items:start;
  }
  .eyebrow{
    display:flex; align-items:center; gap:10px;
    font-size:0.74rem; letter-spacing:0.18em; text-transform:uppercase;
    color: var(--wine); font-weight:600; margin-bottom:26px;
  }
  .eyebrow::before{
    content:""; width:26px; height:1px; background: var(--wine);
  }
  h1.hero-title{
    font-family: var(--serif);
    font-weight:500;
    font-size: clamp(2.5rem, 5.4vw, 4.5rem);
    line-height:1.03;
    letter-spacing:-0.01em;
  }
  h1.hero-title em{
    font-style:italic; font-weight:400; color: var(--wine);
  }
  .hero-sub{
    margin-top:28px; font-size:1.06rem; color: var(--stone); max-width:46ch;
    line-height:1.65;
  }
  .hero-actions{ display:flex; gap:16px; margin-top:40px; flex-wrap:wrap; }

  .btn{
    display:inline-flex; align-items:center; gap:10px;
    padding: 15px 26px; font-size:0.88rem; font-weight:600; letter-spacing:0.01em;
    font-family:inherit; cursor:pointer;
    border: 1px solid var(--ink);
    position:relative; overflow:hidden; z-index:0;
    transition: color .3s ease, border-color .3s ease;
  }
  .btn::before{
    content:""; position:absolute; inset:0; z-index:-1;
    transform:scaleX(0); transform-origin:left;
    transition: transform .4s cubic-bezier(.65,0,.35,1);
  }
  .btn-solid{ background: var(--ink); color: var(--ivory); }
  .btn-solid::before{ background: var(--wine); }
  .btn-solid:hover{ border-color: var(--wine); }
  .btn-solid:hover::before{ transform:scaleX(1); }
  .btn-outline{ background:transparent; color:var(--ink); }
  .btn-outline::before{ background: var(--ink); }
  .btn-outline:hover{ color:var(--ivory); }
  .btn-outline:hover::before{ transform:scaleX(1); }

  .hero-panel{
    border:1px solid rgba(166,149,68,0.4);
    background: var(--ivory-2);
    padding: 38px 34px;
    margin-top:8px;
    position:relative;
    box-shadow: 0 26px 54px -30px rgba(21,19,15,0.24);
  }
  .hero-panel::before{
    content:""; position:absolute; top:-1px; left:-1px; width:22px; height:22px;
    border-top:2px solid var(--gold); border-left:2px solid var(--gold);
  }
  .hero-panel::after{
    content:""; position:absolute; bottom:-1px; right:-1px; width:22px; height:22px;
    border-bottom:2px solid var(--gold); border-right:2px solid var(--gold);
  }
  .hero-panel h3{
    font-family: var(--serif); font-size:1.15rem; font-weight:500; margin-bottom:6px;
  }
  .hero-panel p{ font-size:0.88rem; color:var(--stone); margin-bottom:22px; }
  .credential-row{
    display:flex; gap:14px; align-items:flex-start;
    padding: 16px 10px; margin: 0 -10px; border-top:1px solid var(--line);
    transition: background .2s ease;
  }
  .credential-row:hover{ background: rgba(166,149,68,0.09); }
  .credential-row:first-of-type{ border-top:none; padding-top:0; }
  .credential-num{
    font-family: var(--serif); font-style:italic; color: var(--gold); font-size:1.3rem; line-height:1;
  }
  .credential-row p{ font-size:0.83rem; color: var(--ink); margin:0; }
  .credential-row .label{ font-size:0.68rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--stone); display:block; margin-bottom:3px;}

  @keyframes heroRise{
    from{ opacity:0; transform:translateY(16px); }
    to{ opacity:1; transform:translateY(0); }
  }
  .hero-intro .eyebrow, .hero-title, .hero-sub, .hero-actions, .hero-panel{
    animation: heroRise .8s cubic-bezier(.22,.61,.36,1) both;
  }
  .hero-intro .eyebrow{ animation-delay:.05s; }
  .hero-title{ animation-delay:.15s; }
  .hero-sub{ animation-delay:.25s; }
  .hero-actions{ animation-delay:.35s; }
  .hero-panel{ animation-delay:.45s; }
  @media (prefers-reduced-motion: reduce){
    .hero-intro .eyebrow, .hero-title, .hero-sub, .hero-actions, .hero-panel{ animation:none; }
  }

  @media (max-width: 900px){
    .hero-grid{ grid-template-columns:1fr; }
    .hero{ padding: 44px 0 60px; }
    .hero::before{ font-size:16rem; top:-4%; right:-6%; opacity:0.08; }
    .hero-panel{ margin-top:0; }
  }

  /* ---------- Marquee coverage strip ---------- */
  .coverage-strip{
    background: var(--ink); color: var(--ivory);
    padding: 16px 0; overflow:hidden; white-space:nowrap;
    border-bottom: 1px solid var(--line);
  }
  .coverage-track{
    display:inline-flex; gap:48px; animation: scroll 26s linear infinite;
    font-size:0.78rem; letter-spacing:0.12em; text-transform:uppercase; font-weight:500;
  }
  .coverage-track span{ color: var(--gold-soft); margin-right:12px; }
  @keyframes scroll{ from{transform:translateX(0);} to{transform:translateX(-50%);} }
  @media (prefers-reduced-motion: reduce){
    .coverage-track{ animation: none; }
  }

  /* ---------- Section shared ---------- */
  section{ padding: 100px 0; scroll-margin-top: 96px; }
  .section-head{ max-width: 640px; margin-bottom: 56px; }
  .section-head .eyebrow{ margin-bottom:18px; }
  h2.section-title{
    font-family: var(--serif); font-weight:500;
    font-size: clamp(1.9rem, 3.4vw, 2.6rem); line-height:1.12;
  }
  .section-head p{ margin-top:18px; color: var(--stone); font-size:1rem; line-height:1.65; }

  /* ---------- Practice areas ---------- */
  .practice-lede{
    display:grid; grid-template-columns: 0.9fr 1.1fr; gap:60px; align-items:start;
    border: 1px solid var(--ink); background: var(--ink); color: var(--ivory);
    padding: 54px 50px; margin-bottom: 40px;
  }
  .practice-lede h3{
    font-family: var(--serif); font-size:2rem; font-weight:500; line-height:1.15; margin-bottom:16px;
  }
  .practice-lede h3 em{ color: var(--gold-soft); font-style:italic; }
  .practice-lede p{ color: #D8D2C2; font-size:0.98rem; line-height:1.7; }
  .lede-credential{
    margin-top:20px; padding-top:20px; border-top:1px solid rgba(247,244,236,0.16);
    font-size:0.87rem !important; color:#C8C2B3 !important; line-height:1.65 !important;
  }
  .lede-credential strong{ color: var(--gold-soft); font-weight:600; }
  .practice-lede .tag{
    display:inline-block; font-size:0.7rem; letter-spacing:0.14em; text-transform:uppercase;
    color: var(--ink); background: var(--gold-soft); padding:6px 12px; margin-bottom:20px; font-weight:600;
  }
  .practice-checks{ list-style:none; margin-top:26px; display:grid; gap:12px; }
  .practice-checks li{ display:flex; gap:12px; font-size:0.9rem; color:#EFEADB; }
  .practice-checks li::before{ content:"—"; color: var(--gold-soft); flex-shrink:0; }

  @media (max-width: 800px){
    .practice-lede{ grid-template-columns:1fr; padding: 36px 26px; }
  }

  .practice-grid{
    display:grid; grid-template-columns: repeat(4, 1fr); gap:1px;
    background: var(--line); border:1px solid var(--line);
  }
  .practice-card{
    background: var(--ivory); padding: 36px 30px; transition: background .2s ease;
  }
  .practice-card:hover{ background: var(--ivory-2); }
  .practice-card .pnum{
    font-family:var(--serif); font-style:italic; color:var(--gold); font-size:1.4rem; display:block; margin-bottom:18px;
  }
  .practice-card h4{ font-family:var(--serif); font-weight:600; font-size:1.15rem; margin-bottom:10px; }
  .practice-card p{ font-size:0.87rem; color:var(--stone); line-height:1.6; }

  @media (max-width: 1000px){
    .practice-grid{ grid-template-columns: repeat(2, 1fr); }
  }
  @media (max-width: 560px){
    .practice-grid{ grid-template-columns:1fr; }
  }

  /* ---------- Timeline / hourglass signature ---------- */
  .timeline-section{ background: var(--ivory-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
  .timeline{
    position:relative; margin-top:60px;
    display:grid; grid-template-columns: repeat(4,1fr); gap:0;
  }
  .timeline::before{
    content:""; position:absolute; top:13px; left:0; right:0; height:1px;
    background: repeating-linear-gradient(to right, var(--gold) 0 8px, transparent 8px 16px);
  }
  .tl-step{ position:relative; padding-right: 24px; }
  .tl-dot{
    width:26px; height:26px; border-radius:50%;
    background: var(--ivory-2); border:1.5px solid var(--gold);
    display:flex; align-items:center; justify-content:center;
    font-family:var(--serif); font-size:0.78rem; color:var(--wine); font-weight:600;
    margin-bottom:22px; position:relative; z-index:1;
  }
  .tl-step h4{ font-family:var(--serif); font-size:1.05rem; font-weight:600; margin-bottom:8px; }
  .tl-step p{ font-size:0.84rem; color:var(--stone); line-height:1.6; }
  .tl-time{
    display:inline-block; margin-top:14px; font-size:0.7rem; letter-spacing:0.08em;
    text-transform:uppercase; color:var(--wine); font-weight:600;
  }
  @media (max-width: 800px){
    .timeline{ grid-template-columns:1fr; gap:36px; }
    .timeline::before{ display:none; }
  }

  /* ---------- About ---------- */
  .about-grid{
    display:grid; grid-template-columns: 0.85fr 1.15fr; gap:70px; align-items:center;
  }
  .about-portrait{
    aspect-ratio: 4/5; background: var(--ink);
    position:relative; overflow:hidden;
    border:1px solid var(--ink);
  }
  .about-portrait img{
    width:100%; height:100%; object-fit:cover; object-position: center top;
    position:relative; z-index:1;
  }
  .about-portrait .caption{
    position:absolute; left:0; right:0; bottom:0; z-index:2;
    padding: 26px 28px;
    background: linear-gradient(0deg, rgba(15,13,10,0.88) 0%, rgba(15,13,10,0.55) 55%, transparent 100%);
    color: var(--ivory);
  }
  .about-portrait .caption .name{
    font-family: var(--serif); font-size:1.3rem; font-weight:500; letter-spacing:0.01em;
  }
  .about-portrait .caption .role{
    font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold-soft); margin-top:5px;
  }

  .about-copy .eyebrow{ margin-bottom:20px; }
  .about-copy h2{
    font-family:var(--serif); font-weight:500; font-size:clamp(1.8rem,3vw,2.3rem); line-height:1.18; margin-bottom:22px;
  }
  .about-copy p{ color:var(--stone); font-size:0.98rem; line-height:1.75; margin-bottom:18px; }
  .about-stats{
    display:grid; grid-template-columns: repeat(3,1fr); gap:24px; margin-top:34px;
    border-top:1px solid var(--line); padding-top:28px;
  }
  .about-stats .stat b{
    font-family: var(--serif); font-size:1.9rem; font-weight:500; display:block; color:var(--wine);
  }
  .about-stats .stat span{ font-size:0.76rem; color:var(--stone); text-transform:uppercase; letter-spacing:0.06em; }

  @media (max-width: 860px){
    .about-grid{ grid-template-columns:1fr; gap:40px; }
    .about-portrait{ max-width:340px; }
  }

  /* ---------- Coverage / map section ---------- */
  .coverage-section{ background: var(--ink); color: var(--ivory); }
  .coverage-section .eyebrow{ color: var(--gold-soft); }
  .coverage-section .eyebrow::before{ background: var(--gold-soft); }
  .coverage-section h2{ color: var(--ivory); }
  .coverage-section .section-head p{ color:#C8C2B3; }
  .prov-grid{
    display:grid; grid-template-columns: repeat(4,1fr); gap:1px;
    background: rgba(247,244,236,0.14);
    border:1px solid rgba(247,244,236,0.14);
  }
  .prov-card{ background:#1B1812; padding: 34px 26px; }
  .prov-num{ font-family:var(--serif); font-style:italic; color:var(--gold); font-size:1.3rem; display:block; margin-bottom:16px; }
  .prov-card h4{ font-family:var(--serif); font-size:1.2rem; font-weight:600; color:var(--gold-soft); margin-bottom:10px; }
  .prov-card p{ font-size:0.82rem; color:#C8C2B3; line-height:1.6; }
  @media (max-width:860px){ .prov-grid{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:520px){ .prov-grid{ grid-template-columns:1fr; } }
  .prov-expansion{
    margin-top:14px; display:flex; gap:22px; align-items:flex-start;
    background:#1B1812; border:1px dashed rgba(201,187,132,0.45);
    padding: 30px 28px;
  }
  .prov-expansion + .prov-expansion{ margin-top:14px; }
  .prov-expansion-num{
    font-family:var(--serif); font-style:italic; color:var(--gold-soft); font-size:1.6rem; flex-shrink:0; line-height:1;
  }
  .prov-expansion h4{ font-family:var(--serif); font-size:1.15rem; font-weight:600; color:var(--gold-soft); margin-bottom:8px; }
  .prov-expansion p{ font-size:0.85rem; color:#C8C2B3; line-height:1.65; max-width:60ch; }
  @media (max-width:520px){ .prov-expansion{ flex-direction:column; gap:12px; } }

  /* ---------- Testimonials ---------- */
  .testi-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:28px; }
  .testi-card{
    border:1px solid var(--line); padding:32px 28px; background: var(--ivory);
    display:flex; flex-direction:column; gap:18px;
  }
  .testi-quote{ font-family:var(--serif); font-style:italic; font-size:1.5rem; color:var(--gold); line-height:1; }
  .testi-card p{ font-size:0.92rem; color:var(--ink); line-height:1.65; }
  .testi-name{ font-size:0.8rem; color:var(--stone); font-weight:600; margin-top:auto; padding-top:10px; border-top:1px solid var(--line); }
  @media (max-width:860px){ .testi-grid{ grid-template-columns:1fr; } }

  /* ---------- CTA / contact ---------- */
  .contact-section{ background: var(--ivory-2); border-top:1px solid var(--line); }
  .contact-grid{ display:grid; grid-template-columns: 1fr 1fr; gap:64px; }
  .contact-form{ display:flex; flex-direction:column; gap:18px; }
  .field label{
    display:block; font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase;
    color:var(--stone); margin-bottom:8px; font-weight:600;
  }
  .field input, .field select, .field textarea{
    width:100%; border:1px solid var(--line); background: var(--ivory);
    padding: 13px 14px; font-family: var(--sans); font-size:0.92rem; color: var(--ink);
  }
  .field input:focus, .field select:focus, .field textarea:focus{
    outline:none; border-color: var(--wine);
  }
  .field textarea{ resize:vertical; min-height:110px; }
  .contact-info h3{ font-family:var(--serif); font-size:1.5rem; font-weight:500; margin-bottom:22px; }
  .info-row{ display:flex; gap:16px; padding: 18px 0; border-top:1px solid var(--line); }
  .info-row:first-of-type{ border-top:none; }
  .info-row .ik{ font-size:0.68rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--wine); font-weight:600; min-width:110px; }
  .info-row p{ font-size:0.9rem; color:var(--ink); }
  .info-row .muted{ color:var(--stone); font-size:0.82rem; margin-top:4px; }
  .urgent-box{
    margin-top:30px; border:1px solid var(--wine); padding:20px 22px; background: rgba(107,30,35,0.05);
  }
  .urgent-box .label{ font-size:0.7rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--wine); font-weight:700; display:block; margin-bottom:6px;}
  .urgent-box p{ font-size:0.85rem; color:var(--ink); }

  @media (max-width:860px){ .contact-grid{ grid-template-columns:1fr; } }

  /* ---------- Footer ---------- */
  footer{ background: var(--ink); color: #C8C2B3; padding: 56px 0 32px; }
  .footer-top{
    display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:32px;
    padding-bottom: 36px; border-bottom:1px solid rgba(247,244,236,0.14);
  }
  .footer-brand .brand-name{ color: var(--ivory); }
  .footer-links{ display:flex; gap:56px; flex-wrap:wrap; }
  .footer-col h5{ font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold-soft); margin-bottom:14px; }
  .footer-col a, .footer-col p{ display:block; font-size:0.85rem; color:#C8C2B3; margin-bottom:10px; }
  .footer-col a:hover{ color: var(--ivory); }
  .footer-bottom{
    display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px 26px;
    padding-top:26px; font-size:0.76rem; color:#8C8676;
  }
  .footer-legal{ display:flex; flex-wrap:wrap; gap:8px 22px; }
  .footer-legal a{ color:#A9A395; }
  .footer-legal a:hover{ color: var(--ivory); text-decoration:underline; text-underline-offset:3px; }

  /* Placeholder note banner (for the builder, easy to remove) */
  .build-note{
    background: var(--gold-soft); color: var(--ink); text-align:center;
    font-size:0.78rem; padding: 9px 16px; letter-spacing:0.01em;
  }
  .build-note b{ font-weight:700; }

  /* ---------- Agenda modal ---------- */
  .modal-box{
    background: var(--ivory); border:1px solid var(--line);
    max-width: 680px; width:100%; max-height:90vh; overflow-y:auto;
    margin: auto; padding: 44px 44px 40px; position:relative;
  }
  .modal-box::backdrop{ background: rgba(21,19,15,0.72); }
  .modal-close{
    position:absolute; top:18px; right:18px;
    width:34px; height:34px; border:1px solid var(--line); background:transparent;
    font-size:1.2rem; cursor:pointer; color:var(--ink); line-height:1;
  }
  .modal-close:hover{ background: var(--ink); color: var(--ivory); }
  .modal-box h3{
    font-family: var(--serif); font-weight:500; font-size:1.6rem; margin: 10px 0 8px;
  }
  .modal-box > p.modal-sub{ color:var(--stone); font-size:0.9rem; margin-bottom:30px; }
  .agenda-options{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
  .agenda-option{
    border:1px solid var(--line); padding: 26px 22px; display:flex; flex-direction:column; gap:10px;
  }
  .agenda-option.priority{ border-color: var(--wine); background: rgba(107,30,35,0.04); }
  .agenda-badge{
    align-self:flex-start; font-size:0.66rem; letter-spacing:0.1em; text-transform:uppercase;
    padding: 4px 10px; font-weight:700;
  }
  .agenda-option.priority .agenda-badge{ background: var(--wine); color: var(--ivory); }
  .agenda-option.standard .agenda-badge{ background: var(--ivory-2); color: var(--stone); border:1px solid var(--line); }
  .agenda-option h4{ font-family:var(--serif); font-size:1.15rem; font-weight:600; margin-top:6px; }
  .agenda-option p{ font-size:0.83rem; color:var(--stone); line-height:1.55; flex-grow:1; }
  .agenda-price{ font-family:var(--serif); font-size:1.9rem; font-weight:500; color:var(--ink); }
  .agenda-price span{ font-size:0.72rem; color:var(--stone); font-weight:400; letter-spacing:0.05em; }
  .agenda-option .btn{ justify-content:center; margin-top:6px; }
  @media (max-width:560px){
    .agenda-options{ grid-template-columns:1fr; }
    .modal-box{ padding: 32px 22px 28px; }
  }

  /* ---------- Legal pages (aviso legal, privacidad, cookies) ---------- */
  .legal-head{
    padding: 72px 0 44px;
    border-bottom:1px solid var(--line);
    background: var(--ivory-2);
  }
  .legal-head h1{
    font-family: var(--serif); font-weight:500; font-size:2.5rem; line-height:1.16;
    max-width: 22ch;
  }
  .legal-head .legal-updated{ margin-top:18px; font-size:0.8rem; color:var(--stone); }
  .legal-body{ padding: 54px 0 88px; }
  /* Keep the wrap centred (so text aligns with header/footer) but cap the measure. */
  .legal-body .wrap > *{ max-width: 820px; }
  .legal-body h2{
    font-family: var(--serif); font-weight:600; font-size:1.28rem;
    margin: 46px 0 14px; scroll-margin-top: 90px;
  }
  .legal-body h2:first-of-type{ margin-top:0; }
  .legal-body h3{ font-size:0.95rem; font-weight:700; margin: 28px 0 10px; }
  .legal-body p{ margin-bottom:14px; font-size:0.95rem; color:var(--stone); line-height:1.72; }
  .legal-body ul{ margin: 4px 0 20px; padding-left:20px; }
  .legal-body li{ font-size:0.95rem; color:var(--stone); line-height:1.72; margin-bottom:8px; }
  .legal-body strong{ color: var(--ink); font-weight:600; }
  .legal-body a{ color: var(--wine); text-decoration:underline; text-underline-offset:2px; }
  .legal-body a:hover{ color: var(--wine-soft); }
  .legal-card{
    border:1px solid var(--line); background: var(--ivory-2);
    padding: 26px 28px; margin-bottom: 6px;
  }
  .legal-card p{ margin-bottom:5px; color: var(--ink); font-size:0.9rem; line-height:1.6; }
  .legal-card p:last-child{ margin-bottom:0; }
  @media (max-width:640px){
    .legal-head{ padding: 48px 0 34px; }
    .legal-head h1{ font-size:1.9rem; }
    .legal-body{ padding: 40px 0 64px; }
    .legal-card{ padding: 22px 20px; }
  }

  /* Consent line under the contact form */
  .form-consent{ font-size:0.78rem; color:var(--stone); line-height:1.6; max-width:52ch; }
  .form-consent a{ color:var(--wine); text-decoration:underline; text-underline-offset:2px; }
