/* ==========================================================================
   M/Y FRIENDSHIP — friendshipyacht.com
   Design system mirrored from the Base44 build (Friendship Yacht Charters):
   Cormorant Garamond display, Inter body, JetBrains Mono for every label;
   a warm off-white ground, near-black ink, blue-grey muted text, hairline
   rules. One committed visual world, no dark mode, every colour explicit.
   ========================================================================== */

:root{
  /* ground + ink (Base44 tokens, hsl → hex) */
  --bg:#F6F5F3;          /* hsl(40 7% 96%)  background */
  --fg:#0D1111;          /* hsl(180 12% 6%) foreground */
  --muted:#ECEBE9;       /* hsl(40 5% 92%)  muted surface */
  --muted-fg:#758289;    /* hsl(200 8% 50%) muted text */
  --border:#E2E1DF;      /* hsl(40 5% 88%)  hairlines */
  --ring:#8BA8B7;        /* focus ring used on calendar days */
  --busy:#9A4A3C;        /* the one accent kept for "to confirm" chips */
  --radius:4px;

  --shell:1536px;        /* max-w-screen-2xl */
  --gutter:clamp(24px,4vw,48px);

  --f-heading:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --f-body:"Inter","Helvetica Neue",Arial,sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  margin:0;background:var(--bg);color:var(--fg);
  font-family:var(--f-body);font-size:16px;line-height:1.6;font-weight:400;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
:focus-visible{outline:2px solid var(--ring);outline-offset:3px;}
h1,h2,h3,h4{font-family:var(--f-heading);font-weight:300;margin:0;line-height:1.05;letter-spacing:.02em;}
p{margin:0;}
ul,ol{margin:0;}
strong{font-weight:500;}
button{font:inherit;color:inherit;}

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

/* ---------- type scale (Base44 tailwind sizes) ---------- */
.mono{font-family:var(--f-mono);font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted-fg);}
.mono--tight{letter-spacing:.2em;}
.mono--wide{letter-spacing:.1em;text-transform:none;}
.h-display{font-size:clamp(48px,7vw,96px);letter-spacing:.02em;}
.h-section{font-size:clamp(36px,5.5vw,72px);letter-spacing:.02em;line-height:1.1;}
.h-sub{font-size:clamp(30px,3vw,36px);}
.lede{font-family:var(--f-body);font-size:16px;color:var(--muted-fg);line-height:1.7;max-width:32rem;}
.lede--lg{font-size:18px;}
.prose{max-width:64ch;display:flex;flex-direction:column;gap:16px;color:var(--muted-fg);line-height:1.7;}
.prose strong{color:var(--fg);}
.tbc{
  display:inline-block;font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--busy);border:1px solid var(--busy);border-radius:2px;padding:2px 8px;vertical-align:middle;white-space:nowrap;
}

/* ---------- layout ---------- */
.shell{max-width:var(--shell);margin:0 auto;padding-inline:var(--gutter);}
.page{padding:clamp(96px,14vw,128px) 0 clamp(96px,12vw,160px);}
.page__head{margin-bottom:clamp(48px,7vw,96px);}
.page__head h1{margin-top:16px;}
.page__head .lede{margin-top:16px;}
.section{padding:clamp(80px,10vw,160px) 0;}
.section--tight{padding:clamp(64px,7vw,80px) 0;}
.rule{height:1px;background:var(--border);}
.rule--y{border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.grid{display:grid;gap:clamp(24px,3vw,32px);}
.grid--2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));}
.grid--3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));}
.stack{display:flex;flex-direction:column;gap:18px;}
.actions{display:flex;flex-wrap:wrap;gap:16px;}
.mt-1{margin-top:24px;}
.mt-2{margin-top:40px;}
.mt-3{margin-top:64px;}
.right{display:flex;justify-content:flex-end;}

/* reveal-on-scroll, the Base44 fade-up */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease;}
.reveal.is-in{opacity:1;transform:none;}

