:root { --cream:#f3ede3; --wine:#4a1621; --ink:#2b2a22; --muted:#6b6257; }
html { scroll-behavior:smooth; scroll-padding-top:24px; }
*, *::before, *::after { box-sizing:border-box; }
[hidden] { display:none !important; }
body { overflow-wrap:break-word; }
a { text-underline-offset:4px; }
button, input, textarea, select { font:inherit; }
a:focus-visible, button:focus-visible, summary:focus-visible {
  outline:3px solid currentColor; outline-offset:5px;
}
iframe:focus-visible { outline:3px solid var(--wine); outline-offset:4px; }
.site-main { width:100%; display:flex; flex-direction:column; align-items:center; }
.site-main:focus, #contact:focus { outline:none; }
.skip-link { position:fixed; top:8px; right:12px; z-index:1000; padding:12px 18px;
  color:#fff; background:var(--wine); border-radius:8px; transform:translateY(-180%); }
.skip-link:focus { transform:translateY(0); color:#fff; }
.hero-photo { max-height:640px; object-fit:cover; object-position:center; }
.header-contact { color:var(--wine); font-weight:700; min-height:44px; display:inline-flex; align-items:center; }
.primary-link { align-self:flex-start; display:inline-flex; justify-content:center; align-items:center;
  min-height:52px; padding:13px 24px; border-radius:12px; background:var(--wine); color:#fff;
  font-size:18px; font-weight:700; text-decoration:none; line-height:1.5; }
.primary-link:hover { background:#361018; color:#fff; }
.contact-section { width:100%; display:flex; justify-content:center; background:var(--cream);
  color:var(--ink); border-top:1px solid #c9b8a3; }
.contact-section > div { padding-block:88px !important; }
.contact-section h2 { color:var(--wine); }
.contact-content { width:100%; max-width:560px; display:flex; flex-direction:column; gap:16px;
  text-align:right; scroll-margin-top:32px; }
.contact-title { margin:0; font-family:'Frank Ruhl Libre',serif; font-size:32px; line-height:1.35; }
.contact-intro { margin:0; font-size:18px; line-height:1.7; }
.form-notice { margin:0; color:var(--muted); font-size:14px; line-height:1.8; }
.contact-content a { color:var(--wine); }
.form-embed { width:100%; padding:0; background:transparent; }
.form-embed iframe { display:block; width:100%; border:0; background:transparent; }
.form-fallback { margin:0; font-size:14px; line-height:2; }
.form-fallback a { display:inline-block; padding-block:4px; }
.slide-stage { min-width:0; }
.slide-status { margin:0; font-size:14px; color:var(--muted); text-align:center; }
.site-footer { width:100%; background:#3a1019; color:#f3ede3; }
.site-footer > div { max-width:1280px; margin:auto; padding:32px 64px; font-size:14px; line-height:1.8; }
.site-footer nav { display:flex; flex-wrap:wrap; gap:8px 28px; }
.site-footer a, .site-footer button { color:#e8be6a; min-height:44px; display:inline-flex; align-items:center; }
.site-footer button { border:0; padding:0; background:none; cursor:pointer; text-decoration:underline; }
.site-footer p { margin:16px 0 0; }
.legal-header { max-width:920px; margin:0 auto; padding:28px 24px; }
.legal-header a { color:var(--wine); display:inline-block; min-height:44px; padding-block:10px; }
.legal-main { width:100%; max-width:920px; margin:0 auto; padding:20px 24px 80px;
  font-size:18px; line-height:1.85; }
.legal-main h1 { font-family:'Frank Ruhl Libre',serif; color:var(--wine); font-size:clamp(36px,6vw,56px); line-height:1.2; }
.legal-main h2 { font-size:24px; line-height:1.4; margin-top:36px; color:var(--wine); }
.legal-main a { color:var(--wine); overflow-wrap:anywhere; }
.legal-main li { margin-block:8px; }
.legal-main .updated { color:var(--muted); font-size:16px; }
.legal-main table { width:100%; border-collapse:collapse; font-size:16px; }
.legal-main th, .legal-main td { text-align:right; vertical-align:top; border:1px solid #c9b8a3; padding:12px; }
.consent-panel { width:min(620px,calc(100% - 32px)); border:1px solid #847866; border-radius:16px;
  background:var(--cream); color:var(--ink); padding:24px; max-height:85vh; overflow:auto; }
.consent-panel::backdrop { background:rgb(30 15 20 / .55); }
.consent-panel h2 { margin:0 0 12px; font-size:24px; }
.consent-panel p { line-height:1.7; }
.consent-panel a { color:var(--wine); }
.consent-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:20px; }
.consent-actions button { flex:1 1 180px; min-height:48px; padding:12px; border:1px solid var(--wine);
  border-radius:10px; cursor:pointer; background:#fff; color:var(--wine); font-weight:700; }
.consent-actions button:hover { background:#e9e0d1; }
.consent-panel[data-fallback] { position:fixed; z-index:999; inset:auto 16px 16px auto; margin:0; box-shadow:0 8px 36px #0004; }
@media (max-width:760px) {
  .hero-photo { max-height:380px; }
  .contact-section > div { padding-block:56px !important; }
  .contact-title { font-size:28px; }
  .site-footer > div { padding:28px 20px; }
  .slide-stage { min-height:220px; }
  .legal-main { font-size:17px; }
  .legal-main th, .legal-main td { padding:8px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { transition:none !important; animation:none !important; }
}
