:root{
  --editorial-ink:#251719;
  --editorial-wine:#520b12;
  --editorial-dark:#210609;
  --editorial-red:#7a101a;
  --editorial-ivory:#faf6f4;
  --editorial-blush:#eee3e1;
  --editorial-line:#d9cdca;
  --editorial-muted:#77686a;
  --editorial-gold:#b59a72;
}

html{background:var(--editorial-ivory)}
html{scroll-padding-top:24px}
body.layout-v2{
  width:100%;
  max-width:none;
  margin:0;
  background:var(--editorial-ivory);
  color:var(--editorial-ink);
  box-shadow:none;
}
body.layout-v2 main{display:block}
body.layout-v2 :is(h1,h2,h3,p){text-rendering:optimizeLegibility}
body.layout-v2 :is(.hero h1,.intro-section h2,.catalog-heading h2,.portfolio-heading h2,.booking-heading h2){text-wrap:balance}
body.layout-v2 .announcement{
  position:relative;
  z-index:40;
  height:26px;
  margin:0;
  background:var(--editorial-red);
  color:#fff7f3;
  font:500 7px/1 var(--sans);
  letter-spacing:.16em;
  text-transform:uppercase;
}
body.layout-v2 .site-header{
  position:absolute;
  z-index:30;
  top:26px;
  left:0;
  right:0;
  width:100%;
  height:78px;
  padding:0 clamp(24px,4.5vw,74px);
  background:linear-gradient(rgba(16,3,5,.5),transparent);
  border:0;
  grid-template-columns:1fr auto 1fr;
}
body.layout-v2 .brand{
  color:#fff;
  font:600 15px/1 var(--serif);
  letter-spacing:.09em;
  text-transform:uppercase;
}
body.layout-v2 .brand strong{font-weight:600}
body.layout-v2 .brand span{font-weight:500}
body.layout-v2 .site-nav{
  display:flex;
  align-items:center;
  gap:30px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
}
body.layout-v2 .site-nav a{
  padding:29px 0;
  color:#fff;
  font:500 8px/1 var(--sans);
  letter-spacing:.08em;
  text-transform:uppercase;
  background:transparent !important;
  border-radius:0 !important;
}
body.layout-v2 .site-nav a:hover,
body.layout-v2 .site-nav a:focus{
  background:transparent !important;
  border-radius:0 !important;
  color:#fff !important;
}
body.layout-v2 .site-nav a:after{
  content:"";
  position:absolute;
  left:0;
  right:100%;
  bottom:21px;
  height:1px;
  background:#fff;
  transition:right .2s ease;
  display:block;
}
body.layout-v2 .site-nav a:hover:after{
  right:0;
}
body.layout-v2 .header-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  justify-self:end;
  min-height:42px;
  padding:10px 15px;
  border:1px solid rgba(255,255,255,.72);
  border-radius:0;
  background:transparent;
  color:#fff;
  font:500 8px/1 var(--sans);
  letter-spacing:.06em;
  text-transform:uppercase;
}
body.layout-v2 .header-cta span{margin-left:0}

body.layout-v2 .hero{
  height:calc(100vh - 26px);
  min-height:600px;
  max-height:920px;
  margin:0;
  border-radius:0;
  background:var(--editorial-dark);
  color:#fff;
}
body.layout-v2 .hero-image{
  object-position:center 26%;
  filter:saturate(.64) contrast(1.08) brightness(.6);
  transform:none;
}
body.layout-v2 .hero-shade{
  background:
    linear-gradient(90deg,rgba(20,2,5,.7),rgba(20,2,5,.06) 55%,rgba(20,2,5,.4)),
    linear-gradient(0deg,rgba(20,2,5,.64),transparent 52%);
}
body.layout-v2 .hero-copy{
  z-index:3;
  left:clamp(24px,5vw,82px);
  bottom:clamp(30px,7vh,80px);
  max-width:min(94vw, 980px);
}
body.layout-v2 .eyebrow{
  margin:0 0 17px;
  color:#efdad5;
  font:600 8px/1 var(--sans);
  letter-spacing:.18em;
}
body.layout-v2 .hero h1{
  margin:0;
  color:#fff;
  font:500 clamp(58px,7.5vw,118px)/.85 var(--serif);
  font-style:italic;
  letter-spacing:-.045em;
  text-shadow:none;
}
body.layout-v2 .hero h1 em{
  display:inline-block;
  color:inherit;
  font:inherit;
  font-style:italic;
  letter-spacing:inherit;
}
body.layout-v2 .hero-copy>p:last-child{
  max-width:320px;
  margin:24px 0 0;
  color:#efdddd;
  font-size:10px;
  line-height:1.75;
}
body.layout-v2 .promise-strip{
  height:44px;
  margin:0;
  padding:0 4vw;
  border-radius:0;
  background:#eadfdd;
  color:#51383c;
  justify-content:center;
  gap:27px;
  font:500 9px/1 var(--sans);
  letter-spacing:.09em;
  text-transform:uppercase;
}
body.layout-v2 .promise-strip i{font-size:7px}

