:root { --ink:#171614; --paper:#faf6ec; --cream:#f0e7d5; --gold:#a87b2a; --line:#cdbfa8; --serif:Georgia, serif; --sans:Arial, sans-serif; }
* { box-sizing:border-box; } html { scroll-behavior:smooth; scroll-padding-top:6rem; } body { margin:0; background:var(--paper); color:var(--ink); font:16px/1.6 var(--sans); } a { color:inherit; } .site-header { position:sticky; top:0; z-index:10; display:flex; align-items:center; gap:1rem; padding:1rem 5vw; border-bottom:1px solid var(--line); background:rgba(250,246,236,.96); } .brand { font-size:1.5rem; font-weight:900; text-decoration:none; letter-spacing:-.08em; } .brand span { color:var(--gold); } .site-nav { display:flex; gap:1rem; margin-left:auto; } .site-nav a { position:relative; padding:.4rem 0; font-size:.82rem; text-decoration:none; } .site-nav a::after { position:absolute; right:0; bottom:0; left:0; height:2px; background:var(--gold); content:""; transform:scaleX(0); transform-origin:left; transition:transform .2s ease; } .site-nav a:hover::after,.site-nav a:focus-visible::after,.site-nav a[aria-current="location"]::after { transform:scaleX(1); } .site-nav a[aria-current="location"] { color:var(--gold); font-weight:700; } .menu-toggle { display:none; } .section,.site-footer { max-width:1200px; margin:auto; padding:6rem 5vw; } .hero { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:4rem; min-height:80vh; } .eyebrow { margin:0 0:.5rem; color:var(--gold); font-size:.75rem; font-weight:700; letter-spacing:.11em; text-transform:uppercase; } h1,h2 { font-family:var(--serif); line-height:1.06; letter-spacing:-.045em; } h1 { max-width:11ch; margin:.25rem 0 1.25rem; font-size:clamp(3rem,7vw,6.5rem); } h2 { max-width:18ch; font-size:clamp(2.2rem,4vw,4.4rem); } h3 { margin-bottom:.25rem; } .lede { max-width:50ch; font-size:1.1rem; } .tagline { font-family:var(--serif); font-style:italic; } .actions { display:flex; align-items:center; flex-wrap:wrap; gap:1rem; margin-top:1.5rem; } .button { display:inline-flex; align-items:center; min-height:46px; padding:.7rem 1.15rem; border:1px solid var(--ink); background:var(--ink); color:white; font-weight:700; text-decoration:none; } .button:hover,.button:focus-visible { background:var(--gold); border-color:var(--gold); } .button:active { transform:translateY(1px); } .button-small { margin-left:auto; min-height:40px; padding:.45rem .8rem; font-size:.8rem; } .text-link { font-weight:700; } .scroll-cue { display:inline-flex; gap:.55rem; align-items:center; margin-top:2.25rem; color:#665b4a; font-size:.75rem; font-weight:700; letter-spacing:.1em; text-decoration:none; text-transform:uppercase; } .scroll-cue span { color:var(--gold); font-size:1.25rem; line-height:1; } .scroll-cue:hover,.scroll-cue:focus-visible { color:var(--gold); } .supporting-copy { font-size:.88rem; } .hero-media { margin:0; padding:1rem; border:1px solid var(--line); background:var(--cream); } .hero-media video { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; background:var(--ink); } figcaption { margin-top:.65rem; font:italic .9rem var(--serif); } .three-up,.media-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; } .three-up article { padding:1.5rem; border-top:1px solid var(--ink); } .steps { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; padding:0; list-style:none; } .steps strong { display:block; color:var(--gold); } .experience { border-top:1px solid var(--line); } .experience-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:2rem; margin-top:2rem; } .experience-grid figure { margin:0; } .experience-grid video { display:block; width:100%; aspect-ratio:16/10; object-fit:cover; background:var(--ink); } .package { background:var(--cream); } .price { margin:0; font:clamp(3rem,6vw,5rem)/1 var(--serif); color:var(--gold); } .package li { margin:.4rem 0; } .availability { border-top:1px solid var(--ink); } select { display:block; width:min(100%,360px); min-height:46px; margin:.5rem 0 1.5rem; padding:.6rem; border:1px solid var(--ink); background:white; font:inherit; } .calendar { max-width:620px; padding:1rem; background:white; border:1px solid var(--line); } .calendar-controls { display:flex; align-items:center; justify-content:space-between; gap:1rem; } .calendar-controls h3 { margin:0; font:1.3rem var(--serif); } .calendar-controls button { min-width:44px; min-height:44px; border:1px solid var(--ink); background:var(--paper); font-size:1.25rem; } .calendar-weekdays,.calendar-days { display:grid; grid-template-columns:repeat(7,1fr); text-align:center; } .calendar-weekdays { margin-top:1rem; font-size:.72rem; font-weight:700; } .calendar-days button { aspect-ratio:1; margin:2px; border:0; background:transparent; font:inherit; cursor:pointer; } .calendar-days button:hover,.calendar-days button:focus-visible { outline:2px solid var(--gold); outline-offset:-2px; } .calendar-days .past,.calendar-days .unavailable { color:#9d9588; text-decoration:line-through; cursor:not-allowed; } .calendar-days .today { box-shadow:inset 0 0 0 1px var(--gold); } .calendar-days .selected { background:var(--ink); color:white; text-decoration:none; } details { max-width:720px; padding:1rem 0; border-bottom:1px solid var(--line); } summary { cursor:pointer; font-weight:700; } .site-footer { max-width:none; text-align:center; background:var(--ink); color:var(--paper); } .site-footer h2 { margin-inline:auto; } .site-footer .button { background:var(--gold); border-color:var(--gold); } @media (min-width:851px) { html { scroll-snap-type:y proximity; } .section,.site-footer { min-height:calc(100svh - 74px); scroll-snap-align:start; scroll-snap-stop:always; } .hero { min-height:calc(100svh - 74px); padding-top:2.25rem; padding-bottom:2.25rem; } .hero h1 { max-width:13ch; font-size:clamp(3rem,4.25vw,5.5rem); } .hero-media video { max-height:66svh; } } @media (max-width:850px) { .menu-toggle { display:block; margin-left:auto; min-height:40px; border:0; background:transparent; font:inherit; font-weight:700; } .site-nav { display:none; position:absolute; top:100%; right:0; left:0; flex-direction:column; padding:1rem 5vw; background:var(--paper); border-bottom:1px solid var(--line); } .site-nav.is-open { display:flex; } .site-header>.button-small { display:none; } .hero { grid-template-columns:1fr; min-height:auto; gap:2rem; padding-top:4rem; } .three-up,.media-grid,.steps,.experience-grid { grid-template-columns:1fr; } .section,.site-footer { padding-block:4rem; } } @media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; scroll-snap-type:none; } }
@media (min-width:851px) { .package { padding-block:4rem; } .package h2 { font-size:clamp(2.2rem,3.25vw,3.6rem); } .package .price { font-size:clamp(3rem,4.5vw,4rem); } }
#experience { scroll-margin-top:-6rem; }

.contact-icons { margin-top:1.75rem; }
.contact-icons p { margin:0 0:.65rem; font-size:.9rem; font-weight:700; }
.contact-icons > div { display:flex; gap:.85rem; }
.contact-icon { position:relative; display:grid; width:52px; height:52px; place-items:center; border:1px solid var(--ink); border-radius:50%; background:var(--ink); color:var(--paper); transition:background .2s ease, border-color .2s ease, transform .2s ease; }
.contact-icon:hover,.contact-icon:focus-visible { border-color:var(--gold); background:var(--gold); transform:translateY(-2px); }
.contact-icon:focus-visible { outline:2px solid var(--ink); outline-offset:3px; }
.contact-icon svg { width:25px; height:25px; fill:currentColor; stroke:currentColor; stroke-width:1.8; }
.gmail-icon { background:var(--paper); color:#c5221f; }
.gmail-icon:hover,.gmail-icon:focus-visible { background:#fce8e6; border-color:#c5221f; }

/* Center the hero around its title, showcase video, and next-section cue. */
.hero { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.25rem; text-align:center; }
.hero h1 { max-width:none; margin:0; }
.hero-media { width:min(100%,900px); }
.scroll-cue { margin-top:0; }
@media (min-width:851px) { .hero { padding-top:1.25rem; padding-bottom:1.25rem; } .hero h1 { font-size:clamp(2.8rem,4.25vw,5.5rem); } .hero-media video { max-height:55svh; } }

.floating-contact { position:fixed; z-index:20; right:1.25rem; bottom:max(1.25rem, env(safe-area-inset-bottom)); display:inline-flex; align-items:center; gap:.55rem; min-height:48px; padding:.7rem 1rem; border:1px solid var(--ink); border-radius:999px; background:var(--ink); box-shadow:0 8px 24px rgba(23,22,20,.18); color:var(--paper); font-size:.85rem; font-weight:700; text-decoration:none; transition:background .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.floating-contact svg { width:20px; height:20px; fill:currentColor; }
.floating-contact:hover,.floating-contact:focus-visible { border-color:var(--gold); background:var(--gold); box-shadow:0 12px 30px rgba(23,22,20,.24); transform:translateY(-3px); }
.floating-contact:focus-visible { outline:2px solid var(--ink); outline-offset:3px; }
@media (max-width:850px) { .floating-contact { right:1rem; bottom:max(1rem, env(safe-area-inset-bottom)); } }
