/* The inside pages, dark (the default; Luke can switch to light in Settings → Website look, which loads pages.css
   instead): What we buy, How it works, FAQ, About, Partners & resellers, Testimonials, the request form, page not
   found. The sunset photo, standing still, fills the top of each page and fades into navy; everything below sits
   on navy or on dark cards, recolored through the site's color tokens. Text stays 16px or more, white on dark. */

.dark-page {
  --oyster: #0f1b2b;                   /* the page */
  --shell: #13223a;
  --band: #13223a;                     /* the alternating section bands */
  --card: rgba(255, 255, 255, .06);
  --line: rgba(255, 255, 255, .16);
  --pluff: #fff;
  --mute: rgba(255, 255, 255, .86);
  --marsh-ink: #fff;
  --green-text: #fff;
  --navy: #fff;
  --spartina-text: #f2b56b;            /* gold text on navy: 9:1 */
  --tint: rgba(242, 181, 107, .14);
  --marsh: #f2b56b;
  font-family: var(--f-body);
}
.dark-page h1, .dark-page h2, .dark-page h3 { font-weight: 400; letter-spacing: -.01em; }

/* the header lines up with the page's own column */
@media (min-width: 1181px) { .dark-page .bar > .wrap { max-width: var(--wrap); padding-inline: var(--gutter); } }

/* the photo at the top, still, fading into the navy below */
/* min-height: at least as tall as the photo, so on a short page (Testimonials before any quotes) it never
   spills over the panel below and hides its first line */
