/* ===== Fonts ===== */
@font-face {
  font-family: "Bringbold Nineties";
  src: url("fonts/BringboldNineties-Regular.woff2") format("woff2"),
       url("fonts/BringboldNineties-Regular.woff") format("woff");
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Bringbold Nineties";
  src: url("fonts/BringboldNineties-Oblique.woff2") format("woff2"),
       url("fonts/BringboldNineties-Oblique.woff") format("woff");
  font-weight: 400; font-style: oblique; font-display: swap;
}

:root {
  --paper:    #f1ead9;
  --paper-2:  #e7ddc6;
  --ink:      #17140d;
  --ink-mut:  #5b5343;
  --yellow:   #e9c63c;
  --yellow-deep: #d4af2c;

  --on-dark:      #f1ead9;
  --on-dark-mut:  #b3a888;

  --available: #2f6b4f;
  --booked:    #b4472e;
  --blocked:   #6b6357;

  --line: rgba(23,20,13,0.16);
  --line-2: rgba(23,20,13,0.28);
  --maxw: 1200px;
  --ease: cubic-bezier(.2,.7,.2,1);

  --display: "Bringbold Nineties", "Arial Narrow", Impact, sans-serif;
  --body: "Inter", system-ui, -apple-system, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--body);
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
  line-height: 1.6;
}
h1, h2, h3 { font-family: var(--display); font-weight: 400; line-height: 0.98; margin: 0; text-transform: uppercase; letter-spacing: 0.005em; }
p { margin: 0; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }
img { max-width: 100%; display: block; }
::selection { background: var(--yellow); color: var(--ink); }

.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 clamp(1.25rem, 4vw, 3rem); }

.eyebrow {
  font-family: var(--body);
  font-size: 0.68rem; font-weight: 600;
  letter-spacing: 0.24em; text-transform: uppercase;
  color: var(--ink-mut);
}

/* ===== Top marquee band ===== */
.topband {
  background: var(--yellow); color: var(--ink);
  font-family: var(--body); font-size: 0.64rem; font-weight: 600;
  letter-spacing: 0.28em; text-transform: uppercase;
  text-align: center; padding: 0.5rem 1rem;
}

/* ===== Header / nav ===== */
header.site {
  position: sticky; top: 0; z-index: 50;
  background: var(--paper);
  border-bottom: 1px solid var(--ink);
}
.nav-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.9rem 0; }
.brand { display: flex; align-items: baseline; gap: 0.55rem; }
.brand .mark { font-family: var(--display); font-size: 1.35rem; letter-spacing: 0.01em; text-transform: uppercase; }
.brand .mark em { font-style: oblique; color: var(--yellow-deep); }
.brand .est { font-family: var(--body); font-size: 0.58rem; font-weight: 600; letter-spacing: 0.22em; color: var(--ink-mut); text-transform: uppercase; }

nav.main ul { display: flex; align-items: center; gap: 1.5rem; list-style: none; margin: 0; padding: 0; }
nav.main a {
  font-size: 0.72rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--ink-mut); position: relative; padding: 0.3rem 0; transition: color .2s var(--ease);
}
nav.main a::after {
  content: ""; position: absolute; left: 0; right: 100%; bottom: -2px; height: 2px;
  background: var(--yellow-deep); transition: right .28s var(--ease);
}
nav.main a:hover, nav.main a.active { color: var(--ink); }
nav.main a.active::after { right: 0; }

.menu-toggle { display: none; background: none; border: 0; color: var(--ink); font-size: 1.4rem; line-height: 1; padding: 0.2rem; }

/* ===== Page views ===== */
.page-view { display: none; }
.page-view.active { display: block; animation: fadeUp .5s var(--ease) both; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

/* ===== Hero (photo + grain, no gradient) ===== */
.hero {
  position: relative; min-height: 86vh; display: flex; align-items: stretch;
  overflow: hidden; background: var(--ink);
}
.hero-img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; z-index: 0;
}
.hero-tint { position: absolute; inset: 0; z-index: 1; background: rgba(18,15,9,0.46); }
.hero-grain {
  position: absolute; inset: 0; z-index: 2; pointer-events: none; opacity: 0.20; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.hero-inner {
  position: relative; z-index: 3; width: 100%;
  display: flex; flex-direction: column; justify-content: space-between;
  padding: clamp(1.4rem, 3vw, 2.2rem) 0 clamp(2.5rem, 6vw, 5rem);
}
.hero-labels {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.6rem;
  border-top: 1px solid rgba(241,234,217,0.45); padding-top: 0.8rem; margin-bottom: 0.9rem;
}
.hero-labels span { font-family: var(--body); font-size: 0.64rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--on-dark); }
.hero-meta-row { display: flex; justify-content: space-between; gap: 0.6rem; }
.hero-meta-row span { font-family: var(--body); font-size: 0.62rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--on-dark); }
.hero-bottom { margin-top: auto; }
.hero h1 {
  color: var(--on-dark);
  font-size: clamp(2.8rem, 11vw, 8.5rem); line-height: 0.9; letter-spacing: 0.01em;
}
.hero h1 em { font-style: oblique; color: var(--yellow); }
.hero .lede { margin-top: 1.4rem; max-width: 46ch; color: var(--on-dark); font-size: clamp(1rem, 1.5vw, 1.15rem); }
.hero .cta-row { margin-top: 2rem; }
.hero .demo-note { margin-top: 1.4rem; }

.cta-row { display: flex; flex-wrap: wrap; gap: 0.8rem; }

/* ===== Buttons (flat, sharp) ===== */
.btn {
  display: inline-flex; align-items: center; gap: 0.5rem;
  padding: 0.85rem 1.6rem; border-radius: 0; border: 1px solid var(--ink);
  font-family: var(--body); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase;
  transition: background .2s var(--ease), color .2s var(--ease), transform .15s var(--ease);
}
.btn:hover { transform: translateY(-2px); }
.btn-yellow { background: var(--yellow); color: var(--ink); border-color: var(--ink); }
.btn-yellow:hover { background: var(--ink); color: var(--yellow); }
.btn-ink { background: var(--ink); color: var(--paper); }
.btn-ink:hover { background: transparent; color: var(--ink); }
.btn-line-light { background: transparent; color: var(--on-dark); border-color: var(--on-dark); }
.btn-line-light:hover { background: var(--on-dark); color: var(--ink); }

/* ===== Bands / sections ===== */
.band { padding: clamp(3.5rem, 8vw, 6.5rem) 0; }
.band-paper { background: var(--paper); }
.band-paper-2 { background: var(--paper-2); }
.band-ink { background: var(--ink); color: var(--on-dark); }
.band-yellow { background: var(--yellow); color: var(--ink); }

.section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; flex-wrap: wrap; margin-bottom: 2.6rem; border-bottom: 1px solid var(--line-2); padding-bottom: 1.4rem; }
.section-head .sh-main { max-width: 60ch; }
.section-head .eyebrow { display: block; margin-bottom: 0.9rem; }
.section-head h2 { font-size: clamp(2rem, 5.5vw, 4rem); }
.section-head h2 em { font-style: oblique; color: var(--yellow-deep); }
.band-ink .section-head h2 em { color: var(--yellow); }
.band-ink .section-head { border-color: rgba(241,234,217,0.28); }
.band-ink .eyebrow { color: var(--on-dark-mut); }
.metanum { font-family: var(--display); font-size: clamp(2.4rem, 5vw, 3.6rem); color: var(--yellow-deep); line-height: 0.8; }
.band-ink .metanum { color: var(--yellow); }

.reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in { opacity: 1; transform: none; }

/* ===== Rule (flat, replaces gradient horizon) ===== */
.rule { height: 0; border: 0; border-top: 1px solid var(--ink); margin: 0; }

/* ===== Highlights ===== */
.highlights { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border: 1px solid var(--ink); }
.h-card { padding: 2rem 1.6rem; border-right: 1px solid var(--ink); }
.h-card:last-child { border-right: 0; }
.h-card .num { font-family: var(--display); font-size: 3.4rem; line-height: 0.9; color: var(--ink); }
.h-card .k { font-size: 0.66rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--yellow-deep); margin-top: 0.5rem; }
.h-card p { color: var(--ink-mut); margin-top: 0.8rem; font-size: 0.95rem; }

/* ===== Spaces (flat color blocks) ===== */
.space-row { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: stretch; padding: clamp(2rem,4vw,3rem) 0; }
.space-row + .space-row { border-top: 1px solid var(--line-2); }
.space-visual {
  position: relative; aspect-ratio: 4 / 3; border: 1px solid var(--ink); overflow: hidden;
  display: flex; flex-direction: column; justify-content: space-between; padding: 1.4rem;
  color: var(--on-dark); background: var(--ink);
}
.space-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.space-visual::after { content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(18,15,9,0.34); }
.space-visual .vnum, .space-visual .vname { position: relative; z-index: 2; }
.space-visual .vnum { font-family: var(--display); font-size: clamp(3rem, 7vw, 5.5rem); line-height: 0.85; }
.space-visual .vname { font-family: var(--display); font-size: 1.1rem; text-transform: uppercase; letter-spacing: 0.02em; align-self: flex-end; }
/* Placeholder panels (no photo yet) */
.space-visual.placeholder::after { display: none; }
.space-visual.placeholder::before {
  content: "Photo coming soon"; position: absolute; top: 1.4rem; right: 1.4rem; z-index: 2;
  font-family: var(--body); font-size: 0.56rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--on-dark); opacity: 0.65;
}
.space-visual.orangery { background: #3f6b52; }
.space-visual.cellar { background: #3a2a2c; }
.space-visual.library { background: #5a4a30; }
.space-copy { display: flex; flex-direction: column; justify-content: center; }
.space-copy .eyebrow { display: block; margin-bottom: 0.8rem; }
.space-copy h3 { font-size: clamp(1.7rem, 3.5vw, 2.6rem); }
.space-copy p { color: var(--ink-mut); margin-top: 1rem; max-width: 46ch; }

.amenities { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--ink); margin-top: 3rem; }
.amenity { padding: 1.5rem 1.3rem; border-right: 1px solid var(--ink); }
.amenity:last-child { border-right: 0; }
.amenity .k { font-family: var(--display); font-size: 1.6rem; color: var(--yellow-deep); }
.amenity p { margin-top: 0.5rem; font-size: 0.96rem; }

/* ===== FAQ (Q. / A. accordion) ===== */
.faq { display: flex; flex-direction: column; gap: 1rem; }
.faq-item { border: 1px solid var(--ink); background: #fbf7ec; }
.faq-q {
  width: 100%; text-align: left; font: inherit; cursor: pointer;
  display: flex; align-items: center; gap: 1rem;
  padding: 1.2rem 1.3rem; background: #fbf7ec; border: 0; border-left: 5px solid var(--yellow-deep);
  transition: background .2s var(--ease);
}
.faq-q:hover { background: #f5eed9; }
.faq-q:focus-visible { outline: 2px solid var(--yellow-deep); outline-offset: -2px; }
.faq-item.open .faq-q { border-bottom: 1px solid var(--line-2); }
.faq-mark { font-family: var(--display); font-size: 1.5rem; line-height: 1; flex: none; width: 1.7rem; }
.faq-q-mark { color: var(--yellow-deep); }
.faq-q-text { flex: 1; font-family: var(--display); text-transform: uppercase; letter-spacing: 0.01em; font-size: clamp(1.05rem, 2.2vw, 1.35rem); color: var(--ink); }
.faq-chev { flex: none; width: 12px; height: 12px; border-right: 2px solid var(--ink-mut); border-bottom: 2px solid var(--ink-mut); transform: rotate(45deg); transition: transform .28s var(--ease); }
.faq-item.open .faq-chev { transform: rotate(-135deg); }
/* Height animation via grid-template-rows 0fr -> 1fr — smooth open and close */
.faq-panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .3s var(--ease); }
.faq-item.open .faq-panel { grid-template-rows: 1fr; }
.faq-clip { overflow: hidden; min-height: 0; }
.faq-a { display: flex; gap: 1rem; padding: 1.2rem 1.3rem 1.4rem; border-left: 5px solid var(--line-2); opacity: 0; transition: opacity .3s var(--ease); }
.faq-item.open .faq-a { opacity: 1; }
.faq-a-mark { color: var(--ink-mut); }
.faq-a p { margin: 0; color: var(--ink-mut); font-size: 1rem; max-width: 64ch; }

.faq-contact { margin-top: 2.6rem; text-align: center; }
.faq-contact .fc-lead { font-family: var(--display); text-transform: uppercase; font-size: clamp(1.3rem, 3vw, 2rem); color: var(--ink); }
.faq-contact .fc-info { margin-top: 0.9rem; display: inline-flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 0.6rem 1rem; }
.faq-contact .fc-info a { font-weight: 700; font-size: 1.05rem; color: var(--ink); border-bottom: 2px solid var(--yellow); padding-bottom: 1px; transition: border-color .2s, color .2s; }
.faq-contact .fc-info a:hover { color: var(--yellow-deep); border-color: var(--yellow-deep); }
.faq-contact .fc-sep { color: var(--ink-mut); }
.faq-contact .demo-note { margin-top: 1.1rem; display: flex; justify-content: center; }

/* ===== Month calendar ===== */
.cal-topbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.4rem; }
.cal-title { font-family: var(--display); font-size: clamp(1.6rem, 4vw, 2.6rem); text-transform: uppercase; min-width: 8ch; }
.cal-nav { display: flex; gap: 0.5rem; }
.cal-arrow {
  width: 44px; height: 44px; border: 1px solid var(--ink); background: transparent; color: var(--ink);
  font-size: 1.2rem; line-height: 1; display: inline-flex; align-items: center; justify-content: center;
  transition: background .18s, color .18s;
}
.cal-arrow:hover { background: var(--ink); color: var(--paper); }
.band-ink .cal-arrow { border-color: var(--on-dark); color: var(--on-dark); }
.band-ink .cal-arrow:hover { background: var(--yellow); color: var(--ink); border-color: var(--yellow); }

.cal-legend { display: flex; flex-wrap: wrap; gap: 1.2rem; }
.cal-legend span { display: inline-flex; align-items: center; gap: 0.45rem; font-size: 0.64rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-mut); }
.band-ink .cal-legend span { color: var(--on-dark-mut); }
.swatch { width: 12px; height: 12px; display: inline-block; }
.swatch.available { background: var(--available); }
.swatch.booked { background: var(--booked); }
.swatch.blocked { background: var(--blocked); }

.cal { border: 1px solid var(--ink); }
.cal-dow-row { display: grid; grid-template-columns: repeat(7, 1fr); background: var(--ink); }
.cal-dow-row span { padding: 0.55rem 0.4rem; text-align: center; font-size: 0.6rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--on-dark); }
.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); }
.cal-cell {
  position: relative; min-height: 84px; padding: 0.5rem 0.55rem; background: #fbf7ec;
  border-right: 1px solid var(--line); border-bottom: 1px solid var(--line);
  display: flex; flex-direction: column; justify-content: space-between; text-align: left;
}
.cal-grid > .cal-cell:nth-child(7n) { border-right: 0; }
.cal-cell .d { font-family: var(--display); font-size: 1.15rem; line-height: 1; color: var(--ink); }
.cal-cell .s { font-size: 0.54rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.cal-cell.blank { background: transparent; }
.cal-cell.status-available { background: #eef2ea; border-left: 3px solid var(--available); }
.cal-cell.status-booked   { background: #f4e9e5; border-left: 3px solid var(--booked); }
.cal-cell.status-blocked  { background: #efedea; border-left: 3px solid var(--blocked); }
.cal-cell.status-available .s { color: var(--available); }
.cal-cell.status-booked .s   { color: var(--booked); }
.cal-cell.status-blocked .s  { color: var(--blocked); }
/* editable variant */
button.cal-cell { width: 100%; border-top: 0; border-left-width: 0; font: inherit; cursor: pointer; transition: outline .1s; }
button.cal-cell.status-available { border-left-width: 3px; }
button.cal-cell.status-booked { border-left-width: 3px; }
button.cal-cell.status-blocked { border-left-width: 3px; }
button.cal-cell:hover { outline: 2px solid var(--yellow-deep); outline-offset: -2px; }
button.cal-cell:focus-visible { outline: 2px solid var(--yellow-deep); outline-offset: -2px; }
.cal-hint { margin-top: 0.9rem; font-size: 0.72rem; color: var(--ink-mut); }
.band-ink .cal-hint { color: var(--on-dark-mut); }

/* ===== Forms ===== */
.form-card { max-width: 660px; border: 1px solid var(--ink); background: var(--paper); padding: clamp(1.6rem, 4vw, 2.6rem); }
.band-ink .form-card { background: transparent; border-color: var(--on-dark); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; }
.field { display: flex; flex-direction: column; gap: 0.35rem; }
.field.full { grid-column: 1 / -1; }
.field label { font-size: 0.62rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-mut); }
.band-ink .field label { color: var(--on-dark-mut); }
.field input, .field textarea, .field select {
  width: 100%; font-family: var(--body); font-size: 0.95rem; color: var(--ink);
  background: #fbf7ec; border: 1px solid var(--line-2); border-radius: 0; padding: 0.7rem 0.8rem;
  transition: border-color .15s, box-shadow .15s;
}
.field textarea { resize: vertical; min-height: 104px; }
.field input:focus, .field textarea:focus, .field select:focus {
  outline: none; border-color: var(--ink); box-shadow: inset 0 -2px 0 var(--yellow);
}
/* Softer corners on the contact form inputs */
#inquiry-form .field input,
#inquiry-form .field textarea,
#inquiry-form .field select { border-radius: 10px; }

/* ===== Demo hints ===== */
.demo-note {
  display: inline-flex; align-items: center; gap: 0.5rem;
  font-family: var(--body); font-size: 0.66rem; font-weight: 600;
  letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-mut);
}
.demo-note::before { content: ""; width: 6px; height: 6px; flex: none; border-radius: 50%; background: var(--yellow-deep); }
.band-ink .demo-note { color: var(--on-dark-mut); }
.band-ink .demo-note::before, .hero .demo-note::before { background: var(--yellow); }
.hero .demo-note { color: var(--on-dark); }

.demo-badge {
  position: fixed; left: clamp(0.8rem, 2vw, 1.4rem); bottom: clamp(0.8rem, 2vw, 1.4rem); z-index: 60;
  display: inline-flex; align-items: center; gap: 0.45rem;
  background: var(--ink); color: var(--on-dark); border: 1px solid var(--yellow);
  padding: 0.4rem 0.7rem; font-size: 0.58rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase;
}
.demo-badge::before { content: ""; width: 7px; height: 7px; flex: none; border-radius: 50%; background: var(--yellow); }

/* ===== Admin (light / cream theme) ===== */
.admin-topbar { position: sticky; top: 0; z-index: 50; background: var(--paper); color: var(--ink); border-bottom: 1px solid var(--ink); }
.admin-topbar .nav-inner { padding: 0.8rem 0; }
.admin-topbar .brand .mark { color: var(--ink); }
.admin-topbar .brand .mark em { color: var(--yellow-deep); }
.admin-topbar .topbar-right { display: flex; align-items: center; gap: 1rem; }
.pill { font-size: 0.58rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink); background: var(--yellow); padding: 0.3rem 0.7rem; }
.link-mono { font-size: 0.64rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-mut); transition: color .2s; }
.link-mono:hover { color: var(--yellow-deep); }

