/* Request page: a clear process, informed membership and an accessible FAQ. */
.request-hampa-page .service-hero > div { width:min(76%,850px); max-width:none; }
.request-hampa-page .service-hero h1 { font-size:clamp(30px,3.3vw,52px); line-height:1.6; }
.request-hampa-page .service-hero .button { display:inline-flex; align-items:center; gap:20px; }
.request-hampa-page .p-icon { inline-size:24px; block-size:24px; flex-shrink:0; }
.request-hampa-page .service-hero .request-hero-help { font-size:14px; line-height:1.9; margin-block:12px 0; color:var(--on-dark-muted,#d5dcd5); }
.request-hampa-page #service-intake { scroll-margin-block-start:28px; }
.request-hampa-page .request-form { padding:clamp(24px,2.5vw,38px); min-inline-size:0; }
.request-hampa-page .request-form > h2 { margin-block:0; }
.request-process { margin-block:8px 0; }
.request-process > h3 { font-size:clamp(17px,1.55vw,21px); line-height:1.8; margin-block:0 22px; }
.request-process ol { list-style:none; padding:0; margin:0; display:grid; gap:22px; }
.request-process li { display:grid; grid-template-columns:26px minmax(0,1fr); gap:12px; margin:0; }
.request-process li > svg { inline-size:25px; block-size:25px; margin-block-start:3px; color:var(--forest,#1f4a3c); }
.request-process h4 { font-size:17px; line-height:1.7; margin:0 0 6px; }
.request-process p { font-size:14px; line-height:2; margin:0; color:var(--muted,#56615d); }
.request-intake-actions { border-block-start:1px solid #dce1dc; padding-block-start:24px; margin-block-start:12px; }
.request-intake-actions > p { margin:0; font-size:14px; line-height:2; }
.request-intake-actions > .button { text-align:center; justify-content:center; white-space:normal; }
.request-membership-note { display:grid; grid-template-columns:40px minmax(0,1fr); align-items:start; gap:22px; padding:clamp(24px,3.5vw,48px); margin-block:clamp(40px,5vw,72px); border:1px solid #d7c89e; border-inline-start:4px solid #a48a48; background:#f9f4e6; color:var(--navy,#0b1f2a); border-radius:18px; }
.request-note-icon { inline-size:36px; block-size:36px; margin-block-start:5px; color:#776127; }
.request-membership-note h2 { font-size:clamp(22px,2.1vw,30px); line-height:1.65; margin:0 0 18px; }
.request-membership-note p { max-inline-size:88ch; margin-block:0 14px; font-size:clamp(15px,1.3vw,17px); line-height:2.1; }
.request-membership-note .request-trust-line { margin-block:20px 0; color:#65501c; }
.request-faq { display:grid; grid-template-columns:minmax(200px,.6fr) minmax(0,1.4fr); gap:clamp(24px,5vw,72px); padding-block:12px 24px; }
.request-section-heading h2 { font-size:clamp(25px,2.25vw,34px); line-height:1.6; margin-block:14px 0; max-inline-size:18ch; }
.request-faq-list { border-block-start:1px solid #cdd6cf; }
.request-faq details { border:0; border-block-end:1px solid #cdd6cf; border-radius:0; padding:0; margin:0; background:transparent; }
.request-faq summary { display:flex; align-items:center; justify-content:space-between; gap:22px; list-style:none; padding:24px 4px; cursor:pointer; font-size:clamp(17px,1.45vw,20px); line-height:1.8; font-weight:700; color:var(--navy,#0b1f2a); }
.request-faq summary::-webkit-details-marker { display:none; }
.request-faq summary::marker { content:''; }
.request-faq summary:focus-visible { outline:3px solid var(--forest,#1f4a3c); outline-offset:4px; border-radius:4px; }
.request-faq-toggle { position:relative; inline-size:22px; block-size:22px; flex:0 0 22px; color:var(--forest,#1f4a3c); }
.request-faq-toggle::before,.request-faq-toggle::after { content:''; position:absolute; background:currentColor; inset-inline-start:3px; inset-block-start:10px; inline-size:16px; block-size:2px; border-radius:2px; }
.request-faq-toggle::after { transform:rotate(90deg); }
.request-faq details[open] .request-faq-toggle::after { transform:none; }
.request-faq-answer { padding:0 4px 26px; }
.request-faq-answer p { max-inline-size:78ch; margin-block:0 14px; font-size:16px; line-height:2.15; color:#45534e; }
.request-faq-answer p:last-child { margin-block-end:0; }
.request-conclusion { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:clamp(24px,4vw,60px); margin-block:clamp(40px,5vw,72px) 16px; padding:clamp(28px,4vw,56px); border-radius:20px; background:var(--navy,#0b1f2a); color:var(--on-dark,#f2f1e9); }
.request-conclusion h2 { font-size:clamp(25px,2.5vw,36px); line-height:1.6; margin-block:0 18px; }
.request-conclusion p { max-inline-size:78ch; font-size:16px; line-height:2.1; color:var(--on-dark-muted,#d5dcd5); margin-block:0 18px; }
.request-conclusion p:last-child { margin-block-end:0; }
.request-conclusion strong { color:var(--on-dark,#f2f1e9); font-weight:600; }
.request-conclusion .button { display:inline-flex; align-items:center; justify-content:center; gap:20px; min-block-size:52px; background:var(--forest,#1f4a3c); border:1px solid #9aaf9f; color:white; white-space:normal; }
.request-hampa-page .service-hero .button:focus-visible,.request-conclusion .button:focus-visible { outline:3px solid #e6cd8e; outline-offset:5px; }
@media(max-width:1050px) {
  .request-hampa-page .service-hero > div { width:90%; }
  .request-faq { grid-template-columns:1fr; gap:18px; }
  .request-section-heading h2 { max-inline-size:none; }
  .request-conclusion { grid-template-columns:1fr; gap:26px; }
  .request-conclusion .button { justify-self:start; }
}
@media(max-width:760px) {
  .request-membership-note { grid-template-columns:28px minmax(0,1fr); gap:12px; padding:24px 18px; }
  .request-note-icon { inline-size:26px; block-size:26px; }
  .request-membership-note h2 { font-size:22px; }
  .request-faq summary { padding-block:20px; gap:16px; }
  .request-faq-answer p { font-size:15px; }
}
@media(max-width:640px) {
  .request-hampa-page .service-hero > div { width:100%; }
  .request-hampa-page .service-hero h1 { font-size:clamp(27px,6.7vw,34px); }
  .request-hampa-page .service-hero h1 br { display:none; }
  .request-hampa-page .service-hero .button { inline-size:100%; justify-content:space-between; }
  .request-hampa-page .service-hero .request-hero-help { font-size:13px; }
  .request-hampa-page .request-form { padding:24px 20px; }
  .request-process li { gap:10px; }
  .request-conclusion .button { inline-size:100%; justify-content:space-between; }
}
@media(forced-colors:active) { .request-faq-toggle::before,.request-faq-toggle::after { background:ButtonText; } }