.dark-page .page-top { position: relative; isolation: isolate; padding-top: clamp(8rem, 18vh, 11rem); min-height: min(78vh, 46rem); }
.dark-page .page-top::before { content: ""; position: absolute; z-index: -1; left: 0; right: 0; top: 0; height: min(78vh, 46rem);
  background:
    linear-gradient(180deg, rgba(10,18,32,.62) 0%, rgba(10,18,32,.55) 35%, rgba(15,27,43,.88) 75%, #0f1b2b 100%),
    linear-gradient(90deg, rgba(10,18,32,.55) 0%, rgba(10,18,32,0) 70%),
    url("photos/dusk-1600.webp") 58% 45% / cover no-repeat; }
@media (min-width: 1200px) {
  .dark-page .page-top::before { background:
    linear-gradient(180deg, rgba(10,18,32,.62) 0%, rgba(10,18,32,.55) 35%, rgba(15,27,43,.88) 75%, #0f1b2b 100%),
    linear-gradient(90deg, rgba(10,18,32,.55) 0%, rgba(10,18,32,0) 70%),
    url("photos/dusk-2400.webp") 58% 45% / cover no-repeat; }
}
.dark-page .page-top .head { margin-bottom: clamp(2rem, 5vh, 3.5rem); }
.dark-page .page-h1 { font-size: clamp(2.4rem, 5.4vw, 4.2rem); line-height: 1.04; max-width: 20ch; text-shadow: 0 2px 18px rgba(0,0,0,.35); }
.dark-page .lede { color: rgba(255,255,255,.92); text-shadow: 0 1px 12px rgba(0,0,0,.35); }
.dark-page .eyebrow { color: var(--spartina-text); }
.dark-page .page-top .about-text p { color: rgba(255,255,255,.92); }

/* cards: dark, with the frosted edge of the home page's panels */
.dark-page .buy-card, .dark-page .steps-long li, .dark-page .home-base {
  background: rgba(19, 34, 58, .82); border-color: rgba(255,255,255,.14); border-radius: 16px; box-shadow: 0 16px 40px rgba(0,0,0,.25);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.dark-page .buy-list .buy-card:target { border-color: var(--spartina-text); box-shadow: 0 0 0 3px rgba(242,181,107,.35); }
.dark-page .steps-long li::before { background: rgba(242,181,107,.22); color: var(--spartina-text); }
.dark-page .price-note { color: rgba(255,255,255,.92); text-shadow: 0 1px 12px rgba(0,0,0,.35); }
.dark-page .two-col p, .dark-page .about-text p, .dark-page .about-text li { color: rgba(255,255,255,.88); }
.dark-page .about-text a, .dark-page .two-col a, .dark-page .faq a, .dark-page .lede a { color: #fff; text-decoration-color: var(--spartina-text); }

/* the alternating bands: a slightly lighter navy, with a hairline between */
.dark-page .band { border-top: 1px solid rgba(255,255,255,.08); border-bottom: 1px solid rgba(255,255,255,.08); }

/* questions */
.dark-page .faq summary { color: #fff; }
.dark-page .faq summary:hover { color: var(--spartina-text); }

/* the towns: gold "home base", outlined others */
.dark-page .areas li { background: rgba(255,255,255,.06); color: #fff; }
.dark-page .areas .hb { background: #f2b56b; border-color: #f2b56b; color: #0f1b2b; }

/* the closing call to action: a big frosted panel, like the home page's */
.dark-page .closing { background: transparent; }
.dark-page .closing .wrap { background: rgba(19, 34, 58, .9); border: 1px solid rgba(255,255,255,.14); border-radius: 20px;
  padding: clamp(2rem, 5vw, 3.5rem) clamp(1.25rem, 4vw, 3rem); max-width: min(64rem, calc(100% - 2 * var(--gutter))); }
.dark-page .closing h2 { font-size: clamp(2rem, 4vw, 3rem); }

/* phones: the photo is shorter, the words start just under the header */
@media (max-width: 860px) {
  .dark-page .page-top { padding-top: 6.5rem; min-height: min(70vh, 32rem); }
  .dark-page .page-top::before { height: min(70vh, 32rem); }
}
/* the open phone menu: navy like the page, with a clear edge so it doesn't blend into what's under it */
@media (max-width: 1180px) { .dark-page .menu { border-bottom: 1px solid rgba(255,255,255,.22); box-shadow: 0 24px 40px rgba(0,0,0,.55); } }

/* ---------- the request form ("Send us photos") and "Opening soon" ---------- */
/* the form sits on a dark card like the home page's; the boxes people type in stay white with dark text,
   the clearest "type here" there is */
.dark-page .panel, .dark-page .book-card {
  background: rgba(19, 34, 58, .9); border-color: rgba(255,255,255,.14); border-radius: 18px; box-shadow: 0 20px 50px rgba(0,0,0,.3);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.dark-page .offer-h1 { font-size: clamp(2.2rem, 4.6vw, 3.4rem); line-height: 1.05; text-shadow: 0 2px 18px rgba(0,0,0,.35); }
.dark-page .lede-sm { color: rgba(255,255,255,.92); }
.dark-page .phone-card { background: rgba(19, 34, 58, .82); border: 1px solid rgba(255,255,255,.14); border-radius: 14px; }
.dark-page .phone-card .num { color: #fff; }
.dark-page input[type="text"], .dark-page input[type="tel"], .dark-page input[type="email"], .dark-page input[type="date"],
.dark-page textarea, .dark-page select { background: #fff; color: #1b2433; border-color: transparent; }
.dark-page ::placeholder { color: #6b7280; opacity: 1; }
.dark-page input:focus, .dark-page textarea:focus, .dark-page select:focus { outline: 3px solid #f2b56b; }
.dark-page .req { color: #ff9b8f; }                       /* the required star, readable on navy */
.dark-page .pill span { background: rgba(255,255,255,.06); color: #fff; }
.dark-page .pill input:checked + span { background: rgba(242,181,107,.2); border-color: #f2b56b; }
.dark-page .drop { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.3); padding: 1.6rem 1.25rem; gap: .5rem; }
.dark-page .drop:hover, .dark-page .drop.over { border-color: #f2b56b; }
.dark-page details.more { background: rgba(255,255,255,.04); }
.dark-page .dots li.done { background: #7fd6a0; }
.dark-page .badge-ok { color: #7fd6a0; }
.dark-page .done-list li::before { color: #0f1b2b; }       /* white on gold was too faint */
.dark-page .ease button { background: rgba(255,255,255,.06); color: #fff; }
.dark-page .btn-quiet { color: rgba(255,255,255,.88); }
.dark-page .btn-quiet:hover { color: #fff; }
.dark-page .preview-banner { background: #f2b56b; color: #0f1b2b; position: relative; z-index: 30; font-weight: 500; }
.dark-page .opening-card h1 { font-size: clamp(2.2rem, 5vw, 3.2rem); line-height: 1.05; }
.dark-page .offer-side { top: 1.5rem; }                   /* the header scrolls away here, so the side panel can sit higher */

/* How it works: the last step, getting paid, gets the same gold edge as on the home page */
.dark-page .steps-long li:last-child { border-color: rgba(242,181,107,.7); background: linear-gradient(180deg, rgba(242,181,107,.14), rgba(19,34,58,.85)); }
.dark-page:has(.preview-banner) .bar { top: calc(var(--hp-gutter) + 3.4rem); }  /* Luke previewing: the header sits under the yellow banner */

/* Step 1's dropdowns (Luke, 10/25: the tap-buttons felt crammed). "About how much?" and "What's going on?" are
   native selects, the easiest pick on a phone; "Kinds of items" takes several, so it is a button that opens a
   checkbox list. Both look like the white boxes people type in, with a chevron. More room between questions. */
.dark-page .stepbody { gap: 2rem; }
/* (a <details> won't lay out as a grid in every browser, so the room comes from margins) */
.dark-page details.more > .q + .q { margin-top: 1.6rem; }
.dark-page details.more > summary + .q { margin-top: 1.2rem; }
.dark-page select, .dd-btn {
  appearance: none; -webkit-appearance: none; min-height: 48px; cursor: pointer;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%231b2433' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 1rem center;
  padding-right: 2.6rem; }
.dd { position: relative; }
.dd-btn { width: 100%; text-align: left; font: inherit; font-size: 1rem; color: #1b2433; border: 1px solid transparent; border-radius: 6px; padding: .8rem 2.6rem .8rem .9rem; }
.dd-btn[aria-expanded="true"] { outline: 3px solid #f2b56b; }
.dd-btn:focus-visible { outline: 3px solid #f2b56b; }
.dd-list { position: absolute; z-index: 20; left: 0; right: 0; top: calc(100% + .4rem); max-height: min(22rem, 60vh); overflow-y: auto;
  background: #fff; color: #1b2433; border-radius: 10px; box-shadow: 0 18px 40px rgba(0,0,0,.4); padding: .35rem; display: grid; }
.dd-list[hidden] { display: none; }
.dd-opt { display: flex; align-items: center; gap: .7rem; min-height: 44px; padding: .35rem .7rem; border-radius: 8px; cursor: pointer; font-size: 1rem; }
.dd-opt:hover { background: #f3efe6; }
.dd-opt input { width: 1.2rem; height: 1.2rem; accent-color: #0f1b2b; flex: none; }

/* Page not found (audit 10/27 #34): the house from the logo, bobbing gently */
.not-found .wrap { display: grid; gap: 1.5rem; justify-items: start; }
.not-found .head { margin: 0; }
.nf-house { width: 4.5rem; height: 4.5rem; color: var(--navy, #1d2f45); animation: nf-bob 2.6s ease-in-out infinite; }
@keyframes nf-bob { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-8px) rotate(-3deg); } }
@media (prefers-reduced-motion: reduce) { .nf-house { animation: none; } }
.not-found .ctas { display: flex; flex-wrap: wrap; gap: .75rem; }
.nf-links { display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; font-size: 1.05rem; }
.nf-links a { color: var(--pluff); text-underline-offset: 4px; text-decoration-color: var(--spartina); min-height: 44px; display: inline-flex; align-items: center; }