/* ---------- buttons + links ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:12px;
  padding:16px 32px;border:1px solid var(--fg);border-radius:0;
  font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--fg);background:transparent;cursor:pointer;line-height:1.2;
  transition:background .3s ease,color .3s ease,opacity .3s ease;
}
.btn:hover{background:var(--fg);color:var(--bg);}
.btn--solid{background:var(--fg);color:var(--bg);}
.btn--solid:hover{opacity:.9;background:var(--fg);color:var(--bg);}
.btn--light{border-color:rgba(255,255,255,.85);color:#fff;}
.btn--light:hover{background:#fff;color:var(--fg);}
.btn--lg{padding:20px 40px;}
.btn[disabled]{opacity:.5;cursor:wait;}
.btn .arrow{transition:transform .3s ease;}
.btn:hover .arrow{transform:translateX(4px);}
.textlink{
  display:inline-flex;align-items:center;gap:12px;
  font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted-fg);transition:color .3s ease;
}
.textlink:hover{color:var(--fg);}
.textlink .arrow{transition:transform .3s ease;}
.textlink:hover .arrow{transform:translateX(4px);}
.arrow{width:16px;height:16px;flex:none;}

/* ---------- navigation (fixed, transparent until scrolled) ---------- */
.site-nav{position:fixed;top:0;left:0;right:0;z-index:50;transition:background .5s ease,border-color .5s ease;background:transparent;border-bottom:1px solid transparent;}
.site-nav.is-solid{background:rgba(246,245,243,.9);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom-color:var(--border);}
.site-nav .bar{max-width:var(--shell);margin:0 auto;padding-inline:var(--gutter);display:flex;align-items:center;justify-content:space-between;height:80px;}
.wordmark{font-family:var(--f-heading);font-size:24px;letter-spacing:.1em;font-weight:300;color:var(--fg);white-space:nowrap;}
.nav-links{display:flex;align-items:center;gap:40px;}
.nav-links a{font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-fg);transition:color .3s ease;}
.nav-links a:hover,.nav-links a[aria-current="page"]{color:var(--fg);}
.site-nav .horizon{height:1px;background:rgba(226,225,223,.5);}
.nav-toggle{display:none;background:none;border:0;padding:8px;cursor:pointer;color:var(--fg);}
.nav-toggle svg{width:20px;height:20px;display:block;}
.nav-toggle .ic-close{display:none;}
.nav-toggle[aria-expanded="true"] .ic-open{display:none;}
.nav-toggle[aria-expanded="true"] .ic-close{display:block;}
.mobile-menu{display:none;position:fixed;inset:0;z-index:40;background:rgba(246,245,243,.98);backdrop-filter:blur(24px);padding:96px 32px 32px;overflow:auto;}
.mobile-menu.is-open{display:block;}
.mobile-menu a{display:block;font-family:var(--f-heading);font-size:30px;letter-spacing:.02em;color:var(--fg);padding:12px 0;}

/* ---------- hero ---------- */
.hero{position:relative;height:100svh;min-height:600px;overflow:hidden;background:var(--fg);}
.hero__media{position:absolute;inset:0;transition:transform .7s ease-out;transform:scale(1.08);will-change:transform;}
.hero__media img{width:100%;height:100%;object-fit:cover;}
.hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.3) 0%,rgba(0,0,0,.1) 50%,rgba(0,0,0,.5) 100%);}
.hero__inner{
  position:relative;z-index:1;height:100%;display:flex;flex-direction:column;justify-content:space-between;
  max-width:var(--shell);margin:0 auto;padding:clamp(96px,14vh,128px) var(--gutter) clamp(64px,10vh,96px);color:#fff;
}
.hero__eyebrow{font-family:var(--f-mono);font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.7);}
.hero__title{flex:1;display:flex;flex-direction:column;justify-content:center;color:#fff;}
.hero__title span{display:block;font-family:var(--f-heading);font-weight:300;line-height:1;}
.hero__title .l1{font-size:clamp(40px,6vw,72px);letter-spacing:.1em;}
.hero__title .l2{font-size:clamp(64px,11vw,144px);letter-spacing:.05em;margin-top:clamp(8px,1vw,16px);margin-left:clamp(0px,2vw,32px);}
.hero__title .l3{font-size:clamp(24px,3vw,36px);letter-spacing:.3em;margin-top:clamp(16px,2vw,24px);color:rgba(255,255,255,.7);}
.hero__foot{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;}
.hero__facts{font-family:var(--f-mono);font-size:12px;letter-spacing:.05em;color:rgba(255,255,255,.6);text-transform:uppercase;}
.hero__facts p+p{margin-top:4px;}
.hero__cta{display:inline-flex;align-items:center;gap:12px;font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.8);transition:color .3s ease;}
.hero__cta:hover{color:#fff;}
.hero__cta svg{width:16px;height:16px;animation:bounce 1s infinite;}
@keyframes bounce{0%,100%{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1);}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1);}}

