  :root{
    --cream:#f1e9de;
    --cream-dark:#ded4ca;
    --tan:#b19a7a;
    --brown-light:#4a3d29;
    --brown-dark:#31190f;
    --brown-mid:#5b4a34;
    --brown-btn:#5a4e38;
    --ink-box:#17181c;
    --gold:#f1e9de;
    --pink:#e6b0ac; 
    --muted:#8a7f6d;
    --white:#f1e9de;
    --max:1180px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    font-family:'Jost', sans-serif;
    color:var(--brown-dark);
    background:var(--cream);
    font-weight:300;
    line-height:1.6;
  }
  h1,h2,h3,.serif{
    font-family:'Gazpacho', 'Petrona', serif;
    font-weight:400;
    margin:0;
    letter-spacing:-0.01em;
    line-height:1.08;
  }

  h2{font-size:clamp(36px,4.5vw,50px);}
  p{font-size:17px; line-height:1.55; margin:0;}
  a{color:inherit;text-decoration:none;}
  img{max-width:100%;display:block;}
  .wrap{max-width:var(--max);margin:0 auto;padding:0 32px;}
  section{padding:100px 0;}
  .eyebrow{
    text-transform:uppercase;
    letter-spacing:.14em;
    font-size:13px;
    color:var(--muted);
    margin-bottom:18px;
  }
  .btn{
    display:inline-block;
    background:var(--brown-btn);
    color:var(--white);
    padding:16px 30px;
    font-family: 'Gazpacho', 'Petrona',sans-serif;
    font-size:20px;
    letter-spacing:.04em;
    text-transform:capitalize;
    border:none;
    cursor:pointer;
    transition:background .2s ease, transform .2s ease;
  }
  .btn:hover{background:#3f331f; transform:translateY(-1px);}
  .btn.outline{
    background:transparent;
    border:1.5px solid var(--brown-dark);
    color:var(--brown-dark);
  }
  .btn.outline:hover{background:var(--brown-dark); color:var(--white);}

  .site-header{
    position:sticky; top:0; z-index:50;
    background:rgba(241,233,222,.98);
    border-bottom:1px solid rgba(49,25,15,.08);
  }
  .nav-inner{
    max-width:var(--max); margin:0 auto; padding:18px 32px;
    display:flex; align-items:center; justify-content:space-between;
  }
  .logo-mark{display:flex; align-items:center;}
  .logo-img{height:34px; width:auto;}
  nav.links{display:flex; gap:26px; align-items:center;}
  nav.links a{
    font-size:14px;
    white-space:nowrap;
    color:var(--brown-dark);
    position:relative;
    padding-bottom:4px;
  }
  nav.links a.active{border-bottom:1.5px solid var(--brown-dark);}
  nav.links a:hover{opacity:.7;}
  .nav-cta{display:none;}
  .burger{display:none; background:none; border:none; cursor:pointer; padding:6px;}
  .burger span{display:block; width:24px; height:2px; background:var(--brown-dark); margin:5px 0;}

  /* ===== Hero with background media ===== */
  .hero{
    position:relative;
    overflow:hidden;
    padding:110px 0 90px;
    isolation:isolate;
  }
  .hero-media{
    position:absolute; inset:0; z-index:0;
    background:#e9dfc9;
  }
  .hero-media video{
    position:absolute; inset:0;
    width:100%; height:100%;
    object-fit:cover;
    object-position:center center;
    display:block;
    filter:blur(0px);
  }
  .hero-media .poster-fallback{
    position:absolute; inset:0;
    width:100%; height:100%;
    object-fit:cover;
    object-position:center center;
    display:none;
  }
  /* The mobile clip wasn't pre-cropped vertically (it needs its full height),
     so it still needs the original vertical bias toward the upper branch. */
  .hero-media video.is-mobile-src,
  .hero-media .poster-fallback.is-mobile-src{
    object-position:center 30%;
  }
  @media (prefers-reduced-motion: reduce){
    .hero-media video{display:none;}
    .hero-media .poster-fallback{display:block;}
  }
  .hero-overlay{
    position:absolute; inset:0; z-index:1;
    background:
      linear-gradient(115deg, rgba(18,13,8,.80) 0%, rgba(18,13,8,.58) 36%, rgba(18,13,8,.30) 64%, rgba(18,13,8,.14) 100%),
      linear-gradient(0deg, rgba(18,13,8,.45) 0%, rgba(18,13,8,0) 42%);
  }
  .hero .wrap{position:relative; z-index:2;}
  .hero .eyebrow{color:#ecdfc4;}
  .hero h1{
    font-size:clamp(42px, 6.4vw, 76px);
    line-height:0.98;
    max-width:820px;
    color:var(--white);
  }
  .hero-questions{
    max-width:560px;
    margin-top:34px;
    display:flex; flex-direction:column; gap:6px;
    color:#f4eee2;
  }
  .hero-questions p{line-height:1.4; text-shadow:0 1px 12px rgba(0,0,0,.18);}
  .hero-cta{margin-top:38px; display:flex; gap:16px; flex-wrap:wrap;}
  .hero .btn{box-shadow:0 8px 24px rgba(0,0,0,.25);}

  .guide{background:var(--cream-dark);}
  .guide-grid{
    display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center;
  }
  .guide h2{max-width:420px;}
  .guide p{margin-top:20px; max-width:420px;}
  .guide-card{
    background:var(--cream);
    border:1px solid var(--brown-dark);
    border-radius:18px;
    padding:44px;
    box-shadow:0 18px 40px rgba(49,25,15,.22);
  }
  .guide-card h3{font-size:26px; line-height:1.15; margin-bottom:16px;}
  .guide-card p{margin:0 0 26px;}
  .btn.btn-block{display:block; width:100%; margin:0 auto; text-align:center;}

  .services > .wrap > p{margin-top:14px; color:var(--brown-dark);}
  .cards{
    margin-top:56px;
    display:grid; grid-template-columns:repeat(3,1fr); gap:26px;
  }
  .card{
    background:var(--tan);
    padding:40px 34px;
    min-height:280px;
    display:flex; flex-direction:column;
  }
  .card h3{font-size:24px; line-height:1.15; color:var(--brown-light); margin-bottom:16px; font-weight:400;}
  .card p{flex-grow:1; color:#3b3020; margin:0 0 28px;}
  .card .btn{align-self:flex-start;}

  .howitworks > .wrap > p.sub{margin-top:14px; color:var(--muted);}
  .steps{margin-top:50px;}
  .step{
    display:grid; grid-template-columns:100px 1fr; gap:30px;
    padding:30px 0; border-bottom:1px solid rgba(49,25,15,.15);
    align-items:start;
  }
  .step:first-child{border-top:1px solid rgba(49,25,15,.15);}
  .step .num{font-family:'Gazpacho','Petrona',serif; font-size:34px; color:#6b5c44;}
  .step h3{font-size:21px; line-height:1.15; font-weight:400; margin-bottom:8px;}
  .step p{color:var(--brown-dark); max-width:640px;}

  /* Certainty / trust */
  .trust h2{max-width:380px;}
  .trust-grid{
    display:grid; grid-template-columns:340px 1fr; gap:50px; align-items:start;
  }
  .trust-items{display:grid; grid-template-columns:repeat(3,1fr); gap:36px;}
  .trust-icon{
    width:56px; height:56px; background:var(--ink-box);
    display:flex; align-items:center; justify-content:center;
    margin-bottom:22px;
  }
  .trust-icon svg{width:28px; height:28px;}
  .trust-item h3{font-size:19px; line-height:1.15; font-weight:400; margin-bottom:12px; color:#3a2f21;}
  .trust-item p{color:var(--brown-dark);}

  /* Contact */
  .contact{background:var(--cream-dark);}
  .contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px;}
  .contact h2{max-width:420px;}
  .contact p.lead{margin-top:18px; max-width:420px; color:var(--brown-dark);}
  .contact-info{margin-top:36px; display:flex; flex-direction:column; gap:10px; font-size:15px; color:#463a2c;}
  .contact-form{
    background:var(--cream); border-radius:18px; padding:40px;
    box-shadow:0 20px 45px rgba(49,25,15,.08);
    display:flex; flex-direction:column; gap:18px;
  }
  .field label{display:block; font-size:13px; text-transform:uppercase; letter-spacing:.08em; color:var(--brown-btn); margin-bottom:8px;}
  .field input, .field textarea{
    width:100%; border:1px solid rgba(49,25,15,.25); background:var(--white);
    padding:13px 14px; font-family:'Jost',sans-serif; font-size:15px; color:var(--brown-dark);
    border-radius:6px;
  }
  .field textarea{min-height:120px; resize:vertical;}
  .field input:focus, .field textarea:focus{outline:2px solid var(--brown-mid); outline-offset:1px;}
  .form-status{font-size:14px; min-height:18px;}
  .form-status.ok{color:#3d6b3f;}
  .form-status.err{color:#a3402c;}

  /* Footer */
  .site-footer{padding:80px 0 50px; text-align:center;}
  .site-footer .tagline{
    text-transform:uppercase; letter-spacing:.16em; font-size:14px; color:var(--muted); margin-bottom:22px;
  }
  .site-footer .email{font-size:16px; margin-bottom:20px;}
  .site-footer .email a:hover{opacity:.7;}
  .socials{display:flex; justify-content:center; gap:14px; margin-bottom:50px;}
  .socials a{
    width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  }
  .socials a.ig{background:linear-gradient(45deg,#f58529,#dd2a7b,#8134af,#515bd4);}
  .socials a.li{background:#0a66c2;}
  .socials a.fb{background:#1877f2;}
  .socials svg{width:17px; height:17px; fill:#fff;}
  .foot-bottom{
    display:flex; justify-content:space-between; align-items:center;
    font-size:13px; color:var(--muted); border-top:1px solid rgba(49,25,15,.12);
    padding-top:26px; margin-top:10px;
  }
  .foot-logo{margin-top:56px; display:flex; justify-content:center; align-items:center;}
  .foot-logo .logo-img{height:66px;}

  @media (max-width:900px){
    .guide-grid, .trust-grid, .contact-grid{grid-template-columns:1fr;}
    .cards{grid-template-columns:1fr;}
    .trust-items{grid-template-columns:1fr 1fr;}
    section{padding:70px 0;}
  }
  @media (max-width:880px){
    nav.links{
      position:fixed; top:70px; left:0; right:0; bottom:0; z-index:60;
      background:var(--cream); flex-direction:column; align-items:flex-start;
      padding:30px 32px; gap:22px; font-size:19px;
      transform:translateX(100%); transition:transform .25s ease;
    }
    nav.links.open{transform:translateX(0);}
    .burger{display:block;}
    .trust-items{grid-template-columns:1fr;}
    .foot-bottom{flex-direction:column; gap:12px; text-align:center;}
    .step{grid-template-columns:60px 1fr;}
  }
  @media (max-width:600px){
    .hero-overlay{
      background:
        linear-gradient(180deg, rgba(18,13,8,.72) 0%, rgba(18,13,8,.42) 45%, rgba(18,13,8,.72) 100%);
    }
  }

/* ===== WordPress additions ===== */
.site-footer .tagline a:hover{opacity:.7;}
.contact-info a:hover{opacity:.7;}
.hp-field{position:absolute !important; left:-10000px; width:1px; height:1px; overflow:hidden;}
.btn[disabled]{opacity:.7; cursor:wait; transform:none;}
.trust-icon img{width:28px; height:28px; object-fit:contain;}

/* Keep the sticky header and mobile menu below the admin bar when logged in */
.admin-bar .site-header{top:32px;}
@media (max-width:782px){ .admin-bar .site-header{top:46px;} }
@media (max-width:600px){ .admin-bar .site-header{top:0;} }
@media (max-width:880px){ .admin-bar nav.links{top:102px;} }
@media (max-width:782px){ .admin-bar nav.links{top:116px;} }

/* Anchors land below the sticky header */
section[id]{scroll-margin-top:70px;}

/* Generic pages/posts */
.entry{max-width:780px;}
.entry h1{font-size:clamp(36px,4.5vw,50px); margin-bottom:28px;}
.entry article + article{margin-top:48px;}
.entry-content > * + *{margin-top:1em;}
.entry-content a{text-decoration:underline;}

/* ===== Free Divorce Guide ===== */
.screen-reader-text{position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); white-space:nowrap;}
.guide-form-section{padding:80px 0 100px;}
.guide-form-wrap{max-width:760px;}
.guide-form-head h1{font-size:clamp(36px,4.5vw,52px);}
.guide-form-head .lead{margin-top:16px; max-width:560px;}
.guide-form{
  margin-top:40px; background:var(--cream); border:1px solid rgba(49,25,15,.12);
  border-radius:18px; padding:40px; box-shadow:0 20px 45px rgba(49,25,15,.08);
}
.guide-progress{height:4px; background:var(--cream-dark); border-radius:2px; overflow:hidden; margin-bottom:30px; display:none;}
.guide-progress span{display:block; height:100%; width:0; background:var(--brown-mid); transition:width .3s ease;}
.guide-form.is-stepped .guide-progress{display:block;}
.gq{border:0; margin:0 0 34px; padding:0; min-width:0;}
.guide-form.is-stepped .gq{margin-bottom:10px;}
.gq-label{font-family:'Gazpacho','Petrona',serif; font-size:clamp(22px,2.6vw,28px); line-height:1.2; margin-bottom:22px; padding:0; outline:none;}
.gq-options{display:flex; flex-direction:column; gap:10px;}
.gq-option{
  display:flex; align-items:flex-start; gap:12px; cursor:pointer;
  border:1px solid rgba(49,25,15,.25); border-radius:8px; padding:14px 16px; background:var(--white);
  transition:border-color .15s ease, background .15s ease;
}
.gq-option:hover{border-color:var(--brown-mid);}
.gq-option input{margin:4px 0 0; accent-color:var(--brown-mid); flex:none;}
.gq-option:has(input:checked){border-color:var(--brown-dark); background:#e9dfd1;}
.gq-option:has(input:focus-visible){outline:2px solid var(--brown-mid); outline-offset:2px;}
.gq-help{margin:-8px 0 20px; font-size:15px;}
.gq-help summary{cursor:pointer; text-decoration:underline; color:var(--brown-mid);}
.gq-help-body{margin-top:12px; padding:18px 20px; background:var(--cream-dark); border-radius:8px;}
.gq-help-body p, .gq-help-body li{font-size:15px;}
.gq-help-body ul{margin:10px 0 14px; padding-left:20px;}
.gq-help-body li{margin-bottom:8px;}
.gq-help-body p + p{margin-top:10px;}
.gq-text p + p, .gq-exit p + p{margin-top:14px;}
.gq-services{border:0; padding:0; margin:26px 0 0; display:flex; flex-direction:column; gap:10px;}
.gq-services legend{font-size:15px; margin-bottom:12px; padding:0;}
.gq-option--check{padding:12px 16px;}
.gq-consent{margin-top:22px; font-size:15px;}
.field-note{font-size:14px; color:var(--muted); margin-top:8px;}
.guide-nav{display:flex; justify-content:space-between; gap:14px; margin-top:28px; flex-wrap:wrap;}
.guide-nav [data-guide-next], .guide-nav [data-guide-submit]{margin-left:auto;}
.guide-nav [hidden]{display:none;}
.notice-box{margin-top:30px; padding:16px 20px; border-radius:8px; background:var(--cream-dark);}
.notice-box--error{background:#f3dcd6; color:#7a2e1f;}
.guide-sent-card{margin-top:40px;}
.guide-sent-card p + p{margin-top:14px;}
@media (max-width:600px){
  .guide-form{padding:26px 20px;}
  .guide-nav .btn{flex:1; text-align:center;}
}

/* ===== Registration and account ===== */
.field-row{display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:0 18px;}
.field-row .field--narrow{max-width:120px;}
.field-row:has(.field--narrow){grid-template-columns:110px 1fr 1fr;}
.field--half{max-width:50%;}
.reg-step .field, .info-reply-form .field{margin-bottom:18px;}
.field select{
  width:100%; border:1px solid rgba(49,25,15,.25); background:var(--white);
  padding:12px 12px; font-family:'Jost',sans-serif; font-size:15px; color:var(--brown-dark); border-radius:6px;
}
.field select:focus{outline:2px solid var(--brown-mid); outline-offset:1px;}
.field input[type="date"]{min-height:47px;}
.field .optional{text-transform:none; letter-spacing:0; font-size:12px;}
.q-radio .optional, .q-money legend .optional{font-size:13px; font-weight:400; color:var(--muted);}
.field .optional{color:var(--muted);}
.field.has-error input, .field.has-error select, .field.has-error textarea{border-color:#a3402c; background:#fbf1ee;}
.field-error{font-size:14px; color:#a3402c; margin-top:6px;}
.field-error a{text-decoration:underline;}
.reg-step{border:0; padding:0; margin:0 0 30px; min-width:0;}
.register-form.is-stepped .reg-step{margin-bottom:0;}
.reg-step-count{display:none; margin:-18px 0 16px;}
.register-form.is-stepped .reg-step-count{display:block;}
.register-form.is-stepped .guide-progress{display:block;}
.reg-why{background:var(--cream-dark); border-radius:8px; padding:16px 20px; margin-bottom:22px;}
.reg-why p{font-size:15px;}
.reg-why p + p{margin-top:10px;}
.reg-unknown{margin:-6px 0 18px; padding:10px 14px; font-size:15px;}
.resend-form{margin-top:30px;}
.account-card{margin-top:30px;}
.account-card h3{margin-bottom:12px;}
.account-file{margin-top:26px;}
.account-file .eyebrow{margin-bottom:6px;}
.account-file-title{font-size:clamp(26px,3vw,34px);}
.account-file-status{margin-top:8px; font-size:15px; color:var(--muted);}
.account-file-status.status-clear{color:#3d6b3f;}
.account-file-status.status-info_requested, .account-file-status.status-blocked{color:#a3402c;}
.account-file .reg-why{margin-top:22px;}
.account-links{margin-top:30px; font-size:14px; color:var(--muted);}
.account-links a{text-decoration:underline;}
@media (max-width:600px){
  .field-row:has(.field--narrow){grid-template-columns:1fr;}
  .field-row .field--narrow{max-width:none;}
  .field--half{max-width:none;}
}

/* ===== Services, buying and booking ===== */
.service-hero{background:var(--cream-dark); padding:90px 0;}
.service-hero-grid{display:grid; grid-template-columns:1.3fr 1fr; gap:60px; align-items:start;}
.service-hero h1{font-size:clamp(38px,5vw,60px);}
.service-hero .lead{margin-top:20px; max-width:520px;}
.service-buy-card{padding:36px;}
.service-price{font-family:'Gazpacho','Petrona',serif; font-size:44px; line-height:1;}
.service-facts{margin:20px 0 26px; padding-left:18px;}
.service-facts li{margin-bottom:6px; font-size:15px;}
.buy-cards{margin-top:40px; grid-template-columns:repeat(auto-fit,minmax(220px,1fr));}
.buy-cards .card{min-height:0;}
.buy-price{font-family:'Gazpacho','Petrona',serif; font-size:26px; flex-grow:0 !important; margin-bottom:18px !important;}
.buy-step{border:0; padding:0; margin:0 0 34px; min-width:0;}
.buy-step .gq-label{margin-bottom:16px;}
.gq-option.is-disabled{opacity:.55; cursor:not-allowed;}
.gq-option--link{border-style:dashed; color:var(--brown-mid);}
.gq-option--link:hover{background:var(--cream-dark);}
.slot-days{display:flex; flex-direction:column; gap:8px;}
.slot-day{border:1px solid rgba(49,25,15,.2); border-radius:8px; background:var(--white);}
.slot-day summary{cursor:pointer; padding:12px 16px; font-size:15px; display:flex; justify-content:space-between; gap:12px;}
.slot-count{color:var(--muted); font-size:13px;}
.slot-times{display:flex; flex-wrap:wrap; gap:8px; padding:4px 16px 16px;}
.slot input{position:absolute; opacity:0; pointer-events:none;}
.slot span{display:inline-block; padding:8px 14px; border:1px solid rgba(49,25,15,.3); border-radius:6px; font-size:15px; cursor:pointer;}
.slot input:checked + span{background:var(--brown-btn); border-color:var(--brown-btn); color:var(--white);}
.slot input:focus-visible + span{outline:2px solid var(--brown-mid); outline-offset:2px;}
.buy-summary{border-top:1px solid rgba(49,25,15,.15); padding-top:20px;}
.account-orders{margin:16px 0 0; padding-left:18px; font-size:15px;}
.account-orders li{margin-bottom:6px;}
.account-new-sep{margin-top:24px; font-size:15px;}
.account-new-sep a{text-decoration:underline;}
.btn[disabled]{opacity:.5; cursor:not-allowed;}
@media (max-width:900px){ .service-hero-grid{grid-template-columns:1fr; gap:30px;} }

/* ===== Client portal (My Ex File) ===== */
.nav-account{font-weight:500;}
.portal-wrap{max-width:var(--max);}
.portal{display:grid; grid-template-columns:220px minmax(0,1fr); gap:56px; align-items:start;}
.portal-nav{position:sticky; top:110px;}
.portal-nav-name{font-size:14px; color:var(--muted); margin-bottom:14px;}
.portal-nav ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:2px;}
.portal-nav a{display:flex; justify-content:space-between; align-items:center; gap:10px; padding:10px 14px; border-radius:8px; font-size:16px;}
.portal-nav a:hover{background:var(--cream-dark);}
.portal-nav a.active{background:var(--brown-btn); color:var(--white);}
.portal-nav-logout{margin-top:14px; padding-top:14px; border-top:1px solid rgba(49,25,15,.15);}
.portal-nav-logout a{color:var(--muted);}
.portal-badge{min-width:22px; height:22px; padding:0 7px; border-radius:11px; background:#a3402c; color:#fff; font-size:12px; line-height:22px; text-align:center;}
.portal-main{min-width:0; max-width:820px;}
.portal-head h1{font-size:clamp(34px,4vw,48px);}
.portal-head .eyebrow a{text-decoration:underline;}
.portal-head .lead{margin-top:14px; max-width:600px;}
.portal-h2{font-size:clamp(22px,2.4vw,28px); margin:44px 0 16px;}
.portal-empty{color:var(--muted);}
.portal-steps, .portal-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px;}
.portal-steps li, .portal-list li{
  display:flex; justify-content:space-between; align-items:center; gap:18px; flex-wrap:wrap;
  background:var(--white); border:1px solid rgba(49,25,15,.15); border-radius:12px; padding:16px 20px;
}
.portal-steps li{border-left:4px solid var(--brown-btn);}
.portal-list li > div:first-child{flex:1 1 260px; min-width:0;}
.portal-list strong{overflow-wrap:anywhere;}
.portal-list-meta{display:block; font-size:14px; color:var(--muted); margin-top:4px;}
.portal-doc-note{display:block; font-size:15px; margin-top:6px;}
.portal-pill{display:inline-block; font-size:13px; padding:3px 10px; border-radius:20px; background:var(--cream-dark); white-space:nowrap;}
.portal-pill--new{background:#a3402c; color:#fff; margin-left:8px; vertical-align:2px;}
.portal-actions{display:flex; align-items:center; gap:14px; flex-wrap:wrap;}
.portal-actions form{margin:0;}
.btn.small{padding:9px 18px; font-size:16px;}
.link-button{background:none; border:0; padding:0; font:inherit; font-size:15px; color:var(--brown-mid); text-decoration:underline; cursor:pointer;}
summary.link-button{display:inline-block; list-style:none;}
summary.link-button::-webkit-details-marker{display:none;}
.portal-files{display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:14px;}
.portal-file-card{
  display:flex; flex-direction:column; gap:4px; padding:20px 22px; border-radius:14px;
  background:var(--white); border:1px solid rgba(49,25,15,.15); transition:border-color .15s ease, transform .15s ease;
}
.portal-file-card:hover{border-color:var(--brown-mid); transform:translateY(-2px);}
.portal-file-card strong{font-family:'Gazpacho','Petrona',serif; font-size:24px; font-weight:400;}
.portal-file-card .account-file-status{margin-top:0;}
.portal-file-meta{margin-top:10px; font-size:14px; color:var(--muted);}
.portal-form .field{margin-bottom:18px;}
.portal-form.guide-form{margin-top:28px; padding:32px;}
.portal-form details > form{margin-top:18px;}
.portal-upload{margin:22px 0 0;}
.portal-upload > summary{list-style:none; cursor:pointer;}
.portal-upload > summary::-webkit-details-marker{display:none;}
.portal-upload[open] > summary{display:none;}
.portal-upload .guide-form{margin-top:0;}
.portal-appt{margin-top:0; margin-bottom:14px;}
.portal-appt h3{margin:4px 0 10px;}
.portal-appt-details{font-size:15px; margin-bottom:14px;}
.portal-request{margin-top:18px; border-top:1px solid rgba(49,25,15,.15); padding-top:14px;}
.portal-request > summary{cursor:pointer; font-size:15px; text-decoration:underline; color:var(--brown-mid);}
.portal-request .field-note{margin:12px 0 16px;}
.portal-fieldset{border:0; padding:0; margin:0 0 18px; display:flex; flex-direction:column; gap:8px;}
.portal-fieldset legend{font-size:15px; margin-bottom:10px; padding:0;}
.portal-dl{display:grid; grid-template-columns:max-content 1fr; gap:6px 24px; margin:0 0 10px;}
.portal-dl dt{color:var(--muted);}
.portal-dl dd{margin:0;}
.portal-table-wrap{overflow-x:auto;}
.portal-table{width:100%; border-collapse:collapse; font-size:15px;}
.portal-table th, .portal-table td{text-align:left; padding:12px 10px; border-bottom:1px solid rgba(49,25,15,.15);}
.portal-table th{font-weight:500; color:var(--muted); font-size:13px; text-transform:uppercase; letter-spacing:.06em;}
.portal-table .num{text-align:right;}
.login-wrap{max-width:560px;}
.login-form{padding:34px;}
.login-form .field{margin-bottom:18px;}
.login-links{margin-top:22px; font-size:15px;}
.login-links a{text-decoration:underline;}
@media (max-width:900px){
  .portal{grid-template-columns:1fr; gap:26px;}
  .portal-nav{position:static; margin:0 -32px; padding:0 32px; overflow-x:auto;}
  .portal-nav-name{display:none;}
  .portal-nav ul{flex-direction:row; gap:6px; width:max-content;}
  .portal-nav a{white-space:nowrap; padding:8px 14px; border:1px solid rgba(49,25,15,.15); font-size:15px;}
  .portal-nav-logout{margin:0; padding:0; border:0;}
}
@media (max-width:600px){
  .portal-nav{margin:0 -20px; padding:0 20px;}
  .portal-form.guide-form, .login-form{padding:24px 20px;}
  .portal-table thead{display:none;}
  .portal-table tr{display:block; padding:10px 0; border-bottom:1px solid rgba(49,25,15,.15);}
  .portal-table td{display:flex; justify-content:space-between; gap:12px; border:0; padding:4px 0;}
  .portal-table td::before{content:attr(data-label); color:var(--muted);}
  .portal-table .num{text-align:right;}
}

/* ===== Full service questionnaire ===== */
.q-progress{margin:18px 0 6px;}
.q-progress ol{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:6px;}
.q-progress a{display:inline-flex; align-items:center; gap:6px; padding:6px 12px; border-radius:20px; font-size:14px; border:1px solid rgba(49,25,15,.18); background:var(--white);}
.q-progress span{display:inline-block; min-width:20px; height:20px; border-radius:10px; background:var(--cream-dark); font-size:12px; line-height:20px; text-align:center;}
.q-progress .q-state--complete a{border-color:#7c9a7d;}
.q-progress .q-state--complete span{background:#3d6b3f; color:#fff;}
.q-progress .q-state--partial a{border-color:#d1a94f;}
.q-progress .q-state--partial span{background:#c9962a; color:#fff;}
.q-progress .q-state--missing a{border-color:#c98a7e;}
.q-progress .q-state--missing span{background:#a3402c; color:#fff;}
.q-progress-key{font-size:13px; color:var(--muted); margin:10px 0 0; display:flex; flex-wrap:wrap; align-items:center; gap:4px 8px;}
.q-progress .q-progress-key .k{display:inline-block; width:10px; min-width:0; height:10px; border-radius:5px; margin-left:6px; line-height:0;}
.q-progress .q-progress-key .k:first-child{margin-left:0;}
.q-progress .q-progress-key .k--missing{background:#a3402c;}
.q-progress .q-progress-key .k--partial{background:#c9962a;}
.q-progress .q-progress-key .k--complete{background:#3d6b3f;}
.q-progress .current a{background:var(--brown-btn); border-color:var(--brown-btn); color:var(--white);}
.q-progress .current span{background:var(--white); color:var(--brown-dark);}
.q-form .eyebrow{margin-bottom:6px;}
.q-title{font-size:clamp(28px,3.2vw,38px);}
.q-intro{margin:10px 0 24px; max-width:640px;}
.q-note{font-size:14px; background:var(--cream-dark); border-radius:8px; padding:12px 16px; margin:0 0 22px;}
.q-field, .q-money, .q-repeater, .q-group, .q-outgoings{margin-bottom:22px;}
.q-radio{border:0; padding:0; min-width:0;}
.q-radio legend, .q-money legend{font-size:16px; font-weight:500; margin-bottom:10px; padding:0;}
.q-pills{display:flex; flex-wrap:wrap; gap:8px;}
.q-pill{position:relative; cursor:pointer;}
.q-pill input{position:absolute; opacity:0; pointer-events:none;}
.q-pill span{display:inline-block; padding:9px 16px; border:1px solid rgba(49,25,15,.3); border-radius:6px; background:var(--white); font-size:15px;}
.q-pill input:checked + span{background:var(--brown-btn); border-color:var(--brown-btn); color:var(--white);}
.q-pill input:focus-visible + span{outline:2px solid var(--brown-mid); outline-offset:2px;}
.q-radio.has-error .q-pill span, .q-money.has-cert-error > .q-pills .q-pill span{border-color:#a3402c;}
.q-money{border:1px solid rgba(49,25,15,.15); border-radius:10px; padding:16px 18px 6px; background:var(--white); min-width:0;}
.q-money legend{float:left; width:100%;}
.q-money > .q-pills{clear:both; margin-bottom:14px;}
.q-money-row{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:0 14px;}
.q-money .field{margin-bottom:14px;}
.q-pound{display:flex; align-items:center; border:1px solid rgba(49,25,15,.25); border-radius:6px; background:var(--white); padding-left:12px;}
.q-pound input{border:0 !important; background:transparent !important; padding-left:6px !important;}
.has-error .q-pound{border-color:#a3402c; background:#fbf1ee;}
.q-monthly{margin:-6px 0 12px;}
.q-monthly:empty{display:none;}
.q-gated{margin-top:18px;}
.q-items{display:flex; flex-direction:column; gap:16px; margin-bottom:14px;}
.q-item{border:1px solid rgba(49,25,15,.18); border-radius:12px; padding:18px 20px 4px; background:rgba(255,255,255,.35);}
.q-item .q-money{background:var(--cream);}
.q-item-head{display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin-bottom:14px;}
.q-item-title{font-size:20px;}
.q-group{border-top:1px solid rgba(49,25,15,.15); padding-top:18px;}
.q-group-title{font-size:22px; margin-bottom:14px;}
.q-group .q-repeater{margin-bottom:26px;}
.q-group .q-repeater::before{content:attr(data-item-label); display:none;}
.q-out-head{display:grid; grid-template-columns:minmax(0,2.4fr) 1fr 1fr 1fr 1fr; gap:10px; font-size:12px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); padding:0 0 8px; border-bottom:1px solid rgba(49,25,15,.15);}
.q-out-row{display:grid; grid-template-columns:minmax(0,2.4fr) 1fr 1fr 1fr 1fr; gap:10px; align-items:center; padding:8px 0; border-bottom:1px solid rgba(49,25,15,.08);}
.q-out-cat{font-size:15px;}
.q-out-label{display:none;}
.q-out-row input, .q-out-row select{width:100%; border:1px solid rgba(49,25,15,.25); border-radius:6px; padding:8px 8px; font:inherit; font-size:15px; background:var(--white); color:var(--brown-dark);}
.q-out-cell.has-error input{border-color:#a3402c; background:#fbf1ee;}
.q-out-row .field-error{grid-column:1/-1;}
.q-out-total{display:flex; flex-wrap:wrap; gap:8px 24px; justify-content:flex-end; padding:14px 0 0; font-size:16px;}
.q-nav{align-items:center;}
.q-nav .q-back{order:1;}
.q-nav .q-save{order:2; margin-left:auto;}
.q-nav .q-next{order:3;}
.q-start-list{margin:8px 0 14px; padding-left:22px; columns:2; column-gap:30px;}
.q-start-list li{margin-bottom:4px;}
.q-start-form{margin-top:10px;}
.q-review{margin-top:18px;}
.q-sum{background:var(--white); border:1px solid rgba(49,25,15,.15); border-radius:12px; padding:18px 20px; margin-bottom:14px;}
.q-sum-head{display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin-bottom:8px;}
.q-sum-head h3{font-size:22px;}
.q-sum-head a{text-decoration:underline; font-size:15px;}
.q-sum-error{color:#a3402c; font-size:15px; margin-bottom:8px;}
.q-sum-empty{color:var(--muted); font-size:15px;}
.q-sum-table{width:100%; border-collapse:collapse; font-size:15px;}
.q-sum-table th, .q-sum-table td{text-align:left; vertical-align:top; padding:7px 8px; border-bottom:1px solid rgba(49,25,15,.08);}
.q-sum-table th{width:46%; font-weight:400; color:var(--muted);}
.q-sum-sub th{color:var(--brown-dark); font-weight:500; background:var(--cream);}
.q-sum-total th, .q-sum-total td{font-weight:500; color:var(--brown-dark);}
.q-flag--estimate{background:#fbefd5; padding:1px 5px; border-radius:3px;}
.q-flag--dont_know{background:#f3dcd6; padding:1px 5px; border-radius:3px;}
.q-out-table{width:100%; border-collapse:collapse; font-size:14px;}
.q-out-table td:first-child{width:46%;}
.q-out-table th, .q-out-table td{text-align:left; padding:5px 6px; border-bottom:1px solid rgba(49,25,15,.08);}
.q-submit .gq-option.has-error{border-color:#a3402c;}
.q-submit button[disabled]{opacity:.5; cursor:not-allowed;}
@media (max-width:700px){
  .q-out-head{display:none;}
  .q-out-row{grid-template-columns:1fr 1fr; padding:14px 0;}
  .q-out-cat{grid-column:1/-1; font-weight:500;}
  .q-out-label{display:block; font-size:12px; color:var(--brown-btn); margin-bottom:4px;}
  .q-start-list{columns:1;}
  .q-sum-table th{width:auto; display:block; padding-bottom:0; border:0;}
  .q-sum-table td{display:block; padding-top:2px;}
  .q-sum-sub th{display:table-cell;}
  .q-out-table{display:block; overflow-x:auto;}
  .q-money{padding:14px 14px 4px;}
  .q-item{padding:16px 14px 4px;}
  .q-nav .q-save{order:4; width:100%; margin:6px 0 0; text-align:center;}
}

/* Day / Month / Year date boxes */
.field--date{margin:0 0 18px; min-width:0;}
.field--date .field-legend{font-size:13px; text-transform:uppercase; letter-spacing:.08em; color:var(--brown-btn); margin-bottom:10px;}
.date-parts{display:flex; gap:12px; align-items:flex-end;}
.field .date-part{display:flex; flex-direction:column; margin:0; font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:var(--brown-btn);}
.date-part span{display:block; margin-bottom:8px;}
.date-part input{width:4.2em; text-align:center;}
.date-part--y input{width:6em;}
.field--date.has-error input{border-color:#a3402c; background:#fbf1ee;}
/* Side-by-side dates share rows, so a label that wraps to two lines doesn't push
   its boxes below the neighbour's. */
.field-row:has(> .field--date){row-gap:0;}
.field-row > .field--date{display:grid; grid-row:span 4; grid-template-rows:subgrid; row-gap:0;}
.field-row > .field--date .field-legend{align-self:end;}
.field-row > .field--date .date-parts{align-self:start;}
/* Money rows: line the amount, "how often" and date boxes up along the bottom. */
.q-money-row{row-gap:0;}
.q-money-row > .field{display:grid; grid-template-rows:subgrid; grid-row:span 3; align-content:start;}
.q-money-row > .field[hidden]{display:none;}
.q-money-row > .field > label, .q-money-row > .field > .field-legend{align-self:end;}
.q-money-row > .field > input, .q-money-row > .field > select, .q-money-row > .field > .q-pound, .q-money-row > .field > .date-parts{align-self:end;}
.account-locked-note{margin-bottom:18px;}
