/* The Loft: an intimate wedding invitation and a sequence of real room/ceremony photographs. */
:root{--loft-dark:#f0e9de;--bark:#4a3d33;--cream-ink:#4a3d33;--pampas:#45372b;--mono:var(--sans)}
.invitation{text-align:center;padding:44px var(--gutter) 58px;max-width:1400px;margin:auto;background:var(--drapery)}
.invitation .eyebrow{font-family:var(--sans);font-size:13px;letter-spacing:.03em;text-transform:none;color:var(--pampas)}
.invitation h1{font-family:var(--serif);font-weight:400;font-size:clamp(44px,5.7vw,82px);line-height:.98;letter-spacing:-.025em;max-width:17ch;margin:20px auto 22px}
.invitation .sub{font-size:15px;line-height:1.7;max-width:64ch;margin:0 auto 23px;color:var(--bark)}
.invitation .ctas{justify-content:center;gap:18px;margin:0 auto 30px}.invitation .btn{border-radius:0;min-height:46px;font-size:14px;background:transparent;color:var(--bark);border:1px solid var(--pampas)}.invitation .btn-gold{background:#34442d;color:white;border-color:#34442d}
.invitation__sequence{display:grid;grid-template-columns:1.2fr .8fr;gap:26px;max-width:850px;margin:auto;align-items:start;text-align:left}
.invitation__sequence figure{margin:0}.invitation__sequence img{width:100%;height:295px;object-fit:cover}.invitation__sequence figure:nth-child(2){padding-top:32px}.invitation__sequence figure:nth-child(2) img{height:270px}
.invitation__sequence figcaption{font-size:12px;color:var(--pampas);padding-top:12px;line-height:1.4}
.nav-wrap,.site-nav,.nav,.nav.solid,.nav.is-solid{background:var(--drapery);color:var(--bark);position:sticky;backdrop-filter:none}.nav a,.nav button{color:var(--bark)}
.grain::after{display:none}.dark{background:var(--jute);color:var(--bark)}.dark p,.dark .eyebrow{color:var(--bark)}
.room,.ladder,.statement,.license,.visit{padding-block:64px}.room h2,.ladder h2,.statement h2,.visit h2{font-size:clamp(36px,4vw,58px)}
.statement p,.license p{font-size:17px;line-height:1.65}.band{min-height:420px}.band h2{font-size:clamp(36px,4.4vw,64px)}
.foot,footer{background:#e7dece;color:var(--bark)}.eyebrow{font-family:var(--sans);letter-spacing:.02em;text-transform:none}
.phero,.page-hero{min-height:0;background:var(--drapery);color:var(--bark);padding-block:48px}.phero::before,.page-hero::before{display:none}.phero h1,.page-hero h1{font-size:clamp(40px,5vw,68px);color:var(--bark)}
.js .rv,.js .clip{opacity:1;transform:none;clip-path:none}
@media(max-width:900px){.invitation{padding-top:32px}.invitation h1{font-size:48px;max-width:15ch}.invitation .ctas{flex-direction:column;align-items:stretch;max-width:360px}.invitation__sequence{gap:14px;grid-template-columns:1fr 1fr}.invitation__sequence img{height:235px}.invitation__sequence figure:nth-child(2) img{height:205px}.invitation .sub{font-size:14px}.room,.ladder,.statement,.license,.visit{padding-block:48px}.band{min-height:340px}}
@media(max-width:360px){.invitation h1{font-size:43px}.invitation__sequence img{height:205px}.invitation__sequence figure:nth-child(2) img{height:175px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.hero.page-hero{min-height:0;display:flow-root;background:var(--drapery);color:var(--bark);padding:46px var(--gutter);isolation:auto}.hero.page-hero::before,.hero.page-hero::after{display:none}.page-hero>picture{position:relative;float:right;width:42%;margin-left:36px}.page-hero .hero-img{position:relative;inset:auto;height:330px;object-fit:cover}.page-hero>.wrap{padding:0;width:auto}.page-hero h1,.page-hero .eyebrow,.page-hero .sub{color:var(--bark);text-shadow:none}.page-hero h1{font-size:clamp(40px,5vw,66px);max-width:19ch}.information-hero h1{font-size:clamp(40px,5vw,66px);color:var(--bark)}@media(max-width:900px){.page-hero>picture{float:none;width:100%;margin:0 0 24px}.page-hero .hero-img{height:230px}.page-hero h1{font-size:42px}}

.page-hero>.hero-img{float:right;width:42%;margin-left:36px}.page-hero .credit{position:static;display:block;color:var(--pampas);background:none;clear:both;padding-top:12px}.page-hero .wrap{padding:0;position:relative;min-height:0}.page-hero .btn-line{color:var(--bark);border-color:var(--pampas)}@media(max-width:900px){.page-hero>.hero-img{float:none;width:100%;margin:0 0 24px}}

/* Invitation ink, including the practical ceremony and licence information. */
.nav .brand small,.footer h4,.footer-bottom{color:var(--pampas)}
.btn-gold,.visit-media .tag,.skip{color:var(--bark)}
.dark .h2 em,.visit .h2 em,.neil b{color:var(--hedge)}.neil span{color:var(--bark)}
.statement .quote,.statement .beliefs,.statement .eyebrow,.statement p,.license-intro,.license-intro .h2,.license-intro p,.license-intro .eyebrow{color:#f7f3ec}
.license-intro .h2 em{color:#e7c686}.license-photo .path h3,.license-photo .path p{color:var(--bark)}
.license-photo .path .dot{color:var(--hedge);border-color:var(--hedge)}.license-photo .path::before{background:var(--pampas)}
.footer{background:#e7dece;color:var(--bark)}.footer .brand{color:var(--bark)}.footer a:hover{color:var(--hedge)}.footer-bottom{border-color:#b6a58e}
:focus-visible{outline-color:var(--bark)}
.information-hero{min-height:0;background:var(--drapery);color:var(--bark);padding:40px 0!important;display:block;overflow:visible}
.information-hero .split{display:grid;grid-template-columns:1.1fr .9fr;align-items:center}
.information-hero figure{position:relative;inset:auto;z-index:auto;width:100%;height:auto}
.information-hero figure img{height:330px;width:100%;max-height:none!important;object-fit:cover}
.information-hero::after{display:none}.information-hero .eyebrow,.information-hero .lede{color:var(--bark)}
@media(max-width:900px){.information-hero{min-height:0}.information-hero .split{grid-template-columns:1fr}.information-hero figure img{height:270px}.information-hero h1{max-width:19ch}}
.dark .lede,.visit dt,.form label,.form .note,.contact-photos figcaption,.contact-panorama figcaption{color:var(--bark)}
.dark h1 em,.dark h2 em,.dark .h2 em,.fees td{color:#34442d}
.rail-price{color:#fff8e9}.statement .side figcaption{color:#fff8e9}
.statement .quote .w{opacity:1!important}.license-photo .path .link{color:var(--hedge)}
.statement .lede{color:#f7f3ec}.statement .quote{font-size:clamp(28px,3.8vw,46px);line-height:1.15}
@media(max-width:900px){.quote-band .wrap,.quote-band p,.quote-band small{color:var(--bark)}.quote-band small{text-shadow:none}}

/* Independent structure and accessibility review repair. */
.invitation{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:40px;align-items:center;padding-block:44px}
.invitation__card{position:relative;z-index:1;background:#d1c5c8;border:1px solid #b8aa94;padding:46px 32px;box-shadow:inset 0 0 0 10px #d1c5c8,inset 0 0 0 11px #d8ceba}
.invitation .eyebrow{font-family:var(--serif);font-size:18px;color:var(--bark);letter-spacing:0}
.invitation h1{font-size:clamp(42px,4.5vw,64px);max-width:13ch}.invitation .sub{font-size:14px}
.invitation .ctas{display:block;margin-bottom:0}.invitation .ctas .btn-line{display:block;border:0;text-decoration:underline;margin:10px auto 0;padding:8px;font-size:13px}
.invitation__sequence{display:grid;grid-template-columns:1fr;gap:20px;max-width:none;width:100%}
.invitation__sequence img{height:350px}.invitation__sequence figure:nth-child(2){padding:0;max-width:72%;justify-self:end}.invitation__sequence figure:nth-child(2) img{height:180px}
.rail-price{color:#fff8e9!important}.license-photo .path .link{color:#2f4028}.quote-band{color:var(--bark)}
@media(max-width:900px){
  .invitation{display:flex;flex-direction:column;padding:20px 0 40px;gap:0}
  .invitation__sequence{order:-1;display:block}.invitation__sequence figure:first-child img{height:240px}
  .invitation__sequence figure:first-child figcaption{padding:10px 24px}.invitation__sequence figure:nth-child(2){display:none}
  .invitation__card{margin:-38px 24px 0;padding:28px 22px;width:calc(100% - 48px);max-width:390px}
  .invitation .eyebrow{font-size:16px}.invitation h1{font-size:40px;margin:14px auto 20px}.invitation .sub{font-size:13px;line-height:1.6}
  .invitation .ctas{max-width:none}.invitation .btn{font-size:13px;min-height:44px}
  .quote-band p,.quote-band small{color:var(--bark)!important;text-shadow:none}
}
@media(max-width:360px){.invitation h1{font-size:35px}.invitation__card{margin-inline:20px;width:calc(100% - 40px);padding-inline:20px}}

a[data-primary-action]::before,a[data-primary-action]::after,a[data-primary-action] span,a[data-primary-action] svg{pointer-events:none}

.visit-grid .eyebrow .no{color:#736343}

/* Invitation ink also applies to inner titles and the enquiry form. */
.information-hero h1 em,.information-hero em,.page-hero h1 em{color:#746044}
.eyebrow .no,.dark .eyebrow .no{color:var(--pampas)}
.license-intro .eyebrow .no,.statement .eyebrow .no{color:#e7c686}
.form input,.form textarea{color:var(--bark);background:#d1c5c8;border-color:#b6a58e}
.form input::placeholder,.form textarea::placeholder,.contact-details .form input::placeholder,.contact-details .form textarea::placeholder{color:var(--pampas);opacity:1}
.contact-details .form input:focus-visible,.contact-details .form textarea:focus-visible{outline-color:var(--bark);border-color:var(--bark)}

/* Operator palette correction: less white, same site character. */
:root{--drapery:#d1c5c8;--jute:#c1b1b6;--loft-dark:#c8b8bb}

/* Scoped in-flow preview credit: truthful, readable and clear of content. */
.license-image figcaption{position:static;background:var(--drapery);color:var(--bark);font:400 14px/1.5 var(--sans);padding:16px;opacity:1}.room-media img{object-fit:contain;object-position:center;background:var(--drapery)}
.form>.note{font:400 15px/1.6 var(--sans);color:var(--bark);padding:16px;background:var(--drapery);margin:0 0 16px}
.pkg .n,.pkg .guests,.pkg .not,.pkg ul{color:#3f302b;transition:none}.pkg{transition:none}
.ladder.on .pkg.active{animation:none;opacity:1}
.quote-band{height:auto;min-height:0;background:var(--drapery)}.quote-band::before{display:none}.quote-band .wrap{position:static;height:auto;padding-top:28px;padding-bottom:28px;background:var(--drapery)}.quote-band p{position:static;font-size:32px;line-height:1.3;margin:0;color:var(--bark);text-align:left;text-shadow:none}.quote-band small{position:static;display:block;color:var(--bark);font:400 14px/1.5 var(--sans);margin-top:12px;text-shadow:none}.visit--address-only .visit-grid{grid-template-columns:minmax(0,1fr);max-width:900px}
.license-intro{background:#433733;padding:28px;color:#f2e4dc}.license-intro .btn-line{color:#f2e4dc;border-color:#d1c5c8}.pkg .guests,.pkg .not{font:400 14px/1.5 var(--sans);letter-spacing:0;text-transform:none;color:var(--bark)}.seat-count,.seat-count b{color:var(--bark)}.gallery figcaption{font:400 14px/1.5 var(--sans);background:var(--drapery);color:var(--bark);padding:12px}
@media(max-width:900px){.room-media{display:flex;flex-direction:column;gap:16px;min-height:0}.room-media .m1,.room-media .m2{position:static;inset:auto;width:100%;height:auto;aspect-ratio:auto;max-height:500px;object-fit:contain;border:0;box-shadow:none}.room-media figcaption{position:static;max-width:none;font:400 13px/1.5 var(--sans);color:var(--bark)}.album-hero .hero-img{height:auto;object-fit:contain;max-height:460px}.album img,.gallery img,.album-grid img,.photo-grid img,.album-strip img{object-fit:contain;object-position:center;background:var(--drapery);height:auto;max-height:520px}.gallery figure{aspect-ratio:auto}.footer{padding-block:32px}.footer-top{gap:24px}.footer-bottom{margin-top:24px}}
aside[data-octopuss-disclosure][data-octopuss-disclosure-version$="-footer"]{background:#d1c5c8!important;color:#182126!important;line-height:1.5!important;letter-spacing:0!important;border-top:1px solid rgba(24,33,38,.2);padding:14px 16px!important}
aside[data-octopuss-disclosure][data-octopuss-disclosure-version$="-footer"] a{color:inherit!important;min-height:24px;text-decoration:underline!important;text-underline-offset:3px}

/* Character fix pass 2026-10-03 (loft-p1). */
/* 1. Licence title and ceremony closing line: light lettering on a deep, even surface. */
.license-intro::after{background:linear-gradient(0deg,rgba(35,27,25,.94),rgba(35,27,25,.82))}
.license-intro .h2,.license-intro p,.license-intro .eyebrow{color:#fbf6f0}
.license-intro .h2 em{color:#f1d9a4}
.ceremony-band::before{background:linear-gradient(0deg,rgba(27,21,19,.92) 0%,rgba(27,21,19,.62) 38%,transparent 72%)}
.ceremony-band .wrap,.ceremony-band p,.ceremony-band .photo-link,.ceremony-band small{color:#fbf6f0}
.ceremony-band p{text-shadow:0 1px 18px rgba(20,15,13,.55)}
/* 2. Seating diagram on its own plain surface, separate from the photograph. */
.seatmap{background:#3b302d;color:#fbf6f0;border:1px solid #2a2220}
.seatmap::before{display:none}
.seat{border:1.5px solid rgba(251,246,240,.62);background:rgba(251,246,240,.06)}
.seat.lit{background:#e7c686;border-color:#e7c686}
.seatmap .seat-count,.seatmap .seat-count b{color:#fbf6f0}
/* 5. Any preview credit stays in normal flow, never over the seating diagram or booking controls. */
aside[data-octopuss-disclosure]{position:static!important;inset:auto!important;transform:none!important;width:auto!important;max-width:none!important;margin:0!important;z-index:auto!important}
@media(max-width:900px){
  /* 3. Album photographs keep their natural proportions, so captions sit directly under them. */
  .gallery img,.gallery .wide img,.gallery figure:first-child img{aspect-ratio:auto;height:auto;max-height:none;object-fit:cover}
  /* 4. Every ceremony choice visible at once, no hidden rail. */
  .ladder.on .steps{display:grid;grid-template-columns:1fr 1fr;overflow:visible;scroll-snap-type:none;padding-bottom:0;border-top:0;gap:8px}
  .ladder.on .steps button{flex:none;width:auto;min-height:72px;border:1px solid rgba(74,61,51,.35);padding:12px;background:transparent}
  .ladder.on .steps button:last-of-type{grid-column:1/-1}
  .ladder.on .steps button[aria-selected=true]{background:#e8dfe1;border:2px solid var(--hedge);padding:11px}
  .steps .s-name{font-size:18px;overflow-wrap:anywhere}
  .ladder.on .package-swipe-hint{justify-content:flex-end;margin:10px 0 20px}
  .package-swipe-hint>span:first-child{display:none}
}

/* Character fix pass 2026-10-04 (loft-p2). */
/* 1+5. Licence introduction: calm solid rose-grey invitation surface, dark ink throughout (photo removed). */
.license.license-photo .license-intro{background:#c8b8bb;color:#2f2622;min-height:0;padding-block:88px;box-shadow:inset 0 0 0 14px #c8b8bb,inset 0 0 0 15px #a69296}
.license.license-photo .license-intro::after,.license.license-photo .license-image{display:none}
.license.dark .license-intro .h2,.license.dark .license-intro .lede,.license.dark .license-intro p,.license.dark .license-intro .eyebrow{color:#2f2622;text-shadow:none}
.license.dark .license-intro .h2 em{color:#34442d}
.license.dark .license-intro .eyebrow .no{color:#5a4a3e}
.license.dark .license-intro .btn-line{color:#2f2622;border-color:#2f2622;background:transparent}
.license.dark .license-intro .btn-line:hover{background:#2f2622;color:#f2e9e4}
.license.dark .license-intro .btn-line:focus-visible{outline:2px solid #2f2622;outline-offset:3px}
@media(max-width:900px){.license.license-photo .license-intro{padding:56px calc(var(--gutter) + 8px);box-shadow:inset 0 0 0 10px #c8b8bb,inset 0 0 0 11px #a69296}}
/* 2+3. Album: detail crops as small supporting photographs inside an invitation frame; sentence-case captions. */
.gallery figcaption{font:400 14px/1.45 var(--sans);text-transform:none;letter-spacing:0;background:none;color:var(--bark);padding:10px 0 0}
.gallery-details{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;align-items:start;padding:36px 32px 32px;border:1px solid #b8aa94;box-shadow:inset 0 0 0 10px var(--drapery),inset 0 0 0 11px #d8ceba;background:var(--drapery)}
.gallery-details__label{grid-column:1/-1;margin:0 0 4px;font:italic 400 28px/1.2 var(--serif);color:var(--bark);text-align:center}
.gallery .gallery-details figure{grid-column:auto;margin:0;min-width:0}
.gallery .gallery-details img{width:100%;height:auto;max-height:none;aspect-ratio:4/5;object-fit:cover;object-position:center;background:none}
.gallery .gallery-details figcaption{font-size:13px;text-align:center}
@media(max-width:700px){.gallery-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 14px;padding:24px 18px 20px}.gallery-details__label{font-size:24px}}
@media(max-width:900px){.gallery figcaption{font-size:13px}}

/* Character fix pass loft-p3, 2026-10-04 */
/* Home price list: static and wrapping, so every name stays with its price. */
.rail-track--static{width:auto;max-width:var(--max);margin:0 auto;flex-wrap:wrap;justify-content:center;row-gap:10px;padding:20px var(--gutter);transform:none!important}
.rail-track--static a{padding:4px 28px}
.rail-track--static a:last-child{border-right:0}
@media(max-width:700px){
  .rail-track--static{display:grid;grid-template-columns:minmax(0,1fr);row-gap:0;padding:6px var(--gutter)}
  .rail-track--static a{white-space:normal;justify-content:space-between;gap:16px;padding:11px 0;border-right:0;border-bottom:1px solid rgba(247,243,236,.25)}
  .rail-track--static a:last-child{border-bottom:0}
  .rail-track--static .rail-name{font-size:21px;line-height:1.2;min-width:0}
  .rail-track--static .rail-price{white-space:nowrap}
}
/* Package diagram: labelled as a capacity illustration; the desk-only package says so. */
.seatmap-label{margin:0;padding-bottom:10px;border-bottom:1px solid rgba(251,246,240,.28);font:500 12px/1.4 var(--sans);letter-spacing:.1em;text-transform:uppercase;text-align:center;color:#efe3d6}
.seatmap-desk{margin:0;min-height:1.3em;text-align:center;font:italic 400 19px/1.3 var(--serif);color:#f1d9a4;visibility:hidden}
.seatmap.at-desk .seatmap-desk{visibility:visible}
.seatmap .arch-mark{transition:opacity .28s cubic-bezier(.16,1,.3,1)}
.seatmap.at-desk .arch-mark{opacity:.28}
.ladder.pinned .seatmap-label{font-size:11px;padding-bottom:8px}
.ladder.pinned .seatmap-desk{font-size:17px}
.ladder.pinned .seats{max-width:262px}
.ladder.pinned .seat-count b{font-size:44px}
html:not(.js) .seatmap-desk{display:none}
/* Contact form: legible underlines on the rose surface, framed like the invitation card. */
.contact-details .form input,.contact-details .form textarea{border-bottom:1.5px solid #4a3d37}
.contact-details .form{padding:30px 28px 28px;border:1px solid #a69296;box-shadow:inset 0 0 0 8px var(--drapery),inset 0 0 0 9px #a69296;background:var(--drapery)}
.contact-details .form>.note{margin:0;padding:0 0 4px;background:none;font-size:15px}
@media(max-width:700px){.contact-details .form{padding:24px 18px 20px;box-shadow:inset 0 0 0 6px var(--drapery),inset 0 0 0 7px #a69296}}
/* Album: shorter hand-off from the hero credit, a paired opening, the room as the only wide image. */
.album-sequence{padding-top:40px}
.gallery-pair{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:28px;align-items:end;max-width:1040px;width:100%;margin:0 auto}
.gallery .gallery-pair figure{margin:0;min-width:0}
.gallery .gallery-pair img,.gallery figure.wide img{aspect-ratio:auto;height:auto;object-fit:contain;object-position:center}
@media(max-width:700px){.album-sequence{padding-top:28px}.gallery-pair{grid-template-columns:minmax(0,1fr);gap:24px}}