/* ---------- vessel preview (home) ---------- */
.preview{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(24px,3vw,32px);}
.preview__a{grid-column:span 7;}
.preview__b{grid-column:span 5;}
.frame{position:relative;margin:0;overflow:hidden;background:var(--muted);}
.frame img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease;}
.frame--4x3{aspect-ratio:4/3;}
.frame--4x5{aspect-ratio:4/5;}
.frame--16x9{aspect-ratio:16/9;}
.frame--3x2{aspect-ratio:3/2;}
.frame:hover img{transform:scale(1.05);}
.frame__cap{position:absolute;left:0;right:0;bottom:0;padding:24px;background:linear-gradient(0deg,rgba(0,0,0,.6),transparent);color:#fff;}
.frame__cap .mono{color:rgba(255,255,255,.7);letter-spacing:.1em;}
.frame__cap .t{font-family:var(--f-heading);font-size:20px;margin-top:4px;}

/* ---------- specs strip ---------- */
.specs{display:grid;grid-template-columns:repeat(2,1fr);gap:32px 16px;text-align:center;}
.specs .k{font-family:var(--f-mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-fg);margin-bottom:12px;}
.specs .v{font-family:var(--f-heading);font-weight:300;font-size:clamp(30px,3vw,36px);letter-spacing:.05em;line-height:1;}
.specs .u{font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-fg);margin-top:6px;}

/* ---------- CTA (home) ---------- */
.cta{position:relative;overflow:hidden;padding:clamp(128px,16vw,192px) 0;text-align:center;}
.cta__bg{position:absolute;inset:0;opacity:.2;}
.cta__bg img{width:100%;height:100%;object-fit:cover;}
.cta__inner{position:relative;z-index:1;}
.cta h2{margin-top:24px;}
.cta .lede{margin:24px auto 0;}
.cta .actions{justify-content:center;margin-top:40px;}

/* ---------- gallery ---------- */
.filters{display:flex;flex-wrap:wrap;gap:12px;margin-top:40px;}
.filters button{
  font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  padding:10px 20px;min-height:44px;border:1px solid var(--border);background:transparent;color:var(--muted-fg);cursor:pointer;
  transition:color .3s ease,border-color .3s ease,background .3s ease;
}
.filters button:hover{color:var(--fg);border-color:var(--fg);}
.filters button[aria-pressed="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg);}
.gsection+.gsection{margin-top:clamp(80px,10vw,128px);}
.gsection[hidden]{display:none;}
.gsection__head{display:flex;align-items:baseline;gap:24px;margin-bottom:clamp(32px,4vw,40px);}
.gsection__head .rule{flex:1;}
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.gal .frame{cursor:pointer;}
.gal .frame--wide{grid-column:span 2;}
.gal .frame::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,0);transition:background .5s ease;}
.gal .frame:hover::after{background:rgba(0,0,0,.25);}
.gal .frame .view{position:absolute;left:20px;bottom:20px;z-index:1;font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.8);opacity:0;transition:opacity .5s ease;}
.gal .frame:hover .view{opacity:1;}

