@charset "UTF-8";
*{margin:0;padding:0;box-sizing:border-box;font-family:'Jost',system-ui,-apple-system,sans-serif}
body{background:#fff;color:#16181a;-webkit-font-smoothing:antialiased;font-weight:300}
a{text-decoration:none}
img{display:block;max-width:100%}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}

h1,h2{font-family:'Cormorant Garamond',Georgia,'Times New Roman',serif;font-weight:300;letter-spacing:-.005em}
h1{font-size:clamp(2.6rem,6vw,4.9rem);line-height:1.05;color:#fff;max-width:16ch}
h2{font-size:clamp(2rem,3.7vw,3rem);line-height:1.12}
h3{font-family:'Jost',sans-serif;font-size:1.02rem;font-weight:500;letter-spacing:.005em;margin-bottom:10px}
p{color:#4a4f55;line-height:1.8;font-weight:300}
.lead{font-size:1.08rem;max-width:64ch}
.eyebrow{font-size:.68rem;letter-spacing:.26em;text-transform:uppercase;color:#6b7076;font-weight:500}
.bg-dark .eyebrow{color:#9aa0a6}

nav.top{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-bottom:1px solid #e6e7e9}
.navrow{display:flex;align-items:center;justify-content:space-between;height:86px;gap:20px}
.brand{display:flex;align-items:center;gap:14px}

/* ---------------------------------------------------------------
   LOGO COLOUR CONTROL
   The source PNG is a white-on-transparent mark, so it disappears
   on the white header. These filters force the artwork to a known
   colour and work no matter what colour the source file is:
     brightness(0)            -> solid black  (light backgrounds)
     brightness(0) invert(1)  -> solid white  (dark backgrounds)
   Alpha/transparency is preserved in both cases.
   --------------------------------------------------------------- */
.brand-star{height:38px;width:auto;filter:brightness(0);opacity:.92}
.brand:hover .brand-star{opacity:1}
.foot-star{height:42px;width:auto;filter:brightness(0) invert(1);margin-bottom:20px}

.brand-txt{display:flex;flex-direction:column;line-height:1.2}
.brand-txt b{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.2rem;font-weight:500;letter-spacing:.012em;color:#16181a}
.brand-txt em{font-style:normal;font-size:.56rem;letter-spacing:.22em;text-transform:uppercase;color:#6b7076;margin-top:3px;font-weight:400}
.navlinks{display:flex;gap:36px;align-items:center}
.navlinks a{font-size:.84rem;color:#3d4247;font-weight:400;letter-spacing:.05em}
.navlinks a:hover,.navlinks a.on{color:#16181a}

.btn{display:inline-block;padding:15px 30px;font-weight:500;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;transition:.22s;border:1px solid transparent}
.btn-dark{background:#16181a;color:#fff;border-color:#16181a}
.btn-dark:hover{background:#000;border-color:#000}
.btn-ghost{border-color:#16181a;color:#16181a;background:transparent}
.btn-ghost:hover{background:#16181a;color:#fff}
.btn-light{background:#fff;color:#16181a;border-color:#fff}
.btn-light:hover{background:#e9eaec;border-color:#e9eaec}
.btn-ol{border-color:rgba(255,255,255,.5);color:#fff;background:transparent}
.btn-ol:hover{background:#fff;color:#16181a;border-color:#fff}
.btn-sm{padding:12px 22px;font-size:.74rem;letter-spacing:.12em}
/* Phone-button contrast fix - outranks `.navlinks a` */
.navlinks a.btn-dark,.navlinks a.btn-dark:hover{color:#fff}
.navlinks a.btn-ghost{color:#16181a}
.navlinks a.btn-ghost:hover{color:#fff}

.hero{position:relative;min-height:80vh;display:flex;align-items:flex-end;background:#0b0b0c}
.hero::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,11,12,.34),rgba(11,11,12,.93)),url('https://images.unsplash.com/photo-1606664515524-ed2f786a0bd6?w=1920&q=80') center/cover}
.hero .wrap{position:relative;padding:150px 24px 86px}
.hero p{color:#d4d7da;max-width:56ch;margin-top:24px;font-size:1.06rem}

/* ---------------------------------------------------------------
   HERO OVERLINE
   Sits on a photographic background, so it needs full white, more
   weight, and a soft shadow to stay legible over any part of the
   image. The leading rule gives it presence without shouting.
   --------------------------------------------------------------- */
.hero .eyebrow{
  display:inline-flex;
  align-items:center;
  gap:16px;
  color:#fff;
  font-size:.76rem;
  font-weight:600;
  letter-spacing:.3em;
  text-shadow:0 1px 14px rgba(0,0,0,.55);
  margin-bottom:6px;
}
.hero .eyebrow::before{
  content:'';
  width:42px;
  height:1px;
  background:rgba(255,255,255,.8);
  flex:0 0 auto;
}

section{padding:98px 0}
.phead{padding:58px 0 48px;border-bottom:1px solid #e6e7e9}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:58px;align-items:start}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:40px}
.gridmodels{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}

.card{border:1px solid #e6e7e9;padding:36px;background:#fff;transition:.25s}
.card:hover{border-color:#16181a;transform:translateY(-3px)}
.bg-grey{background:#f5f5f6}
.bg-dark{background:#0b0b0c;color:#fff}
.bg-dark p{color:#b9bdc2}
.bg-dark h2,.bg-dark h3{color:#fff}
.crumbs{font-size:.74rem;color:#6b7076;padding:18px 0;letter-spacing:.06em}
.crumbs a{color:#6b7076}
.crumbs a:hover{color:#16181a}

.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.18);margin-top:54px}
.stats div{background:#0b0b0c;padding:28px 24px}
.stats b{display:block;font-family:'Cormorant Garamond',Georgia,serif;font-size:2.3rem;font-weight:400;color:#fff;letter-spacing:.005em;line-height:1.1}
.stats span{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:#9aa0a6;margin-top:6px;display:block}

.model{border:1px solid #e6e7e9;padding:24px;text-align:center;transition:.2s}
.model:hover{border-color:#16181a;background:#fafafa}
.model b{display:block;font-family:'Cormorant Garamond',Georgia,serif;font-size:1.3rem;color:#16181a;font-weight:500}
.model span{font-size:.7rem;color:#6b7076;letter-spacing:.14em;text-transform:uppercase}

.offer{border:1px solid #e6e7e9;background:#fff;transition:.25s;display:flex;flex-direction:column}
.offer:hover{border-color:#16181a;transform:translateY(-3px)}
.offer img{width:100%;height:190px;object-fit:cover;background:#f5f5f6}
.offer .body{padding:28px}
.price{font-family:'Cormorant Garamond',Georgia,serif;font-size:2.8rem;font-weight:400;letter-spacing:0;color:#16181a;line-height:1}
.price small{font-family:'Jost',sans-serif;font-size:.86rem;font-weight:400;color:#6b7076;letter-spacing:.06em}

.step{border-left:1px solid #e6e7e9;padding:0 0 32px 28px;position:relative}
.step:last-child{padding-bottom:0}
.step::before{content:'';position:absolute;left:-4px;top:5px;width:7px;height:7px;background:#16181a;border-radius:50%}

.faq{border-top:1px solid #e6e7e9;padding:28px 0}
.faq h3{margin-bottom:8px}
.link{color:#16181a;font-weight:500;font-size:.84rem;letter-spacing:.06em}
.link:hover{border-bottom:1px solid #16181a}
.disclaimer{font-size:.74rem;color:#8b9096;line-height:1.75;border-top:1px solid #e6e7e9;padding-top:24px;margin-top:46px;font-weight:300}

footer{background:#0b0b0c;color:#fff;padding:80px 0 34px}
footer a{color:#b9bdc2;font-size:.86rem;line-height:2.05;font-weight:300}
footer a:hover{color:#fff}
footer h4{font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:#fff;margin-bottom:18px;font-weight:500}
.foot-name{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.3rem;font-weight:400;display:block;margin-bottom:12px;color:#fff}
.hours{width:100%;font-size:.82rem;border-collapse:collapse}
.hours td{padding:8px 0;border-bottom:1px solid rgba(255,255,255,.1);color:#b9bdc2;font-weight:300}
.hours td:last-child{text-align:right}
.fbot{border-top:1px solid rgba(255,255,255,.12);margin-top:50px;padding-top:28px;font-size:.76rem;color:#7c8288;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-weight:300}

@media(max-width:900px){
.grid2,.grid3,.grid4{grid-template-columns:1fr}
.gridmodels{grid-template-columns:repeat(2,1fr)}
.navlinks{display:none}
section{padding:60px 0}
.stats{grid-template-columns:1fr}
.navrow{height:72px}
.brand-star{height:32px}
.hero .wrap{padding:110px 24px 60px}
.hero .eyebrow{font-size:.7rem;letter-spacing:.24em;gap:12px}
.hero .eyebrow::before{width:28px}
}
