/* One lighting palette across all five routes. Brand colours remain fixed;
   surface colours and their readable foregrounds are provided by theme.js. */
:root {
  --page-bg:#ffffff; --page-text:#30252b; --page-secondary:#796c70; --page-accent:#85582e; --page-border:#ded7d3; --page-input-border:#a5989d; --page-scheme:light;
  --panel-bg:#fff; --panel-text:#30252b; --panel-secondary:#796c70; --panel-accent:#85582e; --panel-border:#ded7d3; --panel-input-border:#a5989d; --panel-scheme:light;
  --alternate-bg:#fafafa; --alternate-text:#30252b; --alternate-secondary:#74676b; --alternate-accent:#80532a; --alternate-border:#d5ccc7; --alternate-input-border:#a5989d; --alternate-scheme:light;
  --feature-bg:#ffffff; --feature-text:#30252b; --feature-secondary:#74676b; --feature-accent:#80532a; --feature-border:#d5ccc7; --feature-input-border:#a5989d; --feature-scheme:light;
  --footer-bg:#ffffff; --footer-text:#30252b; --footer-secondary:#74676b; --footer-accent:#80532a; --footer-border:#d5ccc7; --footer-logo-light:0; --footer-scheme:light;
  --hero-bg:#ffffff; --hero-text:#30252b; --hero-secondary:#796c70; --hero-accent:#85582e; --hero-border:#ded7d3; --hero-input-border:#a5989d; --hero-scheme:light;
  --header-bg:#ffffff; --header-text:#30252b; --header-secondary:#796c70; --header-accent:#85582e; --header-border:#ded7d3; --header-logo-light:0; --header-scheme:light;
  --theme-progress:0;
}
body { --surface:var(--page-bg); --text:var(--page-text); --secondary:var(--page-secondary); --accent:var(--page-accent); --border:var(--page-border); --input-border:var(--page-input-border); --scheme:var(--page-scheme); }
.booking-bar,.section-nav,.partner-section,.contact-form,.detail-dialog,.photo-dialog,.intro-seal,.room-tag,.wedding-photo {
  --surface:var(--panel-bg); --text:var(--panel-text); --secondary:var(--panel-secondary); --accent:var(--panel-accent); --border:var(--panel-border); --input-border:var(--panel-input-border); --scheme:var(--panel-scheme);
}
.promises,.dining,.mission { --surface:var(--alternate-bg); --text:var(--alternate-text); --secondary:var(--alternate-secondary); --accent:var(--alternate-accent); --border:var(--alternate-border); --input-border:var(--alternate-input-border); --scheme:var(--alternate-scheme); }
.reservation { --surface:var(--feature-bg); --text:var(--feature-text); --secondary:var(--feature-secondary); --accent:var(--feature-accent); --border:var(--feature-border); --input-border:var(--feature-input-border); --scheme:var(--feature-scheme); }
.footer { --surface:var(--footer-bg); --text:var(--footer-text); --secondary:var(--footer-secondary); --accent:var(--footer-accent); --border:var(--footer-border); --scheme:var(--footer-scheme); }
.site-header { --surface:var(--header-bg); --text:var(--header-text); --secondary:var(--header-secondary); --accent:var(--header-accent); --border:var(--header-border); --scheme:var(--header-scheme); }
.facade-hero,.subhero,.weddings { --surface:var(--hero-bg); --text:var(--hero-text); --secondary:var(--hero-secondary); --accent:var(--hero-accent); --border:var(--hero-border); --input-border:var(--hero-input-border); --scheme:var(--hero-scheme); }
body,.booking-bar,.section-nav,.partner-section,.contact-form,.detail-dialog,.photo-dialog,.intro-seal,.room-tag,.wedding-photo,.promises,.dining,.mission,.reservation,.footer,.site-header,.facade-hero,.subhero,.weddings {
  --paper:var(--surface); --ink:var(--text); --muted:var(--secondary); --line:var(--border);
  background:var(--surface); color:var(--text); color-scheme:var(--scheme);
}
body { background:var(--page-bg); }
button { color:inherit; }
.site-header,.site-header.menu-open { background:var(--surface); border-color:var(--border); color:var(--text); }
.site-header.menu-open nav { background:var(--surface); border-color:var(--border); color:var(--text); }
.site-header .brand img { filter:brightness(0) invert(var(--header-logo-light)); }
.footer .brand img { filter:brightness(0) invert(var(--footer-logo-light)); }
.brand small,.footer .eyebrow { color:var(--accent); }
.menu-toggle span { background:var(--text); }
nav a::after { background:var(--accent); }
.eyebrow,.booking-title>span,.contact-item>span,.icon,.dialog-room-meta,.values-list article>span,.promise-number { color:var(--accent); }
.welcome h2 em,.dining-note p { color:var(--accent); }
.booking-bar label,.amenities span,.dining-note span,.reservation-intro>p:not(.eyebrow),.reservation-intro>span,.reservation-detail p,.form-note,.footer-top>div>a,.footer-top>div>p:not(.eyebrow),.footer-bottom { color:var(--secondary); }
.booking-bar input,.intro-seal,.reservation-phone,.footer-top>.footer-invite>p:not(.eyebrow),.footer-top .footer-invite a { color:var(--text); }
.reservation .eyebrow { color:var(--accent); }
.promise-grid article,.dining-note,.reservation-detail,.footer-bottom,.intro-seal,.text-link { border-color:var(--border); }
.text-link:hover { color:var(--accent); }
.room-filters .active { color:var(--accent); border-bottom-color:var(--accent); }
.room-line .text-link { color:var(--text); }
.room-image { background:var(--panel-bg); }
.room-tag { color:var(--text); }
.wedding-photo span { color:var(--secondary); }
.partner-grid img { background:#fff; border:1px solid #eee7df; }
.form-grid label,.contact-form label { color:var(--text); }
.form-grid input,.form-grid textarea,.form-grid select,.contact-form input,.contact-form textarea,.contact-form select {
  background:var(--surface); color:var(--text); border-color:var(--input-border); color-scheme:var(--scheme);
}
.form-grid input::placeholder,.form-grid textarea::placeholder,.contact-form input::placeholder,.contact-form textarea::placeholder { color:var(--secondary); opacity:1; }
.form-grid select option,.contact-form select option { background:var(--surface); color:var(--text); }
.form-grid input:autofill,.form-grid textarea:autofill { box-shadow:0 0 0 1000px var(--surface) inset; -webkit-text-fill-color:var(--text); }
.form-grid input:focus,.form-grid textarea:focus,.form-grid select:focus { outline-color:var(--accent); border-color:var(--accent); }
.form-error,.contact-form .form-error { color:var(--text); border-left:2px solid var(--accent); padding-left:12px; }
.enquiry-dialog pre { background:var(--surface); color:var(--text); border-color:var(--input-border); }
.dialog-close { background:var(--surface); color:var(--text); border:1px solid var(--border); }
.photo-dialog p { color:var(--text); }
.button-gold { background:#d6b47d; color:#35151e; }
.button-gold:hover { background:#e4c797; }
.button-wine { background:#35151e; color:#fff7f3; border-color:#a98899; }
.button-wine:hover { background:#4b2433; }
.button-light { background:var(--panel-bg); color:var(--panel-text); border-color:var(--panel-border); }
.button-outline { color:var(--text); border-color:var(--input-border); }
.skip-link { background:#35151e; color:#fff; }
a:focus-visible,button:focus-visible { outline-color:var(--accent); }
/* Solid text panels preserve contrast at every point in the lighting range. */
.subhero .hero-shade,.wedding-shade { display:none; }
.wedding-copy { background:var(--surface); }
.subhero .eyebrow,.wedding-copy .eyebrow { color:var(--accent); }
.subhero-copy>p:not(.eyebrow),.wedding-copy>p:not(.eyebrow) { color:var(--secondary); }
.venue-names { color:var(--text); }
.venue-names i { background:var(--accent); }
/* The home photograph remains untouched; the surrounding palette follows it. */
.facade-hero { --night:var(--theme-progress); background:var(--surface); }
.facade-copy .eyebrow,.facade-copy h1 em { color:var(--accent); }
.facade-intro,.light-control-title label,.light-control>p,.facade-thumbnails>span,.depth-controls,.facade-footer,.facade-loading .light-control>p { color:var(--secondary); }
.light-control-title output,.light-control-row>button[aria-pressed=true],.depth-controls button,.depth-controls button[aria-pressed=false] { color:var(--accent); }
.light-control-row>button { color:var(--secondary); }
.light-control { border-color:var(--border); }
.light-control-row input::-webkit-slider-runnable-track { background:linear-gradient(90deg,var(--accent) var(--light-progress),var(--border) var(--light-progress)); }
.light-control-row input::-moz-range-track { background:var(--border); }
.light-control-row input::-moz-range-progress { background:var(--accent); }
.light-control-row input::-webkit-slider-thumb { border-color:var(--surface); background:var(--accent); box-shadow:0 0 0 1px var(--accent); }
.light-control-row input::-moz-range-thumb { border-color:var(--surface); background:var(--accent); box-shadow:0 0 0 1px var(--accent); }
.light-control-row input:focus-visible,.facade-stage:focus-visible { outline-color:var(--accent); }
.exterior-thumbnail { background:var(--panel-bg); border-color:var(--border); }
.exterior-thumbnail:hover { border-color:var(--accent); }
.facade-outline,.depth-controls button { border-color:var(--border); }
.facade-footer .scroll-line { background:var(--accent); }
