:root{
  --bg:#f6f0ea;
  --paper:#fffaf6;
  --paper-2:#f9f3ee;
  --paper-3:#f4ebe4;
  --ink:#241f20;
  --muted:#76696c;
  --line:#dfd1c8;
  --rose:#cb8f90;
  --rose-strong:#bd7d81;
  --rose-soft:#edd0cf;
  --shadow:0 24px 60px rgba(60,33,33,.10);
  --shadow-soft:0 12px 28px rgba(60,33,33,.08);
  --radius-xl:34px;
  --radius-lg:26px;
  --radius-md:18px;
  --radius-sm:12px;
  --container:min(1180px,calc(100vw - 48px));
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink);
  background:
    radial-gradient(circle at top left, rgba(252,231,236,.85), transparent 38%),
    radial-gradient(circle at bottom right, rgba(239,213,214,.45), transparent 32%),
    linear-gradient(180deg,#faf6f1 0%, #f6f0ea 100%);
  overflow-x:hidden;
}
a{text-decoration:none;color:inherit}
img{display:block;max-width:100%}
button,input{font:inherit}
.container{width:var(--container);margin:0 auto;position:relative}
.page-glow{position:fixed;inset:auto;pointer-events:none;z-index:-1;border-radius:999px;filter:blur(60px);opacity:.6}
.glow-a{width:220px;height:220px;top:88px;left:-70px;background:rgba(236,173,179,.38)}
.glow-b{width:280px;height:280px;right:-90px;top:480px;background:rgba(248,223,209,.75)}
.demo-ribbon{
  min-height:42px;padding:10px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;
  border-bottom:1px solid rgba(158,125,126,.15);background:rgba(255,250,246,.82);backdrop-filter:blur(10px);
  font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)
}
.demo-ribbon a{font-weight:700;color:var(--ink)}
.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#7dc08d;box-shadow:0 0 0 5px rgba(125,192,141,.18);margin-right:10px}
.site-header{position:sticky;top:0;z-index:40;background:rgba(250,245,240,.74);backdrop-filter:blur(16px);border-bottom:1px solid rgba(158,125,126,.10)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:82px}
.logo{display:flex;align-items:center;gap:14px;font-weight:800;letter-spacing:.16em}
.logo-emblem{
  width:54px;height:54px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,#fffdfb,#eddad7);
  box-shadow:var(--shadow-soft);font-family:Georgia,serif;font-size:24px;position:relative;overflow:hidden
}
.logo-emblem span{position:absolute;right:10px;bottom:8px;font-size:11px;color:var(--rose-strong)}
.logo-name{display:flex;flex-direction:column;font-size:14px;line-height:1.05}
.logo-name small{font-size:10px;letter-spacing:.24em;color:var(--muted);font-weight:600;margin-top:6px}
nav{display:flex;align-items:center;gap:28px}
nav a{font-size:13px;font-weight:600;letter-spacing:.10em;text-transform:uppercase;color:var(--muted);transition:.2s ease}
nav a:hover{color:var(--ink)}
.button{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;height:52px;padding:0 22px;border-radius:999px;border:1px solid transparent;
  font-weight:700;letter-spacing:.04em;transition:transform .25s ease, box-shadow .25s ease, background .25s ease
}
.button:hover{transform:translateY(-2px)}
.button-ink{background:linear-gradient(135deg,#1f1b1c,#3a3133);color:#fff;box-shadow:0 20px 36px rgba(33,26,26,.20)}
.button-outline{background:rgba(255,255,255,.56);border-color:rgba(189,125,129,.25);color:var(--ink)}
.simple-link{display:inline-flex;gap:10px;align-items:center;font-weight:700;color:var(--ink)}
.menu-button{display:none}
.glass-card,.card-soft,.depth-card,.service-tile,.summary-card,.booking-picture,.about-picture,.booking-panel,.band-card,.mosaic-card,.gallery-item,.modal-card,.faq-list details,.service-tabs,.booking-progress,.day-btn,.time-btn,.select-option{
  box-shadow:var(--shadow-soft)
}
.glass-card,.card-soft,.booking-panel,.summary-card,.band-card,.mosaic-card,.faq-list details{
  background:rgba(255,251,248,.76);backdrop-filter:blur(14px);border:1px solid rgba(192,150,150,.12)
}
.depth-card,.service-tile,.booking-picture,.about-picture,.gallery-item,.modal-card{
  background:var(--paper);border:1px solid rgba(192,150,150,.14)
}
.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;padding:64px 0 34px}
.hero-copy{padding:42px;border-radius:var(--radius-xl);position:relative;overflow:hidden}
.hero-copy:before{content:"";position:absolute;inset:auto -30px -30px auto;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle, rgba(232,191,194,.38), transparent 70%)}
.eyebrow,.kicker{display:inline-flex;align-items:center;gap:12px;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--rose-strong);font-weight:700}
.line{width:56px;height:1px;background:rgba(189,125,129,.35)}
.hero h1,.section-top h2,.booking-header h2,.about-text h2,.faq-layout h2,.quote-layout h2{margin:18px 0 0;line-height:.96;font-weight:500;letter-spacing:-.04em}
.hero h1{font-size:clamp(56px,8vw,90px)}
.hero h1 em,.section-top h2 em,.booking-header h2 em,.about-text h2 em,.faq-layout h2 em,.quote-layout h2 em{font-style:italic;font-family:Georgia,"Times New Roman",serif;color:var(--rose-strong)}
.hero p,.section-top>p,.booking-header>p,.about-text p,.faq-layout p,.quote-layout p,.section-disclaimer,.booking-panel p,.summary-card p{color:var(--muted);line-height:1.78}
.hero p{max-width:590px;font-size:16px;margin:22px 0 0}
.hero-buttons{display:flex;align-items:center;gap:16px;margin-top:28px;flex-wrap:wrap}
.hero-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:28px}
.hero-feature-grid article{padding:16px 18px;border-radius:20px;background:rgba(255,255,255,.7);border:1px solid rgba(201,168,168,.18)}
.hero-feature-grid strong{display:block;font-size:20px}
.hero-feature-grid span{display:block;color:var(--muted);font-size:13px;margin-top:6px}
.hero-foot{display:flex;align-items:center;gap:14px;margin-top:34px;color:var(--muted);font-size:11px;letter-spacing:.18em;text-transform:uppercase}
.hero-foot-line{height:1px;flex:1;background:linear-gradient(90deg,rgba(189,125,129,.4),transparent)}
.hero-images{position:relative;height:670px}
.hero-shape{position:absolute;border-radius:999px;filter:blur(2px)}
.hero-shape-a{width:180px;height:180px;right:12px;top:26px;background:linear-gradient(135deg,rgba(235,177,183,.84),rgba(243,224,212,.1));box-shadow:0 24px 80px rgba(210,159,163,.25)}
.hero-shape-b{width:220px;height:220px;left:12px;bottom:42px;background:radial-gradient(circle, rgba(255,255,255,.96) 0%, rgba(239,217,206,.56) 55%, transparent 72%)}
.hero-photo{position:absolute;left:0;top:42px;width:68%;height:490px;border-radius:34px;overflow:hidden;transform:rotate(-4deg)}
.hero-photo img,.hero-inset img,.tile-image img,.gallery-item img,.booking-picture img,.about-picture img,.mosaic-visual img{width:100%;height:100%;object-fit:cover}
.hero-inset{position:absolute;right:0;top:0;width:46%;height:250px;border-radius:28px;overflow:hidden;transform:rotate(4deg)}
.hero-floating{position:absolute;z-index:3;border-radius:24px;padding:18px 20px;max-width:250px}
.floating-top{right:8%;top:280px}
.floating-bottom{left:8%;bottom:46px;display:flex;gap:14px;align-items:flex-start;max-width:320px}
.floating-top strong,.floating-bottom strong{display:block;font-size:16px}
.floating-label{display:block;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--rose-strong);margin-bottom:8px}
.floating-top small,.floating-bottom small{display:block;color:var(--muted);margin-top:6px;line-height:1.5}
.floating-dot{width:14px;height:14px;border-radius:50%;background:linear-gradient(135deg,var(--rose),#f3d5d1);margin-top:5px;box-shadow:0 0 0 8px rgba(203,143,144,.14)}
.circle-stamp{position:absolute;right:34px;bottom:148px;width:106px;height:106px;border-radius:50%;border:8px solid rgba(255,255,255,.72);display:grid;place-items:center;background:linear-gradient(135deg,rgba(255,255,255,.8),rgba(244,226,221,.6));font-family:Georgia,serif;font-size:32px;color:var(--rose-strong);box-shadow:var(--shadow)}
.circle-stamp small{display:block;font-family:Inter, sans-serif;font-size:8px;letter-spacing:.24em;color:var(--muted);margin-top:5px}
.hero-note{position:absolute;right:18px;bottom:18px;font-size:11px;letter-spacing:.20em;text-transform:uppercase;color:var(--muted)}
.signature-band{padding:16px 0 0}
.signature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.band-card{padding:24px;border-radius:24px;min-height:162px;transition:transform .25s ease, box-shadow .25s ease}
.band-card:hover,.mosaic-card:hover,.service-tile:hover,.gallery-item:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.band-card span{display:inline-flex;width:38px;height:38px;border-radius:12px;align-items:center;justify-content:center;background:#fff;font-size:12px;letter-spacing:.16em;color:var(--rose-strong);font-weight:700;box-shadow:var(--shadow-soft)}
.band-card h3{font-size:20px;margin:18px 0 10px;letter-spacing:-.03em}
.band-card p{margin:0;color:var(--muted);line-height:1.7}
.section{padding:92px 0}
.section-top,.booking-header{display:grid;grid-template-columns:1.1fr .8fr;gap:34px;align-items:end;margin-bottom:34px}
.section-top h2,.booking-header h2,.about-text h2,.faq-layout h2{font-size:clamp(42px,5vw,68px)}
.intro-mosaic{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;margin-bottom:26px;align-items:stretch}
.main-card{display:grid;grid-template-columns:1fr 290px;gap:24px;padding:24px;border-radius:28px;grid-row:span 2}
.mosaic-copy h3{font-size:32px;line-height:1.08;letter-spacing:-.03em;margin:12px 0 10px}
.mosaic-copy p{color:var(--muted);line-height:1.8;margin:0}
.mosaic-visual{border-radius:22px;overflow:hidden;min-height:260px}
.slim-card{padding:24px;border-radius:24px;display:flex;flex-direction:column;justify-content:center;min-height:150px}
.slim-card strong{font-size:22px;line-height:1.15}
.slim-card p{margin:10px 0 0;color:var(--muted);line-height:1.7}
.mini-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.mini-tags span,.service-chips span,.gallery-filter,.category{border-radius:999px;border:1px solid rgba(189,125,129,.16);background:rgba(255,255,255,.8)}
.mini-tags span{padding:10px 14px;font-size:12px;color:var(--ink);font-weight:600}
.service-tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.service-tile{border-radius:30px;overflow:hidden}
.tile-image{position:relative;height:390px;overflow:hidden}
.tile-image img{transition:transform .45s ease}
.service-tile:hover .tile-image img,.gallery-item:hover img,.about-picture:hover img,.booking-picture:hover img,.hero-photo:hover img,.hero-inset:hover img,.mosaic-card:hover img{transform:scale(1.04)}
.tile-index{position:absolute;left:20px;bottom:20px;padding:12px 14px;border-radius:999px;background:rgba(255,251,248,.88);backdrop-filter:blur(12px);font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--ink)}
.tile-content{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:28px 28px 12px}
.tile-content h3{font-size:30px;letter-spacing:-.03em;margin:0 0 8px}
.tile-content p{margin:0;color:var(--muted);line-height:1.75}
.tile-arrow{width:54px;height:54px;flex:0 0 54px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#252022,#44393c);color:#fff;font-size:22px;box-shadow:0 18px 32px rgba(36,31,32,.20)}
.service-chips{display:flex;flex-wrap:wrap;gap:10px;padding:0 28px 28px}
.service-chips span,.gallery-filter,.category{padding:11px 16px;font-size:12px;font-weight:700;letter-spacing:.10em;text-transform:uppercase;color:var(--muted)}
.section-disclaimer{text-align:center;margin:28px 0 0;font-size:13px}
.quote-section{padding:84px 0;background:linear-gradient(180deg,rgba(255,255,255,.48),rgba(255,255,255,.1));border-top:1px solid rgba(189,125,129,.12);border-bottom:1px solid rgba(189,125,129,.12)}
.quote-layout{text-align:center;position:relative}
.quote-layout h2{max-width:960px;margin:18px auto 0;font-size:clamp(36px,4vw,58px)}
.quote-decoration{display:grid;place-items:center;margin:22px auto 0;width:68px;height:68px;border-radius:50%;background:rgba(255,255,255,.72);box-shadow:var(--shadow-soft);font-size:28px;color:var(--rose-strong)}
.gallery-heading{margin-bottom:24px}
.gallery-filters{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px}
.gallery-filter,.category{cursor:pointer;transition:.2s ease}
.gallery-filter.active,.category.active,.gallery-filter:hover,.category:hover{background:linear-gradient(135deg,#1f1b1c,#40383a);color:#fff;border-color:transparent}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:240px;gap:16px}
.gallery-item{position:relative;border-radius:26px;overflow:hidden;border:none;padding:0;cursor:pointer;text-align:left}
.gallery-item.tall{grid-row:span 2}
.gallery-item:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 36%, rgba(24,18,20,.62) 100%)}
.gallery-item span{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:40px 20px 20px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#fff;font-weight:700}
.gallery-item span b{font-size:18px}
.booking-section{padding:94px 0}
.booking-grid{display:grid;grid-template-columns:minmax(0,1.1fr) 360px;gap:24px;align-items:start}
.booking-panel{padding:30px;border-radius:30px}
.booking-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:14px;background:rgba(255,255,255,.62);border-radius:20px;border:1px solid rgba(189,125,129,.10);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:700}
.booking-progress span{text-align:center}
.book-step{padding:28px 0;border-bottom:1px solid rgba(189,125,129,.12)}
.book-step.last-step{border-bottom:none;padding-bottom:10px}
.step-heading{display:flex;gap:16px;align-items:flex-start;margin-bottom:16px}
.number-bubble{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,#262122,#4c4043);color:#fff;font-weight:700;box-shadow:0 18px 28px rgba(36,31,32,.18)}
.step-heading h3{margin:0 0 6px;font-size:28px;letter-spacing:-.03em}
.step-heading p{margin:0;color:var(--muted)}
.service-tabs{display:inline-flex;padding:6px;border-radius:999px;gap:8px;margin-bottom:16px}
.option-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.select-option,.day-btn,.time-btn{border:1px solid rgba(189,125,129,.14);background:rgba(255,255,255,.74);cursor:pointer;transition:.2s ease}
.select-option{padding:18px;border-radius:20px;display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left}
.select-option strong{display:block;font-size:16px}
.select-option small{display:block;color:var(--muted);margin-top:6px}
.select-option b{font-size:14px}
.select-option.selected,.day-btn.selected,.time-btn.selected{background:linear-gradient(135deg,rgba(36,31,32,.96),rgba(76,64,67,.96));color:#fff;border-color:transparent}
.select-option.selected small,.day-btn.selected small,.day-btn.selected span,.time-btn.selected{color:#fff}
.date-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.day-btn{padding:14px 8px;border-radius:18px;text-align:center}
.day-btn small,.day-btn span{display:block;color:var(--muted);text-transform:uppercase;font-size:11px;letter-spacing:.12em}
.day-btn strong{display:block;font-size:24px;line-height:1.1;margin:4px 0}
.time-label{margin:18px 0 12px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--rose-strong);font-weight:700}
.times-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.time-btn{height:52px;border-radius:16px;font-weight:700}
.time-btn:disabled{opacity:.42;cursor:not-allowed;text-decoration:line-through}
.field-hint{grid-column:1/-1;margin:0;padding:14px 16px;border-radius:16px;background:rgba(203,143,144,.09);color:var(--muted)}
.input-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
label{display:block;font-size:13px;font-weight:700;color:var(--ink)}
input[type="text"],input[type="tel"]{width:100%;margin-top:8px;height:54px;padding:0 16px;border-radius:16px;border:1px solid rgba(189,125,129,.16);background:#fffdfb;color:var(--ink);outline:none;transition:border-color .2s ease, box-shadow .2s ease}
input[type="text"]:focus,input[type="tel"]:focus{border-color:rgba(189,125,129,.55);box-shadow:0 0 0 4px rgba(203,143,144,.10)}
.check{display:flex;gap:12px;align-items:flex-start;margin-top:18px;font-size:14px;font-weight:500;color:var(--muted)}
.check input{margin-top:4px}
.form-error{min-height:22px;margin:0 0 10px;color:#a13f4f;font-weight:700}
.finish-button{width:100%;margin-top:6px}
.submit-fineprint{text-align:center;font-size:12px;margin-top:12px;color:var(--muted)}
.booking-aside{position:sticky;top:108px;display:flex;flex-direction:column;gap:18px}
.summary-card{padding:28px;border-radius:30px}
.summary-card h3{font-size:38px;line-height:.98;letter-spacing:-.04em;margin:14px 0 22px;font-weight:500}
.summary-row,.summary-total{display:flex;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid rgba(189,125,129,.12)}
.summary-row span,.summary-total span{color:var(--muted)}
.summary-total{padding-top:18px;margin-top:4px;border-bottom:none}
.summary-total strong{font-size:26px}
.booking-picture{position:relative;border-radius:28px;overflow:hidden;min-height:280px}
.booking-picture span{position:absolute;left:18px;bottom:18px;padding:12px 14px;border-radius:999px;background:rgba(255,255,255,.88);font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:700}
.about-layout{display:grid;grid-template-columns:.96fr 1.04fr;gap:38px;align-items:center}
.about-picture{position:relative;height:500px;border-radius:34px;overflow:hidden}
.about-picture span{position:absolute;left:18px;top:18px;padding:12px 14px;border-radius:999px;background:rgba(255,255,255,.88);font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:700}
.about-text .button{margin-top:14px}
.faq-section{padding:94px 0 100px}
.faq-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:34px;align-items:start}
.faq-list{display:grid;gap:14px}
.faq-list details{border-radius:22px;padding:0 24px;overflow:hidden}
.faq-list summary{display:flex;align-items:center;justify-content:space-between;list-style:none;cursor:pointer;padding:22px 0;font-size:18px;font-weight:700;gap:20px}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary span{font-size:24px;color:var(--rose-strong)}
.faq-list p{margin:0 0 20px;color:var(--muted);line-height:1.8}
.footer{padding:0 0 20px;background:linear-gradient(180deg,rgba(248,241,236,.1),rgba(255,255,255,.4));border-top:1px solid rgba(189,125,129,.12)}
.footer-main{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:30px;padding:56px 0 32px}
.footer-wordmark{display:inline-block;font-size:34px;letter-spacing:.12em;font-weight:800}
.footer-wordmark span{color:var(--rose-strong)}
.footer p,.footer small,.footer a,.footer-bottom{color:var(--muted);line-height:1.8}
.footer-heading{display:block;font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--rose-strong);margin-bottom:12px}
.footer-main a{display:block;margin:4px 0}
.footer-soy{font-weight:700;color:var(--ink)!important}
.footer-bottom{display:flex;justify-content:space-between;gap:18px;padding-top:18px;border-top:1px solid rgba(189,125,129,.12);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.modal,.lightbox{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px}
.modal-overlay,.lightbox-shade{position:absolute;inset:0;background:rgba(20,14,16,.55);backdrop-filter:blur(6px)}
.modal-card,.lightbox-inner{position:relative;z-index:1;width:min(560px,100%);border-radius:30px;padding:34px;background:var(--paper)}
.close,#closeLightbox{position:absolute;top:18px;right:18px;width:42px;height:42px;border-radius:50%;border:none;background:rgba(236,223,219,.8);cursor:pointer;font-size:28px;color:var(--ink)}
.success-icon{display:grid;place-items:center;width:74px;height:74px;border-radius:50%;background:linear-gradient(135deg,#1f1b1c,#483d40);color:#fff;font-size:34px;box-shadow:0 20px 36px rgba(36,31,32,.20)}
.modal-card h2{font-size:42px;line-height:1;margin:18px 0 14px;letter-spacing:-.04em;font-weight:500}
.modal-card p{color:var(--muted);line-height:1.75}
.modal-summary{display:grid;gap:10px;margin:18px 0 26px;padding:18px;border-radius:18px;background:rgba(246,240,234,.78)}
.modal-link{display:inline-flex;margin-top:18px;font-weight:700;color:var(--ink)}
.lightbox-inner{width:min(820px,100%);padding:24px;background:#151214}
.lightbox-inner img{width:100%;max-height:70vh;object-fit:contain;border-radius:20px}
.lightbox-inner p{margin:14px 0 0;color:#f3e7e3}
[hidden]{display:none!important}

@media (max-width:1080px){
  .hero{grid-template-columns:1fr;gap:28px}
  .hero-images{height:600px}
  .signature-grid,.service-tiles,.faq-layout,.about-layout,.section-top,.booking-header,.booking-grid,.intro-mosaic,.footer-main{grid-template-columns:1fr}
  .main-card{grid-template-columns:1fr}
  .booking-aside{position:static}
}

@media (max-width:860px){
  .demo-ribbon{font-size:10px;letter-spacing:.14em;padding-inline:16px;flex-wrap:wrap;justify-content:center;text-align:center}
  .desktop-book{display:none}
  .menu-button{display:grid;place-items:center;width:48px;height:48px;border:none;background:rgba(255,255,255,.65);border-radius:14px;gap:4px;padding:10px;box-shadow:var(--shadow-soft)}
  .menu-button span{display:block;width:100%;height:2px;background:var(--ink);border-radius:999px}
  nav{position:absolute;left:24px;right:24px;top:94px;display:none;flex-direction:column;align-items:flex-start;padding:18px;border-radius:24px;background:rgba(255,251,248,.95);backdrop-filter:blur(16px);box-shadow:var(--shadow)}
  nav.open{display:flex}
  .hero-copy{padding:30px}
  .hero h1{font-size:clamp(48px,12vw,72px)}
  .hero-feature-grid,.option-list,.input-grid{grid-template-columns:1fr}
  .hero-images{height:480px}
  .hero-photo{width:70%;height:360px}
  .hero-inset{width:44%;height:180px}
  .circle-stamp{width:84px;height:84px;font-size:24px;border-width:6px;right:10px;bottom:92px}
  .circle-stamp small{font-size:6px}
  .floating-top{top:206px;right:0}
  .floating-bottom{left:0;bottom:18px;max-width:280px}
  .date-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .times-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .about-picture{height:360px}
  .footer-bottom{flex-direction:column;line-height:1.8}
}

@media (max-width:620px){
  :root{--container:min(100vw - 24px,1180px)}
  .header-inner{min-height:74px}
  .logo-emblem{width:46px;height:46px;font-size:21px}
  .logo-name{font-size:12px}
  .logo-name small{font-size:9px}
  .hero{padding:26px 0 18px}
  .hero-copy{padding:24px;border-radius:26px}
  .hero p,.section-top>p,.booking-header>p{font-size:15px}
  .hero-images{height:430px}
  .hero-photo{top:34px;width:72%;height:295px;border-radius:24px}
  .hero-inset{height:150px;border-radius:20px}
  .hero-floating{padding:14px 15px;border-radius:18px}
  .hero-note{font-size:8px;letter-spacing:.18em}
  .signature-band{padding-top:8px}
  .band-card{min-height:auto;padding:20px}
  .section,.booking-section,.faq-section{padding:74px 0}
  .section-top h2,.booking-header h2,.about-text h2,.faq-layout h2,.quote-layout h2{font-size:clamp(36px,11vw,50px)}
  .main-card,.booking-panel,.summary-card,.modal-card,.lightbox-inner{padding:20px}
  .mosaic-copy h3{font-size:26px}
  .tile-image{height:300px}
  .tile-content{padding:22px 20px 10px}
  .tile-content h3{font-size:25px}
  .service-chips{padding:0 20px 20px}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:170px;gap:10px}
  .gallery-item span{padding:20px 12px 12px;font-size:8px}
  .booking-progress{font-size:9px;gap:6px;padding:10px}
  .step-heading h3{font-size:22px}
  .date-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .times-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .faq-list summary{font-size:16px}
  .footer-main{padding:46px 0 24px}
  .footer-wordmark{font-size:28px}
}

@media (max-width:390px){
  .hero h1{font-size:44px}
  .hero-images{height:390px}
  .hero-photo{height:255px}
  .hero-inset{height:128px}
  .gallery-grid{grid-auto-rows:145px}
  .summary-card h3{font-size:30px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}
}
