/* Shared shell for the intent pages. The home page is a Design Component and
   keeps its own inline styles; these pages are plain HTML on purpose — they
   need no runtime, so they paint before support.js would even have downloaded. */
:root{
  --base:#0E0E0F; --ink:#F5F1EA; --accent:#B8975A;
  --hair:rgba(245,241,234,.09); --muted:rgba(245,241,234,.56); --dim:rgba(245,241,234,.62);
  --faint:rgba(245,241,234,.60);
  --pad:clamp(24px,6vw,120px);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  margin:0;background:var(--base);color:var(--ink);
  font-family:'Jost','Helvetica Neue',Arial,sans-serif;font-weight:300;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;
}
::selection{background:rgba(184,151,90,.28);color:var(--ink);}
a{color:inherit;}
a:focus-visible,button:focus-visible{outline:1px solid var(--accent);outline-offset:3px;}

.skip{position:absolute;left:-9999px;top:0;z-index:50;background:var(--base);color:var(--accent);
  border:1px solid var(--accent);padding:14px 22px;font-size:11px;letter-spacing:.24em;
  text-transform:uppercase;text-decoration:none;}
.skip:focus{left:var(--pad);top:16px;}

/* ---- header / footer ---- */
.site-head{display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:clamp(24px,3.4vw,44px) var(--pad);border-bottom:1px solid var(--hair);}
.wordmark{text-decoration:none;display:flex;flex-direction:column;gap:5px;}
.wordmark b{font-family:'Cormorant Garamond',Georgia,serif;font-size:22px;font-weight:500;letter-spacing:.16em;}
.wordmark span{font-size:9px;letter-spacing:.42em;text-transform:uppercase;color:rgba(245,241,234,.55);}
.site-head a.cta{text-decoration:none;color:var(--accent);font-size:11px;letter-spacing:.26em;
  text-transform:uppercase;border:1px solid rgba(184,151,90,.45);padding:13px 22px;white-space:nowrap;
  transition:background .5s ease,letter-spacing .5s ease;}
.site-head a.cta:hover{background:rgba(184,151,90,.1);letter-spacing:.3em;}

.site-foot{border-top:1px solid var(--hair);padding:clamp(56px,8vh,90px) var(--pad);
  display:flex;flex-wrap:wrap;gap:32px 48px;justify-content:space-between;align-items:flex-start;}
.site-foot p{margin:0;font-size:12px;letter-spacing:.06em;color:var(--faint);}
.site-foot nav{display:flex;flex-direction:column;}
.site-foot nav a{font-size:12px;letter-spacing:.08em;color:var(--dim);text-decoration:none;
  display:flex;align-items:center;min-height:44px;}
.site-foot nav a:hover{color:var(--ink);}

/* ---- booking ---- */
.book-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  gap:clamp(36px,5vw,80px);align-items:start;}
/* The calendar is what this section is for; on a phone it must not queue behind the prose. */
@media (max-width:760px){ .book-cols > div:first-child{order:2;} }
.meta-block{margin-top:clamp(24px,3vh,32px);line-height:1.9;}
.mailto{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(19px,1.7vw,23px);
  color:var(--ink);text-decoration:none;letter-spacing:.02em;
  display:inline-block;padding:10px 0;margin:-10px 0;}
.mailto:hover{color:var(--accent);}

/* ---- layout ---- */
main{display:block;}
section{padding:clamp(64px,10vh,120px) var(--pad);max-width:1240px;margin:0 auto;}
section + section{border-top:1px solid var(--hair);}
.lede{max-width:68ch;}
.overline{display:flex;align-items:center;gap:16px;margin-bottom:clamp(24px,3.5vh,36px);}
.overline i{width:26px;height:1px;background:var(--accent);opacity:.6;flex:none;}
.overline span{font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:rgba(245,241,234,.55);font-style:normal;}
.overline em{font-size:12px;letter-spacing:.28em;color:var(--accent);font-style:normal;}

h1{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;
  font-size:clamp(34px,5vw,68px);line-height:1.05;letter-spacing:-.012em;margin:0 0 clamp(24px,3.5vh,36px);
  max-width:20ch;text-wrap:balance;}
h2{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;
  font-size:clamp(28px,3.4vw,46px);line-height:1.1;letter-spacing:-.008em;margin:0 0 clamp(20px,3vh,30px);
  max-width:24ch;text-wrap:balance;}
h3{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;
  font-size:clamp(21px,1.9vw,27px);margin:0 0 13px;letter-spacing:.005em;text-wrap:balance;}
p{margin:0 0 1.25em;font-size:16px;line-height:1.85;color:var(--dim);max-width:68ch;text-wrap:pretty;}
p.intro{font-size:clamp(17px,1.5vw,20px);line-height:1.75;color:rgba(245,241,234,.78);}
li{font-size:16px;line-height:1.85;color:var(--dim);margin-bottom:.7em;max-width:66ch;}
ul{padding-left:1.1em;}
ul li::marker{color:var(--accent);}
strong{font-weight:500;color:var(--ink);}

.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:clamp(34px,3.6vw,52px) clamp(40px,5vw,88px);}
.card{border-top:1px solid var(--hair);padding-top:clamp(24px,3vh,34px);}
.card p{font-size:14px;line-height:1.8;color:var(--muted);margin:0;}

blockquote{margin:0;font-family:'Cormorant Garamond',Georgia,serif;font-weight:400;font-style:italic;
  font-size:clamp(20px,1.8vw,26px);line-height:1.5;color:rgba(245,241,234,.9);max-width:34ch;text-wrap:pretty;}
figcaption{margin-top:20px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--accent);}

.cta-row{display:flex;flex-wrap:wrap;gap:20px 40px;align-items:center;margin-top:clamp(28px,4vh,44px);}
.btn{display:inline-block;text-decoration:none;color:var(--accent);font-size:12px;letter-spacing:.26em;
  text-transform:uppercase;border:1px solid rgba(184,151,90,.45);padding:18px 34px;transition:background .4s ease;}
.btn:hover{background:rgba(184,151,90,.07);}
.meta{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--faint);}

.crumbs{padding:clamp(20px,3vh,28px) var(--pad) 0;max-width:1240px;margin:0 auto;
  font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);}
.crumbs a{color:rgba(245,241,234,.62);text-decoration:none;
  display:inline-block;padding:14px 4px;margin:-14px -4px;}
.crumbs a:hover{color:var(--ink);}

.page-hero{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(34px,5vw,72px);align-items:center;}
@media (min-width:860px){ .page-hero{grid-template-columns:minmax(0,1fr) minmax(230px,310px);} }
.portrait{width:100%;max-width:310px;height:auto;display:block;filter:grayscale(1) contrast(1.03);
  /* The portrait was shot on a light ground; the mask lets its edges fall into the page
     instead of sitting on the near-black as a hard rectangle. */
  -webkit-mask-image:radial-gradient(92% 72% at 50% 40%, #000 34%, transparent 92%);
  mask-image:radial-gradient(92% 72% at 50% 40%, #000 34%, transparent 92%);}

@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto;} *{transition-duration:.001ms !important;} }
