/* All In House — draft 8. Royal Yacht International's structure, All In House's identity.
   Ink and full white only (aih-white-and-readable). Perandory for names and titles, Figtree for everything else.
   No scroll effects, nothing fixed or sticky (aih-draft-3-rejected). */

@font-face{font-family:Perandory;src:url(../fonts/Perandory-SemiCondensed.woff2) format("woff2");font-display:swap}
@font-face{font-family:Figtree;src:url(../fonts/Figtree-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Figtree;src:url(../fonts/Figtree-600.woff2) format("woff2");font-weight:600;font-display:swap}

:root{
  --ink:#0a0a0b;
  --panel:#151517;
  --rule:rgba(255,255,255,.3);
  --white:#fff;
  --display:Perandory,"Didot","Bodoni 72",serif;
  --text:Figtree,system-ui,-apple-system,sans-serif;
  --gut:clamp(16px,4.4vw,64px);
  --pad:clamp(72px,9vw,128px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--ink);color:var(--white);-webkit-text-size-adjust:100%}
body{font:400 17px/1.6 var(--text);background:var(--ink);color:var(--white);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--white);outline-offset:3px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* type roles */
.eyebrow{font:600 12px/1.3 var(--text);letter-spacing:.24em;text-transform:uppercase;margin-bottom:16px}
.title{font:400 clamp(60px,10vw,156px)/.86 var(--display);text-transform:uppercase;letter-spacing:.005em}
.title--m{font-size:clamp(44px,6vw,88px)}
.lede{font-size:clamp(17px,1.35vw,19px);line-height:1.55;margin:22px 0 30px;max-width:30rem}

.btn{display:inline-block;border:1px solid var(--white);padding:15px 24px;font:600 12px/1 var(--text);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;background:none;cursor:pointer;white-space:nowrap}
.btn:hover{background:var(--white);color:var(--ink)}
.btn--solid{background:var(--white);color:var(--ink)}
.btn--solid:hover{background:none;color:var(--white)}

/* header: sits on the first image, scrolls away with it */
.hd{position:absolute;inset:0 0 auto;z-index:20;display:flex;align-items:center;gap:36px;padding:26px var(--gut)}
.hd__logo img{height:58px;width:auto}
.hd__nav{display:flex;gap:30px;margin-left:auto}
.hd__nav a{font:600 12px/1 var(--text);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;padding:6px 0;border-bottom:1px solid transparent}
.hd__nav a:hover,.hd__nav a[aria-current]{border-bottom-color:var(--white)}
.mnav{display:none;margin-left:auto}
.mnav summary{list-style:none;cursor:pointer;font:600 12px/1 var(--text);letter-spacing:.2em;text-transform:uppercase;border:1px solid var(--white);padding:13px 18px}
.mnav summary::-webkit-details-marker{display:none}
.mnav[open] summary{position:relative;z-index:2}
.mnav nav{position:fixed;inset:0;background:var(--ink);display:flex;flex-direction:column;justify-content:center;gap:10px;padding:96px var(--gut) 48px}
.mnav nav a{font:400 44px/1.1 var(--display);text-transform:uppercase;text-decoration:none}
.mnav nav a.btn{margin-top:28px;align-self:flex-start;font:600 12px/1 var(--text);letter-spacing:.2em}
.mnav .x{display:none}.mnav[open] .x{display:inline}.mnav[open] .o{display:none}
@media (max-width:1000px){.hd__nav,.hd>.btn{display:none}.mnav{display:block}.hd__logo img{height:34px}}

/* photographs under type: one scrim recipe everywhere, so white always reads */
.plate{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.scrim::after,.scrim--side::after,.scrim--side-r::after{content:"";position:absolute;inset:0;pointer-events:none}
.scrim::after{background:linear-gradient(180deg,rgba(10,10,11,.6) 0%,rgba(10,10,11,.06) 26%,rgba(10,10,11,.14) 46%,rgba(10,10,11,.8) 76%,rgba(10,10,11,.9) 100%)}
.scrim--side::after{background:linear-gradient(90deg,rgba(10,10,11,.86) 0%,rgba(10,10,11,.5) 40%,rgba(10,10,11,0) 70%),linear-gradient(0deg,rgba(10,10,11,.7) 0%,rgba(10,10,11,0) 45%)}
.scrim--side-r::after{background:linear-gradient(270deg,rgba(10,10,11,.86) 0%,rgba(10,10,11,.5) 40%,rgba(10,10,11,0) 70%),linear-gradient(0deg,rgba(10,10,11,.7) 0%,rgba(10,10,11,0) 45%)}

/* 1 — the opening frame */
.hero{position:relative;min-height:100svh;display:grid;grid-template-columns:minmax(0,1fr);place-items:end center;text-align:center;overflow:hidden}
.hero__body{position:relative;z-index:1;width:100%;padding:140px var(--gut) clamp(56px,11vh,120px)}
.hero__title{font:400 clamp(36px,5.4vw,84px)/.95 var(--display);text-transform:uppercase;max-width:20ch;margin:0 auto}
.hero__strip{display:flex;flex-wrap:wrap;justify-content:center;row-gap:2px;margin-top:26px;font:600 clamp(11px,1vw,13px)/1.9 var(--text);letter-spacing:.22em;text-transform:uppercase}
.hero__strip span+span::before{content:"|";margin:0 .9em}
@media (max-width:600px){.hero__strip{max-width:22rem;margin-left:auto;margin-right:auto;column-gap:1.3em}.hero__strip span+span::before{content:none}}

/* 2 — full-height feature, type bottom-left or bottom-right */
.feature{position:relative;min-height:100svh;display:flex;align-items:flex-end;padding:var(--gut);padding-bottom:clamp(56px,9vw,120px);overflow:hidden}
.feature--r{justify-content:flex-end}
.feature__body{position:relative;z-index:1;max-width:34rem}

/* 3 — highlights rail */
.rail{padding:var(--pad) 0 var(--pad) var(--gut)}
.rail--panel{background:var(--panel)}
.rail__head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-right:var(--gut);margin-bottom:40px}
.rail__track{display:grid;grid-auto-flow:column;grid-auto-columns:min(80vw,460px);gap:28px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-right:var(--gut);scroll-padding-left:0}
.rail__track::-webkit-scrollbar{display:none}
.arrows{display:flex;gap:10px;flex:none}
.arrows button{width:52px;height:52px;border:1px solid var(--white);background:none;cursor:pointer;display:grid;place-items:center}
.arrows button:hover{background:var(--white);color:var(--ink)}
.arrows svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6}