.lightbox{position:fixed;inset:0;z-index:100;background:rgba(13,17,17,.96);display:none;align-items:center;justify-content:center;padding:24px;}
.lightbox.is-open{display:flex;}
.lightbox img{max-width:calc(100vw - 48px);max-height:calc(100vh - 96px);width:auto;height:auto;object-fit:contain;}
.lightbox button{position:absolute;background:none;border:0;color:rgba(255,255,255,.7);cursor:pointer;padding:12px;transition:color .3s ease;}
.lightbox button:hover{color:#fff;}
.lightbox button svg{width:28px;height:28px;display:block;}
.lightbox .lb-close{top:20px;right:20px;}
.lightbox .lb-prev{left:16px;top:50%;transform:translateY(-50%);}
.lightbox .lb-next{right:16px;top:50%;transform:translateY(-50%);}
.lightbox .lb-count{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;color:rgba(255,255,255,.5);}
body.lb-lock{overflow:hidden;}

/* ---------- calendar ---------- */
.cal-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;margin-bottom:40px;}
.legend{display:flex;flex-wrap:wrap;align-items:center;gap:24px;}
.legend span{display:inline-flex;align-items:center;gap:8px;font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;color:var(--muted-fg);}
.legend i{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:2px;font-style:normal;font-size:11px;color:var(--muted-fg);}
.legend .i-free{border:1px solid rgba(13,17,17,.3);}
.legend .i-busy{background:var(--muted);text-decoration:line-through;}
.legend .i-sel{background:var(--fg);}
.cal-nav{display:flex;gap:8px;}
.cal-nav button{width:44px;height:44px;display:grid;place-items:center;background:none;border:0;border-radius:var(--radius);cursor:pointer;color:var(--fg);transition:background .2s ease;}
.cal-nav button:hover{background:var(--muted);}
.cal-nav svg{width:20px;height:20px;}
.cal{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(48px,4vw,64px);}
.cal__title{font-family:var(--f-heading);font-weight:300;font-size:clamp(24px,2.2vw,30px);letter-spacing:.02em;margin-bottom:24px;}
.cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;}
.cal__dow{text-align:center;padding:8px 0;font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;color:var(--muted-fg);}
.cal__day{
  position:relative;min-height:44px;min-width:44px;padding:12px 0;text-align:center;background:none;border:0;border-radius:2px;
  font-family:var(--f-mono);font-size:14px;color:var(--fg);transition:background .2s ease,color .2s ease;cursor:pointer;
}
.cal__day:focus-visible{outline:2px solid var(--ring);outline-offset:1px;}
.cal__day.is-empty{visibility:hidden;}
.cal__day.is-past{color:rgba(117,130,137,.3);cursor:not-allowed;}
.cal__day.is-busy{color:rgba(117,130,137,.4);text-decoration:line-through;cursor:not-allowed;}
.cal__day.is-free:hover{background:rgba(13,17,17,.05);}
.cal__day.is-range{background:rgba(13,17,17,.1);}
.cal__day.is-edge{background:var(--fg);color:var(--bg);}
.cal__day.is-today:not(.is-edge){box-shadow:inset 0 0 0 1px rgba(13,17,17,.3);}
.selection{margin-top:64px;border-top:1px solid var(--border);padding-top:40px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;}
.selection[hidden]{display:none;}
.selection .dates{font-family:var(--f-heading);font-weight:300;font-size:clamp(24px,2.5vw,30px);letter-spacing:.02em;}
.selection .dates .to{color:var(--muted-fg);}
.selection .nights{font-family:var(--f-mono);font-size:14px;letter-spacing:.1em;color:var(--muted-fg);margin-top:8px;}
.cal-note{font-family:var(--f-mono);font-size:12px;letter-spacing:.06em;color:var(--muted-fg);margin-top:24px;}

/* ---------- forms (underline inputs) ---------- */
.form{display:flex;flex-direction:column;gap:32px;}
.form .row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:32px;}
.field{display:flex;flex-direction:column;}
.field label,.field .lbl{font-family:var(--f-mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-fg);margin-bottom:12px;}
.field input,.field select,.field textarea{
  font-family:var(--f-body);font-size:16px;color:var(--fg);background:transparent;
  border:0;border-bottom:1px solid var(--border);border-radius:0;padding:12px 0;width:100%;outline:none;
  transition:border-color .3s ease;
}
.field input::placeholder,.field textarea::placeholder{color:rgba(117,130,137,.7);}
.field input:focus,.field select:focus,.field textarea:focus{border-bottom-color:var(--fg);}
.field select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted-fg) 50%),linear-gradient(135deg,var(--muted-fg) 50%,transparent 50%);background-position:calc(100% - 14px) 55%,calc(100% - 9px) 55%;background-size:5px 5px;background-repeat:no-repeat;padding-right:28px;cursor:pointer;}
.field textarea{min-height:120px;resize:none;}
.field.is-invalid input,.field.is-invalid select{border-bottom-color:var(--busy);}
.field .hint{display:none;font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;color:var(--busy);margin-top:8px;}
.field.is-invalid .hint{display:block;}
.checkrow{display:flex;align-items:center;gap:12px;}
.checkrow input{width:16px;height:16px;margin:0;accent-color:var(--fg);}
.checkrow label{font-family:var(--f-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-fg);}
.formstatus{font-family:var(--f-mono);font-size:12px;letter-spacing:.08em;color:var(--muted-fg);}
.formstatus:empty{display:none;}
.formstatus.is-err{color:var(--busy);}
.formnote{font-family:var(--f-body);font-size:13px;color:var(--muted-fg);}
.formnote a{text-decoration:underline;text-underline-offset:3px;}
.hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;}
.thanks{min-height:60vh;display:flex;align-items:center;justify-content:center;text-align:center;}
.thanks[hidden]{display:none;}
.thanks .inner{max-width:28rem;padding:0 24px;}
.thanks h2{margin-top:16px;}
.thanks .lede{margin:16px auto 0;}
.thanks .rule{width:64px;margin:32px auto;}
.split{display:grid;grid-template-columns:1fr;gap:48px;}
.split .frame{max-height:80vh;}
.split .frame img{max-height:80vh;}

