:root{
  --ivory:#FBF7F4;
  --shell:#EFE6DF;
  --ink:#2A1418;
  --claret:#7C2130;
  --claret-deep:#5E1823;
  --ash:#8E7A79;
  --line:rgba(42,20,24,.14);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--ivory);
  color:var(--ink);
  font-family:'Instrument Serif',Georgia,serif;
  font-size:1.125rem;
  line-height:1.62;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--claret)}
a:hover{color:var(--claret-deep)}
h1,h2,h3,h4,
.rail-nav,.rail-link,.rail-mark,.rail-foot,
.btn,.btn-ghost,.chip,.tile-price,.tile-cap,
.rate-line,.pill-cta,.micro,.factstrip strong,
.steprow .step b,.qa h2{
  font-family:'Schibsted Grotesk',system-ui,sans-serif;
}
h1{
  font-size:clamp(2.4rem,4.4vw,3.6rem);
  font-weight:800;
  letter-spacing:-0.02em;
  line-height:1.05;
  margin:0 0 18px;
}
h2{
  font-size:clamp(1.5rem,2.4vw,2rem);
  font-weight:800;
  letter-spacing:-0.02em;
  line-height:1.15;
  margin:0 0 14px;
}
h3{
  font-family:'Schibsted Grotesk',system-ui,sans-serif;
  font-size:1.22rem;
  font-weight:600;
  letter-spacing:-0.01em;
  margin:0 0 10px;
}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
.micro{
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--claret);
  margin:0 0 12px;
}
.blockhead{margin-bottom:8px}
.lede{
  font-size:1.35rem;
  font-style:italic;
  line-height:1.5;
  margin:0 0 1.1em;
}
.triad{display:grid;grid-template-columns:1.4fr 1fr .6fr;gap:40px;align-items:start}
@media(max-width:1100px){.triad{grid-template-columns:1fr;gap:28px}}

