.closing-story { position: relative; overflow-anchor: none; }
.closing-stage { position: relative; }
.aeren-faq { padding: clamp(40px,6vw,90px) 24px 110px; background: var(--canvas); }
.faq-content { max-width: 760px; margin: 0 auto; }
.aeren-faq h2 { margin: 0 0 32px; text-align: center; font: 400 clamp(33px,4.4vw,64px)/1.17 Sora,sans-serif; letter-spacing: -.07em; }
.faq-shell { padding: 14px; background: #eae9e53d; border-radius: 30px; }
.faq-tabs { display: flex; justify-content: center; gap: 7px; padding: 0 0 18px; }
.faq-tabs button { padding: 13px 24px; min-height: 46px; border-radius: 50px; color: #70696c; background: transparent; font-size: 13px; }
.faq-tabs button[aria-selected=true] { color: #fff; background: #282c24; }
.faq-panels details { margin-bottom: 9px; padding: 0 28px; background: #fff; border-radius: 22px; }
.faq-panels details:last-child { margin-bottom: 0; }
.faq-panels summary { cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 72px; padding: 20px 0; list-style: none; font: 400 17px/1.4 Inter,sans-serif; }
.faq-panels summary::-webkit-details-marker { display: none; }
.faq-panels summary::after { content: '+'; flex: none; font: 300 24px/1 Inter,sans-serif; color: #9c9598; }
.faq-panels details[open] summary::after { transform: rotate(45deg); }
.faq-panels details p { padding: 0 40px 25px 0; margin: 0; font-size: 14px; line-height: 1.8; color: #777573; max-width: 990px; }
.faq-help { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px 30px; border-radius: 26px; margin-top: 16px; background: #eae9e566; }
.faq-help h3 { margin: 0 0 8px; font-size: 17px; font-weight: 400; }
.faq-help p { margin: 0; font-size: 13px; line-height: 1.6; color: #7c7779; }
.aeren-ai-link { display: flex; align-items: center; justify-content: space-between; min-height: 54px; padding: 13px 24px; gap: 32px; border-radius: 60px; background: #272c23; color: white; font-size: 13px; }
.aeren-ai-link .icon { width: 20px; height: 20px; }
.aeren-ai-link:hover { background: #42483a; }
.aeren-faq :is(button,summary):focus-visible,.aeren-footer :is(button,a):focus-visible { outline: 2px solid #957b89; outline-offset: 4px; }

.has-closing-motion { height: calc(var(--closing-stage-height,100svh) * 3.5); }
.has-closing-motion .closing-stage { position: sticky; top: 0; height: var(--closing-stage-height,100svh); overflow: clip; isolation: isolate; }
.has-closing-motion .contact-section { position: absolute; inset: 0; height: 100%; z-index: 2; padding-bottom: 90px; }
.has-closing-motion .review-panel,.has-closing-motion .contact-panel { height: 100%; min-height: 0; overflow-y: auto; scrollbar-width: thin; scrollbar-color: #9d8b964d transparent; }
.has-closing-motion .contact-panel { padding-block: clamp(30px,3vw,52px); }
.has-closing-motion .review-panel { transform: translate3d(calc((1 - var(--contact-enter,0) + var(--contact-exit,0)) * -110%),0,0); }
.has-closing-motion .contact-panel { transform: translate3d(calc((1 - var(--contact-enter,0) + var(--contact-exit,0)) * 110%),0,0); }
.has-closing-motion .aeren-faq { position: absolute; inset: 0; z-index: 1; height: 100%; overflow-y: auto; scrollbar-width: thin; opacity: var(--faq-enter,0); padding-top: clamp(30px,5vh,70px); padding-bottom: 80px; }
.has-closing-motion .faq-content { transform: translateY(calc((1 - var(--faq-enter,0)) * 26px)); filter: blur(calc((1 - var(--faq-enter,0)) * 6px)); }
.has-closing-motion .contact-section[aria-hidden=true] { pointer-events: none; }
.has-closing-motion .contact-form { gap: 18px; }
.has-closing-motion .contact-heading { margin-bottom: 24px; }

.aeren-footer { position: relative; isolation: isolate; overflow: hidden; padding: 130px clamp(24px,5vw,85px) 92px; background: #ead8df; }
.footer-mist { position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg,var(--canvas) 0%,#f4f3efeb 9%,#eee8e9bb 28%,transparent 66%),radial-gradient(ellipse 75% 65% at 100% 90%,#e8c5d4,transparent 90%),radial-gradient(ellipse 70% 70% at 3% 85%,#f0e9e5,transparent 90%); }
.aeren-footer-top { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(160px,.6fr) minmax(0,.8fr); gap: 65px; max-width: 1600px; margin: 0 auto; }
.aeren-footer-mark { display: block; padding: 0; width: 46px; height: 46px; background: transparent; }
.aeren-footer-mark svg { width: 100%; height: 100%; fill: currentColor; }
.aeren-footer-intro h2 { font: 400 clamp(22px,2.1vw,33px)/1.35 Sora,sans-serif; letter-spacing: -.055em; margin: 28px 0 35px; }
.aeren-footer-intro h2 span { color: #8c7781; }
.aeren-footer-intro h3 { margin: 0 0 20px; font: 400 24px/1.3 Sora,sans-serif; letter-spacing: -.055em; }
.aeren-provider-links { display: flex; flex-wrap: wrap; gap: 8px; }
.aeren-provider-links a { min-height: 44px; display: flex; align-items: center; gap: 9px; border: 1px solid #aa94a444; border-radius: 50px; padding: 10px 15px; background: #ffffff2b; font-size: 12px; }
.aeren-provider-links a:hover { background: #fff8; }
.aeren-provider-links img { width: 18px; height: 18px; }
.aeren-footer-nav { display: flex; align-items: flex-start; flex-direction: column; gap: 15px; }
.aeren-footer-nav p,.aeren-footer-contact > p { margin: 0 0 15px; color: #887b82; font-size: 12px; }
.aeren-footer-nav button { padding: 5px 0; min-height: 30px; background: transparent; font-size: 14px; }
.aeren-footer-nav button:hover { color: #937082; }
.aeren-footer-enquire { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 10px 0 24px; margin-bottom: 22px; border-bottom: 1px solid #ac919e50; width: 100%; background: transparent; font: 400 25px/1.3 Sora,sans-serif; letter-spacing: -.05em; }
.aeren-footer-contact > span { font-size: 12px; color: #897d82; line-height: 1.6; }
.aeren-footer-contact .aeren-ai-link { width: 100%; margin-top: 33px; background: #ffffff59; color: #242720; }
.aeren-footer-contact .aeren-ai-link:hover { background: #fff9; }
.aeren-footer-wordmark { margin: 100px -1vw 40px; font: 400 clamp(100px,31.7vw,580px)/.9 Sora,sans-serif; letter-spacing: -.085em; color: rgb(179 127 153 / 55%); }
@supports (background-clip: text) or (-webkit-background-clip: text) {
  .aeren-footer-wordmark {
    background-color: #b37f99;
    background-image: url('/assets/aeren/glass-grain.svg');
    background-size: 140px 140px;
    background-blend-mode: soft-light;
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
    opacity: .65;
    -webkit-mask-image: linear-gradient(180deg,#000 12%,#000d 40%,#0007 68%,#0001 96%,transparent);
    mask-image: linear-gradient(180deg,#000 12%,#000d 40%,#0007 68%,#0001 96%,transparent);
  }
}
.aeren-footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 15px; border-top: 1px solid #a6909d3d; padding: 24px 0 0; font-size: 11px; color: #7d6c76; }
.aeren-footer-bottom button { min-height: 44px; background: transparent; padding: 8px 0; color: #51414a; font-size: 11px; }
@media (max-width:760px) {
  .has-closing-motion .contact-section { grid-template-rows: minmax(210px,.36fr) minmax(0,1fr); gap: 8px; padding: 7px 7px calc(84px + env(safe-area-inset-bottom)); }
  .has-closing-motion .review-panel,.has-closing-motion .contact-panel { padding: 22px; }
  .has-closing-motion .review-panel { padding: 18px; }
  .has-closing-motion .review-panel h2 { font-size: 17px; line-height: 1.2; }
  .has-closing-motion .review-copy { padding: 8px 0; display: grid; grid-template-columns: 42px minmax(0,1fr); align-items: start; column-gap: 12px; }
  .has-closing-motion .review-avatar { width: 42px; height: 42px; margin: 2px 0 0; }
  .has-closing-motion .review-copy blockquote { font-size: clamp(17px,5vw,20px); line-height: 1.3; }
  .has-closing-motion .review-copy p { display: none; }
  .has-closing-motion .review-controls { gap: 3px; }
  .has-closing-motion .review-controls button { border: 0; }
  .has-closing-motion .contact-heading h2 { font-size: 26px; }
  .has-closing-motion .contact-heading { margin-bottom: 20px; }
  .has-closing-motion .contact-form { gap: 16px; }
  .has-closing-motion .contact-field { gap: 6px; }
  .has-closing-motion .contact-field input,.has-closing-motion .contact-field select,.has-closing-motion .contact-field textarea { padding-bottom: 8px; }
  .aeren-faq { padding: 40px 16px 96px; }
  .aeren-faq h2 { font-size: clamp(28px,7.8vw,44px); margin-bottom: 25px; }
  .faq-shell { border-radius: 23px; padding: 7px; }
  .faq-tabs { gap: 2px; padding-bottom: 10px; }
  .faq-tabs button { font-size: 11px; padding: 11px 12px; min-height: 44px; }
  .faq-panels details { padding: 0 18px; border-radius: 19px; }
  .faq-panels summary { min-height: 64px; padding-block: 18px; font-size: 14px; }
  .faq-panels details p { font-size: 12px; padding: 0 0 21px; line-height: 1.75; }
  .faq-help { padding: 22px; flex-direction: column; align-items: stretch; gap: 20px; }
  .faq-help h3 { font-size: 16px; }
  .faq-help p { font-size: 12px; }
  .aeren-footer { padding: 85px 24px 98px; }
  .aeren-footer-top { grid-template-columns: 1fr; gap: 40px; }
  .aeren-footer-intro h2 { font-size: 25px; }
  .aeren-footer-intro h3 { font-size: 23px; }
  .aeren-provider-links { gap: 6px; }
  .aeren-provider-links a { font-size: 11px; padding-inline: 12px; }
  .aeren-footer-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 20px; }
  .aeren-footer-nav p { grid-column: 1/-1; }
  .aeren-footer-nav button { text-align: left; min-height: 44px; }
  .aeren-footer-enquire { font-size: 24px; }
  .aeren-footer-contact .aeren-ai-link { margin-top: 24px; }
  .aeren-footer-wordmark { margin: 65px -7px 28px; font-size: 29vw; }
  .aeren-footer-bottom { flex-wrap: wrap; align-items: center; row-gap: 4px; font-size: 9px; }
  .aeren-footer-bottom > span:nth-child(2) { order: 3; width: 100%; }
}
@media (prefers-reduced-motion:no-preference) {
  .faq-panels details[open] > p { animation: aeren-answer 250ms ease both; }
  @keyframes aeren-answer { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
}
