@font-face { font-family: "Cormorant Garamond"; src: url("/assets/fonts/Corm.a0be49206e.woff2") format("woff2"); font-weight: 300 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Cormorant Garamond"; src: url("/assets/fonts/CormI.92dfc61207.woff2") format("woff2"); font-weight: 300 700; font-style: italic; font-display: swap; }
@font-face { font-family: "Manrope"; src: url("/assets/fonts/Manrope.001becc87b.woff2") format("woff2"); font-weight: 200 800; font-style: normal; font-display: swap; }
:root {
--paper: #f8f5f0; --surface: #ffffff; --surface-2: #fbf7f1; --ink: #161a2e; --ink-soft: #5b5f73;
--night: #12162a; --night-2: #1d2240; --on-dark: #f4efe6; --on-dark-soft: rgba(244,239,230,.74);
--gold: #a87a33; --gold-hi: #e3c27f; --gold-grad: linear-gradient(135deg, #f0d697 0%, #d1a456 50%, #a8782f 100%);
--teal: #2e6f73; --teal-tint: #e3efed; --rose: #c97c76; --rose-tint: #f8e8e3; --plum: #7a6599; --plum-tint: #eee8f4;
--line: #ebe4da; --ring: rgba(46,111,115,.22); --focus: #c99a4b;
--shadow: 0 1px 2px rgba(22,26,46,.04), 0 16px 40px -20px rgba(22,26,46,.25);
--shadow-lg: 0 40px 80px -30px rgba(18,22,42,.5);
--r-sm: 14px; --r: 20px; --r-lg: 30px;
color-scheme: light; box-sizing: border-box;
padding-top: env(safe-area-inset-top, 0px); padding-bottom: env(safe-area-inset-bottom, 0px);
}
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) {
--paper: #0d1020; --surface: #161a2e; --surface-2: #1a1f37; --ink: #f1ece3; --ink-soft: #aaacbb;
--night: #0a0d1a; --night-2: #171b33; --gold: #e0bd78; --teal: #84c6c3; --teal-tint: #16292c;
--rose: #e8a8a1; --rose-tint: #241a22; --plum: #b9a3d9; --plum-tint: #211c30; --line: #262b45;
--ring: rgba(132,198,195,.26); --shadow: 0 16px 40px -20px rgba(0,0,0,.7); --shadow-lg: 0 40px 80px -30px rgba(0,0,0,.8);
color-scheme: dark;
}
}
:root[data-theme="dark"] {
--paper: #0d1020; --surface: #161a2e; --surface-2: #1a1f37; --ink: #f1ece3; --ink-soft: #aaacbb;
--night: #0a0d1a; --night-2: #171b33; --gold: #e0bd78; --teal: #84c6c3; --teal-tint: #16292c;
--rose: #e8a8a1; --rose-tint: #241a22; --plum: #b9a3d9; --plum-tint: #211c30; --line: #262b45;
--ring: rgba(132,198,195,.26); --shadow: 0 16px 40px -20px rgba(0,0,0,.7); --shadow-lg: 0 40px 80px -30px rgba(0,0,0,.8);
color-scheme: dark;
}
*, *::before, *::after { box-sizing: inherit; }
html { scroll-behavior: smooth; scroll-padding-top: calc(env(safe-area-inset-top, 0px) + 84px); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; animation: none !important; } }
body { margin: 0; background: var(--paper); color: var(--ink); font: 400 1rem/1.7 "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif; -webkit-font-smoothing: antialiased; }
body::before { content: ""; position: fixed; inset: 0 0 auto; height: env(safe-area-inset-top, 0px); z-index: 60; background: var(--night); }
img, svg { max-width: 100%; }
a { color: var(--teal); text-underline-offset: .2em; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; border-radius: 8px; }
.ui { font-family: "Manrope", system-ui, sans-serif; }
.wrap { width: min(1200px, 100% - 2.5rem); margin-inline: auto; }
.skip { position: absolute; left: -999px; top: 0; background: var(--gold-hi); color: #161a2e; padding: .6rem 1rem; z-index: 99; border-radius: 999px; }
.skip:focus { left: 1rem; top: calc(env(safe-area-inset-top, 0px) + .5rem); }
h1, h2, h3, .tour-time strong, .price strong, .steps li::before { font-variant-numeric: lining-nums; }
h1, h2, h3 { font-family: "Cormorant Garamond", "Cormorant", Georgia, serif; font-weight: 500; line-height: 1.05; letter-spacing: -.01em; margin: 0 0 .55em; }
h1 { font-size: clamp(3rem, 6.4vw, 5.4rem); }
h2 { font-size: clamp(2.3rem, 4.2vw, 3.5rem); }
h3 { font-size: 1.7rem; font-weight: 600; }
h1 em, h2 em { font-style: italic; background: var(--gold-grad); -webkit-background-clip: text; background-clip: text; color: transparent; padding-right: .06em; }
p { margin: 0 0 1em; max-width: 68ch; }
.site-header { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 50; background: rgba(18,22,42,.82); -webkit-backdrop-filter: blur(16px) saturate(150%); backdrop-filter: blur(16px) saturate(150%); color: var(--on-dark); border-bottom: 1px solid rgba(227,194,127,.22); }
.site-header .wrap { display: flex; align-items: center; gap: 1.5rem; min-height: 78px; }
.brand { display: flex; align-items: center; text-decoration: none; color: var(--on-dark); --logo-accent: #e3c27f; }
.brand .logo { height: 68px; width: auto; display: block; }
@media (max-width: 520px) { .brand .logo { height: 58px; } }
.nav { margin-left: auto; display: flex; gap: 1.6rem; align-items: center; font-size: .9rem; font-weight: 500; }
.nav a { color: var(--on-dark-soft); text-decoration: none; transition: color .2s; }
.nav a:hover { color: var(--gold-hi); }
.lang { display: flex; gap: .3rem; font-size: .78rem; font-weight: 600; }
.lang a, .lang span { padding: .2rem .55rem; border: 1px solid rgba(227,194,127,.4); border-radius: 999px; text-decoration: none; color: var(--on-dark); }
.lang span { background: var(--gold-hi); color: #161a2e; border-color: var(--gold-hi); }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; font: 700 .92rem/1 "Manrope", system-ui, sans-serif; letter-spacing: .01em; padding: 1rem 1.6rem; border-radius: 999px; text-decoration: none; border: 1.5px solid transparent; cursor: pointer; transition: transform .2s, box-shadow .2s, filter .2s; }
.btn-primary { background: var(--gold-grad); color: #1d1608 !important; box-shadow: 0 12px 28px -12px rgba(176,128,52,.75), inset 0 1px 0 rgba(255,255,255,.45); }
.btn-primary:hover { transform: translateY(-2px); filter: brightness(1.05); box-shadow: 0 18px 34px -12px rgba(176,128,52,.85), inset 0 1px 0 rgba(255,255,255,.45); }
.btn-ghost { border-color: currentColor; color: inherit; background: transparent; }
.btn-ghost:hover { transform: translateY(-2px); }
.menu-toggle { display: none; margin-left: auto; background: none; border: 1px solid rgba(227,194,127,.45); color: var(--on-dark); border-radius: 999px; padding: .5rem 1rem; font: 600 .88rem "Manrope", sans-serif; }
@media (max-width: 1100px) {
.menu-toggle { display: block; }
.nav { display: none; position: absolute; top: 78px; left: .8rem; right: .8rem; background: rgba(18,22,42,.97); border: 1px solid rgba(227,194,127,.2); border-radius: var(--r); flex-direction: column; align-items: flex-start; padding: 1.2rem 1.4rem 1.6rem; gap: 1rem; box-shadow: var(--shadow-lg); }
.nav.open { display: flex; }
}
.hero { position: relative; overflow: hidden; background: var(--night); color: var(--on-dark); padding: 2.2rem 0 8rem; border-radius: 0 0 48px 48px; }
.hero-bg { position: absolute !important; inset: 0; margin: 0; border-radius: 0 !important; z-index: 0; background: var(--night) !important; }
.hero::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
background: linear-gradient(90deg, rgba(18,22,42,.88) 0%, rgba(18,22,42,.62) 34%, rgba(18,22,42,.14) 64%, rgba(18,22,42,0) 100%), linear-gradient(0deg, rgba(18,22,42,.5) 0%, transparent 28%); }
@media (max-width: 900px) { .hero::after { background: linear-gradient(180deg, rgba(18,22,42,.35) 0%, rgba(18,22,42,.6) 40%, rgba(18,22,42,.88) 100%); } }
.hero-grid { position: relative; z-index: 2; display: grid; grid-template-columns: 1.05fr .95fr; gap: 3.5rem; align-items: center; }
@media (max-width: 900px) { .hero-grid { grid-template-columns: 1fr; gap: 2.2rem; } .hero { border-radius: 0 0 32px 32px; } }
.crumbs { font-size: .8rem; color: var(--on-dark-soft); margin-bottom: 1.6rem; }
.crumbs ol { list-style: none; padding: 0; margin: 0; display: flex; gap: .4rem; }
.crumbs a { color: var(--on-dark-soft); }
.kicker { display: inline-flex; align-items: center; gap: .7rem; font: 600 .78rem "Manrope", sans-serif; letter-spacing: .14em; text-transform: uppercase; color: var(--gold-hi); margin-bottom: 1.2rem; }
.kicker::before { content: ""; width: 34px; height: 1px; background: var(--gold-hi); }
.hero .lede { font-size: 1.12rem; color: var(--on-dark-soft); }
.hero-ctas { display: flex; gap: .8rem; flex-wrap: wrap; margin: 1.8rem 0 2rem; }
.hero .btn-ghost { color: var(--on-dark); border-color: rgba(244,239,230,.45); }
.facts { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .7rem; margin: 0; font-size: .9rem; }
.facts > div { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); border-radius: 18px; padding: .8rem 1rem; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.facts dt { font-weight: 700; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--gold-hi); }
.facts dd { margin: .15rem 0 0; color: var(--on-dark); }
.map-card { background: var(--surface); color: var(--ink); border-radius: var(--r-lg); padding: 1.4rem 1.4rem 1rem; box-shadow: var(--shadow-lg); border: 1px solid rgba(227,194,127,.35); }
.map-card figcaption { font-size: .82rem; color: var(--ink-soft); padding: .3rem .4rem 0; }
.map-svg text { font-family: "Manrope", system-ui, sans-serif; fill: var(--ink); }
.map-svg .ring { fill: none; stroke: var(--ring); stroke-width: 1.2; }
.map-svg .ring:nth-of-type(odd) { fill: rgba(227,194,127,.06); }
.map-svg .ring-label { font-size: 11px; fill: var(--ink-soft); }
.map-svg .spoke { stroke: var(--gold-hi); stroke-width: 1.2; stroke-dasharray: 2 4; }
.map-svg .dest { cursor: pointer; }
.map-svg .dest circle { fill: var(--teal); stroke: var(--surface); stroke-width: 2.5; transition: r .15s; }
.map-svg .dest text { font-size: 12.5px; font-weight: 600; }
.map-svg .dest .t { font-size: 10.5px; fill: var(--ink-soft); font-weight: 500; }
.map-svg .dest:hover circle, .map-svg .dest:focus circle { r: 8; fill: #c99a4b; }
.map-svg .dest:focus { outline: none; }
.map-svg .ref circle { fill: var(--plum); }
.map-svg .origin circle { fill: #c99a4b; stroke: #f0d697; stroke-width: 4; }
section { padding: 5.5rem 0; }
.band { background: linear-gradient(180deg, var(--rose-tint) 0%, var(--surface-2) 100%); }
.section-head { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: end; margin-bottom: 2.4rem; }
.section-head p { color: var(--ink-soft); margin: 0; }
@media (max-width: 800px) { .section-head { grid-template-columns: 1fr; gap: .5rem; } }
.inshort { position: relative; z-index: 3; margin-top: -5rem; background: var(--surface); border-radius: var(--r-lg); padding: 2.2rem 2.4rem; box-shadow: var(--shadow-lg); border: 1px solid var(--line); overflow: hidden; }
.inshort::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: var(--gold-grad); }
.inshort h2 { font-size: 1.9rem; margin-bottom: .6rem; }
.inshort ul { margin: 0; padding-left: 1.2rem; }
.inshort li { margin: .4rem 0; max-width: 85ch; }
.inshort li::marker { color: #c99a4b; }
@media (max-width: 600px) { .inshort { padding: 1.6rem 1.4rem; margin-top: -4rem; } }
.filters { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 2rem; }
.filters button { font: 600 .86rem "Manrope", sans-serif; padding: .6rem 1.1rem; border-radius: 999px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); cursor: pointer; box-shadow: var(--shadow); transition: transform .15s; }
.filters button:hover { transform: translateY(-1px); }
.filters button[aria-pressed="true"] { background: var(--night); color: var(--gold-hi); border-color: var(--night); }
.tours { display: grid; gap: 1.4rem; }
.tour { display: grid; grid-template-columns: 15rem 1fr 15rem; gap: 2rem; padding: 1.3rem; background: var(--surface); border-radius: var(--r-lg); box-shadow: var(--shadow); border: 1px solid var(--line); transition: transform .25s, box-shadow .25s; }
.tour:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.tour[hidden] { display: none; }
@media (max-width: 900px) { .tour { grid-template-columns: 1fr; gap: 1rem; } }
.tour-media .illus { aspect-ratio: 4/3; margin-bottom: .9rem; border-radius: var(--r); }
@media (max-width: 900px) { .tour-media { display: grid; grid-template-columns: 1fr auto; gap: 1rem; align-items: end; } .tour-media .illus { grid-column: 1 / -1; aspect-ratio: 16/9; margin: 0; } }
.tour-time strong { display: block; font: 600 2.1rem/1 "Cormorant Garamond", Georgia, serif; color: var(--gold); }
.tour-time span { font-size: .8rem; color: var(--ink-soft); }
.tour > div:nth-child(2) { padding-top: .4rem; }
.tour h3 { margin-bottom: .4rem; }
.tour h3 a { color: inherit; text-decoration: none; }
.tour h3 a:hover { color: var(--teal); }
.tour p { margin-bottom: .8rem; color: var(--ink-soft); }
.tags { display: flex; flex-wrap: wrap; gap: .4rem; padding: 0; margin: 0 0 .9rem; list-style: none; }
.tags li { font-size: .76rem; font-weight: 600; color: var(--teal); background: var(--teal-tint); padding: .3rem .75rem; border-radius: 999px; }
.price { background: linear-gradient(160deg, var(--surface-2), var(--rose-tint)); border-radius: var(--r); padding: 1.3rem; align-self: stretch; display: flex; flex-direction: column; justify-content: center; }
.price strong { font: 600 2.4rem/1 "Cormorant Garamond", Georgia, serif; display: block; margin-bottom: .3rem; }
.price small { display: block; color: var(--ink-soft); font-size: .8rem; line-height: 1.45; margin-bottom: 1rem; }
details.itin summary { cursor: pointer; font-weight: 700; font-size: .86rem; color: var(--teal); list-style: none; }
details.itin summary::-webkit-details-marker { display: none; }
details.itin summary::before { content: "+ "; }
details.itin[open] summary::before { content: "− "; }
.timeline { list-style: none; margin: 1rem 0 0; padding: 0 0 0 1.1rem; border-left: 2px solid var(--gold-hi); font-size: .94rem; }
.timeline li { margin: 0 0 .55rem; position: relative; }
.timeline li::before { content: ""; position: absolute; left: -1.5rem; top: .5em; width: 10px; height: 10px; border-radius: 50%; background: var(--gold-grad); box-shadow: 0 0 0 3px var(--surface); }
.timeline time { font-weight: 700; font-size: .8rem; color: var(--gold); margin-right: .5rem; }
.incl { font-size: .86rem; color: var(--ink-soft); margin-top: .7rem; }
.table-scroll { overflow-x: auto; background: var(--surface); border-radius: var(--r-lg); box-shadow: var(--shadow); padding: .6rem 1.2rem; }
table { border-collapse: collapse; width: 100%; min-width: 560px; font-size: .96rem; }
caption { text-align: left; font-size: .84rem; color: var(--ink-soft); padding: .8rem 0 .4rem; }
th, td { text-align: left; padding: .95rem .9rem; border-bottom: 1px solid var(--line); }
tbody tr:last-child th, tbody tr:last-child td { border-bottom: 0; }
thead th { font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-soft); }
tbody th { font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.25rem; font-weight: 600; }
td.gain { font-weight: 700; } td.gain::before { content: "+ "; color: #c99a4b; }
.shore-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.6rem; }
@media (max-width: 800px) { .shore-grid { grid-template-columns: 1fr; } }
.shore-grid article { background: var(--surface); border-radius: var(--r-lg); padding: 1rem 1rem 1.6rem; box-shadow: var(--shadow); border: 1px solid var(--line); }
.shore-grid article > :not(figure) { padding-inline: .8rem; }
.shore-grid .illus { aspect-ratio: 16/9; margin-bottom: 1.3rem; border-radius: var(--r); }
.steps { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem; counter-reset: s; }
@media (max-width: 900px) { .steps { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .steps { grid-template-columns: 1fr; } }
.steps li { counter-increment: s; background: var(--surface); border-radius: var(--r-lg); padding: 1.6rem; box-shadow: var(--shadow); }
.steps li::before { content: "0" counter(s); display: block; font: italic 500 3.2rem/1 "Cormorant Garamond", Georgia, serif; background: var(--gold-grad); -webkit-background-clip: text; background-clip: text; color: transparent; margin-bottom: .6rem; }
.steps h3 { font-size: 1.4rem; }
.steps p { font-size: .92rem; color: var(--ink-soft); margin: 0; }
.guide { display: grid; grid-template-columns: .8fr 1.2fr; gap: 3.5rem; align-items: center; }
@media (max-width: 800px) { .guide { grid-template-columns: 1fr; } }
.portrait { aspect-ratio: 4/5; border-radius: 200px 200px var(--r-lg) var(--r-lg); background: linear-gradient(170deg, var(--rose-tint), var(--plum-tint) 60%, var(--teal-tint)); display: grid; place-items: center; color: var(--ink-soft); font-size: .86rem; text-align: center; padding: 2rem; box-shadow: var(--shadow-lg); border: 1px solid rgba(227,194,127,.5); }
.creds { list-style: none; padding: 0; margin: 1.4rem 0 0; display: grid; gap: .7rem; }
.creds li { padding: .7rem 1rem .7rem 2.6rem; position: relative; background: var(--surface); border-radius: var(--r-sm); box-shadow: var(--shadow); font-size: .94rem; }
.creds li::before { content: "✓"; position: absolute; left: .9rem; top: .7rem; width: 1.2rem; height: 1.2rem; border-radius: 50%; background: var(--gold-grad); color: #1d1608; font-size: .7rem; font-weight: 800; display: grid; place-items: center; }
.reviews { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; margin-top: 1.8rem; }
@media (max-width: 900px) { .reviews { grid-template-columns: 1fr; } }
.reviews figure { position: relative; background: var(--surface); border-radius: var(--r-lg); padding: 2.6rem 1.8rem 1.6rem; box-shadow: var(--shadow); border: 1px solid var(--line); display: flex; flex-direction: column; justify-content: space-between; }
.reviews figure::before { content: "“"; position: absolute; top: .2rem; left: 1.4rem; font: 500 5rem/1 "Cormorant Garamond", Georgia, serif; background: var(--gold-grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.reviews blockquote { margin: 0; font: italic 500 1.5rem/1.3 "Cormorant Garamond", Georgia, serif; }
.reviews footer { font-size: .8rem; color: var(--ink-soft); margin-top: 1.2rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.note { font-size: .8rem; color: var(--rose); border: 1px dashed var(--rose); padding: .5rem .9rem; border-radius: 999px; display: inline-block; margin-bottom: 1.5rem; }
.season-scroll { overflow-x: auto; background: var(--surface); border-radius: var(--r-lg); box-shadow: var(--shadow); padding: 1.4rem; }
.months { display: grid; grid-template-columns: repeat(12, minmax(0,1fr)); gap: 6px 4px; font-size: .76rem; min-width: 640px; }
.months .m { text-align: center; color: var(--ink-soft); font-weight: 600; padding-bottom: .4rem; }
.bar { grid-column: var(--from) / var(--to); background: var(--teal-tint); color: var(--ink); padding: .45rem .9rem; border-radius: 999px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 600; }
.bar.alt { background: var(--rose-tint); }
.bar.lil { background: var(--plum-tint); }
.guides { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; }
@media (max-width: 900px) { .guides { grid-template-columns: 1fr; } }
.guides a { color: inherit; text-decoration: none; display: block; height: 100%; }
.guides article { background: var(--surface); border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow); height: 100%; transition: transform .25s, box-shadow .25s; padding-bottom: 1.2rem; }
.guides a:hover article { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.guides article > :not(figure) { padding-inline: 1.5rem; }
.guides .illus { aspect-ratio: 3/2; margin-bottom: 1.1rem; border-radius: 0; }
.guides h3 { font-size: 1.5rem; }
.guides p { font-size: .92rem; color: var(--ink-soft); }
.meta { font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--gold) !important; margin-bottom: .4rem; }
.faq details { background: var(--surface); border-radius: var(--r); padding: 1.15rem 1.5rem; margin-bottom: .7rem; box-shadow: var(--shadow); border: 1px solid var(--line); }
.faq summary { cursor: pointer; font: 600 1.35rem/1.25 "Cormorant Garamond", Georgia, serif; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; flex: none; width: 2rem; height: 2rem; border-radius: 50%; display: grid; place-items: center; font: 600 1.1rem "Manrope", sans-serif; background: var(--gold-grad); color: #1d1608; }
.faq details[open] summary::after { content: "−"; }
.faq details p { margin: .8rem 0 0; color: var(--ink-soft); }
.request { position: relative; overflow: hidden; color: var(--on-dark); border-radius: 48px 48px 0 0; margin-top: 2rem;
background: radial-gradient(700px 420px at 90% 0%, rgba(201,124,118,.32), transparent 65%), radial-gradient(640px 420px at 0% 100%, rgba(201,154,75,.28), transparent 65%), linear-gradient(160deg, var(--night-2), var(--night)); }
.request a { color: var(--gold-hi); }
.request h2 { color: var(--on-dark); }
.form-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 3rem; }
@media (max-width: 860px) { .form-grid { grid-template-columns: 1fr; } .request { border-radius: 32px 32px 0 0; } }
form { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; background: rgba(255,255,255,.05); border: 1px solid rgba(227,194,127,.22); border-radius: var(--r-lg); padding: 1.8rem; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
form .full { grid-column: 1 / -1; }
@media (max-width: 520px) { form { grid-template-columns: 1fr; padding: 1.3rem; } }
label { display: block; font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--gold-hi); margin-bottom: .35rem; }
input, select, textarea { width: 100%; font: 400 1rem "Manrope", sans-serif; padding: .8rem 1rem; border-radius: var(--r-sm); border: 1px solid rgba(244,239,230,.2); background: rgba(255,255,255,.07); color: var(--on-dark); transition: border-color .2s, background .2s; }
input:focus, select:focus, textarea:focus { border-color: var(--gold-hi); background: rgba(255,255,255,.11); outline: none; }
select option { color: #161a2e; }
textarea { min-height: 110px; resize: vertical; }
.request .btn-ghost { color: var(--on-dark); border-color: rgba(244,239,230,.45); }
.form-msg { font-size: .88rem; min-height: 1.3em; color: var(--gold-hi); }
footer.site { padding: 3.5rem 0 2.5rem; font-size: .88rem; line-height: 1.7; color: var(--on-dark-soft); background: var(--night); }
.foot-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 2rem; }
@media (max-width: 800px) { .foot-grid { grid-template-columns: 1fr 1fr; } }
footer.site h2 { font: 700 .74rem "Manrope", sans-serif; letter-spacing: .14em; text-transform: uppercase; color: var(--gold-hi); margin-bottom: .8rem; }
footer.site ul { list-style: none; padding: 0; margin: 0; }
footer.site li { margin: .3rem 0; }
footer.site a { color: var(--on-dark-soft); text-decoration: none; }
footer.site a:hover { color: var(--gold-hi); }
.foot-logo { --logo-accent: #e3c27f; color: var(--on-dark) !important; display: inline-block; margin-bottom: 1rem; }
.foot-logo .logo { height: 56px; width: auto; display: block; }
.legal { border-top: 1px solid rgba(244,239,230,.12); margin-top: 2rem; padding-top: 1.2rem; font-size: .78rem; }
.illus { position: relative; display: block; margin: 0; overflow: hidden; border-radius: var(--r); background: var(--teal-tint); }
.illus img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s; }
.tour:hover .illus img, .guides a:hover .illus img { transform: scale(1.04); }
.gmap { --g-land:#f5f3ee; --g-water:#aadaff; --g-water-t:#4f86b8; --g-park:#cfe8cf; --g-road:#ffffff; --g-mw:#fde293; --g-mw-c:#f0b44c; --g-text:#202124; --g-sub:#5f6368; --g-route:#1a73e8; --g-pin:#ea4335; --g-pin-d:#a50e0e; --g-border:#9aa0a6; --g-card:#ffffff; padding: 0 !important; overflow: hidden; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .gmap { --g-land:#242f3e; --g-water:#17263c; --g-water-t:#7d9cc7; --g-park:#263c3f; --g-road:#38414e; --g-mw:#8a7a58; --g-mw-c:#1f2835; --g-text:#e8eaed; --g-sub:#a7b0bd; --g-route:#8ab4f8; --g-border:#5f6b7a; --g-card:#2d3748; } }
:root[data-theme="dark"] .gmap { --g-land:#242f3e; --g-water:#17263c; --g-water-t:#7d9cc7; --g-park:#263c3f; --g-road:#38414e; --g-mw:#8a7a58; --g-mw-c:#1f2835; --g-text:#e8eaed; --g-sub:#a7b0bd; --g-route:#8ab4f8; --g-border:#5f6b7a; --g-card:#2d3748; }
.gmap-svg { display: block; width: 100%; height: auto; font-family: Roboto, "Manrope", Arial, sans-serif; }
.gmap-svg text { paint-order: stroke; stroke: var(--g-land); stroke-width: 3px; stroke-linejoin: round; }
.g-land { fill: var(--g-land); } .g-park { fill: var(--g-park); opacity: .9; } .g-sea { fill: var(--g-water); }
.g-coast { fill: none; stroke: var(--g-water); stroke-width: 1.5; }
.g-river { fill: none; stroke: var(--g-water); stroke-width: 2.4; stroke-linecap: round; } .g-estuary { stroke-width: 7; }
.g-border { fill: none; stroke: var(--g-border); stroke-width: 1; stroke-dasharray: 5 3; opacity: .6; }
.g-road { fill: none; stroke: var(--g-road); stroke-width: 2.2; stroke-linecap: round; filter: drop-shadow(0 0 .5px rgba(0,0,0,.35)); }
.g-mw-casing { fill: none; stroke: var(--g-mw-c); stroke-width: 5.5; stroke-linecap: round; stroke-linejoin: round; }
.g-mw { fill: none; stroke: var(--g-mw); stroke-width: 3.6; stroke-linecap: round; stroke-linejoin: round; }
.g-shield rect { fill: #d93025; stroke: #fff; stroke-width: 1; } .g-shield text { fill: #fff; stroke: none; font-size: 9px; font-weight: 700; text-anchor: middle; }
.g-water-l { fill: var(--g-water-t); font-size: 15px; font-style: italic; stroke: var(--g-water) !important; } .g-water-l.small { font-size: 10.5px; }
.g-region { fill: var(--g-border); font-size: 10px; font-weight: 700; letter-spacing: .22em; }
.g-route { fill: none; stroke: var(--g-route); stroke-width: 5.5; stroke-linecap: round; stroke-linejoin: round; opacity: 0; transition: opacity .25s; filter: drop-shadow(0 1px 1.5px rgba(0,0,0,.35)); }
.g-route.on { opacity: 1; }
.g-city { fill: #fff; stroke: var(--g-sub); stroke-width: 1.4; } .g-city.big { stroke-width: 2; }
.g-city-l { fill: var(--g-sub); font-size: 10.5px; font-weight: 500; } .g-city-l.strong { fill: var(--g-text); font-size: 13px; font-weight: 700; }
.g-dest, .g-paris, .g-port { cursor: pointer; outline: none; }
.g-pin { fill: var(--g-pin); stroke: var(--g-pin-d); stroke-width: 1; transition: fill .2s; } .g-pin-dot { fill: var(--g-pin-d); }
.g-dest g { transition: transform .2s; }
.g-dest:hover .g-pin, .g-dest:focus .g-pin, .g-dest.active .g-pin { fill: #c5221f; }
.g-label { fill: var(--g-text); font-size: 12.5px; font-weight: 700; } .g-sub { fill: var(--g-sub); font-size: 10.5px; font-weight: 500; }
.g-dest.active .g-label, .g-paris.active .g-city-l { fill: var(--g-route); }
.g-port circle { fill: #1a73e8; stroke: #fff; stroke-width: 2; } .g-port path { fill: #fff; stroke: #fff; stroke-width: 1.2; }
.g-halo { fill: rgba(26,115,232,.2); animation: gpulse 2.4s ease-out infinite; transform-origin: center; transform-box: fill-box; }
@keyframes gpulse { 0% { transform: scale(.55); opacity: 1; } 100% { transform: scale(1.4); opacity: 0; } }
.g-me { fill: #1a73e8; stroke: #fff; stroke-width: 3; filter: drop-shadow(0 1px 2px rgba(0,0,0,.4)); }
.g-chip { fill: var(--g-card); filter: drop-shadow(0 1px 3px rgba(0,0,0,.3)); } .g-chip-t { fill: var(--g-text); stroke: none !important; font-size: 11px; font-weight: 700; }
.g-scale path { fill: none; stroke: var(--g-sub); stroke-width: 1.5; } .g-scale text { fill: var(--g-sub); font-size: 10px; }
.g-info rect { fill: var(--g-card); filter: drop-shadow(0 2px 6px rgba(0,0,0,.25)); } .g-info text { stroke: none !important; }
.g-car { fill: var(--g-route); } .g-info-t { fill: var(--g-text); font-size: 12.5px; font-weight: 700; } .g-info-s { fill: var(--g-sub); font-size: 10.5px; }
.gmap figcaption { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; padding: .85rem 1.2rem 1rem !important; font-size: .8rem; color: var(--ink-soft); border-top: 1px solid var(--line); }
.gmap figcaption a { font-weight: 700; color: #1a73e8; text-decoration: none; white-space: nowrap; }
.mobile-cta { display: none; }
@media (max-width: 700px) {
.mobile-cta { display: flex; gap: .5rem; position: fixed; left: .6rem; right: .6rem; bottom: calc(.6rem + env(safe-area-inset-bottom, 0px)); z-index: 40; padding: .5rem; background: rgba(18,22,42,.9); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-radius: 999px; border: 1px solid rgba(227,194,127,.3); box-shadow: var(--shadow-lg); }
.mobile-cta .btn { flex: 1; padding: .85rem .5rem; }
.mobile-cta .btn-ghost { color: var(--on-dark) !important; border-color: rgba(244,239,230,.35); }
body { padding-bottom: 86px; }
}
.brand .logo { height: 68px; }
.hero h1 { font-size: clamp(2.5rem, 4.4vw, 4rem); line-height: 1.06; }
.hero .lede { max-width: 58ch; }
.hub-head { display: grid; grid-template-columns: 1.1fr .9fr; gap: 2rem; align-items: end; margin-bottom: 2rem; }
.hub-head p { color: var(--ink-soft); margin: 0; }
.hub-head .hub-link { font-weight: 700; font-size: .9rem; }
@media (max-width: 860px) { .hub-head { grid-template-columns: 1fr; gap: .6rem; } }
.answer { font-size: 1.08rem; max-width: 75ch; background: var(--surface); border-left: 5px solid #c99a4b; padding: 1.1rem 1.4rem; border-radius: 0 var(--r) var(--r) 0; box-shadow: var(--shadow); margin-bottom: 1.6rem; }
.compare td.num { font-weight: 700; white-space: nowrap; }
.compare th a { color: inherit; text-decoration: none; } .compare th a:hover { color: var(--teal); }
.price .more { display: block; margin-top: .7rem; font-size: .84rem; font-weight: 700; text-align: center; }
.tcards { display: grid; grid-template-columns: repeat(auto-fill, minmax(310px, 1fr)); gap: 1.4rem; }
.tcard { background: var(--surface); border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow); border: 1px solid var(--line); display: flex; flex-direction: column; transition: transform .25s, box-shadow .25s; }
.tcard:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.tcard .illus { aspect-ratio: 3/2; border-radius: 0; }
.tcard:hover .illus img { transform: scale(1.04); }
.tbody { padding: 1.3rem 1.4rem 1.4rem; display: flex; flex-direction: column; flex: 1; }
.tbody h3 { font-size: 1.55rem; margin-bottom: .3rem; }
.tbody h3 a { color: inherit; text-decoration: none; } .tbody h3 a:hover { color: var(--teal); }
.tbody > p { color: var(--ink-soft); font-size: .95rem; }
.tmeta { font-size: .8rem !important; font-weight: 600; color: var(--gold) !important; margin-bottom: .6rem; }
.tfoot { margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--line); display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; }
.tfoot strong { font: 600 2rem/1 "Cormorant Garamond", Georgia, serif; display: block; font-variant-numeric: lining-nums; }
.tfoot small { font-size: .74rem; color: var(--ink-soft); }
.btn-sm { padding: .7rem 1.1rem; font-size: .85rem; }
.cases { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.4rem; margin-top: 1.8rem; }
@media (max-width: 860px) { .cases { grid-template-columns: 1fr; } }
.case { display: grid; grid-template-columns: 9.5rem 1fr; gap: 1.2rem; background: var(--surface); border-radius: var(--r-lg); padding: 1rem; box-shadow: var(--shadow); border: 1px solid var(--line); }
.case .illus { aspect-ratio: 1; border-radius: var(--r); }
.case h3 { font-size: 1.45rem; margin-bottom: .2rem; }
.case p { font-size: .93rem; color: var(--ink-soft); margin-bottom: .4rem; }
@media (max-width: 480px) { .case { grid-template-columns: 1fr; } .case .illus { aspect-ratio: 16/9; } }
.portrait-photo { aspect-ratio: 4/5; border-radius: 200px 200px var(--r-lg) var(--r-lg); box-shadow: var(--shadow-lg); border: 1px solid rgba(227,194,127,.5); }
.rev-cta { display: flex !important; flex-direction: column; justify-content: center !important; gap: .7rem; background: linear-gradient(160deg, var(--night-2), var(--night)) !important; color: var(--on-dark); }
.rev-cta::before { display: none; }
.rev-cta p { color: var(--on-dark-soft); font-size: .95rem; }
.rev-cta .btn-ghost { color: var(--on-dark); border-color: rgba(244,239,230,.4); }
.vs th:first-child { width: 28%; }
.vs td:nth-child(2) { font-weight: 600; }
.sister { margin-top: 1rem; font-size: .82rem; }
.hero-bg img { object-position: center 35%; filter: saturate(1.05) contrast(1.05); }
.hero-home { min-height: min(86vh, 820px); display: flex; align-items: center; padding: 3rem 0 8rem; }
.hero-inner { position: relative; z-index: 2; max-width: 760px; margin-left: max(1.25rem, calc((100% - 1200px) / 2)); margin-right: auto; width: auto; }
.hero-home .hero-inner { max-width: 700px; }
.hero h1 { font-size: clamp(2.4rem, 4.6vw, 4.1rem); line-height: 1.05; text-shadow: 0 2px 18px rgba(10,12,24,.45); }
.hero .lede { text-shadow: 0 1px 10px rgba(10,12,24,.5); }
.hero-page { padding: 1.6rem 0 7rem; min-height: 560px; display: flex; align-items: flex-end; }
.hero-page h1 { font-size: clamp(2.2rem, 4vw, 3.5rem); }
.facts-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); max-width: 760px; }
@media (max-width: 760px) { .facts-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.crumbs ol { flex-wrap: wrap; }
.crumbs li + li::before { content: "›"; margin-right: .4rem; opacity: .6; }
.crumbs [aria-current] { color: var(--on-dark); }
.nav a[aria-current="page"] { color: var(--gold-hi); }
.drive-sec { display: grid; grid-template-columns: .8fr 1.2fr; gap: 2.5rem; align-items: start; }
.drive-sec table { min-width: 0; font-size: .92rem; } .drive-sec th, .drive-sec td { padding: .55rem .7rem; }
.drive-sec td.num { font-weight: 700; white-space: nowrap; }
@media (max-width: 960px) { .drive-sec { grid-template-columns: 1fr; } }
.muted { color: var(--ink-soft); }
.tour-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 2.5rem; padding-bottom: 4.5rem; align-items: start; }
.tour-main { min-width: 0; }
.price-box { position: sticky; top: 100px; margin-top: -5rem; z-index: 3; background: var(--surface); border-radius: var(--r-lg); box-shadow: var(--shadow-lg); border: 1px solid rgba(227,194,127,.5); padding: 1.7rem; display: flex; flex-direction: column; gap: .6rem; }
.pb-price { font: 600 3.1rem/1 "Cormorant Garamond", Georgia, serif; margin: 0; font-variant-numeric: lining-nums; }
.pb-sub { font-size: .82rem; color: var(--ink-soft); margin: 0 0 .4rem; }
.price-box ul { list-style: none; padding: .8rem 0; margin: 0 0 .4rem; border-block: 1px solid var(--line); font-size: .88rem; display: grid; gap: .35rem; }
.price-box ul li::before { content: "✓ "; color: #c99a4b; font-weight: 800; }
.price-box .btn { width: 100%; } .price-box .btn-ghost { color: var(--ink); }
.pb-rev { font-size: .8rem; text-align: center; margin: .2rem 0 0; }
@media (max-width: 960px) { .tour-layout { grid-template-columns: 1fr; } .price-box { order: -1; position: static; margin-top: -4rem; } .tour-layout .glance { margin-top: 1.4rem; } }
.tsec { margin-top: 3.4rem; } .tsec h2 { font-size: clamp(1.9rem, 3vw, 2.5rem); }
.gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: .8rem; margin-top: 1.6rem; }
.gallery .illus { aspect-ratio: 4/3; border-radius: var(--r); }
.gallery figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 1.6rem .8rem .6rem; font: 600 .76rem/1.3 "Manrope", sans-serif; color: #fff; background: linear-gradient(0deg, rgba(18,22,42,.8), transparent); z-index: 2; }
@media (max-width: 640px) { .gallery { grid-template-columns: 1fr 1fr; } .gallery figure:first-child { grid-column: 1 / -1; } }
.timeline.big { font-size: 1rem; border-left-width: 2px; padding-left: 1.3rem; }
.timeline.big li { display: grid; grid-template-columns: 8.5rem 1fr; gap: 1rem; padding: .55rem 0; margin: 0; border-bottom: 1px dashed var(--line); }
.timeline.big li::before { left: -1.72rem; top: .95em; }
.timeline.big time { font-size: .82rem; }
.timeline.big strong { display: block; font-weight: 700; }
.timeline.big div { color: var(--ink-soft); } .timeline.big div strong { color: var(--ink); }
@media (max-width: 560px) { .timeline.big li { grid-template-columns: 1fr; gap: .1rem; } }
.incl-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.incl-grid > div { background: var(--surface); border-radius: var(--r); padding: 1.3rem 1.4rem; box-shadow: var(--shadow); }
.incl-grid h3 { font-size: 1.35rem; }
.ticks, .crosses { list-style: none; padding: 0; margin: 0; display: grid; gap: .45rem; font-size: .94rem; }
.ticks li::before { content: "✓"; color: var(--teal); font-weight: 800; margin-right: .55rem; }
.crosses li::before { content: "✕"; color: var(--rose); font-weight: 800; margin-right: .55rem; }
@media (max-width: 640px) { .incl-grid { grid-template-columns: 1fr; } }
.notes { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 1rem; }
.note-card { background: var(--surface); border-radius: var(--r); padding: 1.3rem 1.4rem; box-shadow: var(--shadow); border: 1px solid var(--line); }
.note-card h3 { font-size: 1.35rem; margin-bottom: .4rem; } .note-card p { font-size: .94rem; color: var(--ink-soft); margin: 0; }
.anc-callout { margin-top: 3.4rem; display: flex; gap: 2rem; align-items: center; justify-content: space-between; flex-wrap: wrap; padding: 2rem 2.2rem; border-radius: var(--r-lg); color: var(--on-dark); background: radial-gradient(500px 300px at 100% 0%, rgba(201,154,75,.3), transparent 70%), linear-gradient(160deg, var(--night-2), var(--night)); }
.anc-callout h2 { color: var(--on-dark); font-size: 2rem; margin-bottom: .4rem; } .anc-callout p { color: var(--on-dark-soft); margin: 0; max-width: 56ch; }
.hub-pills { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 2.2rem; align-items: center; }
.hub-pills span { font-weight: 700; font-size: .88rem; margin-right: .3rem; }
.hub-pill { padding: .5rem 1.05rem; border-radius: 999px; background: var(--surface); border: 1px solid var(--line); color: var(--ink); text-decoration: none; font: 600 .86rem "Manrope", sans-serif; box-shadow: var(--shadow); }
.hub-pill:hover { color: var(--teal); }
.cases-full { grid-template-columns: 1fr; }
.case-full { grid-template-columns: 15rem 1fr; padding: 1.2rem; gap: 1.6rem; }
.case-full .illus { aspect-ratio: 4/5; }
.case-full p { font-size: .98rem; }
@media (max-width: 640px) { .case-full { grid-template-columns: 1fr; } .case-full .illus { aspect-ratio: 16/9; } }
.btn-ghost.btn-sm { color: var(--ink); border-color: var(--line); }
.hero-slim { min-height: 380px; padding-bottom: 5rem; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.doc-layout { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 3rem; align-items: start; padding-bottom: 3rem; }
.doc-toc { position: sticky; top: 100px; background: var(--surface); border-radius: var(--r); padding: 1.2rem 1.3rem; box-shadow: var(--shadow); font-size: .86rem; }
.doc-toc p { font-weight: 700; margin-bottom: .5rem; }
.doc-toc ol { margin: 0; padding-left: 1.1rem; display: grid; gap: .3rem; }
.doc-toc a { color: var(--ink-soft); text-decoration: none; } .doc-toc a:hover { color: var(--teal); }
.doc-body { max-width: 760px; }
.doc-sec { margin-bottom: 2.2rem; } .doc-sec h2, .faq-group h2 { font-size: clamp(1.7rem, 2.6vw, 2.2rem); scroll-margin-top: 100px; }
.doc-sec p { color: var(--ink-soft); } .doc-sec strong { color: var(--ink); }
.faq-group { margin-bottom: 2.6rem; }
@media (max-width: 900px) { .doc-layout { grid-template-columns: 1fr; } .doc-toc { position: static; } }
.contact-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1rem; margin-top: -3rem; position: relative; z-index: 3; }
.contact-card { display: flex; flex-direction: column; gap: .3rem; background: var(--surface); border-radius: var(--r-lg); padding: 1.5rem; box-shadow: var(--shadow-lg); border: 1px solid var(--line); color: var(--ink); text-decoration: none; transition: transform .2s; }
.contact-card:hover { transform: translateY(-3px); }
.contact-card .ci { font-size: .74rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--gold); }
.contact-card strong { font: 600 1.45rem/1.2 "Cormorant Garamond", Georgia, serif; }
.contact-card small { color: var(--ink-soft); font-size: .84rem; }
.team { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; } .team-card ul { margin-top: .8rem; }
@media (max-width: 760px) { .team { grid-template-columns: 1fr; } }
.preview-note { position: fixed; left: 50%; bottom: 96px; transform: translateX(-50%); z-index: 80; background: var(--night); color: var(--on-dark); padding: .7rem 1.1rem; border-radius: 999px; font: 600 .85rem "Manrope", sans-serif; box-shadow: var(--shadow-lg); border: 1px solid rgba(227,194,127,.4); max-width: 90vw; text-align: center; }
.illus { aspect-ratio: 4/3; background: linear-gradient(160deg, var(--night-2), var(--teal) 140%); }
.hero-bg { aspect-ratio: auto; background: linear-gradient(165deg, #1d2240 0%, #12162a 55%, #2e6f73 140%) !important; }
.brand .logo { height: 68px; width: auto; display: block; margin: 5px 0; }
@media (max-width: 520px) { .brand .logo { height: 58px; } }
.foot-logo img { height: 112px; width: auto; display: block; margin-bottom: 1rem; }
.reviews figcaption { font-size: .8rem; color: var(--ink-soft); margin-top: 1.2rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.rev-cta p { margin-bottom: .3rem; }
.timeline.big .tl-when { font-size: .82rem; font-weight: 700; color: var(--gold); line-height: 1.4; padding-top: .15em; }
.day-h { font-size: 1.6rem; margin: 2rem 0 .4rem; }
.answer-text { font-size: 1rem; color: var(--ink); margin-bottom: .8rem; }
.exp { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: .9rem 1.4rem; margin: 0; }
.exp div { border-left: 3px solid var(--gold); padding: .2rem 0 .2rem .9rem; }
.exp dt { font-weight: 700; } .exp dd { margin: 0; color: var(--ink-soft); font-size: .94rem; }
.updated { margin-top: 3rem; font-size: .82rem; color: var(--ink-soft); }
.form-note { opacity: .8; font-size: .95rem; }
.form-actions { display: flex; gap: .8rem; flex-wrap: wrap; align-items: center; }
.hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
#reqForm { position: relative; }
.doc-sec h2 { margin-top: 2.2rem; } .doc-sec h3 { font-size: 1.35rem; margin-top: 1.4rem; }
.doc-sec ul { color: var(--ink-soft); } .doc-sec li { margin-bottom: .35rem; }
.legal-dl { display: grid; grid-template-columns: 14rem 1fr; gap: .5rem 1.2rem; margin: 0 0 1.4rem; }
.legal-dl dt { font-weight: 700; } .legal-dl dd { margin: 0; color: var(--ink-soft); }
@media (max-width: 640px) { .legal-dl { grid-template-columns: 1fr; } .legal-dl dd { margin-bottom: .6rem; } }
@media print { .site-header, .mobile-cta, .request, .price-box .btn, .hero-ctas { display: none !important; } .hero { min-height: 0 !important; color: #000; } }
.facts a { color: inherit; text-decoration-color: rgba(227,194,127,.6); }
footer.site address { font-style: normal; }
@media (max-width: 1100px) { .nav.open { -webkit-backdrop-filter: none; backdrop-filter: none; } }
.promo-after { display: none !important; }
.promo-ended .promo-only { display: none !important; }
.promo-ended .promo-after { display: revert !important; }
.promo-bar { background: var(--night-2); color: var(--on-dark); border-bottom: 1px solid rgba(227,194,127,.28); font-size: .86rem; }
.promo-bar .wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .3rem 1.1rem; padding: .55rem 0; text-align: center; }
.promo-bar p { margin: 0; }
.promo-bar strong { color: var(--gold-hi); font-weight: 700; }
.promo-bar a { color: var(--gold-hi); font-weight: 700; text-underline-offset: .25em; }
.promo-bar a:hover { color: #fff; }
.w-stamp { color: var(--gold); font-variant-numeric: lining-nums; }
.w-stamp-sm { display: inline-grid; place-items: center; width: 4.4rem; height: 4.4rem; flex: none; border-radius: 50%; border: 2px solid currentColor; box-shadow: inset 0 0 0 3px var(--surface), inset 0 0 0 4px currentColor; font: italic 600 1.45rem/1 "Cormorant Garamond", Georgia, serif; transform: rotate(-9deg); }
.w-stamp-big { display: block; width: 100%; max-width: 260px; height: auto; color: var(--gold-hi); transform: rotate(-8deg); }
.w-stamp-big .w-ring-t { font: 600 13.5px "Manrope", system-ui, sans-serif; letter-spacing: .06em; fill: currentColor; }
.w-stamp-big .w-num { font: italic 600 46px "Cormorant Garamond", Georgia, serif; fill: currentColor; }
.w-tag { display: inline-block; margin-bottom: .35rem; padding: .12rem .55rem; border-radius: 999px; border: 1px solid currentColor; color: var(--gold); font-size: .72rem; font-weight: 800; letter-spacing: .02em; }
s, .w-was { color: var(--ink-soft); text-decoration-thickness: 1.5px; }
.facts .w-was { color: var(--on-dark-soft); }
.pb-offer { display: flex; align-items: center; gap: .9rem; margin: -.2rem 0 .9rem; padding-bottom: .9rem; border-bottom: 1px dashed rgba(168,122,51,.45); }
.pb-offer p { margin: 0; font-size: .84rem; line-height: 1.4; color: var(--ink-soft); }
.pb-offer strong { color: var(--ink); font-size: .95rem; }
.pb-was { margin: .25rem 0 .2rem; font-size: .95rem; color: var(--ink-soft); }
.pb-terms { font-size: .8rem; margin: 0 0 .2rem; color: var(--ink-soft); }
.winter-sec { background: var(--surface); border: 1px solid rgba(227,194,127,.55); border-radius: var(--r-lg); padding: 1.8rem 2rem; box-shadow: var(--shadow); }
.winter-sec h2 { margin-bottom: .4rem; }
.w-lead { font-size: 1.05rem; margin: 0 0 .8rem; }
.w-notes { margin: 0 0 1rem; padding-left: 1.2rem; display: grid; gap: .45rem; }
.w-notes li { max-width: 75ch; } .w-notes li::marker { color: #c99a4b; }
@media (max-width: 600px) { .winter-sec { padding: 1.4rem 1.2rem; } }
.winter-band { background: var(--night); color: var(--on-dark); margin-top: 3.5rem; }
.wband { display: grid; grid-template-columns: minmax(160px, 240px) 1fr; gap: 2.4rem; align-items: center; padding-block: 2.6rem; }
.wband h2 { color: var(--on-dark); }
.wband p { color: var(--on-dark-soft); max-width: 65ch; }
.wband-events { list-style: none; margin: 1.1rem 0 1.4rem; padding: 0; display: grid; gap: .45rem; font-size: .94rem; }
.wband-events time { display: inline-block; min-width: 10.5rem; font-weight: 700; color: var(--gold-hi); }
.winter-band .btn-ghost { color: var(--on-dark); }
@media (max-width: 720px) { .wband { grid-template-columns: 1fr; gap: 1.2rem; } .wband-stamp { max-width: 170px; } .wband-events time { min-width: 0; display: block; } }
.w-cat { max-width: 75ch; background: var(--surface); border: 1px dashed rgba(168,122,51,.55); border-radius: var(--r); padding: .9rem 1.2rem; margin: -.6rem 0 1.6rem; font-size: .96rem; }
.compare .w-col { color: var(--gold); }
:root[data-theme="dark"] .compare .w-col { color: var(--gold-hi); }
.hero-winter .hero-bg { background: linear-gradient(160deg, #1d2240 0%, #12162a 58%, #24506a 130%) !important; }
.hero-winter .hero-inner.hero-winter-grid { max-width: 1200px; width: min(1200px, 100% - 2.5rem); margin-inline: auto; display: grid; grid-template-columns: minmax(0, 760px) minmax(180px, 280px); justify-content: space-between; gap: 2.5rem; align-items: end; }
.hero-winter-stamp { padding-bottom: 1rem; }
@media (max-width: 860px) { .hero-winter .hero-inner.hero-winter-grid { grid-template-columns: 1fr; } .hero-winter-stamp { order: -1; max-width: 150px; padding: 0; } }
.w-cat-h { font-size: 1.5rem; margin: 2rem 0 .6rem; } .w-cat-h a { color: inherit; text-decoration: none; } .w-cat-h a:hover { color: var(--teal); }
.w-prices table { min-width: 620px; }
.w-where { display: block; color: var(--gold); font-weight: 700; font-size: .86rem; margin: .1rem 0 .15rem; }
.w-closures { display: grid; gap: .7rem; margin: 1.2rem 0 0; }
.w-closures > div { display: grid; grid-template-columns: minmax(10rem, 15rem) 1fr; gap: 1rem; padding: .9rem 1.1rem; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-sm); }
.w-closures dt { font-weight: 700; color: var(--ink); }
.w-closures dd { margin: 0; color: var(--ink-soft); }
@media (max-width: 600px) { .w-closures > div { grid-template-columns: 1fr; gap: .2rem; } }
.w-daylight { min-width: 560px; }
.w-terms ul { padding-left: 1.2rem; display: grid; gap: .45rem; max-width: 80ch; }
.w-ended { margin: 1.5rem 0 0; padding: 1rem 1.3rem; border-radius: var(--r); background: var(--surface); border: 1px solid var(--line); font-weight: 700; }
.w-form-note { color: var(--on-dark); }
@media print { .promo-bar { display: none !important; } }
.site-header { background: rgba(243,241,237,.94); color: #161a2e; border-bottom: 1px solid rgba(22,26,46,.1); box-shadow: 0 10px 28px -22px rgba(22,26,46,.45); }
body::before { background: #f3f1ed; }
.brand { color: #161a2e; }
.nav a { color: #3a3e52; }
.nav a:hover { color: #7a561c; }
.nav a[aria-current="page"] { color: #7a561c; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: .45em; text-decoration-color: #c99a4b; }
.nav .btn-primary, .nav .btn-primary:hover { text-decoration: none; }
.menu-toggle { color: #161a2e; border-color: rgba(22,26,46,.28); }
.menu-toggle:hover { border-color: #a87a33; }
@media (max-width: 1100px) {
.nav, .nav.open { background: #f3f1ed; border-color: rgba(22,26,46,.12); }
.nav a { color: #161a2e; }
}
.photo-split { display: grid; grid-template-columns: minmax(220px, .8fr) 1.2fr; gap: 3rem; align-items: center; }
.photo-split-rev > :first-child { order: 2; }
.photo-split p { max-width: 65ch; }
.portrait-photo { overflow: hidden; margin: 0; }
.portrait-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.van-sec { margin-bottom: 3.5rem; }
.team-photo { margin: -1.3rem -1.4rem 1.1rem; aspect-ratio: 4/3; overflow: hidden; border-radius: var(--r) var(--r) 0 0; }
.team-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 62%; display: block; }
@media (max-width: 800px) { .photo-split { grid-template-columns: 1fr; gap: 1.6rem; } .photo-split-rev > :first-child { order: 0; } .photo-split .portrait-photo { max-width: 420px; } }
.nav a { white-space: nowrap; }
.wband-h3 { color: var(--on-dark); font-size: 1.45rem; margin: 1.2rem 0 .5rem; }
.wband-markets { margin-top: 0; }
.wband-markets strong { display: inline-block; min-width: 10.5rem; color: var(--gold-hi); font-weight: 700; }
.wband-markets span { color: var(--on-dark-soft); }
@media (max-width: 720px) { .wband-markets strong { display: block; min-width: 0; } }
.w-markets dt span { display: block; font-weight: 600; font-size: .86rem; color: var(--gold); margin-top: .15rem; }
.couple-photo { aspect-ratio: 1 / 1; border-radius: var(--r-lg); overflow: hidden; margin: 0; box-shadow: var(--shadow-lg); border: 1px solid rgba(227,194,127,.5); }
.couple-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }
