/* ===========================================================
   Licence To Chill — REDESIGN #3
   Direction: quiet editorial field-guide.
   Palette:
     --paper  #FBFAF5  near-white background
     --ink    #201C16  near-black text
     --sage   #5F6F52  muted green accent
     --rust   #9C5A3C  muted dusty accent, used sparingly
     --line   rgba(32,28,22,0.16)  hairline rules — no borders, no shadows
   Type: 'Newsreader' italic (headlines) + 'Source Serif 4' (body) — serif
   throughout, no sans/mono mix. Small caps + letter-spacing for labels.
   Signature: hairline rules with botanical sprig line-art +
   catalog-style numbered entries (01 / 02 / 03) instead of icon cards.
=========================================================== */

@import url('https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@1,6..72,400;1,6..72,500;1,6..72,600&family=Source+Serif+4:opsz,wght@8..60,400;8..60,500;8..60,600&display=swap');

:root{
  --paper:#FBFAF5;
  --ink:#201C16;
  --sage:#5F6F52;
  --rust:#9C5A3C;
  --line:rgba(32,28,22,0.16);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Source Serif 4',serif;
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

h1,h2,h3{
  font-family:'Newsreader',serif;
  font-style:italic;
  font-weight:500;
  margin:0 0 0.3em;
  line-height:1.06;
  letter-spacing:0;
  color:var(--ink);
}
h1{font-size:clamp(2.6rem,6vw,4.6rem); font-weight:600;}
h2{font-size:clamp(1.7rem,3.2vw,2.5rem);}
h3{font-size:1.35rem;}

p{margin:0 0 1em; max-width:60ch;}

a{color:var(--sage); text-decoration:underline; text-decoration-color:var(--line); text-underline-offset:3px;}
a:hover{color:var(--rust);}

.eyebrow{
  font-family:'Source Serif 4',serif;
  font-size:0.74rem;
  letter-spacing:0.16em;
  text-transform:uppercase;
  font-variant:small-caps;
  color:var(--rust);
  display:inline-block;
  margin-bottom:0.9em;
}

.wrap{
  max-width:1080px;
  margin:0 auto;
  padding:0 clamp(1.2rem,4vw,3rem);
}

a:focus-visible, button:focus-visible{
  outline:2px solid var(--sage);
  outline-offset:3px;
}

/* ---------- nav ---------- */
.site-nav{
  position:sticky; top:0; z-index:50;
  background:var(--paper);
  border-bottom:1px solid var(--line);
}
.site-nav .wrap{
  display:flex; align-items:center; justify-content:space-between;
  height:88px;
}
.brand{
  display:flex; align-items:center; gap:0.8em;
  font-family:'Newsreader',serif; font-style:italic; font-weight:600; font-size:1.15rem;
  color:var(--ink);
}
.brand img{ height:56px; width:auto; display:block; }
.footer-grid .brand img{ height:64px; }
.nav-links{
  display:flex; align-items:center; gap:2.2em; list-style:none; margin:0; padding:0;
  font-size:0.85rem; letter-spacing:0.04em; text-transform:uppercase;
}
.nav-links a{color:var(--ink); text-decoration:none;}
.nav-links a.active{color:var(--rust); border-bottom:1px solid var(--rust); padding-bottom:3px;}
.nav-cta{border:1px solid var(--ink); padding:0.55em 1.3em;}
.nav-cta:hover{background:var(--ink); color:var(--paper);}

.nav-toggle{display:none; background:none; border:0; cursor:pointer; padding:0.4em;}
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{
  content:""; display:block; width:22px; height:1px; background:var(--ink); position:relative;
}
.nav-toggle span::before{position:absolute; top:-7px;}
.nav-toggle span::after{position:absolute; top:7px;}

@media (max-width: 860px){
  .nav-links{
    position:fixed; inset:88px 0 0 0; background:var(--paper);
    flex-direction:column; align-items:flex-start; padding:2.5rem clamp(1.2rem,4vw,3rem);
    gap:1.7rem; font-size:1rem; transform:translateY(-8px);
    opacity:0; pointer-events:none; transition:opacity .25s ease, transform .25s ease;
  }
  .nav-links.open{opacity:1; pointer-events:auto; transform:translateY(0);}
  .nav-toggle{display:block;}
}

/* ---------- hero ---------- */
.hero{ padding:clamp(3.5rem,8vw,6rem) 0 clamp(2.2rem,5vw,3.5rem); }
.hero .wrap{ max-width:760px; }
.hero p{ font-size:1.08rem; color:var(--ink); opacity:0.82; }
.hero-actions{ display:flex; gap:1.6rem; align-items:center; margin-top:1.7rem; flex-wrap:wrap; }

/* ---------- sprig divider (signature) ---------- */
.sprig-divider{
  display:flex; align-items:center; gap:1rem; padding:0.6rem 0 2.2rem;
}
.sprig-divider .rule{ flex:1; height:1px; background:var(--line); }
.sprig-divider svg{ width:34px; height:34px; flex:none; color:var(--sage); }

/* ---------- catalog numbered entries (signature 2) ---------- */
.entries{ display:flex; flex-direction:column; }
.entry{
  display:grid; grid-template-columns:70px minmax(0,1fr); gap:1.6rem;
  padding:1.8rem 0; border-top:1px solid var(--line);
}
.entry:last-child{ border-bottom:1px solid var(--line); }
.entry .num{
  font-family:'Newsreader',serif; font-style:italic; font-size:1.4rem; color:var(--rust);
}
.entry h3{ margin-bottom:0.3em; }
.entry p{ margin:0; opacity:0.85; }

.grid-2{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:2.4rem;}
@media (max-width:820px){ .grid-2{grid-template-columns:1fr;} .footer-offices{grid-template-columns:1fr !important;} }

section{ padding:clamp(2.4rem,5vw,4rem) 0; }
.section-head{ max-width:600px; margin-bottom:1.6rem; }

.stat{ font-family:'Source Serif 4',serif; font-size:0.78rem; letter-spacing:0.05em; color:var(--sage); text-transform:uppercase; font-variant:small-caps; }

.btn{
  display:inline-flex; align-items:center; gap:0.5em;
  background:var(--ink); color:var(--paper); border:1px solid var(--ink);
  padding:0.8em 1.7em; font-size:0.85rem; letter-spacing:0.05em; text-transform:uppercase;
  text-decoration:none;
}
.btn:hover{background:var(--rust); border-color:var(--rust); color:var(--paper);}
.btn.outline{background:transparent; color:var(--ink);}
.btn.outline:hover{background:var(--ink); color:var(--paper);}

.tag{
  display:inline-block; font-size:0.75rem; letter-spacing:0.03em; color:var(--ink);
  border:1px solid var(--line); padding:0.4em 0.9em; margin:0 0.5em 0.5em 0; font-variant:small-caps;
}

table{width:100%; border-collapse:collapse; font-size:0.96rem;}
th,td{text-align:left; padding:0.85em 0.4em; border-bottom:1px solid var(--line);}
th{font-family:'Source Serif 4',serif; font-weight:600; font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--rust); font-variant:small-caps;}

