:root{
  --black:#080708;
  --black-soft:#0d090b;
  --wine:#260d17;
  --burgundy:#401424;
  --plum:#1a0b12;
  --gold:#c99a4c;
  --gold-deep:#8f6533;
  --gold-light:#e4c27a;
  --cream:#f1dfbf;
  --text:#eadcc8;
  --muted:#c9b29c;
  --line:rgba(201,154,76,.58);
  --line-soft:rgba(201,154,76,.26);
  --serif:Didot,"Bodoni MT","Bodoni 72",Georgia,"Times New Roman",serif;
  --body:Georgia,"Times New Roman",serif;
  --script:Z003,"Snell Roundhand","Segoe Script","Brush Script MT",cursive;
  --shadow:0 26px 70px rgba(0,0,0,.48);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:76px;background:var(--black)}
body{
  margin:0;
  overflow-x:hidden;
  color:var(--text);
  background:
    radial-gradient(circle at 16% 0,rgba(78,21,42,.22),transparent 34rem),
    var(--black);
  font-family:var(--body);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
a{color:inherit}
a,button{-webkit-tap-highlight-color:transparent}
img,svg,picture{display:block;max-width:100%}
[hidden]{display:none!important}

.skip-link{position:fixed;top:-80px;left:14px;z-index:5000;padding:10px 14px;border-radius:4px;background:#fff;color:#000}
.skip-link:focus{top:14px}

.mobile-header,.mobile-menu,.menu-backdrop{display:none}

/* Telaio identico alle proporzioni 1087 × 1536 della tavola originale. */
.site-frame{
  position:relative;
  width:min(1087px,100%);
  margin:0 auto;
  padding:4px;
  overflow:hidden;
  background:#0a0809;
  box-shadow:inset 0 0 0 1px rgba(201,154,76,.54),var(--shadow);
  isolation:isolate;
}
.site-frame::before,.site-frame::after{
  content:"";
  position:absolute;
  z-index:50;
  width:42px;
  height:42px;
  pointer-events:none;
  opacity:.72;
}
.site-frame::before{left:8px;top:8px;border-left:1px solid var(--gold);border-top:1px solid var(--gold)}
.site-frame::after{right:8px;bottom:8px;border-right:1px solid var(--gold);border-bottom:1px solid var(--gold)}

.top-grid,.content-grid{display:grid;grid-template-columns:63.1% 36.9%}
.top-grid{height:490px;border-bottom:1px solid var(--line)}
.top-left,.left-flow{min-width:0;border-right:1px solid var(--line)}

.desktop-header{
  height:64px;
  display:grid;
  grid-template-columns:226px minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
  padding:0 16px 0 18px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,#0c090a,#090708);
}
.desktop-logo{display:block;width:216px}
.desktop-logo img{width:100%;height:auto}
.desktop-nav{display:flex;align-items:center;justify-content:center;gap:19px;min-width:0}
.desktop-nav a{
  position:relative;
  padding:10px 0;
  color:#ead8bc;
  text-decoration:none;
  text-transform:uppercase;
  white-space:nowrap;
  font-size:10px;
  letter-spacing:.075em;
}
.desktop-nav a::after{
  content:"";
  position:absolute;
  left:50%;right:50%;bottom:4px;
  height:1px;
  background:var(--gold);
  transition:left .2s ease,right .2s ease;
}
.desktop-nav a:hover::after,.desktop-nav a:focus-visible::after{left:0;right:0}

.nav-book,.lux-button{
  border:1px solid var(--gold-deep);
  border-radius:999px;
  color:var(--gold-light);
  background:linear-gradient(180deg,#4a1730,#2b0d1c);
  text-transform:uppercase;
  letter-spacing:.055em;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 7px 18px rgba(0,0,0,.24);
}
.nav-book{padding:10px 18px;font-size:10px;white-space:nowrap}
.nav-book:hover,.nav-book:focus-visible,.lux-button:hover,.lux-button:focus-visible{
  filter:brightness(1.12);
  outline:1px solid var(--gold-light);
  outline-offset:2px;
}

.hero{position:relative;height:426px;overflow:hidden;background:#080708}
.hero-media{position:absolute;inset:0}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:66% 46%;filter:brightness(1.02) contrast(1.055) saturate(1.04)}
.hero-shade{
  position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(4,3,4,.62) 0,rgba(5,4,5,.42) 20%,rgba(6,5,6,.18) 42%,rgba(6,5,6,.06) 58%,transparent 74%);
}
.hero-copy{
  position:relative;
  z-index:2;
  width:46.5%;
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
  padding:72px 18px 24px 48px;
}
.hero-copy h1{
  margin:0;
  color:var(--cream);
  font-family:var(--serif);
  font-size:42px;
  font-weight:400;
  line-height:1.01;
  letter-spacing:-.012em;
  text-shadow:0 1px 0 #000;
}
.hero-copy h1 em{font-family:var(--script);font-size:1.02em;font-weight:400;color:var(--gold-light);letter-spacing:0;white-space:nowrap}
.hero-copy p{margin:20px 0 22px;color:#eadfce;font-size:14.6px;line-height:1.4;max-width:275px}
.lux-button{min-width:238px;padding:12px 20px;font-size:11px}
.lux-button span{margin-left:13px}

.brand-card{
  height:490px;
  display:grid;
  grid-template-rows:346px 144px;
  overflow:hidden;
  background:#120b0e;
}
.brand-art{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.brand-base,.brand-base img{width:100%;height:100%}
.brand-base img{object-fit:cover;object-position:center 18%;filter:contrast(1.04) saturate(1.025) brightness(1.02)}
.cat-head{
  position:absolute;
  z-index:3;
  left:30%;
  top:32.4%;
  width:21.2%;
  transform-origin:41% 86%;
  animation:cat-look 10.8s cubic-bezier(.42,0,.22,1) infinite;
  will-change:transform;
}
.cat-head img{width:100%;height:auto;filter:contrast(1.035)}
@keyframes cat-look{
  0%,27%,100%{transform:rotate(0deg) translate3d(0,0,0)}
  46%{transform:rotate(7deg) translate3d(.35%,.15%,0)}
  50%,66%{transform:rotate(7.8deg) translate3d(.55%,.22%,0)}
  86%{transform:rotate(.2deg) translate3d(0,0,0)}
}
.brand-wordmark{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:12px 14px 8px;
  text-align:center;
  background:radial-gradient(circle at 50% 0,rgba(91,28,49,.15),transparent 72%),#120b0e;
}
.brand-wordmark strong{color:#e7c080;font-family:var(--serif);font-size:42px;font-weight:400;line-height:1;letter-spacing:.055em;text-shadow:0 1px 0 #000}
.brand-wordmark span{margin-top:8px;color:#d4ae70;font-family:var(--serif);font-size:17px;letter-spacing:.22em}
.brand-rule,.ornament-rule{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--gold-light)}
.brand-rule{width:81%;margin-top:13px}
.brand-rule i,.ornament-rule i{height:1px;flex:1;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.brand-rule b,.ornament-rule b{font-size:14px;font-weight:400}

.content-grid{height:1038px}
.right-flow{min-width:0;background:linear-gradient(180deg,#160d11,#0b0809)}

.features{
  height:205px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,#100b0d,#0a0809);
}
.feature-card{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:18px 8px 14px;
  color:var(--gold-light);
  text-align:center;
}
.feature-card+article{border-left:1px solid var(--line-soft)}
.feature-card svg{width:54px;height:54px;margin-bottom:8px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.feature-card h2{margin:0;color:var(--gold-light);font-family:var(--serif);font-size:15px;font-weight:400;line-height:1.15;letter-spacing:.02em;text-transform:uppercase}
.feature-card p{margin:8px 0 0;color:var(--text);font-size:13px;line-height:1.27}

.about{
  height:369px;
  display:grid;
  grid-template-columns:43% 57%;
  border-bottom:1px solid var(--line);
  background:radial-gradient(circle at 84% 20%,rgba(82,23,45,.14),transparent 45%),#120d10;
}
.about-photo-wrap{position:relative;padding:14px 13px 0 14px;overflow:hidden}
.about-photo-wrap::before{content:"";position:absolute;inset:12px 10px 0;z-index:2;border:1px solid var(--line);border-radius:50% 50% 0 0/27% 27% 0 0;pointer-events:none}
.about-photo-wrap picture,.about-photo-wrap img{width:100%;height:100%}
.about-photo-wrap img{object-fit:cover;object-position:center;border-radius:50% 50% 0 0/27% 27% 0 0;filter:contrast(1.045) saturate(1.025)}
.about-copy{display:flex;flex-direction:column;justify-content:center;padding:23px 25px 17px 28px}
.script-kicker{margin:0;color:var(--gold-light)!important;font-family:var(--script);font-size:19px!important;line-height:1!important;text-align:center}
.about-copy h2{margin:5px 0 8px;color:var(--cream);font-family:var(--serif);font-size:34px;font-weight:400;line-height:1;text-align:center}
.about-copy .ornament-rule{width:78%;margin:0 auto 18px}
.ornament-rule i{max-width:110px}
.about-copy>p:not(.script-kicker):not(.signature){margin:0 0 15px;color:#e7d8c6;font-size:13.5px;line-height:1.43}
.signature{margin:0;color:var(--gold-light);font-family:var(--script);font-size:37px;line-height:1;text-align:center}

.gallery-section{height:203px;padding:8px 14px 13px;border-bottom:1px solid var(--line);background:#0e0a0c}
.section-title-line{height:31px;display:flex;align-items:center;justify-content:center;gap:9px;color:var(--gold-light)}
.section-title-line i{height:1px;flex:1;max-width:105px;background:linear-gradient(90deg,transparent,var(--gold-deep))}
.section-title-line i:last-child{background:linear-gradient(90deg,var(--gold-deep),transparent)}
.section-title-line h2{margin:0;color:var(--cream);font-family:var(--serif);font-size:16px;font-weight:400;letter-spacing:.045em;text-transform:uppercase;white-space:nowrap}
.gallery-grid{height:151px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.gallery-item{display:block;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#110b0e;box-shadow:0 7px 16px rgba(0,0,0,.3)}
.gallery-item picture,.gallery-item img{width:100%;height:100%}
.gallery-item img{object-fit:cover;filter:contrast(1.04) saturate(1.03);transition:transform .24s ease,filter .24s ease}
.gallery-item:hover img,.gallery-item:focus-visible img{transform:scale(1.035);filter:brightness(1.08) contrast(1.04)}
.gallery-item:focus-visible{outline:2px solid var(--gold-light);outline-offset:2px}

.rules{height:189px;display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line);background:#0e0a0c}
.rules article{padding:18px 21px 14px;text-align:center}
.rules article+article{border-left:1px solid var(--line)}
.rules h2{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 0 10px;color:var(--gold-light);font-family:var(--serif);font-size:16px;font-weight:400;letter-spacing:.04em;text-transform:uppercase}
.rules h2 span{display:inline-grid;place-items:center;width:21px;height:21px}.rules h2 svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.rules p{margin:0;color:#e6d8c8;font-size:13px;line-height:1.36}

.closing-quote{position:relative;height:72px;display:flex;align-items:center;justify-content:center;overflow:hidden;text-align:center;background:linear-gradient(90deg,#170d12,#26101b 50%,#170d12)}
.closing-quote p{margin:0;color:#d4a867;font-family:var(--serif);font-size:19px;font-style:italic;line-height:1.04}
.closing-quote small{color:#bf9565;font-family:var(--body);font-size:9px;font-style:normal;letter-spacing:.24em;text-transform:uppercase}
.floral-mark,.moon-mark{position:absolute;color:var(--gold-deep);font-size:38px;opacity:.76}
.floral-mark{left:18px;bottom:-2px}.moon-mark{right:24px;font-size:45px}

.pricing{
  height:871px;
  padding:26px 13px 13px;
  overflow:hidden;
  border-bottom:1px solid var(--line);
  background:radial-gradient(circle at 50% 10%,rgba(87,27,46,.23),transparent 44%),#120c0f;
}
.pricing-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;column-gap:10px;margin-bottom:12px;color:var(--gold-light);text-align:center}
.pricing-head>div:first-child,.pricing-head>div:nth-child(3){font-size:19px}
.pricing-head h2{margin:0;color:var(--cream);font-family:var(--serif);font-size:25px;font-weight:400;letter-spacing:.05em;text-transform:uppercase}
.pricing-head p{grid-column:1/-1;margin:4px 0 3px;color:var(--gold-light);font-family:var(--script);font-size:16px}
.pricing-head .ornament-rule{grid-column:1/-1;width:62%;margin:auto}
.price-columns{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:13px}
.price-box{position:relative;padding:25px 11px 11px;border:1px solid var(--line);border-radius:11px;background:linear-gradient(180deg,rgba(25,15,20,.94),rgba(11,9,10,.96));box-shadow:inset 0 0 25px rgba(78,32,48,.12)}
.price-box h3{position:absolute;left:50%;top:-12px;transform:translateX(-50%);width:min(130px,82%);margin:0;padding:4px 8px;border:1px solid var(--gold-deep);border-radius:999px;background:linear-gradient(180deg,#4a1730,#2b0d1c);color:var(--gold-light);font-family:var(--serif);font-size:14px;font-weight:400;letter-spacing:.04em;text-align:center;text-transform:uppercase;white-space:nowrap}
.price-box dl{margin:0}
.price-box dl>div{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:7px;padding:4.25px 0}
.price-box dt{min-width:0;color:#e5d7c3;font-size:11.4px;line-height:1.16}
.price-box dd{margin:0;color:var(--gold-light);font-size:11.4px;font-weight:700;line-height:1.16;text-align:right;white-space:nowrap}
.extra-box{margin-top:23px;padding-top:25px}
.extra-box h3{width:180px}
.extra-box dl>div{padding:3.45px 7px}
.extra-box dt,.extra-box dd{font-size:11.8px}
.price-note{margin-top:11px;padding:11px 14px 8px;border:1px solid rgba(201,154,76,.38);border-radius:10px;background:rgba(58,18,37,.22);text-align:center}
.price-note p{margin:0;color:#e3d5c2;font-size:11.3px;line-height:1.27}
.price-note span{display:block;margin-top:3px;color:var(--gold-light)}

.booking-panel{position:relative;height:168px;overflow:hidden;background:#120a0e}
.booking-media{position:absolute;inset:0}
.booking-media img{width:100%;height:100%;object-fit:cover;object-position:58% 46%;filter:brightness(1.02) contrast(1.055) saturate(1.04)}
.booking-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,6,14,.78) 0,rgba(20,6,14,.42) 48%,rgba(15,7,10,.20) 68%,rgba(15,7,10,.08) 100%),linear-gradient(0deg,rgba(8,7,8,.88) 0 23%,transparent 44%)}
.booking-panel>button{position:absolute;inset:0 0 29px;display:flex;align-items:center;justify-content:flex-start;gap:0;width:100%;padding:18px 18px 0;border:0;background:transparent;color:var(--cream);text-shadow:0 2px 4px #000}
.booking-panel>button .booking-script{display:block;width:100%;padding-top:8px;font-family:var(--script);font-size:25px;line-height:1.1;text-align:center;color:#f4e3c9}
.booking-panel>button .booking-moon{position:absolute;right:30px;top:76px;color:var(--gold-light);font-size:39px;font-weight:400}
.booking-panel>button:hover,.booking-panel>button:focus-visible{background:rgba(255,212,141,.05);outline:2px solid var(--gold-light);outline-offset:-4px}
.booking-panel>p{position:absolute;left:0;right:0;bottom:0;height:30px;margin:0;display:flex;align-items:center;justify-content:center;border-top:1px solid var(--line);color:#d9c3a1;font-family:var(--serif);font-size:10px;letter-spacing:.09em;text-transform:uppercase;text-align:center}

/* Menu mobile */
.menu-backdrop{position:fixed;inset:0;z-index:2000;background:rgba(0,0,0,.78);backdrop-filter:blur(5px)}
.mobile-menu{position:fixed;top:0;right:0;bottom:0;z-index:2100;width:min(420px,90vw);padding:22px;border-left:1px solid var(--line);background:linear-gradient(180deg,#1d0b15,#090708);box-shadow:-22px 0 70px rgba(0,0,0,.64);transform:translateX(105%);transition:transform .28s ease}
.mobile-menu.is-open{transform:none}
.mobile-menu-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:18px;border-bottom:1px solid var(--line)}
.mobile-menu-head img{width:220px}
.menu-close,.modal-close,.lightbox-close{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:#2b0d1d;color:var(--gold-light);font-size:30px;line-height:1}
.mobile-menu nav{display:grid;margin-top:15px}
.mobile-menu nav a,.mobile-menu nav button{padding:16px 5px;border:0;border-bottom:1px solid var(--line-soft);background:transparent;color:var(--cream);letter-spacing:.12em;text-align:left;text-decoration:none;text-transform:uppercase}
.mobile-menu nav button{margin-top:18px;border:1px solid var(--gold);border-radius:999px;background:#351023;text-align:center}
.mobile-social{display:flex;gap:10px;margin-top:22px}
.mobile-social a{flex:1;padding:11px;border:1px solid var(--line);border-radius:999px;color:var(--gold-light);text-align:center;text-decoration:none}

/* Modal e lightbox */
.modal,.lightbox{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;padding:18px;background:rgba(0,0,0,.86);backdrop-filter:blur(9px)}
.modal-card{position:relative;width:min(610px,100%);max-height:92vh;overflow:auto;padding:34px;border:1px solid var(--gold);border-radius:23px;background:radial-gradient(circle at 50% 0,rgba(92,29,52,.35),transparent 48%),#130a0e;box-shadow:var(--shadow)}
.modal-close{position:absolute;right:16px;top:16px}
.modal-kicker{margin:0;color:var(--gold-light);font-size:12px;letter-spacing:.25em;text-transform:uppercase}
.modal-card h2{margin:7px 50px 8px 0;color:var(--cream);font-family:var(--serif);font-size:38px;font-weight:400}
.modal-card>p:not(.modal-kicker){color:var(--muted);line-height:1.5}
.direct-actions{display:flex;gap:9px;flex-wrap:wrap;margin:18px 0}
.direct-actions a,.request-result a,.request-result button{padding:10px 15px;border:1px solid var(--line);border-radius:999px;background:#1a0d12;color:var(--gold-light);text-decoration:none}
.modal form{display:grid;gap:14px}
.modal label{display:grid;gap:7px;color:#d8b77d;font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.modal input,.modal select,.modal textarea{width:100%;padding:13px 14px;border:1px solid rgba(201,154,76,.4);border-radius:11px;background:#080708;color:#fff;outline:0}
.modal input:focus,.modal select:focus,.modal textarea:focus{border-color:var(--gold-light);box-shadow:0 0 0 3px rgba(201,154,76,.12)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.submit-booking{padding:13px 20px;border:1px solid var(--gold);border-radius:999px;background:linear-gradient(#4b1730,#2b0d1c);color:var(--cream)}
.request-result{margin-top:18px;padding-top:16px;border-top:1px solid var(--line-soft)}
.request-result textarea{width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;background:#080708;color:#fff}
.request-result>div{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.lightbox{z-index:3100}
.lightbox img{width:auto;height:auto;max-width:min(820px,92vw);max-height:86vh;border:1px solid var(--gold);border-radius:14px;box-shadow:var(--shadow)}
.lightbox-close{position:fixed;right:18px;top:18px}

@media (max-width:1024px) and (min-width:781px){
  .desktop-header{grid-template-columns:190px minmax(0,1fr) auto;gap:8px;padding-left:13px}
  .desktop-logo{width:184px}
  .desktop-nav{gap:11px}
  .desktop-nav a{font-size:9px}
  .nav-book{padding:9px 12px;font-size:9px}
  .hero-copy{padding-left:36px}
  .hero-copy h1{font-size:40px}
  .hero-copy p{font-size:14px}
  .brand-wordmark strong{font-size:39px}
  .brand-wordmark span{font-size:16px}
  .about-copy{padding-left:20px;padding-right:18px}
  .about-copy h2{font-size:31px}
  .about-copy>p:not(.script-kicker):not(.signature){font-size:12.7px}
  .signature{font-size:32px}
  .rules article{padding-left:14px;padding-right:14px}
  .rules p{font-size:12px}
  .price-box{padding-left:7px;padding-right:7px}
  .price-box dt,.price-box dd{font-size:10.3px}
  .extra-box dt,.extra-box dd{font-size:10.7px}
}

@media (max-width:780px){
  html{scroll-padding-top:74px}
  .mobile-header{position:sticky;top:0;z-index:1800;height:74px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid var(--line);background:rgba(8,7,8,.96);backdrop-filter:blur(15px)}
  .mobile-logo{width:205px}
  .mobile-logo img{width:100%;height:auto}
  .menu-toggle{width:46px;height:46px;padding:10px;border:1px solid var(--line);border-radius:50%;background:#190c12}
  .menu-toggle span{display:block;height:2px;margin:5px 0;background:var(--gold-light)}
  .mobile-menu,.menu-backdrop{display:block}
  .site-frame{width:100%;padding:0;box-shadow:none}
  .site-frame::before,.site-frame::after{display:none}
  .top-grid,.content-grid{display:block;height:auto}
  .left-flow,.top-left{border-right:0}
  .desktop-header{display:none}

  .hero{height:550px;border-bottom:1px solid var(--line)}
  .hero-media img{object-position:66% 30%}
  .hero-shade{background:linear-gradient(180deg,rgba(5,4,5,.02) 0,rgba(5,4,5,.12) 30%,rgba(5,4,5,.84) 66%,rgba(5,4,5,.98) 100%),linear-gradient(90deg,rgba(5,4,5,.78) 0 25%,rgba(5,4,5,.30) 59%,transparent 86%)}
  .hero-copy{width:100%;height:100%;justify-content:flex-end;padding:25px 22px 34px}
  .hero-copy h1{font-size:44px;line-height:.98}
  .hero-copy p{margin:16px 0 20px;font-size:15px;max-width:290px}
  .lux-button{width:100%;max-width:340px;min-width:0;font-size:12px}

  .brand-card{height:auto;grid-template-rows:auto 146px;border-bottom:1px solid var(--line)}
  .brand-art{aspect-ratio:810/720}
  .brand-wordmark strong{font-size:41px}
  .brand-wordmark span{font-size:16px}

  .features{height:auto;grid-template-columns:1fr 1fr}
  .feature-card{min-height:164px}
  .feature-card:nth-child(3){border-left:0;border-top:1px solid var(--line-soft)}
  .feature-card:nth-child(4){border-top:1px solid var(--line-soft)}
  .feature-card svg{width:50px;height:50px}
  .feature-card h2{font-size:16px}
  .feature-card p{font-size:14px}

  .about{height:auto;display:block}
  .about-photo-wrap{width:min(520px,92%);height:465px;margin:0 auto;padding-top:18px}
  .about-copy{padding:30px 24px 35px}
  .script-kicker{font-size:23px!important}
  .about-copy h2{font-size:40px}
  .about-copy>p:not(.script-kicker):not(.signature){font-size:16px;line-height:1.55}
  .signature{font-size:42px}

  .gallery-section{height:auto;padding:17px 15px 20px}
  .section-title-line{height:auto;margin-bottom:14px}
  .section-title-line h2{font-size:17px;white-space:normal;text-align:center}
  .gallery-grid{height:auto;grid-template-columns:1fr 1fr;gap:12px}
  .gallery-item{aspect-ratio:.88}

  .rules{height:auto;display:block}
  .rules article{padding:25px 23px}
  .rules article+article{border-left:0;border-top:1px solid var(--line)}
  .rules h2{font-size:18px}
  .rules p{font-size:15px;line-height:1.45}
  .closing-quote{height:105px}
  .closing-quote p{font-size:23px}
  .floral-mark{left:8px}.moon-mark{right:12px}

  .right-flow{border-top:1px solid var(--line)}
  .pricing{height:auto;padding:30px 16px 24px}
  .pricing-head h2{font-size:31px}
  .pricing-head p{font-size:21px}
  .price-columns{grid-template-columns:1fr;gap:28px;margin-top:26px}
  .price-box{padding:30px 18px 16px}
  .price-box h3{top:-14px;width:170px;font-size:17px}
  .price-box dl>div{padding:6px 0;gap:12px}
  .price-box dt,.price-box dd,.extra-box dt,.extra-box dd{font-size:15px;line-height:1.25}
  .extra-box{margin-top:28px}
  .extra-box h3{width:235px}
  .price-note{margin-top:18px;padding:16px}
  .price-note p{font-size:14px;line-height:1.45}
  .booking-panel{height:248px}
  .booking-panel>button{bottom:36px;padding-top:18px}
  .booking-panel>button .booking-script{font-size:34px}
  .booking-panel>button .booking-moon{right:34px;top:94px;font-size:43px}
  .booking-panel>p{height:37px;font-size:11px}
}

@media (max-width:480px){
  .mobile-logo{width:180px}
  .mobile-menu{width:92vw;padding:18px}
  .mobile-menu-head img{width:190px}
  .hero{height:525px}
  .hero-copy{padding:22px 18px 29px}
  .hero-copy h1{font-size:39px}
  .hero-copy p{font-size:14.5px}
  .lux-button{padding:13px 16px}
  .brand-card{grid-template-rows:auto 132px}
  .brand-wordmark strong{font-size:36px}
  .brand-wordmark span{font-size:15px}
  .feature-card{min-height:148px;padding:12px 5px}
  .feature-card svg{width:46px;height:46px}
  .feature-card h2{font-size:14px}
  .feature-card p{font-size:12.5px}
  .about-photo-wrap{height:390px}
  .about-copy{padding-left:18px;padding-right:18px}
  .script-kicker{font-size:20px!important}
  .about-copy h2{font-size:34px}
  .about-copy>p:not(.script-kicker):not(.signature){font-size:15px}
  .signature{font-size:36px}
  .section-title-line{gap:5px}
  .section-title-line i{display:none}
  .section-title-line h2{font-size:15px}
  .gallery-grid{gap:8px}
  .gallery-item{border-radius:10px}
  .rules article{padding:22px 16px}
  .rules h2{font-size:16px}
  .rules p{font-size:14px}
  .closing-quote p{font-size:20px}
  .closing-quote small{font-size:8px;letter-spacing:.15em}
  .floral-mark{opacity:.4}.moon-mark{opacity:.5}
  .pricing{padding-left:10px;padding-right:10px}
  .pricing-head h2{font-size:27px}
  .price-box{padding-left:12px;padding-right:12px}
  .price-box dt,.price-box dd,.extra-box dt,.extra-box dd{font-size:14px}
  .extra-box dd{font-size:13px;white-space:nowrap}
  .booking-panel>button{padding-top:14px}
  .booking-panel>button .booking-script{font-size:29px}
  .booking-panel>button .booking-moon{right:20px;top:76px;font-size:34px}
  .booking-panel>p{font-size:9px;letter-spacing:.05em}
  .modal-card{padding:28px 17px}
  .modal-card h2{font-size:31px}
  .form-row{grid-template-columns:1fr}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .cat-head{animation:none}
  .mobile-menu{transition:none}
  .gallery-item img{transition:none}
}
