:root{--navy-950:#0A1424;--navy-900:#0F1B33;--navy-800:#152847;--navy-700:#1D3A66;--blue-600:#245797;--gold-300:#C7DAF2;--gold-500:#2F6FED;--gold-600:#2457C4;--gold-700:#163B78;--cream-50:#F8F4EA;--cream-100:#F1EADA;--white:#FFFFFF;--ink:#14171C;--muted:#5B6472;--line:rgba(18,32,58,0.12);--radius:6px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:'Work Sans',sans-serif;color:var(--ink);background:var(--cream-50);line-height:1.6;-webkit-font-smoothing:antialiased}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}h1,h2,h3,h4{font-family:'Fraunces',serif;font-weight:700;line-height:1.15;margin:0 0 0.5em;color:var(--navy-900)}h1{font-size:clamp(2.2rem,4.5vw,3.6rem);font-weight:900}h2{font-size:clamp(1.7rem,3vw,2.4rem)}h3{font-size:1.3rem}p{margin:0 0 1em}.container{max-width:1140px;margin:0 auto;padding:0 24px}section{padding:88px 0}@media(max-width:640px){section{padding:56px 0}}.ribbon{display:inline-block;position:relative;background:var(--navy-900);color:var(--gold-300);font-family:'Work Sans',sans-serif;font-weight:600;font-size:0.72rem;letter-spacing:0.14em;text-transform:uppercase;padding:8px 26px;clip-path:polygon(12px 0,100% 0,calc(100% - 12px) 100%,0 100%);margin-bottom:22px}.ribbon.on-dark{background:var(--gold-500);color:#FFFFFF}.btn{display:inline-flex;align-items:center;gap:8px;font-family:'Work Sans',sans-serif;font-weight:600;font-size:0.95rem;padding:14px 30px;border:none;cursor:pointer;clip-path:polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%);transition:transform 0.15s ease,box-shadow 0.15s ease}.btn:hover{transform:translateY(-1px)}.btn-gold{background:var(--gold-500);color:#FFFFFF}.btn-gold:hover{background:var(--gold-600)}.btn-outline{background:transparent;color:var(--white);border:1.5px solid rgba(255,255,255,0.55);clip-path:none;padding:12.5px 28px}.btn-outline:hover{border-color:var(--white);background:rgba(255,255,255,0.08)}.btn-outline-navy{background:transparent;color:var(--navy-900);border:1.5px solid var(--navy-900);clip-path:none;padding:12.5px 28px}.btn-outline-navy:hover{background:var(--navy-900);color:var(--white)}.btn-block{width:100%;justify-content:center;clip-path:none}header.site{position:sticky;top:0;z-index:100;background:var(--white);border-bottom:1px solid var(--line)}.nav-wrap{display:flex;align-items:center;justify-content:space-between;padding:8px 24px;max-width:1140px;margin:0 auto}.brand{display:flex;align-items:center;gap:10px}.brand img{height:104px;width:auto;aspect-ratio:500/333}nav.links{display:flex;gap:30px;font-size:0.92rem;font-weight:500}nav.links a{color:var(--navy-800);position:relative}nav.links a:hover{color:var(--gold-700)}.nav-cta{display:flex;gap:10px;align-items:center}.phone-link{font-weight:600;font-size:0.9rem;color:var(--navy-800);display:flex;align-items:center;gap:6px}.menu-toggle{display:none;background:none;border:none;font-size:1.6rem;cursor:pointer;color:var(--navy-900)}@media(max-width:900px){nav.links{display:none}.phone-link span{display:none}.menu-toggle{display:block}}.hero{background:linear-gradient(155deg,var(--navy-950) 0%,var(--navy-800) 55%,var(--blue-600) 130%);color:var(--white);position:relative;overflow:hidden;padding:110px 0 100px}.hero::before{content:'';position:absolute;inset:0;background-image:radial-gradient(circle at 85% 20%,rgba(212,168,75,0.16),transparent 45%);pointer-events:none}.hero-grid{display:grid;grid-template-columns:1.1fr 0.9fr;gap:40px;align-items:center;position:relative}@media(max-width:900px){.hero-grid{grid-template-columns:1fr}}.hero h1{color:var(--white)}.hero p.lead{font-size:1.15rem;color:rgba(255,255,255,0.82);max-width:46ch}.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}.hero-badges{display:flex;gap:26px;margin-top:44px;flex-wrap:wrap}.hero-badges .badge{font-size:0.85rem;color:rgba(255,255,255,0.75);display:flex;align-items:center;gap:8px}.hero-badges .dot{width:6px;height:6px;background:var(--gold-500);border-radius:50%}.steam-art{position:relative;height:340px}.steam-art svg{width:100%;height:100%}.hero-visual{position:relative}.hero-photo{border-radius:14px;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,0.35);aspect-ratio:4/3.1}.hero-photo img{width:100%;height:100%;object-fit:cover}.hero-logo-badge{position:absolute;top:-34px;left:-28px;width:190px;height:auto;aspect-ratio:500/333;filter:drop-shadow(0 10px 22px rgba(0,0,0,0.45))}@media(max-width:900px){.hero-logo-badge{width:130px;top:-20px;left:-10px}}.wisp path{stroke:var(--gold-500);stroke-width:2;fill:none;opacity:0.55}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}@media(max-width:800px){.grid-3,.grid-2{grid-template-columns:1fr}}.card{background:var(--white);border:1px solid var(--line);padding:34px 28px;border-radius:var(--radius);transition:box-shadow 0.2s ease,transform 0.2s ease}.card:hover{box-shadow:0 14px 34px rgba(15,27,51,0.1);transform:translateY(-3px)}.card .icon{width:52px;height:52px;border-radius:50%;background:var(--cream-100);color:var(--gold-700);display:flex;align-items:center;justify-content:center;font-size:1.4rem;margin-bottom:18px}.card h3{margin-bottom:8px}.card p{color:var(--muted);font-size:0.95rem;margin-bottom:16px}.card a.link{font-weight:600;font-size:0.9rem;color:var(--navy-800);border-bottom:1.5px solid var(--gold-500);padding-bottom:2px}.section-navy{background:var(--navy-900);color:var(--white)}.section-navy h2{color:var(--white)}.section-navy p{color:rgba(255,255,255,0.75)}.section-cream{background:var(--cream-100)}.center{text-align:center}.section-head{max-width:640px;margin:0 auto 50px}.section-head.left{margin:0 0 50px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;counter-reset:step}@media(max-width:800px){.steps{grid-template-columns:1fr}}.step{position:relative;padding-left:0}.step .num{font-family:'Fraunces',serif;font-size:2.6rem;font-weight:700;color:var(--gold-500);line-height:1;margin-bottom:10px;display:block}.trust-strip{display:flex;justify-content:center;gap:48px;flex-wrap:wrap;padding:26px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--white)}.trust-item{display:flex;align-items:center;gap:10px;font-size:0.9rem;font-weight:600;color:var(--navy-800)}.trust-item .icon-sm{color:var(--gold-600);font-size:1.2rem}.testimonial{background:var(--white);border:1px solid var(--line);padding:28px;border-radius:var(--radius)}.stars{color:var(--gold-500);letter-spacing:2px;margin-bottom:12px;font-size:1rem}.testimonial p{color:var(--ink);font-style:italic}.testimonial .who{font-weight:600;font-size:0.88rem;color:var(--muted);font-style:normal;margin-top:14px}.price-table{width:100%;border-collapse:collapse;background:var(--white)}.price-table th,.price-table td{padding:16px 18px;border-bottom:1px solid var(--line);text-align:left}.price-table th{font-family:'Work Sans';font-size:0.78rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted);background:var(--cream-100)}.price-table td.price{font-family:'Fraunces';font-weight:700;color:var(--navy-900);font-size:1.05rem}.price-note{font-size:0.85rem;color:var(--muted);margin-top:14px}.booking-wrap{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}@media(max-width:860px){.booking-wrap{grid-template-columns:1fr}}.booking-panel{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:32px}.booking-panel .square-slot{border:1.5px dashed var(--gold-500);border-radius:var(--radius);padding:40px 20px;text-align:center;color:var(--muted);font-size:0.9rem;background:var(--cream-50)}.booking-list{list-style:none;padding:0;margin:0 0 24px}.booking-list li{display:flex;gap:12px;margin-bottom:14px;font-size:0.95rem}.booking-list li .icon-sm{color:var(--gold-600);flex-shrink:0}.field{margin-bottom:18px}.field label{display:block;font-size:0.85rem;font-weight:600;margin-bottom:6px;color:var(--navy-800)}.field input,.field select,.field textarea{width:100%;padding:11px 14px;border:1px solid var(--line);border-radius:var(--radius);font-family:'Work Sans';font-size:0.95rem;background:var(--cream-50);color:var(--ink)}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--gold-500);outline-offset:1px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:520px){.field-row{grid-template-columns:1fr}}.area-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}@media(max-width:800px){.area-grid{grid-template-columns:repeat(2,1fr)}}.area-chip{background:var(--white);border:1px solid var(--line);padding:14px 16px;font-size:0.92rem;font-weight:500;border-radius:var(--radius)}.faq-item{border-bottom:1px solid var(--line);padding:18px 0}.faq-item summary{cursor:pointer;font-weight:600;font-family:'Fraunces';font-size:1.05rem;list-style:none;display:flex;justify-content:space-between;align-items:center;color:var(--navy-900)}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary::after{content:'+';font-size:1.4rem;color:var(--gold-600)}.faq-item[open] summary::after{content:'\2212'}.faq-item p{margin-top:12px;color:var(--muted)}.cta-band{background:var(--navy-900);color:var(--white);text-align:center;padding:70px 0;position:relative;overflow:hidden}.cta-band h2{color:var(--white)}.cta-band p{color:rgba(255,255,255,0.75);max-width:50ch;margin:0 auto 28px}footer.site{background:var(--navy-950);color:rgba(255,255,255,0.75);padding:64px 0 28px;font-size:0.9rem}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px;margin-bottom:40px}@media(max-width:800px){.footer-grid{grid-template-columns:1fr 1fr}}footer.site h4{color:var(--white);font-family:'Work Sans';font-size:0.82rem;letter-spacing:0.08em;text-transform:uppercase;margin-bottom:16px}footer.site a{display:block;margin-bottom:10px;color:rgba(255,255,255,0.65)}footer.site a:hover{color:var(--gold-500)}.footer-brand img{height:58px;width:auto;aspect-ratio:500/333;margin-bottom:14px}.social-links{display:flex;gap:12px;margin-top:16px}.social-links a{color:rgba(255,255,255,.75);display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid rgba(255,255,255,.25);border-radius:50%;transition:color .15s ease,border-color .15s ease}.social-links a:hover{color:var(--gold-500);border-color:var(--gold-500)}.footer-bottom{border-top:1px solid rgba(255,255,255,0.12);padding-top:22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:0.8rem;color:rgba(255,255,255,0.45)}.mobile-cta-bar{display:none;position:sticky;bottom:0;z-index:90;background:var(--navy-950);padding:12px 16px;gap:10px}@media(max-width:640px){.mobile-cta-bar{display:flex}}.mobile-cta-bar .btn{flex:1;justify-content:center;font-size:0.85rem;padding:12px}.page-hero{background:var(--navy-900);color:var(--white);padding:64px 0}.page-hero h1{color:var(--white);font-size:clamp(1.9rem,4vw,2.8rem)}.breadcrumb{font-size:0.82rem;color:rgba(255,255,255,0.6);margin-bottom:14px}.breadcrumb a{color:rgba(255,255,255,0.85)}.icon-sm{display:inline-flex}
.gallery-scroll{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 6px 18px;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--gold-500) var(--cream-100)}.gallery-scroll::-webkit-scrollbar{height:8px}.gallery-scroll::-webkit-scrollbar-track{background:var(--cream-100);border-radius:4px}.gallery-scroll::-webkit-scrollbar-thumb{background:var(--gold-500);border-radius:4px}.gallery-item{flex:0 0 auto;width:340px;scroll-snap-align:start;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:#fff}.gallery-item img{width:100%;height:260px;object-fit:cover;display:block}.gallery-item.full{width:300px}.gallery-item.full img{height:auto}.gallery-pair{display:grid;grid-template-columns:1fr 1fr}.gallery-half{position:relative}.gallery-tag{position:absolute;bottom:8px;left:8px;background:rgba(10,20,36,.78);color:#fff;font-size:.68rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:3px 9px;border-radius:4px}.gallery-tag.after{background:var(--gold-500)}.gallery-hint{text-align:center;font-size:.85rem;color:var(--muted);margin-top:-4px}@media(max-width:640px){.gallery-item{width:280px}.gallery-item img{height:220px}}