blockquote{
  font-family:'Newsreader',serif; font-style:italic; font-size:1.6rem; font-weight:500;
  color:var(--ink); border-left:1px solid var(--rust); padding-left:1.1em; margin:1.3em 0; line-height:1.25;
}
blockquote cite{
  display:block; font-family:'Source Serif 4',serif; font-style:normal; font-size:0.74rem;
  letter-spacing:0.06em; text-transform:uppercase; color:var(--sage); margin-top:0.8em; font-variant:small-caps;
}

.map-frame{ border:1px solid var(--line); overflow:hidden; }
.map-frame iframe{display:block; width:100%; height:380px; border:0; filter:grayscale(0.15) contrast(0.95);}

footer{ border-top:1px solid var(--line); padding:2.8rem 0 3.2rem; }
.footer-grid{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:2rem; }
.foot-links{ list-style:none; display:flex; gap:1.7rem; padding:0; margin:0; font-size:0.82rem; text-transform:uppercase; letter-spacing:0.03em; }
.foot-links a{ color:var(--ink); text-decoration:none; }
.foot-links a:hover{ color:var(--rust); }
.foot-note{ font-size:0.78rem; color:var(--sage); margin-top:1.8rem; font-variant:small-caps; }

.field{
  padding:0.75em 0; border:none; border-bottom:1px solid var(--line);
  font-family:'Source Serif 4',serif; background:transparent; color:var(--ink); font-size:1rem;
}
.field:focus{ outline:none; border-bottom-color:var(--ink); }

/* ---------- real photography ---------- */
.photo{
  width:100%; display:block; aspect-ratio:4/3; object-fit:cover;
  border:1px solid var(--line); filter:saturate(0.92) contrast(0.98);
}
.photo-cap{
  font-size:0.74rem; letter-spacing:0.04em; color:var(--sage); margin-top:0.6em;
  font-variant:small-caps;
}
.photo-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.4rem; }
.photo-grid.two{ grid-template-columns:repeat(2,minmax(0,1fr)); }
@media (max-width:820px){ .photo-grid{grid-template-columns:1fr 1fr;} .photo-grid.two{grid-template-columns:1fr;} }
.hero-photo{
  margin-top:2rem; aspect-ratio:16/9;
}

/* ---------- amenity categories ---------- */
.amenity-groups{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:2.4rem 3rem; }
@media (max-width:820px){ .amenity-groups{grid-template-columns:1fr;} }
.amenity-group h3{ font-size:1.1rem; margin-bottom:0.5em; }
.amenity-group ul{ list-style:none; margin:0; padding:0; }
.amenity-group li{
  padding:0.55em 0; border-top:1px solid var(--line); font-size:0.98rem;
}
.amenity-group li:last-child{ border-bottom:1px solid var(--line); }

/* ---------- entry inline photo ---------- */
.entry-photo{
  width:100%; max-width:100%; aspect-ratio:3/2; object-fit:cover; object-position:center;
  border:1px solid var(--line); filter:saturate(0.92) contrast(0.98);
  display:block; margin-top:0.9rem;
}