.card{scroll-snap-align:start;text-decoration:none;display:block}
.card__frame{aspect-ratio:4/3;overflow:hidden;background:var(--panel)}
.card__frame img{width:100%;height:100%;object-fit:cover}
.card__name{font:400 clamp(30px,2.6vw,38px)/1 var(--display);text-transform:uppercase;margin-top:20px}
.card__meta{font-size:15px;margin-top:10px}
.card__rate{font:600 12px/1 var(--text);letter-spacing:.2em;text-transform:uppercase;margin-top:14px}
.card:hover .card__name{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px}

/* 4 — the short banner */
.band{position:relative;min-height:400px;display:grid;place-items:center;text-align:center;padding:72px var(--gut);overflow:hidden}
.band::after{content:"";position:absolute;inset:0;background:rgba(10,10,11,.52)}
.band__body{position:relative;z-index:1}
.band .title{margin-bottom:28px}

/* 5 — fifty-fifty */
.split{display:grid;grid-template-columns:1fr 1fr}
.split__cell{position:relative;min-height:92svh;display:flex;align-items:flex-end;padding:var(--gut);padding-bottom:clamp(56px,7vw,96px);overflow:hidden}
.split__body{position:relative;z-index:1;max-width:28rem}
.split__cell--panel{background:var(--panel)}
@media (max-width:820px){.split{grid-template-columns:1fr}.split__cell{min-height:82svh}}