/* side rail */
.rail{
  position:fixed;
  left:0;top:0;
  width:252px;
  height:100vh;
  background:var(--shell);
  border-right:1px solid var(--line);
  display:flex;
  flex-direction:column;
  padding:28px 22px;
  z-index:30;
  overflow:auto;
}
.rail-mark{
  display:flex;
  gap:10px;
  align-items:flex-start;
  text-decoration:none;
  color:var(--ink);
  font-weight:800;
  font-size:1.02rem;
  line-height:1.15;
  margin-bottom:10px;
}
.rail-mark span{max-width:11ch}
.rail-mark svg{flex:0 0 34px}
.rail .micro{margin-bottom:22px}
.railtoggle{
  display:none;
  background:var(--claret);
  color:#FBF7F4;
  border:0;
  border-radius:2px;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-weight:600;
  font-size:.78rem;
  padding:12px 16px;
  cursor:pointer;
  font-family:'Schibsted Grotesk',system-ui,sans-serif;
}
.railtoggle:hover{background:var(--claret-deep);color:#FBF7F4}
.rail-nav{
  display:flex;
  flex-direction:column;
  gap:4px;
  margin:0 0 auto;
}
.no-js .rail-nav{display:block}
.rail-link{
  color:var(--ink);
  text-decoration:none;
  font-weight:600;
  font-size:.92rem;
  letter-spacing:-0.01em;
  border-left:3px solid transparent;
  padding:8px 8px 8px 11px;
}
.rail-link:hover{color:var(--claret)}
.rail-link[aria-current="page"]{
  border-left-color:var(--claret);
  color:var(--claret);
}
.rail-foot{
  margin-top:28px;
  font-size:.95rem;
  color:var(--ink);
}
.rail-foot a{color:var(--ink);text-decoration:none}
.rail-foot a:hover{color:var(--claret)}
.rail-foot p{margin:0 0 8px;line-height:1.4}
.rail-foot .btn{margin-top:12px;width:100%;text-align:center;display:block}
.sheet{
  margin-left:252px;
  max-width:1180px;
  padding:56px 40px;
}
.sheet > section{margin-top:72px}
.sheet > .openscreen{margin-top:0}

.openscreen{border-top:6px solid var(--claret);padding-top:28px}
.openscreen .btn,.openscreen .btn-ghost{margin:8px 10px 0 0}
.leadbox{
  background:var(--shell);
  border:1px solid var(--line);
  padding:24px;
}
.leadbox h2{font-size:1.22rem;font-weight:600;letter-spacing:-0.01em}
.leadbox .hint{font-size:.95rem;color:var(--ash);margin-top:10px}
.factstrip{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.factstrip img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  border:1px solid var(--line);
}
.factstrip p{margin:0}
.factstrip strong{
  display:block;
  font-size:1.35rem;
  font-weight:800;
  letter-spacing:-0.02em;
  color:var(--ink);
}
.factstrip span{color:var(--ash);font-size:.95rem}

.btn{
  display:inline-block;
  background:var(--claret);
  color:#FBF7F4;
  border:0;
  border-radius:2px;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-weight:600;
  font-size:.78rem;
  padding:14px 20px;
  text-decoration:none;
  cursor:pointer;
  font-family:'Schibsted Grotesk',system-ui,sans-serif;
  line-height:1.2;
}
.btn:hover{background:var(--claret-deep);color:#FBF7F4}
.btn-ghost{
  display:inline-block;
  background:var(--shell);
  color:#2A1418;
  border:1px solid var(--line);
  border-radius:2px;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-weight:600;
  font-size:.78rem;
  padding:13px 20px;
  text-decoration:none;
  cursor:pointer;
  font-family:'Schibsted Grotesk',system-ui,sans-serif;
  line-height:1.2;
}
.btn-ghost:hover{background:#E3D5CC;color:#2A1418}

.chipbar{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 28px}
.chip{
  background:transparent;
  color:#2A1418;
  border:1px solid var(--line);
  border-radius:2px;
  padding:8px 14px;
  font-weight:600;
  font-size:.78rem;
  letter-spacing:.04em;
  cursor:pointer;
}
.chip[aria-pressed="true"]{background:var(--ink);color:#FBF7F4;border-color:var(--ink)}

.tilewall{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:22px}
.tile{
  background:var(--shell);
  border:1px solid var(--line);
  padding:24px;
}
.tile-cap{
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--claret);
  margin:0 0 8px;
}
.tile-body{margin:0 0 14px}
.tile-price{
  font-weight:600;
  font-size:.92rem;
  margin:0 0 12px;
  letter-spacing:-0.01em;
}
.pill-cta{
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--claret);
  text-decoration:none;
  border-bottom:1px solid var(--claret);
}
.pill-cta:hover{color:var(--claret-deep);border-bottom-color:var(--claret-deep)}
.tile--photo{padding:0 0 24px}
.tile--photo img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
}
.tile--photo .tile-cap,
.tile--photo h3,
.tile--photo .tile-body,
.tile--photo .tile-price,
.tile--photo .pill-cta{margin-left:24px;margin-right:24px}
.tile--photo .tile-cap{padding-top:16px}

.proseblock{display:grid;grid-template-columns:1fr 1fr;gap:40px}
@media(max-width:1100px){.proseblock{grid-template-columns:1fr;gap:28px}}

.steprow{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
@media(max-width:1100px){.steprow{grid-template-columns:1fr}}
.step{
  background:var(--shell);
  border:1px solid var(--line);
  padding:24px;
}
.step b{
  display:block;
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--claret);
  margin-bottom:10px;
}

.ratecard{
  background:var(--shell);
  border:1px solid var(--line);
  padding:24px;
  margin:0 0 22px;
}
.rate-line{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:baseline;
  border-bottom:1px solid var(--line);
  padding:12px 0;
  font-weight:600;
  font-size:.98rem;
}
.rate-line:last-of-type{border-bottom:0}
.ratecard .tile-body{margin-top:10px}

.notebar{
  background:var(--shell);
  border-left:4px solid var(--claret);
  padding:16px 20px;
  margin:0 0 28px;
}

.qalist{display:flex;flex-direction:column;gap:18px}
.qa{
  background:var(--shell);
  border:1px solid var(--line);
  padding:24px;
}
.qa h2{font-size:1.22rem;font-weight:600;letter-spacing:-0.01em}

.postgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:22px}
.post{
  background:var(--shell);
  border:1px solid var(--line);
  padding:24px;
}
.post time{
  display:block;
  font-family:'Schibsted Grotesk',system-ui,sans-serif;
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--claret);
  font-weight:600;
  margin-bottom:10px;
}