/* ---------- content pages ---------- */
.spectable{width:100%;border-collapse:collapse;font-size:15px;}
.spectable caption{text-align:left;font-family:var(--f-mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-fg);padding-bottom:16px;}
.spectable th,.spectable td{padding:12px 0;border-bottom:1px solid var(--border);text-align:left;vertical-align:top;}
.spectable th{font-weight:400;color:var(--muted-fg);width:42%;padding-right:12px;font-family:var(--f-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;}
.spectable td{color:var(--fg);}
.spectable td .imp{color:var(--muted-fg);}
.tablewrap{overflow-x:auto;}
.rates{width:100%;border-collapse:collapse;}
.rates th,.rates td{padding:20px 0;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;padding-right:24px;}
.rates thead th{font-family:var(--f-mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-fg);font-weight:400;}
.rates .season{font-family:var(--f-heading);font-weight:300;font-size:30px;letter-spacing:.02em;}
.card{border-top:1px solid var(--border);padding-top:24px;display:flex;flex-direction:column;gap:12px;}
.card h3{font-size:clamp(26px,2.4vw,30px);}
.card p{color:var(--muted-fg);font-size:15px;line-height:1.7;}
.card .mono{margin-bottom:4px;}
.facts{display:grid;grid-template-columns:auto 1fr;gap:8px 20px;font-size:14px;margin-top:8px;}
.facts dt{font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-fg);padding-top:2px;}
.facts dd{margin:0;}
.doclist{list-style:none;padding:0;display:flex;flex-direction:column;gap:12px;font-size:15px;}
.doclist li{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline;}
.doclist a{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--border);}
.doclist a:hover{text-decoration-color:var(--fg);}
.doclist .muted{color:var(--muted-fg);font-size:13px;}
.ph{position:relative;width:100%;height:100%;min-height:200px;background:linear-gradient(135deg,#1B2A2E 0%,#3A4E55 50%,#758289 100%);display:grid;place-items:center;}
.ph::after{content:attr(data-ph);font-family:var(--f-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.75);text-align:center;padding:0 20px;}

/* ---------- footer ---------- */
.site-footer{border-top:1px solid var(--border);}
.site-footer .inner{max-width:var(--shell);margin:0 auto;padding:clamp(64px,8vw,96px) var(--gutter);}
.site-footer .cols{display:grid;grid-template-columns:1fr;gap:48px;}
.site-footer .wm{font-family:var(--f-heading);font-weight:300;font-size:24px;letter-spacing:.1em;margin-bottom:16px;}
.site-footer .blurb{font-size:14px;color:var(--muted-fg);line-height:1.7;max-width:20rem;}
.site-footer .contact{font-family:var(--f-mono);font-size:12px;letter-spacing:.08em;color:var(--muted-fg);margin-top:16px;}
.site-footer .contact a:hover{color:var(--fg);}
.site-footer h4{font-family:var(--f-mono);font-weight:400;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-fg);margin-bottom:24px;}
.site-footer .links{display:flex;flex-direction:column;gap:12px;}
.site-footer .links a{font-size:14px;transition:color .3s ease;}
.site-footer .links a:hover{color:var(--muted-fg);}
.site-footer .specs-list{display:flex;flex-direction:column;gap:8px;font-family:var(--f-mono);font-size:12px;letter-spacing:.05em;color:var(--muted-fg);text-transform:uppercase;}
.site-footer .bottom{display:flex;flex-direction:column;align-items:center;gap:16px;margin-top:32px;font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;color:var(--muted-fg);text-transform:uppercase;text-align:center;}
.site-footer .rule{margin-top:64px;}

/* ---------- breakpoints ---------- */
@media (min-width:768px){
  .specs{grid-template-columns:repeat(3,1fr);}
  .site-footer .cols{grid-template-columns:repeat(3,1fr);gap:32px;}
  .site-footer .bottom{flex-direction:row;justify-content:space-between;text-align:left;}
}
@media (min-width:1024px){
  .specs{grid-template-columns:repeat(6,1fr);}
  .split{grid-template-columns:1fr 1fr;gap:80px;}
}
@media (max-width:1023px){
  .nav-links{display:none;}
  .nav-toggle{display:block;}
  .split .frame{display:none;}
  .cal{grid-template-columns:1fr;gap:48px;}
  .cal__month:nth-child(n+2){display:none;}
}
@media (max-width:767px){
  .site-nav .bar{height:64px;}
  .wordmark{font-size:20px;}
  .preview{grid-template-columns:1fr;}
  .preview__a,.preview__b{grid-column:auto;}
  .gal{grid-template-columns:1fr;}
  .gal .frame--wide{grid-column:auto;}
  .hero__facts{display:none;}
  .hero__inner{padding-top:96px;padding-bottom:64px;}
}
