/* Banana Floors shared theme r34 = theme-r30 + footer-r29 + shared chrome; r32 collapsible footer; r33 site-wide hover/focus states. */
/* Shared light/dark controls. Existing light-theme colors remain the default. */
.theme-toggle {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  flex-shrink: 0; min-width: 44px; height: 44px; padding: 0 12px;
  border: 1px solid #d8d8dc; border-radius: 999px; background: #f5f5f7;
  color: #242426; font: 600 13px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  cursor: pointer; touch-action: manipulation;
}
.theme-toggle[hidden] { display: none; }
.theme-toggle:hover { background: #fff3be; border-color: #d7b632; }
.theme-toggle:focus-visible { outline: 3px solid #a16b00; outline-offset: 4px; }
.theme-toggle svg { width: 18px; height: 18px; flex-shrink: 0; }
.theme-sun { display: none; }
.logo-frame { display: block; position: relative; max-width: 100%; }
.logo-dark-part { display: none !important; position: absolute; left: 0; top: 0;
  width: 100% !important; height: auto; margin: 0 !important;
  filter: brightness(0) invert(1); clip-path: inset(0 0 0 57.5%); pointer-events: none; }
.nav-inner { gap: 16px; }
.nav-links { margin-left: auto; white-space: nowrap; }
@media (min-width: 901px) and (max-width: 1150px) {
  .nav .brand img.brand-logo { width: 170px; }
  .nav-inner { gap: 10px; padding-left: 18px; padding-right: 18px; }
  .nav-links { gap: 3px; font-size: 12px; }
  .nav-links a:not(.nav-cta) { padding-left: 4px; padding-right: 4px; }
  .nav-cta { padding-left: 11px; padding-right: 11px; }
  .nav .theme-toggle { padding: 0; width: 44px; }
  .nav [data-theme-label] { display: none; }
}
@media (max-width: 900px) {
  .nav .theme-toggle { margin-left: 0; }
  .nav .mobile-menu { margin-left: 0; }
}
@media (max-width: 560px) {
  .nav-inner { gap: 8px; }
  .nav .brand { margin-right: auto; }
  .theme-toggle { padding: 0; width: 44px; }
  [data-theme-label] { display: none; }
  .site-nav-actions { grid-template-columns: auto minmax(0,1fr) 44px; }
}
@media (max-width: 360px) {
  .nav .brand img.brand-logo { width: 146px; }
  .nav .mobile-menu summary { padding: 10px 8px; gap: 8px; }
}

html[data-theme="dark"] {
  color-scheme: dark;
  --ink: #f7f5ef; --muted: #d2d0c7; --bg: #30332f; --white: #30332f;
  --surface: #383c36; --soft: #42473f; --soft2: #383c36; --line: #666d61;
  --banana: #ffd84d; --banana-soft: #56513b; --accent: #ffd84d;
  --shadow: 0 20px 55px rgba(12,20,11,.18);
}
html[data-theme="dark"] body { color: var(--ink); background: var(--bg); }
html[data-theme="dark"] .theme-toggle { background: #464b42; color: #f7f5ef; border-color: #78806f; }
html[data-theme="dark"] .theme-toggle:hover { background: #56513b; border-color: #b99a38; }
html[data-theme="dark"] .theme-moon { display: none; }
html[data-theme="dark"] .theme-sun { display: block; }
html[data-theme="dark"] .logo-dark-part { display: block !important; }
html[data-theme="dark"] :is(.nav,.site-nav,.modal-head) { background: rgba(48,51,47,.96); border-color: var(--line); }
html[data-theme="dark"] .nav-links { color: #eeeae1; background: transparent; }
html[data-theme="dark"] :is(.nav-links a:not(.nav-cta),.mobile-menu a):hover { color: #ffd84d; background: var(--banana-soft); }
html[data-theme="dark"] :is(.site-nav .site-home,.mobile-menu summary) { background: #464b42; color: var(--ink); border-color: #78806f; }
html[data-theme="dark"] .site-nav .site-home:hover { background: var(--banana-soft); color: #ffd84d; }
html[data-theme="dark"] .mobile-menu>div { background: #42473f; color: var(--ink); border: 1px solid var(--line); }
html[data-theme="dark"] :is(.card,.service,.floor-option,.compact-price-cta,.compact-benefits,.compact-process,.estimate-form,.trust-strip-inner,.floor-mini,.estimate-cities span,.modal,.spec-card,.layers-card,.tier-card,details.more,.modal-overview,.feature-badge,.use-chip,.performance-card,.compare-card,.retail-example,.tab,.layer-select) {
  background: #42473f; color: var(--ink); border-color: var(--line);
}
html[data-theme="dark"] :is(.construction,.retail-comparison) { background: #383c36; border-color: var(--line); }
html[data-theme="dark"] :is(.reviews-panel,.material-preview,.type-note) { background: #484638; border-color: #8a7b46; color: var(--ink); }
html[data-theme="dark"] :is(.reviews-copy p,.reviews-actions small,.material-preview span,.type-note) { color: #e4ddc7; }
html[data-theme="dark"] .material-preview small { color: #ffd84d; }
html[data-theme="dark"] .quote-card { background: #42473f; color: var(--ink); }
html[data-theme="dark"] :is(.compact-process strong,.footer-inner b,.retail-price,.retail-example a,.retail-jump) { color: var(--ink); }
html[data-theme="dark"] :is(.field label,.form-note,.proof-note,.gallery-note,.footer-inner,.page-breadcrumb,.quote-card p,.spec-item b,.glance-card b,.performance-card b,.performance-card span,.layer-select>span,.layer-select p,.construction-heading>p,.spec-fact dt,.spec-caption,.spec-tier>span,.spec-tier p,.spec-tier li,.tier-card ul,.retail-example p,.retail-comparison>p,.retail-modal>p,.retail-group>summary span,.retail-compact>summary,.retail-compact .retail-note,.retail-checked) { color: var(--muted); }
html[data-theme="dark"] :is(.eyebrow,.spec-eyebrow,.jump,.retail-category,.form-status,.tag) { color: #ffd84d; }
html[data-theme="dark"] .hero-content .eyebrow { color: rgba(255,255,255,.8); }
html[data-theme="dark"] :is(.field input,.field select,.field textarea) { background: #373c34; color: var(--ink); border-color: #8c9482; }
html[data-theme="dark"] :is(.field input,.field textarea)::placeholder { color: #c7c9be; opacity: 1; }
html[data-theme="dark"] :is(.field input,.field select,.field textarea):focus { background: #42473f; border-color: #ffd84d; }
html[data-theme="dark"] :is(.layer-select.selected,.spec-tier:has(input:checked)) { background: #56513b; border-color: #ffd84d; }
html[data-theme="dark"] :is(.layer-select:hover,.spec-tier,.spec-facts dl,.spec-fact,.retail-group,.step) { border-color: #78806f; }
html[data-theme="dark"] .layer-select:hover { border-color: #ffd84d; }
html[data-theme="dark"] .tier-choice input { accent-color: #ffd84d; }
html[data-theme="dark"] .tier-choice:focus-within { outline-color: #ffd84d; }
html[data-theme="dark"] .retail-example .retail-price { color: var(--ink); }
html[data-theme="dark"] :is(.retail-example a,.retail-jump):hover { background: var(--banana-soft); color: #ffd84d; }
html[data-theme="dark"] .retail-compact>summary:hover { color: #ffd84d; }
html[data-theme="dark"] .meter { background: #696f63; }
html[data-theme="dark"] :is(.btn,.nav-cta,.site-call) { color: #111; }
html[data-theme="dark"] :is(.tab.active,.tier-card.recommended .tier-tag) { background: #ffd84d; color: #111; }
html[data-theme="dark"] .hero .btn.ghost { color: #fff; }
html[data-theme="dark"] .hero .btn.ghost:hover { color: #111; }
html[data-theme="dark"] :is(.btn.primary,.btn.secondary,.floor-mini.price) { background: #4b5146; color: #f7f5ef; border-color: #8c9482; }
html[data-theme="dark"] .floor-mini:hover { background: var(--banana-soft); }
html[data-theme="dark"] .floor-mini.price:hover { background: #ffd84d; color: #111; border-color: #ffd84d; }
html[data-theme="dark"] :is(.area-card,.estimate-intro,.result,.spec-cover,.sample-card) { border: 1px solid var(--line); }
html[data-theme="dark"] .thank-you-page main { background: #42473f; }
html[data-theme="dark"] .thank-you-page p { color: var(--muted); }
html[data-theme="dark"] :is(a,button,summary):focus-visible { outline-color: #ffd84d; }
@media (prefers-reduced-motion: reduce) { .theme-toggle { transition: none; } }

/* A warm tint and clear surface levels keep dark mode soft and readable. */
html[data-theme="dark"] body {
  background-color: var(--bg);
  background-image: radial-gradient(ellipse at 85% 0%, rgba(255,216,77,.07), transparent 900px);
}
html[data-theme="dark"] :is(.area-card,.estimate-intro,.result,.spec-cover,.sample-card) {
  background: #383e34;
}
html[data-theme="dark"] :is(.assembly-figure,.photo-viewer) { background: #30392d; }
html[data-theme="dark"] :is(.area-card p,.estimate-intro p,.result .small,.spec-cover p,.sample-label) { color: #d2d6cb; }
html[data-theme="dark"] .hero-stage:before {
  background: linear-gradient(90deg,rgba(24,31,23,.65) 0%,rgba(24,31,23,.44) 44%,rgba(24,31,23,.10) 78%,rgba(24,31,23,.03) 100%);
}
@media(max-width:900px) {
  html[data-theme="dark"] .hero-stage:before {
    background: linear-gradient(0deg,rgba(24,31,23,.72) 0%,rgba(24,31,23,.48) 55%,rgba(24,31,23,.26) 100%);
  }
}

/* Compact footer with a uniform, right-aligned contact stack. */
footer.site-footer {
  padding: 0;
  border-top: 1px solid var(--line, #dedee2);
  text-align: left;
  color: var(--muted, #6e6e73);
  font: 400 13px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
}
.site-footer .footer-inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 18px 24px;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  color: inherit;
  font: inherit;
}
.site-footer .footer-brand { display: block; width: 170px; max-width: 100%; margin: 0; flex-shrink: 1; min-width: 0; }
.site-footer .footer-logo { width: 170px; max-width: 100%; height: auto; margin: 0; }
.site-footer .footer-info { display: grid; justify-items: end; gap: 2px; text-align: right; flex-shrink: 0; }
.site-footer .footer-info > * { margin: 0; font: inherit; color: inherit; white-space: nowrap; }
.site-footer .footer-phone {
  display: inline-block;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  border-radius: 3px;
}
.site-footer .footer-phone:hover { background: #ffd84d; color: #111; }
@media (max-width: 650px) {
  .site-footer .footer-inner { padding: 16px 18px; gap: 14px; }
  .site-footer .footer-brand, .site-footer .footer-logo { width: 150px; }
}
/* Keep the homepage footer above the fixed Call / Free Estimate bar. */
@media (max-width: 560px) {
  .mobile-bar ~ .site-footer .footer-inner { padding-bottom: calc(88px + env(safe-area-inset-bottom)); }
}

/* r31 shared chrome: logo sizing, expanded footer, a11y */
.brand img.brand-logo,.site-brand img.brand-logo{display:block;width:220px;max-width:100%;height:auto;object-fit:contain}
.brand,.site-brand{min-width:0;flex-shrink:0}
.footer-logo{display:block;width:200px;max-width:100%;height:auto}
@media(max-width:600px){.brand img.brand-logo,.site-brand img.brand-logo{width:180px}}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #a16b00;outline-offset:4px}
/* r32 footer: Services / Service areas collapse into native <details> dropdowns (links stay in the HTML). */
.site-footer .footer-top{max-width:1180px;margin:0 auto;padding:16px 24px 0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.15fr);gap:10px 18px;align-items:start;font-size:14px;line-height:1.55}
.site-footer .footer-dd{border:1px solid var(--line,#dedee2);border-radius:12px;background:var(--surface,#fff)}
.site-footer .footer-dd>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px;padding:7px 14px;border-radius:12px;font-weight:750;font-size:14px;color:var(--ink,#111)}
.site-footer .footer-dd>summary::-webkit-details-marker{display:none}
.site-footer .footer-dd>summary::after{content:"";flex:none;width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-3px) rotate(45deg);transition:transform .2s ease}
.site-footer .footer-dd[open]>summary::after{transform:translateY(2px) rotate(-135deg)}
.site-footer .footer-dd>summary:hover{background:var(--banana-soft,#fff6d1)}
.site-footer .footer-dd .dd-count{margin-left:auto;font-weight:600;font-size:12px;color:var(--muted,#6e6e73)}
.site-footer .footer-dd ul{list-style:none;margin:0;padding:2px 14px 10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 14px}
.site-footer .footer-dd li a{display:block;padding:3px 0}
.site-footer .footer-top a{text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px}
.site-footer .footer-top a:hover{text-decoration-color:currentColor}
.site-footer .footer-quick{display:flex;flex-wrap:wrap;align-items:center;gap:0 14px;min-height:40px}
.site-footer .footer-quick a{padding:2px 0;color:var(--ink,#111);font-weight:600}
.site-footer .footer-info .footer-gbp{text-decoration:underline;text-underline-offset:3px}
.site-footer .footer-top+.footer-inner{padding-top:10px;padding-bottom:12px}
@media(max-width:560px){.mobile-bar ~ .site-footer .footer-top+.footer-inner{padding-bottom:calc(84px + env(safe-area-inset-bottom))}}
.site-footer .footer-top+.footer-inner .footer-logo,.site-footer .footer-top+.footer-inner .footer-brand{width:150px}
@media(max-width:900px){.site-footer .footer-top{grid-template-columns:1fr 1fr}.site-footer .footer-quick{grid-column:1/-1}}
@media(max-width:600px){.site-footer .footer-top{grid-template-columns:1fr;padding:14px 18px 0;gap:8px}.site-footer .footer-dd li a{padding:6px 0}.site-footer .footer-quick{min-height:0;gap:0 16px}.site-footer .footer-quick a{padding:6px 0}
  .site-footer .footer-inner{flex-direction:column;align-items:flex-start;gap:6px}.site-footer .footer-info{justify-items:start;text-align:left}.site-footer .footer-info>*{white-space:normal}}
html[data-theme="dark"] .site-footer .footer-dd{background:var(--surface);border-color:var(--line)}
html[data-theme="dark"] .site-footer .footer-dd>summary:hover{background:var(--banana-soft)}

/* ---------- r33: consistent hover + keyboard focus states (site-wide) ---------- */
:root{--hl:#fff3be;--hl-line:#c98f00;--ease:cubic-bezier(.2,.7,.2,1)}
html[data-theme="dark"]{--hl:#56513b;--hl-line:#ffd84d}
/* Text links inside content: underline grows/darkens and gets a soft banana tint. */
:is(.prose,.lead,.note,.callout,.faq-list,.planning-questions,.reviews-copy,.areas-copy,.page-breadcrumb,.section-head,.retail-note) a:not(.btn),
a.inline-link,a.inline{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,currentColor 45%,transparent);border-radius:3px;transition:text-decoration-color .2s var(--ease),background-color .2s var(--ease),text-decoration-thickness .2s var(--ease)}
:is(.prose,.lead,.note,.callout,.faq-list,.planning-questions,.reviews-copy,.areas-copy,.page-breadcrumb,.section-head,.retail-note) a:not(.btn):is(:hover,:focus-visible),
a.inline-link:is(:hover,:focus-visible),a.inline:is(:hover,:focus-visible){text-decoration-color:var(--hl-line);text-decoration-thickness:2px;background-color:var(--hl)}
/* Footer + quick links: animated underline. */
.site-footer :is(.footer-quick a,.footer-dd li a){text-decoration:none!important;background:linear-gradient(var(--hl-line),var(--hl-line)) 0 100%/0 2px no-repeat;transition:background-size .25s var(--ease),color .2s var(--ease)}
.site-footer :is(.footer-quick a,.footer-dd li a){display:inline-block}
.site-footer .footer-dd li a{display:inline-block;padding-left:0;padding-right:0}
.site-footer :is(.footer-quick a,.footer-dd li a):is(:hover,:focus-visible){background-size:100% 2px;color:var(--ink,#111)}
.site-footer .footer-info a{transition:background-color .2s,color .2s,text-decoration-color .2s}
.site-footer .footer-info a:is(:hover,:focus-visible){background:var(--hl);color:var(--ink,#111);text-decoration-color:var(--hl-line)}
.site-footer .footer-dd>summary{transition:background-color .2s var(--ease)}
.site-footer .footer-dd>summary:focus-visible{background:var(--hl)}
/* Summaries (FAQ, menus, dropdowns): subtle highlight. */
.planning-questions summary,.mobile-menu summary{transition:color .2s var(--ease),background-color .2s var(--ease)}
.planning-questions summary:is(:hover,:focus-visible){color:#7a5300}
html[data-theme="dark"] .planning-questions summary:is(:hover,:focus-visible){color:#ffd84d}
/* Buttons: gentle lift + shadow, same for keyboard focus. */
:is(.btn,.site-call,.nav-cta,.footer-phone){transition:transform .18s var(--ease),box-shadow .18s var(--ease),background-color .18s var(--ease),color .18s var(--ease)}
.btn:is(:hover,:focus-visible),.site-call:is(:hover,:focus-visible){transform:translateY(-2px);box-shadow:0 10px 24px rgba(17,17,17,.14)}
.btn:not(.secondary):not(.ghost):is(:hover,:focus-visible),.site-call:is(:hover,:focus-visible){background:#ffc928;color:#111}
.btn.secondary:is(:hover,:focus-visible){background:#2a2a2a;color:#fff}
.cta-box .btn.secondary:is(:hover,:focus-visible){background:#fff3be;color:#111}
/* Pills and cards: tint + lift. */
:is(.links a,.area-links a,.more-services a,.floor-mini){transition:background-color .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease),box-shadow .2s var(--ease)}
:is(.links a,.area-links a,.more-services a):is(:hover,:focus-visible){background:var(--hl);border-color:#e9cf6a;transform:translateY(-1px);box-shadow:0 6px 14px rgba(17,17,17,.06)}
.links a[aria-current="page"]:is(:hover,:focus-visible){background:#111;color:#fff}
/* Nav links: highlight. */
:is(.site-links a,.nav-links a:not(.nav-cta),.mobile-menu a){transition:background-color .2s var(--ease),color .2s var(--ease)}
:is(.site-links a,.nav-links a:not(.nav-cta),.mobile-menu a):focus-visible{background:var(--hl);color:var(--ink,#111)}
/* Focus ring: one consistent ring everywhere. */
:is(a,button,summary,input,select,textarea):focus-visible{outline:3px solid #a16b00;outline-offset:3px}
html[data-theme="dark"] :is(a,button,summary,input,select,textarea):focus-visible{outline-color:#ffd84d}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;scroll-behavior:auto!important}
  :is(.btn,.site-call,.links a,.area-links a,.more-services a,.floor-option,.point,.info-card,.aside-card):is(:hover,:focus-visible,:focus-within){transform:none!important}
}

/* r33 homepage trust strip: SVG icons + linked Google profile item */
.trust-icon .ico{width:16px;height:16px;color:#7a5300}
html[data-theme="dark"] .trust-icon .ico{color:#ffd84d}
a.trust-item{color:inherit;text-decoration:none;transition:background-color .2s}
a.trust-item:is(:hover,:focus-visible){background:var(--hl)}
:is(.section-head h2,.hero h1,.estimate-intro h2){text-wrap:balance}