.admin-head { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 1rem; margin-bottom: 2rem; border-bottom: 1px solid var(--line-2); padding-bottom: 1.4rem; }
.admin-head .eyebrow { display: block; margin-bottom: 0.7rem; color: var(--ink-mut); }
.admin-head h2 { font-size: clamp(1.8rem, 4.5vw, 3rem); color: var(--ink); }
.admin-head .fine { font-size: 0.62rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-mut); }

.stat-row { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--line-2); margin-bottom: 2.2rem; }
.stat-card { padding: 1.2rem 1.3rem; border-right: 1px solid var(--line-2); }
.stat-card:last-child { border-right: 0; }
.stat-card .n { font-family: var(--display); font-size: 2.6rem; line-height: 0.9; color: var(--ink); }
.stat-card .l { font-size: 0.6rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-mut); margin-top: 0.5rem; }
.stat-card.s-available .n { color: var(--available); }
.stat-card.s-booked .n { color: var(--booked); }
.stat-card.s-blocked .n { color: var(--blocked); }
.stat-card.s-inq .n { color: var(--ink); }

.admin-panel { border: 1px solid var(--line-2); padding: clamp(1.3rem, 3vw, 2rem); margin-bottom: 2rem; }
.admin-panel h3 { font-family: var(--display); font-size: 1.2rem; text-transform: uppercase; color: var(--ink); margin-bottom: 1.3rem; letter-spacing: 0.02em; }