.mapframe{width:100%;height:380px;border:0;margin-top:12px;display:block}

form label{
  display:block;
  font-family:'Schibsted Grotesk',system-ui,sans-serif;
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:600;
  margin:12px 0 6px;
}
form input[type="text"],
form input[type="email"],
form input[type="tel"],
form select,
form textarea{
  width:100%;
  background:var(--ivory);
  border:1px solid var(--line);
  color:var(--ink);
  font:1rem 'Instrument Serif',Georgia,serif;
  padding:10px 12px;
  border-radius:2px;
}
form textarea{min-height:110px;resize:vertical}
form .check{
  display:flex;
  gap:10px;
  align-items:flex-start;
  margin:14px 0;
  text-transform:none;
  letter-spacing:0;
  font-size:1rem;
  font-family:'Instrument Serif',Georgia,serif;
  font-weight:400;
  line-height:1.45;
}
form .check input{margin-top:5px;flex:0 0 auto}
form .btn{margin-top:8px}

.footmail{
  margin-left:252px;
  background:var(--ink);
  color:#FBF7F4;
  padding:56px 40px 32px;
}
.footmail a{color:#FBF7F4}
.footmail a:hover{color:#EFE6DF}
.footmail h2{color:#FBF7F4}
.footmail .triad{align-items:start}
.footmail .triad > .footgrid{grid-column:span 2}
.footgrid{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:24px;
}
.footgrid h3{color:#FBF7F4;font-size:1rem;letter-spacing:.08em;text-transform:uppercase}
.footgrid ul{list-style:none;margin:0;padding:0}
.footgrid li{margin:0 0 8px}
.footmail input[type="email"]{
  background:#3A2024;
  color:#FBF7F4;
  border-color:rgba(251,247,244,.22);
}
.footmail .check{color:#FBF7F4}
.legalrow{
  margin-top:40px;
  padding-top:22px;
  border-top:1px solid rgba(251,247,244,.16);
  font-size:.95rem;
  color:#EFE6DF;
}
.legalrow p{margin:0 0 10px}
.legalrow a{margin-right:12px}

.cookiebar{
  position:fixed;
  bottom:0;
  left:252px;
  right:0;
  background:var(--shell);
  border-top:1px solid var(--line);
  padding:16px 28px;
  display:flex;
  gap:16px;
  align-items:center;
  justify-content:space-between;
  z-index:40;
  color:var(--ink);
}
.cookiebar[hidden]{display:none!important}
.cookiebar p{margin:0;max-width:70ch}
.cookiebar .btn,.cookiebar .btn-ghost{margin-left:8px}

.lift-in{opacity:1;transform:none;transition:opacity .5s ease,transform .5s ease}
html.js .lift-in{opacity:0;transform:translateY(14px)}
html.js .lift-in.inview{opacity:1;transform:none}
.no-js .lift-in{opacity:1!important;transform:none!important}
@media (prefers-reduced-motion: reduce){.lift-in{opacity:1!important;transform:none!important;transition:none}}

@media(max-width:1100px){
  .rail{
    position:static;
    width:100%;
    height:auto;
    flex-direction:row;
    flex-wrap:wrap;
    border-right:0;
    border-bottom:1px solid var(--line);
  }
  .rail-mark{margin-right:auto}
  .railtoggle{display:inline-block}
  .rail-nav{display:none;width:100%;margin-top:12px}
  .rail.is-open .rail-nav{display:flex;flex-direction:column}
  .no-js .rail-nav{display:flex;flex-direction:column}
  .rail-foot{width:100%;margin-top:16px}
  .sheet{margin-left:0;padding:36px 22px}
  .footmail{margin-left:0;padding:40px 22px 28px}
  .footmail .triad > .footgrid{grid-column:auto}
  .footgrid{grid-template-columns:1fr;gap:22px}
  .no-js .rail-nav{display:block}
  .cookiebar{left:0;flex-wrap:wrap}
  .steprow{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .steprow{grid-template-columns:1fr}
  .openscreen .btn,.openscreen .btn-ghost{display:block;margin:8px 0 0;text-align:center}
}

:focus-visible{outline:2px solid var(--claret);outline-offset:2px}
.trap{
  position:absolute!important;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.hours{white-space:pre-line}
