/* Footer and download surfaces. The approved hero and mockups stay unchanged. */
.garden-footer { display:block; position:relative; isolation:isolate; max-width:none; padding:55px max(32px,calc((100vw - 1240px)/2)); overflow:hidden; }
.garden-footer::before { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background:radial-gradient(ellipse at 8% 8%,#fffe 0,transparent 42%),radial-gradient(ellipse at 85% 4%,#fff8 0,transparent 30%); }
.garden-footer .footer-top { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.garden-footer .back-top { display:grid; place-items:center; flex-shrink:0; border:1px solid var(--line); border-radius:50%; width:46px; height:46px; font:22px Arial,sans-serif; background:var(--surface); }
.footer-intro { display:flex; justify-content:space-between; align-items:flex-end; gap:35px; padding-top:45px; }
.footer-intro h2 { font-size:clamp(32px,3.5vw,52px); margin:12px 0 15px; letter-spacing:-1px; }
.footer-intro h2 em { color:var(--accent); }
.footer-intro p:last-child { max-width:470px; font-size:16px; line-height:1.65; color:var(--muted); }
.footer-intro .button { border-radius:50px; gap:12px; flex-shrink:0; margin-bottom:8px; }
.garden-footer .footer-wordmark { margin:42px 0 46px; font-size:clamp(72px,15.3vw,220px); line-height:.9; letter-spacing:-.075em; }
.footer-directory { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:26px; padding:38px 0 28px; border-top:1px solid var(--line); }
.footer-column { min-width:0; }
.footer-column summary { list-style:none; }
.footer-column summary::-webkit-details-marker { display:none; }
.footer-column summary:focus-visible { outline:3px solid var(--accent); outline-offset:4px; border-radius:5px; }
.footer-chevron { display:none; }
.footer-column h3 { color:var(--muted); font-size:12px; letter-spacing:1.2px; text-transform:uppercase; line-height:1.6; margin:0 0 13px; }
.footer-column ul { list-style:none; margin:0; padding:0; }
.footer-column a { display:flex; align-items:center; min-height:44px; width:fit-content; max-width:100%; padding:8px 0; font-size:14px; line-height:1.45; overflow-wrap:break-word; color:var(--ink); }
.footer-column a:hover,.footer-sites a:hover,.footer-contact a:hover { color:var(--accent); text-decoration:underline; text-underline-offset:5px; }
.footer-home { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:45px; padding:29px 0 36px; border-top:1px solid var(--line); }
.footer-home .eyebrow { font-size:10px; letter-spacing:1.2px; }
.footer-home address { display:grid; gap:8px; max-width:610px; margin-top:15px; font-style:normal; font-size:14px; line-height:1.7; }
.footer-home address strong { font-weight:700; color:var(--ink); }
.footer-home address span,.footer-home address small { color:var(--muted); }
.footer-home address small { font:12px/1.7 Arial,sans-serif; letter-spacing:0; }
.footer-contact { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:10px; min-width:0; }
.footer-contact>span { color:var(--muted); font-size:13px; }
.footer-contact>a:first-of-type { font-size:clamp(15px,1.7vw,21px); color:var(--ink); overflow-wrap:anywhere; }
.footer-contact-link { display:flex; align-items:center; gap:9px; font-size:14px; min-height:44px; }
.garden-footer .footer-bottom { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px 30px; margin:0; padding:23px 0; border-top:1px solid var(--line); font:12px/1.7 Arial,sans-serif; }
.footer-sites { display:flex; flex-wrap:wrap; gap:14px 26px; }
.footer-sites a { display:inline-flex; align-items:center; gap:5px; min-height:32px; color:var(--ink); font-size:13px; }
.footer-sites .ui-icon { width:13px; height:13px; }
.footer-social { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; padding-top:20px; border-top:1px solid var(--line); }
.footer-social>p { font-size:13px; }
.social-links { display:flex; gap:9px; flex-wrap:wrap; }
.social-links a { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:44px; border:1px solid var(--line); background:var(--surface); border-radius:50px; padding:9px 14px; font:12px/1.5 Arial,sans-serif; }
.social-links .ui-icon { width:17px; height:17px; }
.social-links a:hover { border-color:var(--accent); color:var(--accent); }
.download-share-bar { display:flex; align-items:center; justify-content:space-between; gap:24px; max-width:1240px; margin:28px auto 0; padding:24px 28px; border:1px solid var(--line); border-radius:24px; background:var(--surface); }
.download-share-bar b { font-size:18px; line-height:1.4; }
.download-share-bar p { margin:7px 0 0; font-size:14px; color:var(--muted); }
.download-share-bar .button { flex-shrink:0; gap:10px; border-radius:50px; }
.release-dialog { width:min(480px,calc(100% - 28px)); max-height:calc(100dvh - 32px); padding:27px; border-radius:26px; overflow:auto; }
.release-dialog::backdrop { background:#20191299; }
.release-dialog .dialog-head { gap:15px; margin-bottom:18px; }
.release-dialog .dialog-head .eyebrow { font-size:10px; }
.release-dialog .dialog-head button { display:grid; place-items:center; min-width:44px; min-height:44px; padding:0; border-radius:50%; background:var(--pale); }
.release-dialog h2 { font-size:31px; line-height:1.35; margin:14px 0 10px; }
.release-dialog p { font-size:14px; line-height:1.6; margin:10px 0; }
.release-emblem { display:grid; place-items:center; width:52px; height:52px; border:1px solid var(--line); border-radius:17px; background:var(--pale); color:var(--accent); }
.release-emblem .ui-icon { width:26px; height:26px; }
.download-summary { display:flex; gap:10px; align-items:center; border:1px solid var(--line); padding:13px 16px; border-radius:14px; margin:19px 0; background:var(--pale); font:13px/1.6 Arial,sans-serif; overflow-wrap:anywhere; }
.download-summary:empty { display:none; }
.release-dialog .consent-row { display:flex; gap:12px; align-items:flex-start; font-size:14px; line-height:1.7; margin:18px 0; cursor:pointer; }
.consent-row input { flex-shrink:0; width:21px; height:21px; margin:3px 0 0; accent-color:var(--accent); }
.consent-row a { text-decoration:underline; text-underline-offset:3px; color:var(--ink); }
.verification-area { padding:16px 0 10px; border-top:1px solid var(--line); }
.verification-label { display:block; font-size:12px; color:var(--muted); margin-bottom:12px; }
#turnstileWidget { min-height:65px; }
#verificationStatus { min-height:23px; font-size:12px; margin:7px 0; }
#downloadError { color:#a53924; }
.release-dialog .button { display:flex; width:100%; border-radius:14px; gap:10px; min-height:52px; }
.release-dialog .button:disabled { cursor:not-allowed; background:var(--pale); border-color:var(--line); color:var(--muted); opacity:1; transform:none; }
.download-retry { display:inline-flex; align-items:center; min-height:44px; color:var(--ink); text-decoration:underline; }
.download-retry[hidden] { display:none; }
.qr-wrap { display:grid; place-items:center; margin:24px auto 15px; max-width:252px; min-height:252px; padding:12px; background:#fff; border:1px solid #e8dfd4; border-radius:20px; color:#332c25; }
.qr-wrap svg { display:block; width:100%; height:auto; max-width:228px; }
.share-dialog .share-note { font-size:12px; text-align:center; margin:13px 0 21px; }
.share-dialog input[type=url] { display:block; width:100%; min-width:0; font:13px/1.6 Arial,sans-serif; padding:13px; background:var(--pale); border:1px solid var(--line); border-radius:11px; color:var(--ink); }
.share-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:12px; }
html[data-theme=dark] .garden-footer::before { opacity:.035; }
html[data-theme=dark] #downloadError { color:#ffaf95; }
.garden-footer a:focus-visible,.release-dialog a:focus-visible,.release-dialog button:focus-visible,.release-dialog input:focus-visible,.download-share-bar button:focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
@media(max-width:760px) {
  .principles.desktop-only { display:none; }
  .garden-footer { padding:32px 22px 95px; }
  .footer-intro { display:block; padding-top:32px; }
  .footer-intro h2 { font-size:35px; letter-spacing:-.7px; }
  .footer-intro p:last-child { max-width:350px; font-size:15px; }
  .footer-intro .button { width:100%; margin:24px 0 0; min-height:51px; }
  .garden-footer .footer-wordmark { width:100%; font-size:clamp(50px,17.8vw,125px); margin:35px 0 31px; }
  .footer-directory { grid-template-columns:minmax(0,1fr); gap:0; padding:16px 0 22px; }
  .footer-column { border-bottom:1px solid var(--line); }
  .footer-column summary { display:flex; align-items:center; justify-content:space-between; gap:15px; min-height:55px; cursor:pointer; }
  .footer-column h3 { font-size:13px; letter-spacing:.5px; margin:0; color:var(--ink); }
  .footer-column ul { padding-bottom:14px; }
  .footer-column a { font-size:14px; min-height:44px; }
  .footer-chevron { display:block; color:var(--muted); font:20px Arial,sans-serif; }
  .footer-chevron::before { content:"+"; }
  .footer-column[open] .footer-chevron::before { content:"−"; }
  .footer-home { grid-template-columns:minmax(0,1fr); gap:27px; padding:26px 0; }
  .footer-home address { font-size:13px; gap:8px; }
  .footer-home address small { font-size:11px; }
  .footer-contact { gap:5px; }
  .footer-contact>a:first-of-type { font-size:19px; }
  .garden-footer .footer-bottom { flex-direction:column; align-items:flex-start; gap:9px; padding:20px 0; font-size:11px; }
  .footer-social { display:block; padding-top:20px; }
  .footer-social>p { margin-bottom:13px; font-size:12px; }
  .social-links { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
  .social-links a { justify-content:flex-start; padding-left:14px; min-height:44px; }
  .download-share-bar { flex-direction:column; align-items:stretch; max-width:480px; padding:22px; gap:17px; border-radius:22px; }
  .download-share-bar b { font-size:17px; }
  .download-share-bar .button { width:100%; }
  .release-dialog { padding:21px; }
  .release-dialog h2 { font-size:28px; }
  .share-actions .button { padding:12px 8px; font-size:13px; }
}

/* FAQs stay in the HTML: native accordions, useful topic links, no extra requests. */
.skip-link { position:fixed; top:12px; left:12px; z-index:2000; padding:12px 18px; border-radius:12px; background:var(--ink); color:var(--surface); transform:translateY(-150%); }
.skip-link:focus { transform:translateY(0); }
.faq { max-width:1160px; scroll-margin-top:90px; }
.faq .faq-heading { max-width:660px; }
.faq .faq-heading h2 { margin:13px 0 16px; font-size:clamp(32px,4vw,49px); line-height:1.2; }
.faq .faq-heading>p { margin:0; font-size:16px; line-height:1.65; }
.faq-topics,.footer-topics { display:flex; flex-wrap:wrap; gap:9px; }
.faq-topics { margin:27px 0 34px; }
.faq-topics a,.footer-topics a { display:inline-flex; align-items:center; min-height:44px; padding:10px 15px; border:1px solid var(--line); border-radius:50px; font-size:13px; line-height:1.4; background:var(--surface); color:var(--ink); }
.faq-topics a:hover,.footer-topics a:hover { border-color:var(--accent); color:var(--accent); }
.faq-groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:25px; align-items:start; }
.faq-group { min-width:0; padding:24px; border:1px solid var(--line); border-radius:24px; background:var(--surface); scroll-margin-top:95px; }
.faq-group:last-child { grid-column:1/-1; }
.faq .faq-group h3 { margin:0 0 13px; color:var(--accent); font-size:15px; line-height:1.5; }
.faq .faq-group details { padding:0; }
.faq .faq-group summary { display:flex; align-items:flex-start; justify-content:space-between; gap:17px; min-height:62px; padding:18px 0; list-style:none; font-size:17px; line-height:1.55; font-weight:600; }
.faq .faq-group summary::-webkit-details-marker { display:none; }
.faq .faq-group summary::after { content:"+"; display:grid; place-items:center; flex:0 0 24px; width:24px; height:24px; margin-top:1px; color:var(--accent); font:22px Arial,sans-serif; }
.faq .faq-group details[open]>summary::after { content:"−"; }
.faq .faq-group details p { margin:0 0 20px; padding-right:25px; font-size:15px; line-height:1.8; overflow-wrap:break-word; }
.faq-help { display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; margin-top:30px; padding:22px 0 0; }
.faq .faq-help p { margin:0; font-size:15px; }
.faq-help>div { display:flex; flex-wrap:wrap; gap:13px 24px; }
.faq-help a { display:inline-flex; align-items:center; min-height:44px; color:var(--ink); font-size:14px; text-decoration:underline; text-underline-offset:4px; }
.faq summary:focus-visible,.faq a:focus-visible,.footer-topics a:focus-visible { outline:3px solid var(--accent); outline-offset:4px; border-radius:6px; }
.footer-topics { margin-top:23px; }
.footer-topics a { background:transparent; font-size:12px; }
@media(max-width:760px) {
  .faq .faq-heading h2 { font-size:32px; line-height:1.3; max-width:330px; margin:11px 0 15px; }
  .faq .faq-heading>p { font-size:15px; }
  .faq-topics { gap:8px; margin:23px 0 25px; }
  .faq-topics a { font-size:12px; padding:9px 13px; }
  .faq-groups { grid-template-columns:minmax(0,1fr); gap:18px; }
  .faq-group { padding:20px 18px; border-radius:20px; }
  .faq .faq-group summary { padding:16px 0; min-height:60px; font-size:16px; gap:12px; }
  .faq .faq-group details p { padding-right:0; font-size:14px; line-height:1.8; }
  .faq-help { display:block; margin-top:20px; padding-top:10px; }
  .faq-help>div { margin-top:8px; }
  .footer-topics { gap:8px; margin-top:21px; }
  .footer-topics a { font-size:11px; padding:9px 12px; }
}

/* Recovery controls retain existing type, color and touch target conventions. */
.release-recovery { max-width:1240px; margin:16px auto; }
.release-recovery p:empty, #downloadConfigStatus:empty { display:none; }
button.download-retry { background:none; border:0; font:inherit; padding:6px 0; cursor:pointer; }
button.download-retry:disabled { cursor:wait; opacity:.65; }
.release-dialog { max-height:calc(100vh - 32px); max-height:calc(100dvh - 32px); overscroll-behavior:contain; }
#turnstileWidget { min-width:0; }