/* Console tabs */
.admin-tabs { display: flex; gap: 0; border-bottom: 1px solid var(--line-2); margin-bottom: 2rem; }
.admin-tab {
  background: transparent; border: 0; color: var(--ink-mut);
  font-family: var(--body); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
  padding: 0.9rem 1.4rem; border-bottom: 3px solid transparent; margin-bottom: -1px; transition: color .2s, border-color .2s;
}
.admin-tab:hover { color: var(--ink); }
.admin-tab.active { color: var(--ink); border-bottom-color: var(--yellow-deep); }

/* Calendar tab: grid + day editor */
.cal-layout { display: grid; grid-template-columns: 1fr 300px; gap: 1.5rem; align-items: start; }
.cal-cell.selected { outline: 3px solid var(--yellow-deep); outline-offset: -3px; z-index: 1; }
button.cal-cell.selected:hover { outline: 3px solid var(--yellow-deep); }
.day-editor { border: 1px solid var(--line-2); padding: 1.4rem; }
.de-empty { color: var(--ink-mut); font-size: 0.9rem; line-height: 1.5; }
.de-content .eyebrow { display: block; margin-bottom: 0.6rem; color: var(--ink-mut); }
.de-date { font-family: var(--display); text-transform: uppercase; font-size: 1.35rem; line-height: 1.05; color: var(--ink); margin: 0 0 0.8rem; }
.de-current { font-size: 0.66rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-mut); margin-bottom: 1.3rem; }
.de-current strong { color: var(--ink); }
.de-actions { display: flex; flex-direction: column; gap: 0.6rem; }
.de-btn {
  text-align: left; background: transparent; color: var(--ink); border: 1px solid var(--line-2); border-radius: 0;
  padding: 0.7rem 0.9rem; font-family: var(--body); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
  transition: background .18s, color .18s, border-color .18s;
}
.de-btn:hover { border-color: var(--yellow-deep); }
.de-btn.active { background: var(--yellow); color: var(--ink); border-color: var(--ink); }
.de-btn.de-clear.active { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.de-fields { margin-top: 1.3rem; border-top: 1px solid var(--line-2); padding-top: 1.2rem; display: flex; flex-direction: column; gap: 0.8rem; }
.de-fields .eyebrow { color: var(--ink-mut); }
.de-fields .field label { color: var(--ink-mut); }
.de-fields .btn { margin-top: 0.2rem; justify-content: center; }
/* A small marker on dates that carry booking details */
.cal-cell.has-booking::after { content: ""; position: absolute; top: 7px; right: 7px; width: 6px; height: 6px; border-radius: 50%; background: var(--ink); z-index: 2; }
@media (max-width: 860px) { .cal-layout { grid-template-columns: 1fr; } }

table { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
thead th { font-size: 0.6rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-mut); text-align: left; padding: 0.75rem 0.85rem; border-bottom: 1px solid var(--line-2); }
tbody td { padding: 0.85rem; border-bottom: 1px solid var(--line); vertical-align: top; color: var(--ink); }
tbody td small { color: var(--ink-mut); }
tbody tr:hover td { background: rgba(212,175,44,0.12); }
.table-scroll { overflow-x: auto; }
.btn-mini { font-size: 0.6rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; background: transparent; color: var(--booked); border: 1px solid var(--booked); border-radius: 0; padding: 0.4rem 0.7rem; transition: background .18s, color .18s; }
.btn-mini:hover { background: var(--booked); color: var(--paper); }
.empty-row td { text-align: center; color: var(--ink-mut); font-style: italic; padding: 2.5rem; }

/* ===== Login gate ===== */
.login-overlay { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 2rem; background: var(--paper); }
.login-card { width: 100%; max-width: 420px; border: 1px solid var(--ink); background: var(--paper); }
.login-top { background: var(--yellow); color: var(--ink); padding: 1.4rem 1.6rem; border-bottom: 1px solid var(--ink); }
.login-top .pill { background: var(--ink); color: var(--yellow); }
.login-top h1 { font-size: 1.9rem; margin-top: 0.7rem; }
.login-body { padding: 1.6rem; display: flex; flex-direction: column; gap: 1rem; }
.login-error { color: var(--booked); font-size: 0.8rem; font-weight: 600; min-height: 1.1em; }
.login-hint { font-size: 0.72rem; color: var(--ink-mut); border-top: 1px solid var(--line); padding-top: 0.9rem; }
.login-hint code { font-family: ui-monospace, monospace; background: #fbf7ec; border: 1px solid var(--line); padding: 0.05rem 0.35rem; }

/* ===== Sub-CTA / footer ===== */
.subcta { text-align: center; padding: clamp(3rem,7vw,5rem) 0; }
.subcta .eyebrow { display: inline-block; margin-bottom: 1rem; }
.subcta h3 { font-size: clamp(1.8rem, 5vw, 3.4rem); margin-bottom: 1.4rem; }
.band-ink .subcta h3 em, .subcta h3 em { font-style: oblique; color: var(--yellow); }
.band-yellow h3 em { color: var(--ink); font-style: oblique; }

footer.site { background: var(--ink); color: var(--on-dark); border-top: 1px solid var(--yellow); padding: 2.2rem 0; }
.foot-inner { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem; }
footer.site .brand .mark { color: var(--on-dark); }
footer.site .brand .mark em { color: var(--yellow); }
footer.site .fine { font-size: 0.62rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--on-dark-mut); }
.foot-link { font-size: 0.62rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--on-dark-mut); transition: color .2s; }
.foot-link:hover { color: var(--yellow); }

