:root {
  --dark:#151511; --darkest:#10100e; --gold:#e7c782; --gold-ink:#795819;
  --cream:#f8f5ee; --paper:#fffdf8; --ink:#24221b; --body:#5b5548;
  --muted:#d1cabb; --rule:#e3dacc; --frame:1200px;
  color-scheme: light;
}
*, *::before, *::after { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--cream); background:var(--dark); font:16px/1.58 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
[hidden], .symbols { display:none !important; }
a { color:inherit; text-decoration:none; }
p, h1, h2, h3, figure { margin:0; }
h1,h2 { font-family:Georgia,"Times New Roman",serif; line-height:1.02; font-weight:400; letter-spacing:-.045em; }
h1 { font-size:clamp(3.4rem,6.2vw,6.1rem); }
h2 { font-size:clamp(2.65rem,4.5vw,4.65rem); }
h1 em, h2 em { font-weight:400; color:var(--gold); }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline:2px solid #9b702b; outline-offset:4px; }
.icon { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
.wrap { width:min(var(--frame),calc(100% - 2 * clamp(20px,5vw,72px))); margin-inline:auto; }
.skip { position:absolute; top:0; left:12px; padding:12px 20px; background:var(--cream); color:var(--ink); transform:translateY(-150%); z-index:10; }
.skip:focus { transform:translateY(10px); }
.site-header { border-bottom:1px solid #3a3429; background:var(--darkest); }
.masthead { min-height:89px; display:flex; align-items:center; justify-content:space-between; gap:22px; }
.brand { display:inline-flex; align-items:center; gap:13px; flex-shrink:0; }
.brand img { display:block; }
.brand strong { display:block; font:400 1.36rem/1.08 Georgia,serif; letter-spacing:-.025em; }
.brand small { display:block; color:var(--gold); margin-top:5px; font-size:.6rem; letter-spacing:.16em; font-weight:750; }
.masthead nav { display:flex; align-items:center; gap:clamp(14px,3.2vw,43px); color:var(--muted); font-size:.89rem; font-weight:550; }
.masthead nav a:hover, .call:hover, .site-footer a:hover { color:var(--gold); }
.button { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:49px; width:fit-content; padding:11px 18px; border:1px solid transparent; border-radius:6px; font:700 .89rem/1.35 system-ui,sans-serif; cursor:pointer; transition:background-color .16s,border-color .16s; }
.button .icon { width:17px; height:17px; }
.button-outline { border-color:#7a633c; color:var(--gold); }
.button-outline:hover { background:#2d271a; }
.button-gold { color:#211a10; background:var(--gold); }
.button-gold:hover { background:#f1d89e; }
.hero { background:radial-gradient(ellipse at 71% 65%,#252118,var(--dark) 63%); }
.hero-inner { display:grid; grid-template-columns:1.03fr 1fr; align-items:center; gap:clamp(22px,4vw,60px); padding-block:clamp(40px,6vw,93px); }
.hero-copy { padding-block:23px; position:relative; z-index:1; }
.eyebrow { display:flex; align-items:center; gap:10px; margin-bottom:19px; color:var(--gold); font-size:.72rem; font-weight:750; letter-spacing:.15em; }
.line { display:inline-block; width:23px; height:1px; background:currentColor; flex-shrink:0; }
.hero h1 { margin-left:-.04em; }
.hero-text { max-width:410px; margin:24px 0 30px; color:var(--muted); font-size:clamp(1rem,1.4vw,1.13rem); }
.hero-actions { display:flex; align-items:center; gap:20px 24px; flex-wrap:wrap; }
.call { display:inline-flex; align-items:center; gap:8px; min-height:44px; font-size:.91rem; font-weight:650; }
.call .icon { width:17px; height:17px; color:var(--gold); }
.hero-photo { display:flex; position:relative; isolation:isolate; align-items:flex-end; min-width:0; aspect-ratio:3/2; overflow:hidden; border:1px solid #645238; border-radius:13px; background:#282318; }
.hero-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero-photo figcaption { display:inline-flex; align-items:center; gap:8px; position:relative; margin:18px; padding:9px 12px; color:var(--cream); background:#1c1a14ed; border:1px solid #9a8055; border-radius:5px; font-size:.79rem; font-weight:650; }
.hero-photo .icon { width:16px; height:16px; color:var(--gold); }
.light { color:var(--ink); background:var(--cream); }
.light .eyebrow { color:var(--gold-ink); }
.section-pad { padding-block:clamp(54px,6.4vw,98px); }
.section-intro { display:grid; grid-template-columns:1.22fr .78fr; align-items:end; gap:24px; margin-bottom:35px; }
.section-intro > p { color:var(--body); max-width:400px; justify-self:end; padding-bottom:2px; }
.tickets { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.ticket { overflow:hidden; padding:clamp(18px,3vw,32px); background:var(--paper); border:1px solid var(--rule); border-radius:11px; }
.ticket-top { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:15px; }
.ticket-top > span:first-child { display:inline-flex; align-items:center; gap:8px; color:var(--gold-ink); font-size:.7rem; font-weight:750; letter-spacing:.11em; }
.ticket-top .icon { width:18px; height:18px; }
.code { display:inline-block; padding:4px 9px; border:1px solid #eadcc2; border-radius:4px; background:#f6eee0; color:#634514; font-size:.78rem; font-weight:800; letter-spacing:.09em; }
.ticket h3 { font:400 clamp(1.8rem,3vw,2.8rem)/1.13 Georgia,serif; letter-spacing:-.04em; }
.ticket p { margin-top:5px; color:var(--body); }
.route-link { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:19px; padding-top:15px; border-top:1px dashed #d7c9af; color:#6c4d15; font-size:.91rem; font-weight:700; }
.route-link:hover { text-decoration:underline; text-underline-offset:4px; }
.route-link .icon { width:18px; height:18px; }
.services { background:#f0eadf; }
.service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(24px,5vw,62px); margin-top:36px; }
.service-grid article { border-top:1px solid #cfc3ae; padding-top:23px; }
.service-icon { display:inline-flex; align-items:center; justify-content:center; width:43px; height:43px; border:1px solid #cbb991; border-radius:8px; color:var(--gold-ink); }
.service-grid h3 { margin-top:13px; font:400 1.65rem/1.15 Georgia,serif; letter-spacing:-.028em; }
.service-grid p { margin-top:9px; color:var(--body); }
.quote { background:radial-gradient(ellipse at 19% 16%,#302619,var(--dark) 60%); }
.quote-grid { display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr); gap:clamp(22px,6vw,100px); align-items:start; }
.quote-copy { padding-top:clamp(0px,2vw,28px); }
.quote-copy > p:not(.eyebrow) { max-width:315px; color:var(--muted); margin-top:22px; }
.quote-phone { display:inline-flex; align-items:center; gap:12px; margin-top:29px; }
.quote-phone .service-icon { color:var(--gold); border-color:#876f45; }
.quote-phone small { display:block; color:var(--muted); font-size:.64rem; letter-spacing:.12em; font-weight:700; }
.quote-phone strong { display:block; color:var(--gold); font-size:1.06rem; }
.quote-card { min-width:0; border-radius:12px; padding:clamp(17px,3vw,34px); }
.quote-card h3 { font:400 clamp(1.55rem,3vw,2rem)/1.13 Georgia,serif; letter-spacing:-.03em; }
#trajet { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 16px; }
.wide { grid-column:1/-1; }
.return-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
#trajet label { display:block; min-width:0; color:var(--ink); font-size:.85rem; font-weight:650; }
.optional { font-size:.79rem; color:var(--body); font-weight:400; }
input,select,textarea { display:block; width:100%; min-width:0; margin-top:4px; border:1px solid #bcb2a0; border-radius:5px; padding:9px 10px; background:var(--paper); color:var(--ink); font:400 1rem/1.35 system-ui,sans-serif; }
input,select { min-height:44px; }
textarea { resize:vertical; }
.form-end p, .recap p { color:var(--body); font-size:.85rem; margin-top:8px; }
.recap { border-top:1px solid var(--rule); margin-top:23px; padding-top:23px; scroll-margin-top:22px; }
.recap textarea { margin-top:12px; }
.recap-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:13px; align-items:center; }
.text-button { cursor:pointer; color:#60430d; border:0; background:none; min-height:44px; padding:8px; font:650 .85rem/1.35 system-ui,sans-serif; text-decoration:underline; }
#copy-status:empty { display:none; }
.faq-grid { display:grid; grid-template-columns:minmax(0,.74fr) minmax(0,1.26fr); gap:clamp(24px,6vw,100px); }
.faq-list details { border-top:1px solid #cfc3ae; }
.faq-list details:last-child { border-bottom:1px solid #cfc3ae; }
summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 0; cursor:pointer; list-style:none; font-weight:700; }
summary::-webkit-details-marker { display:none; }
summary .icon { color:var(--gold-ink); }
details[open] summary .icon { transform:rotate(45deg); }
details p { margin:0 27px 18px 0; color:var(--body); }
.site-footer { background:var(--darkest); padding-block:32px; }
.footer-grid { display:grid; grid-template-columns:1fr 1fr auto; align-items:center; gap:20px; }
.site-footer p, .site-footer address { color:var(--muted); font-size:.84rem; font-style:normal; }
.site-footer address a { display:block; width:fit-content; overflow-wrap:anywhere; }
@media (max-width:940px) {
  .hero-inner { grid-template-columns:1fr 1fr; }
  h1 { font-size:clamp(3.1rem,7vw,5.4rem); }
  .quote-grid { grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:26px; }
}
@media (max-width:720px) {
  .masthead { min-height:72px; gap:10px; }
  .masthead nav { display:none; }
  .masthead .button { min-height:43px; }
  .hero-inner,.section-intro,.quote-grid,.faq-grid { grid-template-columns:1fr; }
  .hero-inner { gap:21px; padding-block:36px; }
  .hero-copy { padding-block:4px; }
  h1 { font-size:clamp(3rem,11vw,5.25rem); }
  .hero-text { margin:18px 0 22px; }
  .section-intro > p { justify-self:start; }
  .service-grid { grid-template-columns:1fr; gap:23px; }
  .service-grid article { padding-top:17px; }
  .footer-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:480px) {
  .brand { gap:7px; }
  .brand img { width:34px; height:34px; }
  .brand strong { font-size:1.05rem; }
  .brand small { font-size:.48rem; }
  .masthead .button { padding:7px 9px; font-size:.72rem; gap:4px; }
  .masthead .button .icon { width:14px; }
  .hero-photo figcaption { margin:10px; font-size:.71rem; }
  .tickets,.footer-grid { grid-template-columns:1fr; }
  .return-fields { gap:12px; }
  #trajet { gap:12px; }
  .desktop-break { display:none; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { transition:none !important; }
}
