:root { --ink:#130b0a; --ink-soft:#281715; --cream:#f7f0e8; --paper:#fffaf5; --red:#db3b24; --red-light:#ff6b4f; --line:rgba(56,25,20,.16); --muted:#735f5b; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height:1.5; }
a { color:inherit; }
.skip-link { position:fixed; top:12px; left:12px; z-index:10; padding:10px 14px; background:#fff; border-radius:9px; transform:translateY(-180%); transition:transform .18s ease; }
.skip-link:focus { transform:translateY(0); outline:3px solid var(--red); outline-offset:3px; }
.topbar { min-height:76px; max-width:1240px; margin:auto; padding:16px clamp(20px,4vw,48px); display:flex; align-items:center; justify-content:space-between; gap:18px; }
.brand { display:inline-flex; align-items:center; gap:9px; color:var(--ink); font-weight:900; letter-spacing:-.06em; text-decoration:none; font-size:1.08rem; }
.brand > span:last-child > span { color:var(--red); }
.brand-mark { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; color:#fff; background:var(--red); font-family:Georgia,serif; font-size:1.14rem; font-weight:700; letter-spacing:0; }
.topbar-action, .button { min-height:46px; display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:11px 18px; border-radius:999px; font-weight:800; text-decoration:none; transition:transform .18s ease, background .18s ease, box-shadow .18s ease; }
.topbar-action { border:1px solid var(--line); color:var(--ink); }
.topbar-action:hover, .button:hover { transform:translateY(-2px); }
.hero { overflow:hidden; display:grid; grid-template-columns:minmax(0,1.06fr) minmax(340px,.94fr); gap:clamp(28px,7vw,96px); max-width:1240px; min-height:590px; margin:0 auto; padding:clamp(46px,8vw,112px) clamp(20px,4vw,48px) 72px; align-items:center; }
.eyebrow { margin:0 0 13px; color:var(--red); font-size:.76rem; text-transform:uppercase; letter-spacing:.14em; font-weight:900; }
h1,h2,h3,p { margin-top:0; }
h1 { max-width:690px; margin-bottom:23px; font-size:clamp(3rem,7vw,6.55rem); line-height:.91; letter-spacing:-.08em; }
h1 em { display:block; color:var(--red); font-family:Georgia,serif; font-weight:400; letter-spacing:-.06em; }
.lead { max-width:540px; color:var(--muted); font-size:clamp(1rem,1.8vw,1.2rem); }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin:31px 0 36px; }
.button-primary { color:#fff; background:var(--red); box-shadow:0 12px 30px rgba(219,59,36,.27); }
.button-primary:hover { background:#bd2e19; }
.button-secondary { border:1px solid var(--line); background:#fff; }
.trust-list { display:flex; flex-wrap:wrap; padding:0; margin:0; list-style:none; gap:12px 23px; color:var(--muted); font-size:.85rem; }
.trust-list strong { display:block; color:var(--ink); font-size:1rem; }
.hero-media { position:relative; min-width:0; min-height:450px; isolation:isolate; }
.hero-media::after { content:""; position:absolute; inset:24px 0 0 22px; z-index:-1; background:var(--ink); border-radius:220px 220px 16px 16px; }
.hero-media img { display:block; width:100%; height:100%; min-height:450px; object-fit:cover; border-radius:220px 220px 16px 16px; filter:saturate(.85) contrast(1.05); }
.hero-glow { position:absolute; z-index:-2; right:-14%; bottom:-13%; width:66%; aspect-ratio:1; border-radius:50%; background:var(--red-light); opacity:.5; filter:blur(4px); }
.media-label { position:absolute; bottom:25px; left:-15px; margin:0; padding:13px 18px; color:#fff; background:var(--ink); font-size:.75rem; font-weight:900; letter-spacing:.1em; line-height:1.2; text-transform:uppercase; }
.media-label span { color:#ff8269; }
.section { max-width:1240px; margin:0 auto; padding:clamp(72px,10vw,128px) clamp(20px,4vw,48px); }
.services { border-top:1px solid var(--line); }
.section-heading { max-width:650px; }
h2 { margin-bottom:17px; font-size:clamp(2.15rem,4.8vw,4.4rem); line-height:.97; letter-spacing:-.07em; }
.section-heading > p:last-child { color:var(--muted); font-size:1.06rem; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:46px; }
.service-grid article { min-height:250px; padding:26px; border:1px solid var(--line); border-radius:18px; background:#fff; }
.service-number { color:var(--red); font-weight:900; letter-spacing:.08em; }
.service-grid h3 { margin:58px 0 10px; font-size:1.3rem; letter-spacing:-.04em; }
.service-grid p { color:var(--muted); }
.booking-band { display:flex; align-items:center; justify-content:space-between; gap:34px; max-width:none; padding-left:max(20px,calc((100vw - 1144px)/2)); padding-right:max(20px,calc((100vw - 1144px)/2)); color:#fff; background:var(--ink); }
.booking-band > div { max-width:720px; }
.booking-band .eyebrow { color:#ff8068; }
.booking-band h2 { margin-bottom:12px; }
.booking-band p:not(.eyebrow) { color:#d7c8c3; }
.booking-band .button-primary { flex:0 0 auto; }
.location { display:grid; grid-template-columns:1fr .78fr; gap:16px; }
.location-card, .location-note { padding:clamp(28px,5vw,52px); border-radius:20px; }
.location-card { color:#fff; background:linear-gradient(135deg,#2d1513,#120b0a); }
.location-card h2 { max-width:530px; }
address { margin:28px 0; color:#dfd0ca; font-style:normal; font-size:1.08rem; }
.text-link { color:#ff866f; font-weight:800; text-underline-offset:4px; }
.location-note { display:flex; flex-direction:column; justify-content:space-between; background:var(--cream); }
.location-note span { color:var(--red); font-size:3rem; }
.location-note p { max-width:320px; margin:42px 0 0; font-size:1.26rem; line-height:1.2; letter-spacing:-.04em; }
.footer { display:flex; align-items:center; justify-content:space-between; gap:20px; max-width:1240px; margin:auto; padding:27px clamp(20px,4vw,48px) 44px; color:var(--muted); font-size:.84rem; }
.footer a:last-child { text-decoration:none; }
.footer a:last-child:hover { color:var(--red); }
:focus-visible { outline:3px solid var(--red); outline-offset:3px; }
@media (max-width:760px) { .topbar { min-height:66px; } .topbar-action { min-height:40px; padding:8px 13px; font-size:.82rem; } .hero { grid-template-columns:1fr; min-height:0; padding-top:39px; } .hero-media { min-height:355px; max-width:520px; } .hero-media img { min-height:355px; } .hero-media::after { inset:16px 0 0 13px; } .service-grid { grid-template-columns:1fr; } .service-grid article { min-height:0; } .service-grid h3 { margin-top:28px; } .booking-band { align-items:flex-start; flex-direction:column; } .location { grid-template-columns:1fr; } .footer { align-items:flex-start; flex-direction:column; } }
@media (max-width:390px) { .hero-actions .button { width:100%; } .trust-list { gap:12px; } .trust-list li { flex:1 1 30%; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition-duration:.01ms !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; } }
