/* Orélia — charte V2, 28 octobre 2026.
   Shared identity layer; layouts, content and integration behaviour stay in styles.css.
   Logos in assets/brand-v2 are byte-identical to the supplied kit. */
:root {
  --ivory: #F7F3EC;
  --bordeaux: #512838;
  --patinated-gold: #805E32;
  --brand-cream: #EEE7DD;
  --paper: var(--ivory);
  --cream: var(--brand-cream);
  --wine: var(--bordeaux);
  --wine-deep: var(--bordeaux);
  --gold: var(--patinated-gold);
  --ink: var(--bordeaux);
  --muted: var(--bordeaux);
  --brand-line: color-mix(in srgb, var(--bordeaux) 22%, var(--ivory));
  --line: var(--brand-line);
  --serif: 'Marcellus', Georgia, serif;
  --sans: 'Manrope', Arial, sans-serif;
  --text-body: 16px;
  --text-info: 14px;
  --text-action: 15px;
  --title-main: 48px;
  --title-section: 32px;
  --title-card: 26px;
  --header-height: 104px;
  --logo-width: 140px;
  --logo-space: 8px;
  --logo-gift-width: 160px;
}
body {font:400 var(--text-body)/1.6 var(--sans);color:var(--wine);background:var(--paper)}
body :is(h1,h2,h3) {font-family:var(--serif);font-weight:400;font-style:normal;letter-spacing:0;line-height:1.2;text-wrap:balance}
body main h1, .hero-video .hero-video-copy h1 {font-size:var(--title-main)!important;line-height:1.2;letter-spacing:0}
body main h2, .booking-dialog h2 {font-size:var(--title-section)!important;line-height:1.25}
body main h3 {font-size:var(--title-card);line-height:1.3}
body main p:not(.eyebrow):not(.quiet-caption):not(.preview-notice):not(.care-price-note):not(.care-search-status):not(.review-date):not(.voucher-value):not(.voucher-from):not(.gs-help):not(.gs-code) {font-family:var(--sans);font-size:var(--text-body);line-height:1.6;font-weight:400;font-style:normal}
.eyebrow,.care-duration,.care-rate,.detail-note,.quiet-caption,.preview-notice,.care-price-note,.review-date,.field small {font-size:var(--text-info);line-height:1.6;font-weight:500}
.eyebrow {letter-spacing:.12em}
body main .description, body .hero-video-description {font:400 16px/1.6 var(--sans)}
.gold {color:var(--gold)}
body :is(.button,.text-link,.care-reserve,.nav>a,.nav-dropdown>summary,.nav-submenu>a,.language,.care-nav a) {font-family:var(--sans);font-size:var(--text-action);font-weight:600;line-height:1.5;letter-spacing:0}
body .button {min-height:48px;padding:12px 23px;background:var(--wine);border-color:var(--wine);color:var(--paper);transition:background .18s,color .18s}
body .button:hover {background:var(--paper);color:var(--wine)}
body .button.light {background:var(--paper);color:var(--wine);border-color:var(--paper)}
body .button.light:hover {background:var(--wine);color:var(--paper)}
body .button.outline {background:transparent;color:var(--wine);border-color:var(--wine)}
body .button.outline:hover {background:var(--wine);color:var(--paper)}
body :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible {outline:2px solid var(--wine);outline-offset:4px;box-shadow:0 0 0 2px var(--paper)}
.hero-video :focus-visible,.mini-card:focus-visible,.voucher :focus-visible {outline-color:var(--paper);box-shadow:0 0 0 2px var(--wine)}
body :is(input,select,textarea) {font:400 16px/1.6 var(--sans);color:var(--wine);background:var(--paper);border-color:var(--gold);accent-color:var(--wine)}
body :is(input,select,textarea)::placeholder {color:var(--wine);opacity:.7}
.field label {font-size:14px;font-weight:500}
.field input,.field select {min-height:48px}
/* Compact principal signature, matching the approved home hero. */
.header,.home-video .header,.home-video .header.header-scrolled,.home-video .header:not(.header-scrolled) {height:var(--header-height);background:var(--paper);color:var(--wine);border-bottom:1px solid var(--line)}
.header .header-inner,.home-video .header-inner {width:calc(100% - 64px);max-width:1440px;gap:22px}
body .brand {display:flex;width:calc(var(--logo-width) + 2 * var(--logo-space));padding:var(--logo-space);flex:0 0 auto;background:transparent}
body .brand img {width:var(--logo-width);max-width:none;height:auto;aspect-ratio:1200/773;object-fit:contain;filter:none!important}
.header .nav {gap:20px;color:var(--wine);margin-left:auto}
.header .nav>a,.header .nav-dropdown>summary {padding-block:12px;min-height:44px}
.header .header-end {gap:15px;flex-shrink:0}
.header .header-end>.button,.home-video .header:not(.header-scrolled) .header-end>.button {min-height:48px;padding:12px 18px;background:var(--wine);color:var(--paper);border-color:var(--wine)}
.header .header-end>.button:hover,.home-video .header:not(.header-scrolled) .header-end>.button:hover {background:var(--paper);color:var(--wine)}
.home-video .header:not(.header-scrolled) .nav>a:after {background:var(--wine)}
.home-video .header:not(.header-scrolled) .nav-dropdown.is-current>summary {color:var(--wine)}
.home-video .header .language a {opacity:1}
.header .language a {min-width:30px;min-height:44px;justify-content:center}
.header .menu-button {min-width:44px;min-height:44px;color:var(--wine);flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:10px}
.header .menu-button span {width:24px;height:1px;flex-shrink:0;margin:0;background:var(--wine)}
.home-video .header:not(.header-scrolled) .menu-button span {background:var(--wine)}
.home-video .header:not(.header-scrolled) :focus-visible {outline-color:var(--wine)}
.nav-submenu {background:var(--paper);border-color:var(--line)}
.nav-submenu a:hover {background:var(--cream)}
.care-nav {top:var(--header-height)}
html {scroll-padding-top:calc(var(--header-height) + 24px)}
.hero-video .hero-video-copy {max-width:600px}
.hero-video .hero-video-copy h1 {max-width:540px;margin:24px 0}
.hero-video .hero-video-copy h1 em,.hero-video .hero-video-copy>.eyebrow,.hero-video-description,.hero-video-location {color:var(--paper)}
.hero-video-main {padding-top:calc(var(--header-height) + 64px);padding-bottom:48px}
/* Retain the approved video overlay, source selection and audio controls unchanged. */
.hero-video .hero-video-copy .button {background:var(--paper);color:var(--wine);border-color:var(--paper)}
.hero-video .hero-video-copy .button:hover {background:var(--wine);color:var(--paper)}
.hero-video .hero-video-copy .text-link,.hero-video-control {color:var(--paper);font-size:15px}
.hero-video-controls button {min-height:44px}
/* Existing arches and panoramic friezes retain their approved placement. */
.closing {background:var(--paper) url('/assets/brand-v2/Orelia_Motif_01_Geste.svg') center/cover no-repeat}
.closing:before {content:none}
.care-card,.review-platform,.dialog-inner,.gift-form {color:var(--wine)}
.care-card {background:var(--paper);border-color:var(--line)}
.care-help .button {max-width:100%;white-space:normal;text-align:center;overflow-wrap:break-word}
.ritual-tab {font:500 16px/1.6 var(--sans);min-height:48px}
.ritual-feature-content h3 {font-size:32px}
.ritual-metrics .metric strong,.care-rate strong {font-weight:500}
.faq-list summary {font:500 16px/1.6 var(--sans);min-height:48px}
.booking-dialog {color:var(--wine);background:var(--paper)}
.booking-dialog .dialog-inner {padding:46px}
.booking-intro,.booking-option strong {font-size:16px;font-weight:500;line-height:1.6}
.booking-option small,.dialog-foot,.booking-category>summary {font-size:14px;font-weight:500}
.booking-option {min-height:64px;border-color:var(--line)}
.booking-option:hover {background:var(--cream)}
.dialog-close {width:44px;height:44px;color:var(--wine)}
.mini-card .eyebrow,.mini-card .serif {color:var(--paper)}
.mini-card .small-brand {width:var(--logo-width);height:auto;position:static;display:block;margin:26px 0 0 auto;filter:none}
.mini-card:after {content:none}
.mini-card:before {border-color:var(--gold)}
.mini-card {min-height:320px;padding:40px}
.mini-card .serif {font-size:32px;line-height:1.3}
.voucher:after {content:none}
.voucher:before {border-color:var(--gold)}
.voucher-brand {display:block;width:calc(var(--logo-gift-width) + 2 * var(--logo-space));max-width:100%;margin:8px auto 24px;padding:var(--logo-space)}
.voucher .voucher-logo {display:block;width:100%;height:auto;margin:0;filter:none}
.voucher :is(.eyebrow,.voucher-message,.voucher-from,.voucher-value,.voucher-stamp) {color:var(--paper)}
.voucher h3 {font-size:32px;color:var(--paper)}
.voucher-stamp {border-color:var(--paper);font-size:12px}
.voucher-recipient {font-size:28px}
.footer {background:var(--paper);color:var(--wine)}
.footer-grid {grid-template-columns:1.25fr 1fr 1fr;gap:48px}
.footer .brand {margin:0 0 20px calc(-1 * var(--logo-space))}
.footer address {max-width:300px}
.footer :is(p,a,address,h3,.footer-bottom) {color:var(--wine);font-size:14px;line-height:1.6}
.footer h3 {font-family:var(--sans);font-weight:600;font-size:14px}
.footer-links a,.footer-care a,.legal-footer a {min-height:32px;padding-block:6px}
.footer-bottom {font-size:14px}
.mobile-booking {background:var(--paper);color:var(--wine);border-color:var(--line)}
.mobile-booking .button {min-height:48px}
@media (max-width:1350px) {
  .header .header-inner,.home-video .header-inner {gap:14px;width:calc(100% - 40px)}
  .header .nav {gap:14px}
  .header .header-end {gap:10px}
}
@media (max-width:1279px) {
  .header .menu-button {display:flex}
  .header .nav {display:none;position:absolute;top:calc(var(--header-height) - 1px);left:0;right:0;margin:0;background:var(--paper);padding:24px 32px;flex-direction:column;align-items:stretch;gap:8px;border-bottom:1px solid var(--line);max-height:calc(100dvh - var(--header-height));overflow:auto}
  .header .nav.is-open {display:flex}
  .header .nav-dropdown {width:100%}
  .header .nav-dropdown>summary {justify-content:space-between}
  .header .nav-submenu {position:static;border:0;border-left:1px solid var(--line);min-width:0;margin:8px 0;padding:0 0 0 12px;box-shadow:none}
  .header .nav-submenu a {white-space:normal;min-height:44px}
  .header .nav.is-open .mobile-menu-booking {display:inline-flex;align-self:stretch;justify-content:center;color:var(--paper);background:var(--wine);margin-top:8px}
  .header .header-end {margin-left:auto;gap:20px}
  .footer-grid {gap:24px;grid-template-columns:1.2fr 1fr 1fr}
}
@media (max-width:767px) {
  .footer-grid {grid-template-columns:1fr 1fr}
  .footer-grid>div:first-child {grid-column:1/-1;display:block}
  .footer :is(a,p,address,h3) {font-size:14px}
  .footer a {min-height:44px}
}
@media (max-width:620px) {
  :root {--title-main:34px;--title-section:28px;--title-card:24px;--header-height:90px;--logo-width:120px;--logo-space:6px;--logo-gift-width:140px}
  .header .header-inner,.home-video .header-inner {width:calc(100% - 32px);padding:0;display:flex;gap:8px}
  .header .header-end {width:auto;display:flex;gap:12px;margin-left:auto}
  .header .header-end>.button {display:none}
  .header .language {font-size:14px}
  .header .language>strong,.header .language>span {display:none}
  .header .language>a {min-width:44px;min-height:44px}
  .header .nav {padding:20px 24px 26px}
  .hero-video-main {padding-top:calc(var(--header-height) + 32px);padding-bottom:28px}
  .hero-video .hero-video-copy h1 {margin:22px 0;line-height:1.2}
  .hero-video-copy>.eyebrow {font-size:12px;letter-spacing:.1em}
  .hero-video .hero-video-copy {max-width:100%}
  .hero-video .hero-video-copy .actions {gap:16px}
  .hero-video .hero-video-copy .button {min-height:48px}
  .care-nav {position:static;grid-template-columns:repeat(2,minmax(0,1fr))}
  .care-nav a {font-size:14px;min-height:48px}
  .ritual-feature-content h3 {font-size:28px}
  .mini-card {width:calc(100% - 12px);padding:32px;min-height:300px}
  .mini-card .serif {font-size:28px}
  .mini-card .small-brand {margin-top:28px}
  .voucher {padding:28px 24px;min-height:0}
  .voucher-brand {margin:0 auto 24px}
  .voucher h3 {font-size:28px}
  .booking-dialog .dialog-inner {padding:54px 24px 28px}
  .booking-dialog h2 {font-size:28px}
  .closing {background-size:auto 100%}
  .mobile-booking {gap:12px;padding:10px 16px;align-items:center}
  .mobile-booking>span {font-size:13px;line-height:1.4;flex:1;min-width:70px}
  .mobile-booking .button {font-size:14px;padding:10px 14px;gap:10px;flex-shrink:0}
}
@media (prefers-reduced-motion:reduce) {body .button {transition:none}}
@media print {
  .voucher-brand {width:176px;padding:8px}
}
