
:root{
  --ink:#171310;--paper:#f6f1eb;--cream:#eee4d8;--rose:#8a5d58;--line:rgba(23,19,16,.18);
  --serif:Georgia,"Times New Roman",serif;--sans:Arial,Helvetica,sans-serif
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.7}
img{max-width:100%;display:block}.skip-link{position:absolute;left:-999px}.skip-link:focus{left:1rem;top:1rem;z-index:99;background:#fff;padding:.75rem}
.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:1rem 4vw;background:rgba(246,241,235,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:.8rem;color:inherit;text-decoration:none}.brand-mark{display:grid;place-items:center;width:2.6rem;height:2.6rem;border:1px solid currentColor;border-radius:50%;font-family:var(--serif)}.brand-name{text-transform:uppercase;letter-spacing:.18em;font-size:.8rem}
.site-nav{display:flex;align-items:center;gap:1.3rem}.site-nav a{color:inherit;text-decoration:none;font-size:.78rem;text-transform:uppercase;letter-spacing:.12em}.site-nav a[aria-current="page"]{border-bottom:1px solid currentColor}.nav-cta{border:1px solid currentColor;padding:.65rem 1rem}
.menu-toggle{display:none;background:none;border:1px solid var(--line);padding:.6rem .8rem}
.page-visual{position:relative;min-height:64vh;background-image:var(--hero-image);background-size:cover;background-position:center 38%;display:flex;align-items:flex-end}
.page-visual-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.58))}
.page-visual-copy{position:relative;color:#fff;max-width:760px;padding:8vw 6vw 5vw}.page-visual h1{font:400 clamp(3.8rem,10vw,8.5rem)/.9 var(--serif);margin:.2rem 0 1rem}.page-visual p:last-child{max-width:560px;font-size:1.05rem}
.eyebrow{text-transform:uppercase;letter-spacing:.22em;font-size:.72rem}.content-narrow{max-width:900px;margin:auto;padding:7rem 6vw}.content-wide{max-width:1350px;margin:auto;padding:7rem 5vw}
.welcome-feature{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);gap:6vw;align-items:center}.welcome-feature-image{margin:0}.welcome-feature-image img{width:100%;aspect-ratio:4/5;object-fit:cover}.welcome-panel{text-align:left}.welcome-panel h2,.section-intro h2,.subsection h2,.extension-note h2{font:400 clamp(2.5rem,6vw,5rem)/1 var(--serif);margin:.5rem 0 1.5rem}
.button-row{display:flex;justify-content:flex-start;gap:1rem;margin-top:2.3rem}.button{display:inline-block;border:1px solid var(--ink);background:var(--ink);color:#fff;text-decoration:none;padding:.9rem 1.4rem;text-transform:uppercase;letter-spacing:.12em;font-size:.75rem}.button-light{background:transparent;color:var(--ink)}
.editorial-layout,.reserve-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:6vw;align-items:start}.prose p{font-family:var(--serif);font-size:clamp(1.12rem,2vw,1.35rem);margin:0 0 1.5rem}.signature{font-style:italic}.side-portrait{position:sticky;top:7rem}.side-portrait img{width:100%;aspect-ratio:4/5;object-fit:cover}
.gallery-section{padding-top:4rem}.section-intro{text-align:center;margin-bottom:3rem}.gallery-grid{columns:3 280px;column-gap:1.2rem}.gallery-card{display:block;width:100%;padding:0;border:0;background:none;margin:0 0 1.2rem;break-inside:avoid;cursor:pointer}.gallery-card img{width:100%;height:auto}
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.94);display:none;align-items:center;justify-content:center;z-index:50}.lightbox.open{display:flex}.lightbox img{max-width:86vw;max-height:86vh}.lightbox button{position:absolute;background:none;color:#fff;border:0;font-size:3rem;cursor:pointer}.lightbox-close{top:1rem;right:1.5rem}.lightbox-prev{left:1rem}.lightbox-next{right:1rem}
.policy-page .prose{max-width:760px;margin:auto}.subsection{margin-top:7rem;padding-top:4rem;border-top:1px solid var(--line)}.subsection>.eyebrow,.subsection>h2{text-align:center}
.disclaimer{text-align:center;padding-bottom:2.5rem;border-bottom:1px solid var(--line)}.disclaimer p:first-child{text-transform:uppercase;letter-spacing:.16em;font-size:.8rem}.disclaimer p:last-child{font-family:var(--serif);font-size:1.35rem}
.rate-row{display:flex;justify-content:space-between;gap:2rem;padding:1.5rem 0;border-bottom:1px solid var(--line)}.rate-row h3{font:400 1.45rem var(--serif);margin:0}.rate-row p{margin:.3rem 0 0;font-size:.9rem}.rate-row strong{font:400 1.4rem var(--serif);white-space:nowrap}.extension-note{margin-top:5rem;text-align:center}
.reserve-copy img{margin-top:3rem;width:100%;aspect-ratio:4/5;object-fit:cover}.reserve-form{background:var(--cream);padding:2rem}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.reserve-form label{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:1rem}.reserve-form input,.reserve-form select,.reserve-form textarea{width:100%;margin-top:.45rem;border:1px solid var(--line);background:#fff;padding:.85rem;font:inherit}.consent{display:flex!important;gap:.7rem;align-items:flex-start;text-transform:none!important;letter-spacing:0!important}.consent input{width:auto;margin-top:.3rem}.form-note{font-size:.8rem;color:#655}.site-footer{display:flex;justify-content:space-between;padding:2rem 5vw;border-top:1px solid var(--line);font-size:.8rem}.site-footer a{color:inherit}.not-found{min-height:100vh;display:grid;place-content:center;text-align:center;padding:2rem}.not-found h1{font:400 4rem var(--serif)}
@media(max-width:900px){
  .menu-toggle{display:block}.site-header{flex-wrap:wrap}.site-header #primary-nav{width:100%;display:none}.site-header #primary-nav.open{display:block}.site-nav{flex-direction:column;align-items:flex-start;padding:1rem 0}.page-visual{min-height:58vh}.editorial-layout,.reserve-layout{grid-template-columns:1fr}.side-portrait{position:static}.welcome-feature{grid-template-columns:1fr}.welcome-panel{text-align:center}.welcome-panel .button-row{justify-content:center}.field-grid{grid-template-columns:1fr}
}
@media(max-width:560px){.brand-name{display:none}.page-visual-copy{padding:6rem 1.4rem 2.5rem}.content-narrow,.content-wide{padding:4.5rem 1.25rem}.button-row{flex-direction:column}.rate-row{align-items:flex-start}.gallery-grid{columns:1}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}


/* Feminine refinement */
:root{
  --ink:#392d31;
  --paper:#fffaf8;
  --cream:#f7ece9;
  --rose:#a66f78;
  --rose-deep:#7d4d58;
  --blush:#efd8d8;
  --champagne:#c8a77b;
  --line:rgba(125,77,88,.20);
}
body{
  background:
    radial-gradient(circle at 8% 10%, rgba(239,216,216,.42), transparent 24rem),
    radial-gradient(circle at 92% 42%, rgba(247,236,233,.78), transparent 30rem),
    var(--paper);
}
.site-header{
  background:rgba(255,250,248,.94);
  border-bottom:1px solid rgba(166,111,120,.22);
}
.brand-mark{
  border-color:var(--champagne);
  color:var(--rose-deep);
  box-shadow:inset 0 0 0 4px rgba(200,167,123,.08);
}
.brand-name{
  color:var(--rose-deep);
}
.site-nav a{
  transition:color .2s ease,border-color .2s ease;
}
.site-nav a:hover,
.site-nav a:focus-visible{
  color:var(--rose);
}
.site-nav a[aria-current="page"]{
  border-color:var(--champagne);
}
.nav-cta{
  border-color:var(--rose);
  background:var(--rose);
  color:#fff!important;
  border-radius:999px;
  padding:.72rem 1.2rem;
}
.page-visual{
  min-height:68vh;
}
.page-visual-overlay{
  background:
    linear-gradient(180deg,rgba(60,37,42,.04),rgba(60,37,42,.54)),
    linear-gradient(90deg,rgba(166,111,120,.12),transparent 48%);
}
.page-visual-copy{
  max-width:820px;
}
.page-visual h1{
  font-style:italic;
  letter-spacing:-.035em;
  text-shadow:0 2px 22px rgba(38,21,25,.18);
}
.eyebrow{
  color:var(--rose-deep);
  letter-spacing:.28em;
}
.page-visual .eyebrow{
  color:#fff4f4;
}
.page-visual-copy p:last-child{
  font-family:var(--serif);
  font-style:italic;
  font-size:1.18rem;
}
.welcome-feature,
.editorial-layout,
.reserve-layout{
  position:relative;
}
.welcome-feature::before,
.editorial-layout::before,
.reserve-layout::before{
  content:"";
  position:absolute;
  top:3.2rem;
  left:50%;
  width:72px;
  height:1px;
  background:var(--champagne);
  transform:translateX(-50%);
}
.welcome-feature-image,
.side-portrait,
.reserve-copy img{
  position:relative;
}
.welcome-feature-image img,
.side-portrait img,
.reserve-copy img{
  border-radius:48% 48% 10px 10px;
  box-shadow:0 20px 55px rgba(125,77,88,.14);
  border:1px solid rgba(200,167,123,.35);
}
.welcome-feature-image::after,
.side-portrait::after{
  content:"";
  position:absolute;
  inset:18px -14px -14px 18px;
  border:1px solid rgba(166,111,120,.22);
  border-radius:48% 48% 10px 10px;
  z-index:-1;
}
.welcome-panel h2,
.section-intro h2,
.subsection h2,
.extension-note h2{
  color:var(--rose-deep);
  font-style:italic;
  letter-spacing:-.025em;
}
.welcome-panel>p:not(.eyebrow){
  font-family:var(--serif);
  font-size:1.22rem;
}
.button{
  background:var(--rose-deep);
  border-color:var(--rose-deep);
  border-radius:999px;
  box-shadow:0 8px 20px rgba(125,77,88,.12);
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}
.button:hover,
.button:focus-visible{
  background:var(--rose);
  border-color:var(--rose);
  transform:translateY(-1px);
  box-shadow:0 12px 26px rgba(125,77,88,.18);
}
.button-light{
  background:transparent;
  color:var(--rose-deep);
  border-color:var(--champagne);
}
.button-light:hover,
.button-light:focus-visible{
  color:#fff;
}
.prose p:first-child::first-letter{
  color:var(--rose);
  font-family:var(--serif);
  font-size:2.6em;
  float:left;
  line-height:.82;
  padding:.12em .10em 0 0;
}
.signature{
  color:var(--rose-deep);
}
.gallery-card img{
  border-radius:2px 2px 28px 28px;
  box-shadow:0 12px 30px rgba(125,77,88,.10);
  transition:transform .25s ease,box-shadow .25s ease;
}
.gallery-card:hover img,
.gallery-card:focus-visible img{
  transform:translateY(-3px);
  box-shadow:0 18px 38px rgba(125,77,88,.17);
}
.policy-page,
.patronage-page{
  position:relative;
}
.policy-page::before,
.patronage-page::before{
  content:"✦";
  display:block;
  text-align:center;
  color:var(--champagne);
  font-size:1.25rem;
  margin-bottom:2rem;
}
.subsection{
  border-top-color:rgba(200,167,123,.38);
}
.disclaimer{
  background:rgba(247,236,233,.72);
  border:1px solid rgba(200,167,123,.28);
  border-radius:120px 120px 16px 16px;
  padding:2.3rem 2rem;
}
.rate-row{
  border-bottom-color:rgba(166,111,120,.16);
}
.rate-row h3,
.rate-row strong{
  color:var(--rose-deep);
}
.extension-note{
  background:linear-gradient(135deg,rgba(239,216,216,.52),rgba(255,250,248,.6));
  border:1px solid rgba(200,167,123,.26);
  padding:3rem;
  border-radius:16px 16px 90px 90px;
}
.reserve-form{
  background:rgba(247,236,233,.88);
  border:1px solid rgba(200,167,123,.30);
  border-radius:18px 18px 70px 18px;
  box-shadow:0 20px 50px rgba(125,77,88,.10);
}
.reserve-form input,
.reserve-form select,
.reserve-form textarea{
  border-color:rgba(166,111,120,.24);
  background:rgba(255,255,255,.86);
  border-radius:10px;
}
.reserve-form input:focus,
.reserve-form select:focus,
.reserve-form textarea:focus{
  outline:2px solid rgba(166,111,120,.32);
  border-color:var(--rose);
}
.site-footer{
  background:#f8eeeb;
  border-top-color:rgba(200,167,123,.36);
  color:var(--rose-deep);
}
.site-footer::before{
  content:"✦";
  color:var(--champagne);
}
@media(max-width:900px){
  .welcome-feature::before,
  .editorial-layout::before,
  .reserve-layout::before{top:2rem}
}
@media(max-width:560px){
  .welcome-feature-image::after,
  .side-portrait::after{display:none}
  .disclaimer{border-radius:60px 60px 14px 14px}
  .extension-note{border-radius:14px 14px 52px 52px;padding:2rem 1.3rem}
  .reserve-form{border-radius:16px;padding:1.3rem}
}


/* Contact icons */
.site-footer{align-items:center;gap:1rem;flex-wrap:wrap}
.footer-links{display:flex;align-items:center;gap:.8rem}
.footer-icon-link{width:2.35rem;height:2.35rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(116,68,78,.34);border-radius:999px;color:var(--rose-deep);background:rgba(255,255,255,.55);transition:transform .2s ease,background .2s ease,border-color .2s ease}
.footer-icon-link:hover,.footer-icon-link:focus-visible{transform:translateY(-2px);background:#fff;border-color:var(--rose-deep)}
.footer-icon{width:1.15rem;height:1.15rem;display:block;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.footer-icon-x{width:1rem;height:1rem}
.footer-reserve-link{margin-left:.25rem}
@media(max-width:560px){.site-footer{justify-content:center;text-align:center}.site-footer>p{width:100%;margin:0}.footer-links{justify-content:center}}


/* Reservation confirmation */
.form-status{min-height:1.5rem;margin:.8rem 0 0;color:var(--rose-deep);font-size:.9rem}
.reserve-form button[disabled]{opacity:.65;cursor:wait}
.thank-you-page{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr);gap:6vw;align-items:center;min-height:calc(100vh - 170px)}
.thank-you-image img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:48% 48% 10px 10px;border:1px solid rgba(200,167,123,.35);box-shadow:0 20px 55px rgba(125,77,88,.14)}
.thank-you-copy h1{margin:.2rem 0 1.4rem;color:var(--rose-deep);font:italic 400 clamp(3.4rem,8vw,7rem)/.92 var(--serif)}
.thank-you-copy>p:not(.eyebrow){max-width:42rem;font-family:var(--serif);font-size:clamp(1.1rem,2vw,1.3rem)}
.thank-you-copy .button-row{justify-content:flex-start}
@media(max-width:900px){.thank-you-page{grid-template-columns:1fr;padding-top:4rem}.thank-you-image{max-width:560px}}

/* Reserve form notice */
.reserve-form > .form-disclaimer{
  margin:0 0 1.25rem;
  padding:1rem 1.1rem;
  border:1px solid rgba(200,167,123,.35);
  background:rgba(247,236,233,.82);
  color:var(--rose-deep);
  border-radius:12px;
  font-size:.92rem;
  line-height:1.55;
}
.reserve-form > .form-disclaimer strong{
  font-weight:600;
}