body.layout-v2 .intro-section{
  min-height:610px;
  padding:145px 8vw 135px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  background:#fcf9f8;
  border-bottom:1px solid var(--editorial-line);
  text-align:center;
}
body.layout-v2 .section-label{
  margin:0 0 24px;
  color:var(--editorial-wine);
  font:600 8px/1 var(--sans);
  letter-spacing:.18em;
  text-transform:uppercase;
}
body.layout-v2 .intro-section h2{
  max-width:960px;
  margin:0;
  color:var(--editorial-ink);
  font:500 clamp(55px,6vw,92px)/.88 var(--serif);
  letter-spacing:-.04em;
}
body.layout-v2 .intro-section h2 em{color:var(--editorial-wine);font-weight:500;font-style:italic}
body.layout-v2 .intro-section>p:last-child{
  max-width:560px;
  margin:28px auto 0;
  color:var(--editorial-muted);
  font-size:10px;
  line-height:1.8;
}

body.layout-v2 .services{
  padding:118px 5vw 112px;
  background:#f7f0ee;
}
body.layout-v2 .catalog-heading{
  max-width:850px;
  margin:0 auto 62px;
  text-align:center;
}
body.layout-v2 .catalog-heading h2{
  margin:0;
  color:var(--editorial-ink);
  font:500 clamp(58px,6vw,90px)/.83 var(--serif);
  letter-spacing:-.04em;
}
body.layout-v2 .catalog-heading h2 em{color:var(--editorial-wine);font-weight:500;font-style:italic}
body.layout-v2 .catalog-heading>p:last-child{
  max-width:470px;
  margin:24px auto 0;
  color:var(--editorial-muted);
  font-size:9px;
  line-height:1.8;
}
body.layout-v2 .service-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  max-width:1420px;
  margin:0 auto;
}
body.layout-v2 .service-reveal-stage{
  position:relative;
  height:340vh;
  min-height:2300px;
  margin:0 -5vw;
  padding:0 5vw;
}
body.layout-v2 .service-reveal-sticky{
  position:sticky;
  top:clamp(24px,6vh,70px);
  display:flex;
  min-height:calc(100vh - clamp(48px,12vh,140px));
  align-items:center;
}
body.layout-v2 .service-card,
body.layout-v2 .service-card:nth-child(2){
  position:relative;
  display:block;
  min-height:0;
  padding:0 0 23px;
  border:0;
  border-radius:0;
  background:#fff;
  color:var(--editorial-ink);
  box-shadow:none;
  overflow:hidden;
  opacity:var(--reveal-opacity,0);
  will-change:opacity;
}
body.layout-v2 .service-card:hover,
body.layout-v2 .service-card:nth-child(2):hover{background:#fff;border:0;box-shadow:none;transform:none}
body.layout-v2 .service-visual{
  position:relative;
  height:clamp(300px,45vh,440px);
  overflow:hidden;
  background:var(--editorial-dark);
  transform:translate3d(0,var(--visual-y,-52px),0);
  transform-origin:center bottom;
  will-change:transform,opacity;
}
body.layout-v2 .service-visual img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 18%;
  filter:saturate(.7) contrast(1.04);
  transform:scale(var(--visual-scale,1.055));
  transition:filter .45s ease;
}
body.layout-v2 .service-card:hover .service-visual img{filter:saturate(.82) contrast(1.04)}
body.layout-v2 .service-card:nth-child(1) .service-visual img{object-position:center 48%}
body.layout-v2 .service-card:nth-child(2) .service-visual img{object-position:center 46%}
body.layout-v2 .service-card:nth-child(3) .service-visual img{object-position:center 52%}
body.layout-v2 .service-visual span{
  position:absolute;
  top:14px;
  left:14px;
  padding:8px 11px;
  border:1px solid rgba(255,255,255,.7);
  border-radius:0;
  background:rgba(34,4,7,.72);
  color:#fff;
  font:500 7px/1 var(--sans);
  letter-spacing:.1em;
  text-transform:uppercase;
}
body.layout-v2 .service-index{display:none}
body.layout-v2 .service-progress-marker{
  position:relative;
  height:44px;
  margin:0 20px;
  border-bottom:1px solid #d8c9c6;
}
body.layout-v2 .service-progress-marker span{
  position:absolute;
  left:0;
  bottom:-13px;
  display:grid;
  width:26px;
  height:26px;
  place-items:center;
  background:var(--editorial-wine);
  color:#fff;
  font:600 7px/1 var(--sans);
  transform:scale(var(--marker-scale,0));
  transform-origin:center;
  will-change:transform;
}
body.layout-v2 .service-content{
  opacity:var(--copy-opacity,0);
  transform:translate3d(0,var(--copy-y,52px),0);
  will-change:transform,opacity;
}
body.layout-v2 .service-card h3{margin:30px 20px 6px;color:var(--editorial-ink);font:500 33px/.95 var(--serif)}
body.layout-v2 .service-content>p,
body.layout-v2 .service-card:nth-child(2) .service-content>p{
  min-height:42px;
  margin:0 20px 18px;
  color:var(--editorial-muted);
  font-size:9px;
  line-height:1.65;
}
body.layout-v2 .service-meta{margin:0 20px;padding-top:14px;border-color:#e2d7d5}
body.layout-v2 .service-meta strong{color:var(--editorial-wine);font:500 23px var(--serif)}
body.layout-v2 .service-meta span,
body.layout-v2 .service-card:nth-child(2) .service-meta span{color:var(--editorial-muted);font-size:7px}
body.layout-v2 .addons{
  display:grid;
  grid-template-columns:160px 1fr;
  gap:25px;
  max-width:1420px;
  margin:36px auto 0;
  padding:24px 28px;
  border:1px solid var(--editorial-line);
  border-radius:0;
  background:#efe4e2;
}
body.layout-v2 .addons>p{color:var(--editorial-wine);font-size:8px}
body.layout-v2 .addon-row{padding:10px 0;border-color:#d7c9c7;font-size:9px}

body.layout-v2 .story-section{
  display:grid;
  grid-template-columns:1.08fr .92fr;
  min-height:780px;
  background:var(--editorial-dark);
}
body.layout-v2 .story-image{height:780px;overflow:hidden}
body.layout-v2 .story-image img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center 15%;
  filter:saturate(.68) contrast(1.06) brightness(.78);
}
body.layout-v2 .story-copy{
  padding:90px clamp(45px,7vw,115px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:var(--editorial-dark);
  color:#fff;
}
body.layout-v2 .story-copy .section-label{color:#d7b9b4}
body.layout-v2 .story-copy h2{
  margin:0;
  color:#fff;
  font:500 clamp(53px,5vw,80px)/.82 var(--serif);
  letter-spacing:-.04em;
}
body.layout-v2 .story-copy h2 em{color:#dfc4bf;font-weight:500;font-style:italic}
body.layout-v2 .story-copy>p{margin:30px 0;color:#d8c7c4;font-size:10px;line-height:1.85}
body.layout-v2 .story-detail{
  display:grid;
  grid-template-columns:110px 1fr;
  gap:24px;
  align-items:end;
  margin:4px 0 35px;
}
body.layout-v2 .story-detail img{width:110px;height:145px;object-fit:cover;object-position:center 20%;filter:saturate(.7)}
body.layout-v2 .story-detail blockquote{margin:0;color:#fff;font:italic 500 24px/1.05 var(--serif)}
body.layout-v2 .story-copy dl{margin:0}
body.layout-v2 .story-copy dl div{display:grid;grid-template-columns:115px 1fr;padding:12px 0;border-top:1px solid rgba(255,255,255,.18)}
body.layout-v2 .story-copy dt{font-size:8px;letter-spacing:.1em;text-transform:uppercase}
body.layout-v2 .story-copy dd{margin:0;color:#fff;font-size:9px}

/* Skiper 30 Parallax Gallery - Natural Aspect Ratio Layout */
body.layout-v2 .portfolio {
  padding: 112px 4vw 4vw;
  background: #ffffff;
  color: var(--editorial-ink);
}

body.layout-v2 .portfolio-heading {
  max-width: 900px;
  margin: 0 auto 65px;
  text-align: center;
}

body.layout-v2 .portfolio-heading h2 {
  margin: 0;
  color: var(--editorial-ink);
  font: 500 clamp(60px, 6vw, 94px) / 0.83 var(--serif);
  letter-spacing: -0.04em;
}

body.layout-v2 .portfolio-heading h2 em {
  color: var(--editorial-wine);
  font-weight: 500;
  font-style: italic;
}

body.layout-v2 .portfolio-parallax {
  position: relative;
  box-sizing: border-box;
  display: flex;
  height: 175vh;
  gap: 2vw;
  overflow: hidden;
  background: #ffffff;
  padding: 2vw;
  border-radius: 0;
  max-width: 1540px;
  margin: 0 auto;
}

body.layout-v2 .parallax-col {
  position: relative;
  display: flex;
  flex-direction: column;
  flex: 1 1 0% !important;
  width: 25% !important;
  max-width: 25% !important;
  min-width: 0 !important;
  gap: 2vw;
  will-change: transform;
  box-sizing: border-box;
}

body.layout-v2 .parallax-col-1 { top: -45%; }
body.layout-v2 .parallax-col-2 { top: -95%; }
body.layout-v2 .parallax-col-3 { top: -45%; }
body.layout-v2 .parallax-col-4 { top: -75%; }

body.layout-v2 .portfolio-card {
  position: relative;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  flex: 0 0 auto !important;
  overflow: hidden;
  border-radius: 0;
  background: #f4f0ed;
  margin: 0 !important;
  box-sizing: border-box;
}

body.layout-v2 .portfolio-card img {
  position: relative !important;
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  display: block !important;
  object-fit: cover !important;
  pointer-events: none;
  border-radius: 0;
  filter: saturate(0.92) contrast(1.03);
  transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1), filter 0.6s ease;
}

body.layout-v2 .portfolio-card:hover img {
  transform: scale(1.04);
  filter: saturate(1) contrast(1.05);
}

body.layout-v2 .booking-section{padding:135px 5vw 145px;background:#eee3e1}
body.layout-v2 .booking-heading{
  display:grid;
  grid-template-columns:1fr 320px;
  gap:55px;
  max-width:1400px;
  margin:0 auto 60px;
  align-items:end;
}

@media(max-width:900px){
  body.layout-v2 .portfolio-parallax{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    height:auto;
    gap:10px;
    overflow:visible;
    padding:10px;
  }
  body.layout-v2 .parallax-col{
    top:auto;
    width:100% !important;
    max-width:none !important;
    gap:10px;
    transform:none !important;
    will-change:auto;
  }
  body.layout-v2 .parallax-col:nth-child(even){padding-top:54px}
}

@media(prefers-reduced-motion:reduce){
  body.layout-v2 .portfolio-parallax{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    height:auto;
    overflow:visible;
  }
  body.layout-v2 .parallax-col{
    top:auto;
    width:100% !important;
    max-width:none !important;
    transform:none !important;
    will-change:auto;
  }
}

@media(max-width:900px) and (prefers-reduced-motion:reduce){
  body.layout-v2 .portfolio-parallax{grid-template-columns:repeat(2,minmax(0,1fr))}
}
body.layout-v2 .booking-heading .section-label{grid-column:1/-1;margin-bottom:-18px}
body.layout-v2 .booking-heading h2{
  margin:0;
  color:var(--editorial-ink);
  font:500 clamp(58px,6vw,90px)/.83 var(--serif);
  letter-spacing:-.04em;
}
body.layout-v2 .booking-heading h2 em{color:var(--editorial-wine);font-weight:500;font-style:italic}
body.layout-v2 .booking-heading>p:last-child{margin:0;color:var(--editorial-muted);font-size:9px;line-height:1.85}
body.layout-v2 .booking-layout{
  display:grid;
  grid-template-columns:.93fr 1.07fr;
  gap:4px;
  max-width:1400px;
  margin:0 auto;
}
body.layout-v2 .calendar-panel,
body.layout-v2 .booking-form{
  padding:36px;
  border:1px solid var(--editorial-line);
  border-radius:0;
  background:#fff;
  box-shadow:none;
}
body.layout-v2 .calendar-toolbar{border-color:var(--editorial-line)}
body.layout-v2 .calendar-toolbar h3{color:var(--editorial-ink);font:500 32px var(--serif)}
body.layout-v2 .calendar-toolbar button{border-radius:0;background:#f1e7e5;color:var(--editorial-wine)}
body.layout-v2 .calendar-week{color:#806e71}
body.layout-v2 .calendar-day{border-radius:0;background:#f3ebea;color:#4a3437}
body.layout-v2 .calendar-day.available{background:#c4ceb9}
body.layout-v2 .calendar-day.limited{background:#e5d19a}
body.layout-v2 .calendar-day.booked{background:#974a54}
body.layout-v2 .calendar-day.selected{outline-color:var(--editorial-wine)}
body.layout-v2 .form-intro{border-color:var(--editorial-line)}
body.layout-v2 .form-intro h3{color:var(--editorial-ink);font:500 38px var(--serif)}
body.layout-v2 .date-input-label input{border-color:#d7cac8;border-radius:0;background:#f5eeed}
body.layout-v2 .slot-picker{border-color:var(--editorial-line)}
body.layout-v2 .slot-option{border-color:#d7cac8;border-radius:0}
body.layout-v2 .slot-option:hover,
body.layout-v2 .slot-option.selected{border-color:var(--editorial-wine);background:#f3e9e7}
body.layout-v2 .fields input,
body.layout-v2 .fields select,
body.layout-v2 .fields textarea{border-color:#cbbdba}
body.layout-v2 .submit-button{padding:16px 18px;border:0;border-radius:0;background:var(--editorial-wine);color:#fff;font-size:8px}
body.layout-v2 .submit-button:hover{background:var(--editorial-dark);color:#fff}

body.layout-v2 .site-footer{
  min-height:250px;
  padding:58px 6vw 30px;
  background:var(--editorial-dark);
  color:#fff;
}
body.layout-v2 .footer-brand{color:#fff}
body.layout-v2 .site-footer>p{color:#fff;font:500 38px/.95 var(--serif)}
body.layout-v2 .site-footer>div a{color:#fff;font-size:8px}
body.layout-v2 .site-footer>small{color:#c8aeaa}

body.layout-v2 .success-card{background:#fff}
body.layout-v2 .success-card h2{color:var(--editorial-ink)}
body.layout-v2 .success-reference{background:#f2e8e6}

@media(max-width:1000px){
  body.layout-v2 .site-header{grid-template-columns:1fr auto;height:68px;padding:0 6vw}
  body.layout-v2 .site-nav,
  body.layout-v2 .header-cta{display:none}
  body.layout-v2 .menu-button{display:grid}
  body.layout-v2 .menu-button span{background:#fff}
  body.layout-v2 .site-nav.open{
    display:flex;
    position:absolute;
    top:68px;
    left:0;
    right:0;
    padding:16px 6vw;
    background:var(--editorial-dark);
    border:0;
  }
  body.layout-v2 .site-nav.open a{padding:12px 0;color:#fff}
  body.layout-v2 .hero{height:760px;min-height:760px}
  body.layout-v2 .hero h1{font-size:78px}
  body.layout-v2 .service-reveal-stage{height:auto;min-height:0;margin:0;padding:0}
  body.layout-v2 .service-reveal-sticky{position:static;display:block;min-height:0}
  body.layout-v2 .service-grid{grid-template-columns:1fr 1fr}
  body.layout-v2 .service-card:last-child{grid-column:1/-1}
  body.layout-v2 .service-card,
  body.layout-v2 .service-visual,
  body.layout-v2 .service-content,
  body.layout-v2 .service-progress-marker span{
    transition:opacity .8s cubic-bezier(.22,1,.36,1),transform 1s cubic-bezier(.22,1,.36,1);
  }
  body.layout-v2 .story-section{grid-template-columns:1fr}
  body.layout-v2 .story-image{height:620px}
  body.layout-v2 .booking-layout{grid-template-columns:1fr}
  body.layout-v2 .booking-heading{grid-template-columns:1fr;gap:24px}
  body.layout-v2 .booking-heading .section-label{grid-column:auto;margin-bottom:0}
}

@media(max-width:620px){
  body.layout-v2 .announcement{height:23px;font-size:6px}
  body.layout-v2 .site-header{top:23px;height:62px;padding:0 18px}
  body.layout-v2 .site-nav.open{top:62px}
  body.layout-v2 .brand{font-size:13px}
  body.layout-v2 .hero{height:660px;min-height:660px}
  body.layout-v2 .hero-image{object-position:center 25%}
  body.layout-v2 .hero-copy{left:22px;right:22px;bottom:36px}
  body.layout-v2 .hero h1{font-size:53px}
  body.layout-v2 .hero-copy>p:last-child{display:block;font-size:8px}
  body.layout-v2 .promise-strip{justify-content:flex-start;overflow:hidden;padding:0 18px;gap:17px;font-size:8px}
  body.layout-v2 .intro-section{min-height:0;padding:90px 8% 95px}
  body.layout-v2 .intro-section h2{font-size:44px}
  body.layout-v2 .services{padding:90px 5% 100px}
  body.layout-v2 .catalog-heading{margin-bottom:45px}
  body.layout-v2 .catalog-heading h2{font-size:50px}
  body.layout-v2 .service-grid{grid-template-columns:1fr;gap:12px}
  body.layout-v2 .service-card:last-child{grid-column:auto}
  body.layout-v2 .service-visual{height:430px}
  body.layout-v2 .addons{grid-template-columns:1fr;padding:20px}
  body.layout-v2 .story-image{height:500px}
  body.layout-v2 .story-copy{padding:75px 8%}
  body.layout-v2 .story-copy h2{font-size:47px}
  body.layout-v2 .story-detail{grid-template-columns:90px 1fr}
  body.layout-v2 .story-detail img{width:90px;height:125px}
  body.layout-v2 .story-detail blockquote{font-size:21px}
  body.layout-v2 .portfolio{padding:95px 5% 5%}
  body.layout-v2 .portfolio-heading h2{font-size:50px}
  body.layout-v2 .portfolio-grid{grid-template-columns:1fr;grid-auto-rows:470px}
  body.layout-v2 .portfolio figure,
  body.layout-v2 .portfolio figure.portfolio-feature,
  body.layout-v2 .portfolio figure.portfolio-wide{grid-column:auto;grid-row:auto}
  body.layout-v2 .booking-section{padding:95px 5% 105px}
  body.layout-v2 .booking-heading h2{font-size:50px}
  body.layout-v2 .calendar-panel,
  body.layout-v2 .booking-form{padding:20px}
  body.layout-v2 .fields{grid-template-columns:1fr}
  body.layout-v2 .fields .wide{grid-column:auto}
  body.layout-v2 .site-footer{padding:45px 7% 28px}
}

/* Booking proportion refinement */
body.layout-v2 .booking-section{padding-top:110px}
body.layout-v2 .booking-heading{
  display:block;
  max-width:900px;
  margin:0 auto 58px;
  text-align:center;
}
body.layout-v2 .booking-heading .section-label{margin:0 0 22px}
body.layout-v2 .booking-heading h2{font-size:clamp(56px,5.4vw,82px);line-height:.86}
body.layout-v2 .booking-heading>p:last-child{max-width:500px;margin:24px auto 0}
body.layout-v2 .booking-layout{max-width:1320px;gap:10px;align-items:stretch}
body.layout-v2 .calendar-panel,body.layout-v2 .booking-form{min-height:690px}
body.layout-v2 .calendar-day{font-size:10px}
body.layout-v2 .calendar-panel{display:flex;flex-direction:column}
body.layout-v2 .calendar-panel .calendar-legend{margin-top:auto}
@media(min-width:1001px){body.layout-v2 .booking-layout{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Complete mobile refinement */
@media(max-width:620px){
  body.layout-v2{overflow-x:hidden}
  body.layout-v2 .hero{height:610px;min-height:610px}
  body.layout-v2 .hero-copy{bottom:30px}
  body.layout-v2 .hero h1{font-size:48px;line-height:.8}
  body.layout-v2 .promise-strip{height:38px;gap:15px}

  body.layout-v2 .intro-section{padding:76px 7% 82px}
  body.layout-v2 .section-label{margin-bottom:18px;font-size:7px}
  body.layout-v2 .intro-section h2{font-size:39px;line-height:.9}
  body.layout-v2 .intro-section>p:last-child{margin-top:20px;font-size:9px}

  body.layout-v2 .services{padding:76px 16px 86px}
  body.layout-v2 .catalog-heading{margin-bottom:36px;padding:0 8px}
  body.layout-v2 .catalog-heading h2{font-size:43px;line-height:.86}
  body.layout-v2 .catalog-heading>p:last-child{margin-top:18px}
  body.layout-v2 .service-grid{gap:14px}
  body.layout-v2 .service-visual{height:340px}
  body.layout-v2 .service-card h3{margin-top:18px;font-size:29px}
  body.layout-v2 .service-content>p,body.layout-v2 .service-card:nth-child(2) .service-content>p{min-height:0;margin-bottom:14px}
  body.layout-v2 .addons{margin-top:20px;padding:17px}

  body.layout-v2 .story-image{height:410px}
  body.layout-v2 .story-copy{padding:62px 7% 68px}
  body.layout-v2 .story-copy h2{font-size:41px;line-height:.86}
  body.layout-v2 .story-copy>p{margin:23px 0}
  body.layout-v2 .story-detail{grid-template-columns:78px 1fr;gap:17px;margin-bottom:28px}
  body.layout-v2 .story-detail img{width:78px;height:110px}
  body.layout-v2 .story-detail blockquote{font-size:19px}

  body.layout-v2 .portfolio{padding:76px 10px 10px}
  body.layout-v2 .portfolio-heading{margin-bottom:38px;padding:0 12px}
  body.layout-v2 .portfolio-heading h2{font-size:43px;line-height:.86}
  body.layout-v2 .portfolio-parallax{
    height:auto;
    gap:8px;
    padding:8px;
    border-radius:0;
  }
  body.layout-v2 .parallax-col{
    gap:8px;
  }

  body.layout-v2 .booking-section{padding:72px 14px 82px}
  body.layout-v2 .booking-heading{margin-bottom:34px;padding:0 8px}
  body.layout-v2 .booking-heading .section-label{margin-bottom:16px}
  body.layout-v2 .booking-heading h2{font-size:42px;line-height:.87}
  body.layout-v2 .booking-heading>p:last-child{margin-top:18px;font-size:9px;line-height:1.7}
  body.layout-v2 .booking-layout{gap:8px}
  body.layout-v2 .calendar-panel,body.layout-v2 .booking-form{min-height:0;padding:16px}
  body.layout-v2 .calendar-toolbar{padding-bottom:14px}
  body.layout-v2 .calendar-toolbar h3{font-size:27px}
  body.layout-v2 .calendar-toolbar button{width:34px;height:34px}
  body.layout-v2 .calendar-week{padding:15px 0 8px}
  body.layout-v2 .calendar-days{gap:4px}
  body.layout-v2 .calendar-day{font-size:9px}
  body.layout-v2 .calendar-legend{flex-wrap:wrap;gap:12px;margin-top:17px;padding-top:13px;font-size:7px}
  body.layout-v2 .form-intro{grid-template-columns:34px 1fr;padding-bottom:17px}
  body.layout-v2 .form-intro h3{font-size:30px}
  body.layout-v2 .form-intro p{font-size:9px}
  body.layout-v2 .date-input-label{margin-top:13px}
  body.layout-v2 .slot-picker{grid-template-columns:repeat(3,1fr);gap:5px;padding:14px 0}
  body.layout-v2 .slot-picker>p{grid-column:1/-1}
  body.layout-v2 .slot-option{min-width:0;padding:9px 7px;display:block}
  body.layout-v2 .slot-option strong{font-size:9px}
  body.layout-v2 .slot-option span{font-size:8px}
  body.layout-v2 .fields{grid-template-columns:1fr;gap:0}
  body.layout-v2 .fields label{margin-top:12px}
  body.layout-v2 .fields input,body.layout-v2 .fields select,body.layout-v2 .fields textarea{padding:8px 0;font-size:11px}
  body.layout-v2 .form-error{margin-top:7px}
  body.layout-v2 .submit-button{padding:14px 15px}
  body.layout-v2 .booking-form>small{font-size:7px;line-height:1.5}

  body.layout-v2 .site-footer{min-height:220px;padding:40px 22px 24px}
  body.layout-v2 .site-footer>p{font-size:31px}
  body.layout-v2 .site-footer>div{gap:16px}
}

@media(prefers-reduced-motion:reduce){
  body.layout-v2 .service-card,
  body.layout-v2 .service-visual,
  body.layout-v2 .service-content,
  body.layout-v2 .service-progress-marker span{transition:none!important}
}

/* Hero stability: keep the editorial title to two deliberate lines at every viewport. */
body.layout-v2 .hero-copy{max-width:min(92vw,760px)}
body.layout-v2 .hero h1{
  max-width:760px;
  font:500 clamp(56px,6.6vw,104px)/.88 var(--serif);
  font-style:italic;
  letter-spacing:-.045em;
  text-wrap:nowrap;
}
body.layout-v2 .hero h1 em{display:block;font:inherit;font-style:inherit;letter-spacing:inherit}
body.layout-v2 .hero h1.fold-text{display:block;white-space:normal}
body.layout-v2 .hero h1.fold-text .fold-text-visual{display:block;width:100%;overflow:visible}
body.layout-v2 .hero h1.fold-text .fold-text-line{display:block;white-space:nowrap}

/* Navigation remains text-only; no capsule state may cover the labels. */
body.layout-v2 .site-nav a,
body.layout-v2 .site-nav a:visited,
body.layout-v2 .site-nav a:hover,
body.layout-v2 .site-nav a:focus,
body.layout-v2 .site-nav a:active{
  background:transparent!important;
  background-image:none!important;
  border-radius:0!important;
  box-shadow:none!important;
  color:#fff!important;
}
body.layout-v2 .site-nav a::before{content:none!important}
body.layout-v2 .site-nav a:focus-visible{outline:1px solid rgba(255,255,255,.9);outline-offset:5px}

@media(max-width:620px){
  body.layout-v2 .hero h1{font-size:clamp(45px,13vw,54px);line-height:.86}
}

/* White wordmark supplied for the dark landing-page surfaces. */
body.layout-v2 .brand-logo-link{
  display:flex;
  align-items:center;
  width:max-content;
  padding:0;
  background:transparent;
  border:0;
  border-radius:0;
  line-height:0;
  text-decoration:none;
}
body.layout-v2 .brand-logo{display:block;width:166px;height:auto}
body.layout-v2 .site-footer .footer-brand.brand-logo-link{padding:0;background:transparent;border:0}
body.layout-v2 .site-footer .footer-brand .brand-logo{width:184px}
@media(max-width:620px){
  body.layout-v2 .brand-logo-link{padding:0}
  body.layout-v2 .brand-logo{width:132px}
  body.layout-v2 .site-footer .footer-brand .brand-logo{width:162px}
}

/* Products used: a quiet, editorial mark grid in place of the former text block. */
body.layout-v2 .products-section{
  display:grid;
  grid-template-columns:minmax(240px,.7fr) minmax(0,1.3fr);
  gap:clamp(42px,7vw,128px);
  align-items:center;
  padding:clamp(78px,10vw,150px) 6vw;
  background:#f4ecea;
}
body.layout-v2 .products-heading .section-label{margin:0 0 20px;color:#7b171e}
body.layout-v2 .products-heading h2{margin:0;color:var(--editorial-ink);font:500 clamp(48px,5.2vw,82px)/.9 var(--serif);letter-spacing:-.05em}
body.layout-v2 .products-heading h2 em{color:var(--editorial-wine);font:inherit;font-style:italic}
body.layout-v2 .product-logo-grid{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));gap:10px}
body.layout-v2 .product-logo-card{display:flex;align-items:center;justify-content:center;min-height:138px;margin:0;padding:18px;background:#fffdfc;border:1px solid #e1d4d0;transition:transform .24s ease,box-shadow .24s ease}
body.layout-v2 .product-logo-card:hover{transform:translateY(-4px);box-shadow:0 12px 25px rgba(77,20,27,.09)}
body.layout-v2 .product-logo-card img{display:block;width:100%;height:70px;object-fit:contain}
@media(max-width:1000px){
  body.layout-v2 .products-section{grid-template-columns:1fr;gap:36px;padding:90px 6vw}
  body.layout-v2 .products-heading h2{font-size:64px}
}
@media(max-width:620px){
  body.layout-v2 .products-section{gap:30px;padding:76px 5vw 82px}
  body.layout-v2 .products-heading h2{font-size:47px}
  body.layout-v2 .product-logo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  body.layout-v2 .product-logo-card{min-height:105px;padding:13px}
  body.layout-v2 .product-logo-card img{height:52px}
}

/* Keep the optional add-ons as one centered, compact price card. */
body.layout-v2 .addons{
  grid-template-columns:1fr;
  gap:20px;
  width:min(920px,100%);
  max-width:920px;
  margin:42px auto 0;
  padding:30px 38px;
}
body.layout-v2 .addons>p{margin:0;text-align:center}
body.layout-v2 .addons-list{width:min(100%,660px);max-width:660px;margin:0 auto}
body.layout-v2 .addon-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:28px}
@media(max-width:620px){
  body.layout-v2 .addons{width:100%;margin-top:24px;padding:21px 18px}
  body.layout-v2 .addon-row{gap:14px;font-size:8px}
}

/* A self-contained closing card, inspired by a printed calling card rather than a full-width utility footer. */
body.layout-v2 .site-footer{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,.9fr) minmax(150px,.5fr);
  grid-template-rows:auto 1fr auto;
  gap:clamp(18px,2.2vw,30px) clamp(24px,4vw,66px);
  min-height:clamp(275px,25vw,330px);
  margin:clamp(14px,4vw,60px);
  padding:clamp(25px,3vw,38px) clamp(26px,4vw,52px) 22px;
  overflow:hidden;
  background:#65161a;
  border-radius:22px;
  color:#f9f0eb;
}
body.layout-v2 .site-footer::before{
  content:none;
}
body.layout-v2 .site-footer .footer-brand{
  grid-column:1;
  grid-row:2;
  justify-self:start;
  align-self:end;
  margin:0;
}
body.layout-v2 .site-footer .footer-brand .brand-logo{width:clamp(165px,15vw,230px)}
body.layout-v2 .site-footer .footer-contact{
  grid-column:2;
  grid-row:2;
  display:flex;
  flex-direction:column;
  align-self:end;
  align-items:flex-start;
  gap:9px;
  padding-bottom:3px;
}
body.layout-v2 .site-footer .footer-contact span{
  color:rgba(255,244,239,.7);
  font-size:9px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
body.layout-v2 .site-footer .footer-contact a{
  color:#fffaf7;
  font-size:13px;
  text-decoration:none;
  border-bottom:1px solid rgba(255,250,247,.55);
  padding-bottom:3px;
}
body.layout-v2 .site-footer .footer-contact a:hover{border-color:#fff}
body.layout-v2 .site-footer .footer-links{
  grid-column:3;
  grid-row:2;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  align-self:end;
  gap:8px;
  padding-bottom:3px;
}
body.layout-v2 .site-footer .footer-links a{
  color:#fffaf7;
  font-size:10px;
  letter-spacing:.08em;
  text-decoration:none;
  text-transform:uppercase;
}
body.layout-v2 .site-footer .footer-links a:hover{opacity:.66}
body.layout-v2 .site-footer>small{
  grid-column:1/-1;
  align-self:end;
  margin:0;
  padding-top:12px;
  border-top:1px solid rgba(255,242,237,.23);
  color:rgba(255,244,239,.62);
  font-size:8px;
  letter-spacing:.06em;
}
@media(max-width:700px){
  body.layout-v2 .site-footer{
    grid-template-columns:1fr 1fr;
    grid-template-rows:auto 1fr auto;
    gap:32px 26px;
    min-height:305px;
    margin:12px;
    padding:30px 26px 24px;
    border-radius:18px;
  }
  body.layout-v2 .site-footer .footer-brand{grid-column:1;grid-row:2}
  body.layout-v2 .site-footer .footer-brand .brand-logo{width:170px}
  body.layout-v2 .site-footer .footer-contact{grid-column:1;grid-row:3;align-self:start}
  body.layout-v2 .site-footer .footer-links{grid-column:2;grid-row:2 / span 2;align-self:start}
  body.layout-v2 .site-footer>small{grid-column:1/-1}
}
@media(max-width:460px){
  body.layout-v2 .site-footer{
    grid-template-columns:1fr;
    grid-template-rows:auto auto auto auto auto;
    gap:22px;
    min-height:0;
    padding:30px 24px 22px;
  }
  body.layout-v2 .site-footer .footer-brand{grid-column:1;grid-row:1;justify-self:start}
  body.layout-v2 .site-footer .footer-brand .brand-logo{width:150px}
  body.layout-v2 .site-footer .footer-brand{grid-column:1;grid-row:2;justify-self:start}
  body.layout-v2 .site-footer .footer-contact{grid-column:1;grid-row:3}
  body.layout-v2 .site-footer .footer-links{grid-column:1;grid-row:4;flex-direction:row;flex-wrap:wrap;column-gap:17px;row-gap:9px}
  body.layout-v2 .site-footer .footer-contact,
  body.layout-v2 .site-footer .footer-links{align-self:auto}
  body.layout-v2 .site-footer>small{grid-column:1;grid-row:5;margin-top:4px}
}