/* ===== Toast ===== */
.toast {
  position: fixed; bottom: 1.5rem; left: 50%; transform: translate(-50%, 160%); z-index: 80;
  background: var(--ink); color: var(--on-dark); border: 1px solid var(--yellow); border-radius: 0; padding: 0.85rem 1.3rem;
  display: flex; align-items: center; gap: 0.7rem; font-size: 0.85rem; font-weight: 500;
  transition: transform .45s var(--ease), visibility .45s; max-width: 90vw; visibility: hidden; pointer-events: none;
}
.toast.show { transform: translate(-50%, 0); visibility: visible; }
.toast .tick { color: var(--yellow); font-size: 1rem; }

/* ===== Responsive ===== */
@media (max-width: 860px) {
  .menu-toggle { display: block; }
  nav.main { position: fixed; inset: 0 0 auto 0; top: 0; background: var(--paper); transform: translateY(-100%);
    transition: transform .4s var(--ease); padding: 5rem 1.5rem 2rem; border-bottom: 1px solid var(--ink); }
  nav.main.open { transform: translateY(0); }
  nav.main ul { flex-direction: column; align-items: flex-start; gap: 1.3rem; }
  nav.main a { font-size: 1.05rem; }
  .admin-topbar nav.main, .admin-topbar .menu-toggle { display: none; }
  .highlights { grid-template-columns: 1fr; }
  .h-card { border-right: 0; border-bottom: 1px solid var(--ink); }
  .h-card:last-child { border-bottom: 0; }
  .space-row { grid-template-columns: 1fr; }
  .amenities { grid-template-columns: repeat(2, 1fr); }
  .amenity:nth-child(2) { border-right: 0; }
  .amenity:nth-child(1), .amenity:nth-child(2) { border-bottom: 1px solid var(--ink); }
  .form-grid { grid-template-columns: 1fr; }
  .stat-row { grid-template-columns: repeat(2, 1fr); }
  .stat-card:nth-child(2) { border-right: 0; }
  .stat-card:nth-child(1), .stat-card:nth-child(2) { border-bottom: 1px solid var(--line-2); }
  .cal-cell { min-height: 62px; }
  .cal-cell .s { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; }
}

/* ===== Soft corners — staff console only (public site stays sharp) ===== */
.admin-panel { border-radius: 12px; }
.stat-row { border-radius: 12px; overflow: hidden; }
.day-editor { border-radius: 10px; }
.login-card { border-radius: 12px; overflow: hidden; }
.admin-panel .cal { border-radius: 10px; overflow: hidden; }
.admin-panel .cal-arrow { border-radius: 8px; }
.de-btn { border-radius: 8px; }
.day-editor .field input,
.day-editor .field textarea,
.login-card .field input { border-radius: 8px; }
.de-fields .btn,
.login-card .btn { border-radius: 8px; }
.btn-mini { border-radius: 6px; }