/* 6 — guides */
.guides{padding:var(--pad) var(--gut)}
.guides__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;margin-top:40px}
.guide{text-decoration:none}
.guide img{aspect-ratio:4/5;width:100%;height:auto;object-fit:cover}
.guide__t{font:400 26px/1.05 var(--display);text-transform:uppercase;margin-top:16px}
.guide__d{font-size:14px;margin-top:6px}
@media (max-width:900px){.guides__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* 7 — request */
.req{background:var(--panel);padding:var(--pad) var(--gut);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,6vw,96px)}
.req form{display:grid;grid-template-columns:1fr 1fr;gap:28px 28px;align-content:start}
.req .full{grid-column:1/-1}
.field label{display:block;font:600 12px/1 var(--text);letter-spacing:.2em;text-transform:uppercase;margin-bottom:6px}
.field input,.field select{width:100%;background:transparent;border:0;border-bottom:1px solid var(--white);border-radius:0;padding:12px 0;font-size:18px;appearance:none;-webkit-appearance:none}
.field select{background-image:linear-gradient(45deg,transparent 50%,#fff 50%),linear-gradient(135deg,#fff 50%,transparent 50%);background-position:calc(100% - 12px) 55%,calc(100% - 6px) 55%;background-size:6px 6px;background-repeat:no-repeat}
.field select option{color:#000}
.field input::placeholder{color:rgba(255,255,255,.72)}
.req__note{font-size:14px;margin-top:14px}
@media (max-width:820px){.req{grid-template-columns:1fr}.req form{grid-template-columns:1fr}}

/* footer */
.ft{padding:88px var(--gut) 48px;text-align:center;border-top:1px solid var(--rule)}
.ft img{height:56px;width:auto;margin:0 auto 28px}
.ft p{font-size:15px}
.ft a{text-decoration:none}
.ft__tel{font:600 26px/1.2 var(--text);letter-spacing:.04em;display:inline-block;margin:10px 0 22px}
.ft__small{font-size:13px;margin-top:36px}

/* yacht page */
.yhero .hero__body{padding-bottom:clamp(48px,8vh,96px)}
.yhero__name{font:400 clamp(58px,11vw,170px)/.86 var(--display);text-transform:uppercase}
.specline{display:flex;flex-wrap:wrap;justify-content:center;gap:18px clamp(28px,4vw,64px);margin:30px 0 34px}
.specline dt{font:600 11px/1 var(--text);letter-spacing:.24em;text-transform:uppercase;margin-bottom:10px}
.specline dd{font:600 clamp(16px,1.5vw,21px)/1 var(--text);letter-spacing:.08em;text-transform:uppercase}

.gallery{padding:var(--pad) 0 var(--pad) var(--gut)}
.gallery .rail__track{grid-auto-columns:min(86vw,920px)}
.gallery figure{scroll-snap-align:start}
.gallery img{aspect-ratio:3/2;width:100%;height:auto;object-fit:cover;background:var(--panel)}

.onboard{display:grid;grid-template-columns:1fr 1fr;min-height:88svh}
.onboard__text{background:var(--panel);padding:var(--pad) var(--gut);display:flex;flex-direction:column;justify-content:center}
.onboard__text p{max-width:30rem;margin-top:24px;font-size:18px}
.onboard__img{position:relative;min-height:60svh}
@media (max-width:820px){.onboard{grid-template-columns:1fr}}

.facts{padding:var(--pad) var(--gut);display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(32px,5vw,80px)}
.facts+.facts{padding-top:0}
.facts ul{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:0 36px}
.facts li{border-top:1px solid var(--rule);padding:18px 0 22px;font-size:18px}
.facts dl{display:grid;grid-template-columns:repeat(3,1fr);gap:0 36px}
.facts dl div{border-top:1px solid var(--rule);padding:16px 0 20px}
.facts dt{font:600 11px/1 var(--text);letter-spacing:.24em;text-transform:uppercase;margin-bottom:10px}
.facts dd{font-size:19px}
@media (max-width:820px){.facts{grid-template-columns:1fr}.facts ul{grid-template-columns:1fr}.facts dl{grid-template-columns:1fr 1fr}}

.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 28px}
@media (max-width:980px){.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.grid3{grid-template-columns:1fr}}
.similar{padding:var(--pad) var(--gut)}
.similar .grid3{margin-top:40px}

/* listing */
.phero{position:relative;min-height:74svh;display:flex;align-items:flex-end;padding:var(--gut);padding-bottom:72px;overflow:hidden}
.phero__body{position:relative;z-index:1}
.crumb{font:600 11px/1 var(--text);letter-spacing:.24em;text-transform:uppercase;margin-bottom:20px}
.crumb a{text-decoration:none}
.filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:24px;align-items:end;padding:48px var(--gut);border-bottom:1px solid var(--rule)}
.filters .btn{padding:15px 20px}
@media (max-width:900px){.filters{grid-template-columns:1fr 1fr}.filters .btn{grid-column:1/-1;justify-self:start}}
.results{padding:56px var(--gut) var(--pad)}
.results__count{font:600 12px/1 var(--text);letter-spacing:.24em;text-transform:uppercase;margin-bottom:36px}
.empty{padding:48px 0;font-size:19px}
.empty button{margin-top:18px}

/* destinations */
.places{padding:var(--pad) var(--gut);text-align:center}
.places ul{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:10px 0;margin-top:36px}
.places li{font:400 clamp(28px,3.4vw,48px)/1.15 var(--display);text-transform:uppercase}
.places li+li::before{content:"·";margin:0 .45em}
.places h3{font:600 12px/1 var(--text);letter-spacing:.24em;text-transform:uppercase;margin-top:56px}
.places h3:first-of-type{margin-top:8px}

@media (prefers-reduced-motion:reduce){.rail__track{scroll-behavior:auto}}
