:root{
    --ink:#16233F;
    --ink-soft:#2B3A5C;
    --paper:#F5F6F3;
    --paper-raised:#FFFFFF;
    --lift:#2E6F5E;
    --lift-dark:#1F4F42;
    --lift-tint:#E4EEEA;
    --gold:#B08D57;
    --slate:#5B6472;
    --line:#DEDAD0;
    --radius:6px;
  }

  *{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior:auto; }
    *{ animation:none !important; transition:none !important; }
  }

  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'Inter', sans-serif;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }

  h1,h2,h3{
    font-family:'Fraunces', serif;
    color:var(--ink);
    margin:0;
    line-height:1.15;
    font-weight:600;
  }

  a{ color:inherit; }
  img{ max-width:100%; }

  .wrap{
    max-width:1120px;
    margin:0 auto;
    padding:0 32px;
  }

  .eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:12.5px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--lift-dark);
    font-weight:600;
  }

  /* ---------- Logo / signature wordmark ---------- */
  .logo{
    display:inline-flex;
    align-items:baseline;
    gap:2px;
    font-family:'Fraunces', serif;
    font-weight:600;
    text-decoration:none;
    color:var(--ink);
    line-height:1;
  }
  .logo .word{ font-size:1em; }
  .logo .lift{
    position:relative;
    color:var(--lift);
    transform:translateY(-0.16em);
    display:inline-block;
    margin:0 .02em;
  }
  .logo .lift-ticks{
    position:absolute;
    left:50%;
    bottom:-.5em;
    transform:translateX(-50%);
    display:flex;
    align-items:flex-end;
    gap:2px;
    height:.4em;
  }
  .logo .lift-ticks span{
    display:block;
    width:3px;
    background:var(--gold);
    border-radius:1px;
  }
  .logo .lift-ticks span:nth-child(1){ height:35%; }
  .logo .lift-ticks span:nth-child(2){ height:65%; }
  .logo .lift-ticks span:nth-child(3){ height:100%; }

  .logo-lg{ font-size:32px; }
  .logo-md{ font-size:22px; }

  /* ---------- Header ---------- */
  header{
    position:sticky;
    top:0;
    z-index:50;
    background:rgba(245,246,243,.92);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  .header-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:16px 32px;
  }
  nav.primary-nav{
    display:flex;
    align-items:center;
    gap:28px;
  }
  nav.primary-nav a.navlink{
    font-size:14.5px;
    font-weight:500;
    color:var(--ink-soft);
    text-decoration:none;
  }
  nav.primary-nav a.navlink:hover{ color:var(--lift-dark); }

  .nav-toggle{
    display:none;
    background:none;
    border:1px solid var(--line);
    border-radius:6px;
    width:40px;
    height:40px;
    align-items:center;
    justify-content:center;
    cursor:pointer;
  }
  .nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{
    content:"";
    display:block;
    width:18px;
    height:2px;
    background:var(--ink);
    position:relative;
    transition:transform .2s ease, opacity .2s ease;
  }
  .nav-toggle span::before{ position:absolute; top:-6px; }
  .nav-toggle span::after{ position:absolute; top:6px; }
  .nav-toggle.is-open span{ background:transparent; }
  .nav-toggle.is-open span::before{ transform:translateY(6px) rotate(45deg); }
  .nav-toggle.is-open span::after{ transform:translateY(-6px) rotate(-45deg); }

  .mobile-nav{
    display:none;
    flex-direction:column;
    gap:2px;
    padding:8px 32px 20px;
    border-bottom:1px solid var(--line);
    background:var(--paper);
  }
  .mobile-nav.is-open{ display:flex; }
  .mobile-nav a{
    padding:12px 0;
    font-size:15px;
    font-weight:500;
    text-decoration:none;
    color:var(--ink-soft);
    border-bottom:1px solid var(--line);
  }
  .mobile-nav a:last-of-type{ border-bottom:none; }
  .mobile-nav .btn{ margin-top:14px; width:100%; }

  .btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    font-family:'Inter',sans-serif;
    font-weight:600;
    font-size:14.5px;
    padding:12px 22px;
    border-radius:var(--radius);
    text-decoration:none;
    cursor:pointer;
    border:1px solid transparent;
    white-space:nowrap;
  }
  .btn:focus-visible{
    outline:3px solid var(--gold);
    outline-offset:2px;
  }
  .btn-primary{
    background:var(--lift);
    color:#fff;
  }
  .btn-primary:hover{ background:var(--lift-dark); }
  .btn-secondary{
    background:transparent;
    color:var(--ink);
    border-color:var(--ink);
  }
  .btn-secondary:hover{ background:var(--ink); color:#fff; }
  .btn-ghost{
    background:transparent;
    color:var(--lift-dark);
    border-color:var(--lift);
  }
  .btn-ghost:hover{ background:var(--lift-tint); }
  .btn-sm{ padding:9px 16px; font-size:13.5px; }

  /* ---------- Fee banner (repeats statement) ---------- */
  .fee-banner{
    background:var(--ink);
    color:#EDEFEC;
  }
  .fee-banner .wrap{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    padding:10px 32px;
    text-align:center;
    flex-wrap:wrap;
  }
  .fee-banner p{
    margin:0;
    font-size:13.5px;
    font-family:'IBM Plex Mono', monospace;
    letter-spacing:.02em;
  }
  .fee-banner strong{ color:#fff; }

  /* ---------- Hero ---------- */
  .hero{
    padding:88px 0 96px;
    border-bottom:1px solid var(--line);
  }
  .hero .wrap{
    display:grid;
    grid-template-columns:1.15fr .85fr;
    gap:64px;
    align-items:center;
  }
  .hero h1{
    font-size:clamp(38px, 5vw, 58px);
    letter-spacing:-.01em;
  }
  .hero .sub{
    margin-top:22px;
    font-size:17.5px;
    color:var(--slate);
    max-width:52ch;
  }
  .hero .cta-row{
    margin-top:34px;
    display:flex;
    gap:14px;
    flex-wrap:wrap;
  }
  .hero .statement{
    margin-top:26px;
    font-size:14px;
    font-family:'IBM Plex Mono', monospace;
    color:var(--lift-dark);
    background:var(--lift-tint);
    display:inline-block;
    padding:10px 16px;
    border-radius:var(--radius);
    border:1px solid #cfe2da;
  }

  .hero-card{
    background:var(--paper-raised);
    border:1px solid var(--line);
    border-radius:10px;
    padding:32px;
  }
  .hero-card .rate{
    font-family:'Fraunces', serif;
    font-size:44px;
    font-weight:600;
    color:var(--ink);
  }
  .hero-card .rate span{
    font-family:'IBM Plex Mono', monospace;
    font-size:15px;
    font-weight:500;
    color:var(--slate);
    margin-left:6px;
  }
  .hero-card ul{
    list-style:none;
    padding:0;
    margin:22px 0 0;
  }
  .hero-card li{
    display:flex;
    gap:10px;
    padding:9px 0;
    border-top:1px solid var(--line);
    font-size:14.5px;
    color:var(--ink-soft);
  }
  .hero-card li:first-child{ border-top:none; }
  .hero-card li .tick{ color:var(--lift); font-weight:700; }

  /* ---------- Ascending tick divider (signature motif) ---------- */
  .divider{
    display:flex;
    align-items:flex-end;
    justify-content:center;
    gap:4px;
    height:22px;
    margin:0 auto;
  }
  .divider span{
    width:4px;
    background:var(--gold);
    border-radius:1px;
    opacity:.85;
  }
  .divider span:nth-child(1){ height:30%; }
  .divider span:nth-child(2){ height:55%; }
  .divider span:nth-child(3){ height:80%; }
  .divider span:nth-child(4){ height:100%; }

  section{ padding:88px 0; }
  .section-head{
    max-width:640px;
    margin:0 auto 48px;
    text-align:center;
  }
  .section-head h2{
    font-size:clamp(28px,3.4vw,38px);
    margin-top:14px;
  }
  .section-head p{
    color:var(--slate);
    margin-top:14px;
    font-size:16px;
  }

  /* ---------- About ---------- */
  .about{ background:var(--paper-raised); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
  .about .wrap{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:56px;
    align-items:start;
  }
  .about h2{ font-size:clamp(26px,3vw,34px); }
  .about p{ color:var(--slate); margin-top:16px; font-size:16px; }
  .about-list{ list-style:none; padding:0; margin:24px 0 0; display:grid; gap:16px; }
  .about-list li{
    display:flex;
    gap:12px;
    align-items:flex-start;
    font-size:15px;
    color:var(--ink-soft);
  }
  .about-list .dot{
    flex:none;
    width:8px; height:8px;
    border-radius:50%;
    background:var(--lift);
    margin-top:7px;
  }

  /* ---------- Process ---------- */
  .process-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:28px;
  }
  .process-card{
    background:var(--paper-raised);
    border:1px solid var(--line);
    border-radius:10px;
    padding:28px;
  }
  .process-card .num{
    font-family:'IBM Plex Mono', monospace;
    color:var(--gold);
    font-size:13px;
    font-weight:600;
    letter-spacing:.08em;
  }
  .process-card h3{ font-size:19px; margin-top:12px; }
  .process-card p{ color:var(--slate); font-size:14.5px; margin-top:10px; }

  /* ---------- Services / Pricing ---------- */
  .services{ background:var(--ink); color:#EDEFEC; }
  .services .section-head h2{ color:#fff; }
  .services .section-head p{ color:#B9C0CC; }
  .pricing-card{
    max-width:640px;
    margin:0 auto;
    background:#1E2C4C;
    border:1px solid #33436A;
    border-radius:12px;
    padding:40px;
  }
  .pricing-card .top-row{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    flex-wrap:wrap;
    gap:12px;
  }
  .pricing-card .rate{
    font-family:'Fraunces', serif;
    font-size:46px;
    font-weight:600;
    color:#fff;
  }
  .pricing-card .rate span{
    font-family:'IBM Plex Mono', monospace;
    font-size:15px;
    color:#AEB6C4;
  }
  .pricing-card .badge{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--lift);
    background:rgba(46,111,94,.18);
    border:1px solid rgba(46,111,94,.5);
    padding:6px 12px;
    border-radius:20px;
  }
  .pricing-card ul{
    list-style:none;
    padding:0;
    margin:28px 0 0;
    display:grid;
    gap:13px;
  }
  .pricing-card li{
    display:flex;
    gap:10px;
    font-size:15px;
    color:#DCE0E7;
  }
  .pricing-card li .tick{ color:var(--lift); font-weight:700; }
  .pricing-card .statement{
    margin-top:28px;
    padding:14px 16px;
    background:rgba(255,255,255,.05);
    border:1px solid #33436A;
    border-radius:8px;
    font-family:'IBM Plex Mono', monospace;
    font-size:13.5px;
    color:#C9CFD9;
  }
  .pricing-card .cta-row{ margin-top:26px; display:flex; gap:12px; flex-wrap:wrap; }

  /* ---------- Booking ---------- */
  .booking .wrap{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:56px;
    align-items:center;
  }
  .booking-panel{
    background:var(--paper-raised);
    border:1px solid var(--line);
    border-radius:12px;
    padding:36px;
  }
  .booking-panel h3{ font-size:22px; }
  .booking-panel .row{
    display:flex;
    justify-content:space-between;
    padding:14px 0;
    border-top:1px solid var(--line);
    font-size:14.5px;
  }
  .booking-panel .row:first-of-type{ border-top:none; }
  .booking-panel .row .label{ color:var(--slate); }
  .booking-panel .row .value{ font-weight:600; color:var(--ink); }
  .booking-panel .cta-row{ margin-top:26px; display:flex; gap:12px; flex-wrap:wrap; }
  .booking-note{
    margin-top:18px;
    font-size:13px;
    color:var(--slate);
  }

  /* ---------- Policies ---------- */
  .policies{ background:var(--paper-raised); border-top:1px solid var(--line); }
  .policy-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:28px;
  }
  .policy-card{
    border:1px solid var(--line);
    border-radius:10px;
    padding:26px 28px;
  }
  .policy-card h3{ font-size:17px; }
  .policy-card p, .policy-card li{ color:var(--slate); font-size:14.5px; }
  .policy-card ul{ margin:12px 0 0; padding-left:18px; }
  .policy-card li{ margin-bottom:6px; }

  .disclaimer-box{
    margin-top:36px;
    border:1px solid var(--line);
    border-radius:10px;
    padding:24px 28px;
    background:var(--paper);
  }
  .disclaimer-box p{ color:var(--slate); font-size:13.5px; margin:0; }

  /* ---------- Final CTA ---------- */
  .final-cta{
    text-align:center;
    background:linear-gradient(180deg, var(--paper) 0%, var(--lift-tint) 100%);
  }
  .final-cta h2{ font-size:clamp(28px,3.6vw,40px); }
  .final-cta p{ color:var(--slate); margin-top:14px; }
  .final-cta .cta-row{
    margin-top:30px;
    display:flex;
    gap:14px;
    justify-content:center;
    flex-wrap:wrap;
  }

  /* ---------- Footer ---------- */
  footer{
    background:var(--ink);
    color:#C9CFD9;
    padding:64px 0 32px;
  }
  .footer-top{
    display:grid;
    grid-template-columns:1.3fr 1fr 1fr;
    gap:48px;
    padding-bottom:40px;
    border-bottom:1px solid #2E3D60;
  }
  footer .logo{ color:#fff; }
  footer .logo .lift{ color:#6FBBA4; }
  footer p.tagline{
    margin-top:14px;
    font-family:'Fraunces', serif;
    font-style:italic;
    color:#AEB6C4;
    font-size:15px;
  }
  footer .statement{
    margin-top:18px;
    font-family:'IBM Plex Mono', monospace;
    font-size:12.5px;
    color:#8F98A8;
    max-width:38ch;
  }
  footer h4{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:#8F98A8;
    margin:0 0 16px;
  }
  footer ul{ list-style:none; padding:0; margin:0; display:grid; gap:11px; }
  footer a{ text-decoration:none; color:#C9CFD9; font-size:14.5px; }
  footer a:hover{ color:#fff; }
  .footer-bottom{
    padding-top:26px;
    display:flex;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:12px;
    font-size:12.5px;
    color:#7C8496;
  }
  .footer-legal{
    margin-top:18px;
    padding-top:18px;
    border-top:1px solid #2E3D60;
    display:flex;
    gap:22px;
    flex-wrap:wrap;
  }
  .footer-legal a{
    font-size:12.5px;
    color:#8F98A8;
    text-decoration:none;
  }
  .footer-legal a:hover{ color:#fff; }

  .calendly-embed{
    background:var(--paper-raised);
    border:1px solid var(--line);
    border-radius:12px;
    overflow:hidden;
    min-width:280px;
  }

  .booking-modal-overlay{
    position:fixed;
    inset:0;
    background:rgba(22,35,63,.55);
    display:none;
    align-items:center;
    justify-content:center;
    z-index:200;
    padding:24px;
  }
  .booking-modal-overlay.is-open{ display:flex; }
  .booking-modal{
    position:relative;
    background:var(--paper-raised);
    border-radius:14px;
    max-width:440px;
    width:100%;
    padding:36px;
    text-align:center;
    box-shadow:0 24px 60px rgba(0,0,0,.28);
  }
  .booking-modal .check{
    width:52px;
    height:52px;
    margin:0 auto 18px;
    border-radius:50%;
    background:var(--lift-tint);
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .booking-modal h3{
    font-size:24px;
    margin-top:14px;
  }
  .booking-modal p{
    color:var(--slate);
    font-size:14.5px;
    margin-top:14px;
  }
  .booking-modal .statement{
    margin-top:18px;
    font-size:13px;
    font-family:'IBM Plex Mono', monospace;
    color:var(--lift-dark);
    background:var(--lift-tint);
    display:inline-block;
    padding:9px 14px;
    border-radius:var(--radius);
    border:1px solid #cfe2da;
  }
  .booking-modal .btn{ margin-top:24px; }
  .booking-modal .modal-close{
    position:absolute;
    top:14px;
    right:16px;
    border:none;
    background:none;
    font-size:22px;
    line-height:1;
    color:var(--slate);
    cursor:pointer;
    padding:4px;
  }
  .booking-modal .modal-close:hover{ color:var(--ink); }

  /* ---------- Service teaser grid (homepage) ---------- */
  .svc-teaser-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:16px;
    margin-bottom:40px;
  }
  .svc-teaser{
    display:flex;
    align-items:center;
    gap:12px;
    background:#1E2C4C;
    border:1px solid #33436A;
    border-radius:8px;
    padding:16px 18px;
    text-decoration:none;
    color:#fff;
  }
  .svc-teaser:hover{ border-color:var(--lift); }
  .svc-teaser .icon{
    flex:none;
    width:36px; height:36px;
    border-radius:50%;
    background:rgba(46,111,94,.22);
    color:#6FBBA4;
    display:flex; align-items:center; justify-content:center;
  }
  .svc-teaser h4{ font-size:14px; font-weight:600; margin:0; }

  @media (max-width: 960px){
    .process-grid[style*="repeat(4"]{ grid-template-columns:repeat(2,1fr) !important; }
    .svc-teaser-grid{ grid-template-columns:repeat(2,1fr); }
  }

  [data-reveal]{
    opacity:0;
    transform:translateY(14px);
    transition:opacity .6s ease, transform .6s ease;
  }
  [data-reveal].is-visible{
    opacity:1;
    transform:none;
  }

  /* ---------- Subpage banner (About / Services / How It Works / FAQ / Contact / Legal) ---------- */
  .page-banner{
    padding:64px 0 56px;
    border-bottom:1px solid var(--line);
    text-align:center;
  }
  .page-banner h1{
    font-size:clamp(32px, 4vw, 46px);
    margin-top:14px;
  }
  .page-banner p{
    margin-top:16px;
    color:var(--slate);
    font-size:16.5px;
    max-width:56ch;
    margin-left:auto;
    margin-right:auto;
  }

  /* ---------- Trust section ---------- */
  .trust-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:28px;
  }
  .trust-card{
    background:var(--paper-raised);
    border:1px solid var(--line);
    border-radius:10px;
    padding:28px;
  }
  .trust-card h3{ font-size:18px; margin-top:14px; }
  .trust-card p{ color:var(--slate); font-size:14.5px; margin-top:10px; }
  .trust-card .icon{
    width:42px; height:42px;
    border-radius:50%;
    background:var(--lift-tint);
    display:flex; align-items:center; justify-content:center;
    color:var(--lift-dark);
  }

  /* ---------- Audience section ---------- */
  .audience-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:28px;
  }
  .audience-card{
    background:var(--ink);
    color:#EDEFEC;
    border-radius:10px;
    padding:30px;
  }
  .audience-card p.eyebrow{ color:#6FBBA4; }
  .audience-card h3{ color:#fff; font-size:20px; margin-top:12px; }
  .audience-card p.body{ color:#B9C0CC; font-size:14.5px; margin-top:12px; }

  /* ---------- Service detail cards (Services page) ---------- */
  .service-detail{
    background:var(--paper-raised);
    border:1px solid var(--line);
    border-radius:12px;
    padding:36px;
    margin-bottom:28px;
  }
  .service-detail .svc-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    flex-wrap:wrap;
    gap:16px;
  }
  .service-detail h2{ font-size:24px; }
  .service-detail .svc-num{
    font-family:'IBM Plex Mono', monospace;
    color:var(--gold);
    font-size:13px;
    font-weight:600;
    letter-spacing:.08em;
  }
  .svc-columns{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
    margin-top:22px;
  }
  .svc-columns h4{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--lift-dark);
    margin:0 0 10px;
  }
  .svc-columns ul{ margin:0; padding-left:18px; }
  .svc-columns li{ color:var(--slate); font-size:14px; margin-bottom:6px; }
  .svc-not-guarantee{
    margin-top:22px;
    padding:16px 18px;
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:8px;
    font-size:13.5px;
    color:var(--slate);
  }
  .service-detail .cta-row{ margin-top:22px; }

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

  /* ---------- FAQ accordion ---------- */
  .faq-list{ max-width:760px; margin:0 auto; }
  .faq-item{
    border-bottom:1px solid var(--line);
  }
  .faq-question{
    width:100%;
    text-align:left;
    background:none;
    border:none;
    padding:22px 4px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    cursor:pointer;
    font-family:'Fraunces', serif;
    font-size:17px;
    font-weight:600;
    color:var(--ink);
  }
  .faq-question .plus{
    flex:none;
    width:22px; height:22px;
    border-radius:50%;
    border:1px solid var(--line);
    display:flex; align-items:center; justify-content:center;
    font-size:15px;
    color:var(--lift-dark);
    transition:transform .2s ease;
  }
  .faq-item.is-open .faq-question .plus{ transform:rotate(45deg); }
  .faq-answer{
    max-height:0;
    overflow:hidden;
    transition:max-height .3s ease;
  }
  .faq-answer p{
    padding:0 4px 22px;
    color:var(--slate);
    font-size:14.5px;
    max-width:68ch;
  }

  /* ---------- Contact page ---------- */
  .contact-grid{
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:56px;
    align-items:start;
  }
  .contact-form{
    background:var(--paper-raised);
    border:1px solid var(--line);
    border-radius:12px;
    padding:32px;
  }
  .field{ margin-bottom:18px; }
  .field label{
    display:block;
    font-size:13.5px;
    font-weight:600;
    color:var(--ink-soft);
    margin-bottom:6px;
  }
  .field input, .field select, .field textarea{
    width:100%;
    padding:11px 13px;
    border:1px solid var(--line);
    border-radius:6px;
    font-family:'Inter', sans-serif;
    font-size:14.5px;
    color:var(--ink);
    background:#fff;
  }
  .field input:focus, .field select:focus, .field textarea:focus{
    outline:2px solid var(--lift);
    outline-offset:1px;
    border-color:var(--lift);
  }
  .field-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  .field.checkbox{ display:flex; align-items:flex-start; gap:10px; }
  .field.checkbox input{ width:auto; margin-top:3px; }
  .field.checkbox label{ font-weight:400; font-size:13.5px; color:var(--slate); margin-bottom:0; }
  .field-error{ color:#B3452F; font-size:12.5px; margin-top:5px; display:none; }
  .field.has-error input, .field.has-error select, .field.has-error textarea{ border-color:#B3452F; }
  .field.has-error .field-error{ display:block; }
  .form-status{
    margin-top:16px;
    padding:14px 16px;
    border-radius:8px;
    font-size:14px;
    display:none;
  }
  .form-status.is-success{ display:block; background:var(--lift-tint); color:var(--lift-dark); border:1px solid #cfe2da; }
  .form-status.is-error{ display:block; background:#FBEAE6; color:#8A3423; border:1px solid #F0C9BE; }

  .contact-info-card{
    background:var(--ink);
    color:#EDEFEC;
    border-radius:12px;
    padding:32px;
  }
  .contact-info-card h3{ color:#fff; font-size:19px; }
  .contact-info-card .row{
    display:flex;
    gap:12px;
    padding:14px 0;
    border-top:1px solid #2E3D60;
    font-size:14.5px;
    color:#DCE0E7;
  }
  .contact-info-card .row:first-of-type{ border-top:none; }

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

  /* ---------- Legal pages (Privacy / Terms / Disclaimer) ---------- */
  .legal-content{
    max-width:760px;
    margin:0 auto;
    padding:64px 0 96px;
  }
  .legal-content h2{
    font-size:22px;
    margin-top:40px;
  }
  .legal-content h2:first-child{ margin-top:0; }
  .legal-content p, .legal-content li{
    color:var(--slate);
    font-size:15px;
    margin-top:12px;
  }
  .legal-content ul{ padding-left:20px; }
  .legal-updated{
    font-family:'IBM Plex Mono', monospace;
    font-size:12.5px;
    color:var(--slate);
    margin-bottom:0;
  }

  @media (max-width: 880px){
    nav.primary-nav{ display:none; }
    .nav-toggle{ display:flex; }
    .hero .wrap, .about .wrap, .booking .wrap, .footer-top,
    .audience-grid, .trust-grid, .service-detail .wrap, .contact-grid{
      grid-template-columns:1fr;
    }
    .process-grid, .policy-grid, .faq-grid{ grid-template-columns:1fr; }
    .process-grid[style*="repeat(4"]{ grid-template-columns:1fr !important; }
  }
