:root {
  --surface: #fff;
  --surface-soft: #fafdff;
  --line: #d2dee6;
  color-scheme: light;
}

:root[data-theme="dark"] {
  --navy: #061d32;
  --blue: #40aef5;
  --sky: #102f47;
  --cream: #081725;
  --ink: #e9f5fc;
  --muted: #a9bfce;
  --surface: #102638;
  --surface-soft: #0c2132;
  --line: #315168;
  color-scheme: dark;
}

.site-header {
  background: var(--surface);
  position: sticky;
  top: 0;
  transition: transform .28s ease, box-shadow .28s ease, background .25s ease;
}
.site-header.is-hidden { transform: translateY(-105%); box-shadow: none; }
.header-actions { display: flex; align-items: center; gap: 10px; }
.theme-toggle {
  width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 50%;
  background: var(--surface-soft); color: var(--ink); display: grid; place-items: center;
  font-size: 20px; cursor: pointer; transition: transform .2s, border-color .2s;
}
.theme-toggle:hover { transform: translateY(-2px); border-color: var(--blue); }
.theme-toggle:focus-visible { outline: 3px solid #0878c94d; outline-offset: 2px; }
.header-cta { border-color: var(--line); }
.features article, .weather-row span, .checklist-card { background: var(--surface); }
.checklist-card li { border-bottom-color: var(--line); }
.footer-details { display: flex; align-items: flex-start; gap: 48px; line-height: 1.65; }
.footer-details p { margin: 0; }
.pricing { display:grid; grid-template-columns:.9fr 1.1fr; gap:9vw; align-items:start; background:var(--cream); }
.pricing-heading { position:sticky; top:120px; }
.pricing-heading > p:last-child { max-width:450px; color:var(--muted); line-height:1.75; margin:28px 0 0; }
.price-cards { display:grid; grid-template-columns:1fr 1fr; gap:2px; }
.price-cards article { min-height:330px; padding:42px; background:var(--surface); display:flex; flex-direction:column; justify-content:space-between; border-top:3px solid var(--blue); }
.price-cards h3 { font-family:Georgia,serif; font-size:29px; font-weight:400; margin:18px 0 5px; }
.price-cards article > div > p { margin:0; color:var(--muted); font-size:13px; }
.price-icon { color:var(--blue); font-size:32px; }
.price { font-family:Georgia,serif; font-size:72px; line-height:1; margin:42px 0 5px; color:var(--ink); }
.price span { font-size:28px; vertical-align:top; display:inline-block; margin:7px 7px 0 0; color:var(--blue); }
.price-cards small { color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.15em; }
.pricing-cta { grid-column:1/-1; background:var(--navy); color:white; min-height:74px; padding:0 28px; display:flex; align-items:center; justify-content:space-between; font-size:13px; font-weight:800; }
.final-cta { align-items:start; }
.contact-intro { position:sticky; top:120px; }
.contact-intro > p:not(.eyebrow) { line-height:1.7; color:rgba(255,255,255,.82); margin:30px 0 0; max-width:460px; }
.direct-contact a { color:white; font-weight:800; border-bottom:1px solid rgba(255,255,255,.5); }
.contact-form-card { background:var(--surface); color:var(--ink); padding:48px; border-radius:4px; box-shadow:0 24px 60px rgba(3,31,56,.2); }
.contact-form-card h3 { font-family:Georgia,serif; font-size:34px; font-weight:400; margin:0 0 12px; }
.contact-form-card > p { color:var(--muted); line-height:1.6; margin:0 0 30px; }
.contact-form-card form { display:flex; flex-direction:column; gap:20px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.contact-form-card label { display:flex; flex-direction:column; gap:8px; color:var(--ink); font-size:12px; font-weight:800; }
.field-label em { color:var(--blue); font-style:normal; }
.contact-form-card input,.contact-form-card textarea { width:100%; border:1px solid var(--line); border-radius:3px; background:var(--surface-soft); color:var(--ink); font:inherit; font-size:15px; font-weight:400; padding:13px 14px; outline:none; transition:border-color .2s,box-shadow .2s; }
.contact-form-card textarea { resize:vertical; min-height:125px; }
.contact-form-card input:focus,.contact-form-card textarea:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(8,120,201,.12); }
.contact-form-card .privacy-check { flex-direction:row; align-items:flex-start; gap:10px; color:var(--muted); font-weight:400; line-height:1.45; }
.contact-form-card .privacy-check input { width:18px; height:18px; flex:0 0 auto; margin:1px 0 0; accent-color:var(--blue); }
.form-submit { border:0; cursor:pointer; background:var(--navy); color:white; align-self:flex-start; min-height:52px; }
.form-success,.form-warning,.form-error { padding:14px 16px; margin:0 0 24px; font-size:14px; line-height:1.5; border:1px solid; }
.form-success { background:#e8f8ef; color:#17653a; border-color:#b8e4ca; }
.form-warning { background:#fff7df; color:#785b00; border-color:#ecd88d; }
.form-error { background:#fff0f0; color:#8b2020; border-color:#e4b6b6; }
.form-honeypot { position:absolute!important; left:-9999px!important; opacity:0!important; pointer-events:none!important; }
.gallery { background:var(--surface-soft); }
.gallery-heading { margin-bottom:45px; }
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.gallery-card { background:var(--surface); border:1px solid var(--line); overflow:hidden; }
.gallery-card img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; transition:transform .35s ease; }
.gallery-card:hover img { transform:scale(1.025); }
.gallery-card div { padding:20px; }
.gallery-card small { color:var(--blue); text-transform:uppercase; letter-spacing:.12em; font-size:10px; font-weight:800; }
.gallery-card h3 { margin:8px 0 0; font:400 24px Georgia,serif; }

@media (max-width: 850px) {
  .hero-image { background-position: 82% center; }
  .footer-details { flex-direction: column; gap: 14px; }
  .pricing { grid-template-columns:1fr; gap:45px; }
  .pricing-heading { position:static; }
  .contact-intro { position:static; }
}

@media (max-width: 520px) {
  .header-actions { gap: 7px; }
  .theme-toggle { width: 40px; height: 40px; font-size: 18px; }
  .pricing { padding:64px 20px; }
  .price-cards { grid-template-columns:1fr; }
  .pricing-cta { grid-column:1; }
  .price-cards article { min-height:270px; padding:34px 28px; }
  .contact-form-card { padding:30px 20px; }
  .contact-form-card h3 { font-size:29px; }
  .form-grid { grid-template-columns:1fr; gap:18px; }
  .gallery-grid { grid-template-columns:1fr; }
  .form-submit { width:100%; }
}
@media (max-width: 360px) { .header-cta { padding: 10px; } }
