/* Layout: the Ince Castle logo sits alone on white, then the house it depicts fills the screen; below, generous photographs alternate with short passages, and two coloured bands (drawing-room green, wallpaper celadon) hold the history and the stays. */
/* Light by default; dark for visitors whose device is set to dark mode. */
:root {
  --paper: #FFFFFF;
  --stone: #F1F0EB;        /* limestone steps */
  --ink: #23292A;
  --muted: #646B68;
  --line: #74807A;
  --logo-grey: #6E7570;    /* logo tint */
  --btn: #213B2F;
  --drop: #213B2F;
  --foot-bg: #FFFFFF;
  --foot-ink: #23292A;
  --rule: #DEDDD6;
  --green: #213B2F;        /* drawing-room velvet */
  --on-green: #F2F1EA;
  --celadon: #D5E2D6;      /* Chinese wallpaper ground */
  --brass: #B48A3C;        /* used for dates only */
  --display: "Libre Caslon Display", "Big Caslon", Georgia, serif;
  --text: "Libre Caslon Text", "Iowan Old Style", Georgia, serif;
  --measure: 34rem;
  --wide: 84rem;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) { --paper: #121614; --stone: #191E1B; --ink: #E9E8E1; --muted: #A4ABA6; --line: #A8B3AD; --rule: #2C3430; --green: #1B3326; --on-green: #ECEBE3; --celadon: #21332A; --brass: #D3AA5C; --btn: #D3AA5C; --drop: #D3AA5C; --foot-bg: #1B3326; --foot-ink: #ECEBE3; color-scheme: dark; }
  :root:not([data-theme="light"]) .logo-light { display: none; }
  :root:not([data-theme="light"]) .logo-dark { display: block; }
}
:root[data-theme="dark"] { --paper: #121614; --stone: #191E1B; --ink: #E9E8E1; --muted: #A4ABA6; --line: #A8B3AD; --rule: #2C3430; --green: #1B3326; --on-green: #ECEBE3; --celadon: #21332A; --brass: #D3AA5C; --btn: #D3AA5C; --drop: #D3AA5C; --foot-bg: #1B3326; --foot-ink: #ECEBE3; color-scheme: dark; }
:root[data-theme="dark"] .logo-light { display: none; }
:root[data-theme="dark"] .logo-dark { display: block; }

* { box-sizing: border-box; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--text); font-size: 1.05rem; line-height: 1.75; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-underline-offset: .25em; text-decoration-thickness: 1px; }
a:focus-visible, button:focus-visible, [tabindex]:focus-visible { outline: 2px solid var(--brass); outline-offset: 3px; }
h1, h2, h3 { font-family: var(--display); font-weight: 400; line-height: 1.12; margin: 0; text-wrap: balance; }
p { margin: 0; }
figure { margin: 0; }
figcaption { font-size: .82rem; color: var(--muted); margin-top: .6rem; font-style: italic; }

.wrap { max-width: var(--wide); margin-inline: auto; padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); }
@media (min-width: 760px) { .wrap { padding-left: max(48px, env(safe-area-inset-left, 0px)); padding-right: max(48px, env(safe-area-inset-right, 0px)); } }
.bleed { padding-left: max(0px, env(safe-area-inset-left, 0px)); padding-right: max(0px, env(safe-area-inset-right, 0px)); }

/* Tracked capitals belong to the logo's lettering; they are used only for the logo, the menu and small place labels. */
.caps { font-family: var(--text); text-transform: uppercase; letter-spacing: .22em; font-size: .74rem; }

/* Masthead */
.masthead .wrap { display: grid; justify-items: center; gap: 1.4rem; padding-block: 2rem 1.4rem; }
/* The logo file is used unaltered. The browser tints it: the image is "lightened" over a grey ground,
   so its black lines show as grey and its white stays white. */
.logo { display: block; line-height: 0; }
.logo-light { display: block; background: var(--logo-grey); isolation: isolate; }
.logo-light img { mix-blend-mode: lighten; }
.logo-dark { display: none; opacity: .88; }
.logo img { width: clamp(140px, 15vw, 180px); height: auto; }
.menu { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem 2.2rem; border-top: 1px solid var(--rule); padding-top: 1.3rem; width: 100%; }
.menu a { text-decoration: none; color: var(--ink); }
.menu a:hover { color: var(--line); }


/* Front of the house */
.front img { width: 100%; aspect-ratio: 1.9 / 1; object-fit: cover; object-position: 50% 30%; }
.front figcaption { text-align: center; }

.welcome { padding-block: 6rem 6.5rem; display: grid; justify-items: center; gap: 2.4rem; text-align: center; }
.welcome h1 { font-size: clamp(2rem, 4.6vw, 3.6rem); max-width: 22ch; }
.welcome .cols { display: grid; gap: 1.4rem; text-align: left; max-width: 58rem; }
@media (min-width: 820px) { .welcome .cols { grid-template-columns: 1fr 1fr; gap: 3.5rem; } }
.welcome .cols p:first-child::first-letter { font-family: var(--display); float: left; font-size: 3.6em; line-height: .8; padding: .08em .1em 0 0; color: var(--drop); }

/* The house: rooms */
.rooms { padding-block: 0 7rem; display: grid; gap: 3rem; }
.section-head { display: grid; gap: .9rem; max-width: var(--measure); }
.section-head h2 { font-size: clamp(2rem, 4vw, 3.1rem); }
.section-head p { color: var(--muted); }
.room-grid { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.room-grid figure { min-width: 0; }
.room-grid img { width: 100%; object-fit: cover; }
.r-stair { grid-row: span 2; }
.r-stair img { aspect-ratio: 2 / 3; height: 100%; }
.r-draw img, .r-dine img { aspect-ratio: 3 / 2; }
.r-lib img, .r-bed img { aspect-ratio: 4 / 5; }
.r-draw { grid-column: 1 / -1; }
@media (min-width: 900px) {
  .room-grid { grid-template-columns: 5fr 7fr 4fr; grid-template-rows: auto auto; }
  .r-stair { grid-column: 1; grid-row: 1 / span 2; }
  .r-draw { grid-column: 2 / span 2; grid-row: 1; }
  .r-dine { grid-column: 2; grid-row: 2; }
  .r-lib { grid-column: 3; grid-row: 2; }
  .r-lib img { aspect-ratio: auto; height: 100%; }
  .r-bed { display: none; }
}
.more { font-style: italic; }

/* History band */
.history { background: var(--green); color: var(--on-green); }
.history .wrap { padding-block: 6rem; display: grid; gap: 3.5rem; }
.history-top { display: grid; gap: 2.5rem; }
@media (min-width: 900px) { .history-top { grid-template-columns: 1fr 1fr; align-items: end; } }
.history h2 { font-size: clamp(2rem, 4vw, 3.1rem); max-width: 16ch; }
.history .lede { color: color-mix(in srgb, var(--on-green) 82%, transparent); max-width: var(--measure); }
.timeline-scroller { overflow-x: auto; scrollbar-width: thin; padding-bottom: .6rem; }
.timeline { list-style: none; margin: 0; padding: 0; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(13.5rem, 1fr); }
.timeline li { border-top: 1px solid color-mix(in srgb, var(--on-green) 30%, transparent); padding: 1.3rem 1.6rem 0 0; position: relative; }
.timeline li::before { content: ""; position: absolute; top: -4px; left: 0; width: 7px; height: 7px; background: var(--brass); transform: rotate(45deg); }
.timeline .year { font-family: var(--display); font-size: 2.6rem; line-height: 1; color: var(--brass); display: block; margin-bottom: .7rem; }
.timeline p { font-size: .93rem; line-height: 1.6; color: color-mix(in srgb, var(--on-green) 84%, transparent); max-width: 23ch; }
.history-foot { display: grid; gap: 2.5rem; }
@media (min-width: 900px) { .history-foot { grid-template-columns: 1fr 1fr; align-items: center; } }
.legend { font-family: var(--display); font-size: clamp(1.3rem, 2.3vw, 1.75rem); line-height: 1.35; max-width: 30ch; }
.legend span { display: block; font-family: var(--text); font-size: .9rem; margin-top: .9rem; color: color-mix(in srgb, var(--on-green) 70%, transparent); font-style: italic; }
.history-foot img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }

/* Full-width interlude */
.interlude img { width: 100%; aspect-ratio: 2.4 / 1; object-fit: cover; }
.interlude figcaption { text-align: center; }

/* Estate: land and table */
.estate { padding-block: 7rem; display: grid; gap: 5rem; }
@media (min-width: 900px) { .estate { grid-template-columns: 1fr 1fr; gap: 4rem; } .estate .table-col { margin-top: 9rem; } }
.estate article { display: grid; gap: 1.4rem; align-content: start; }
.estate h2 { font-size: clamp(2rem, 4vw, 3.1rem); }
.estate p { max-width: var(--measure); }
.estate img { width: 100%; object-fit: cover; }
.land-img { aspect-ratio: 4 / 5; }
.table-pair { display: grid; grid-template-columns: 3fr 2fr; gap: 14px; align-items: end; }
.table-pair img:first-child { aspect-ratio: 4 / 5; }
.table-pair img:last-child { aspect-ratio: 3 / 4; }

/* Gardens */
.gardens { background: var(--stone); }
.gardens .wrap { padding-block: 7rem; display: grid; gap: 3.5rem; }
.garden-grid { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.garden-grid img { width: 100%; height: 100%; object-fit: cover; }
.g-daff { grid-row: span 2; }
.g-daff img { aspect-ratio: 9 / 16; }
.g-walk img, .g-shell img, .g-tower img, .g-fri img { aspect-ratio: 1 / 1; }
@media (min-width: 900px) {
  .garden-grid { grid-template-columns: 3fr 4fr 3fr 3fr; grid-template-rows: 1fr 1fr; }
  .g-daff { grid-column: 1; grid-row: 1 / span 2; }
  .g-walk { grid-column: 2; grid-row: 1 / span 2; }
  .g-walk img { aspect-ratio: auto; }
  .g-daff img { aspect-ratio: auto; }
}
.garden-text { display: grid; gap: 2.5rem; }
@media (min-width: 900px) { .garden-text { grid-template-columns: 1fr 1fr; gap: 4rem; align-items: start; } }
.open-days { border: 1px solid var(--line); padding: 2rem; display: grid; gap: .8rem; background: var(--paper); }
.open-days h3 { font-size: 1.7rem; }
.open-days p { color: var(--muted); font-size: .97rem; }
.btn { display: inline-block; justify-self: start; font-family: var(--text); text-transform: uppercase; letter-spacing: .18em; font-size: .72rem; color: var(--paper); background: var(--btn); padding: .95rem 1.5rem; text-decoration: none; border: 0; cursor: pointer; margin-top: .4rem; }
.btn:hover { background: var(--ink); color: var(--paper); }

/* Stay */
.stay { background: var(--celadon); }
.stay .wrap { padding-block: 7rem; display: grid; gap: 3.5rem; }
.barton { display: grid; gap: 2.5rem; }
@media (min-width: 900px) { .barton { grid-template-columns: 7fr 5fr; align-items: center; gap: 4rem; } }
.barton-imgs { display: grid; grid-template-columns: 2fr 1fr; gap: 14px; }
.barton-imgs img { width: 100%; height: 100%; object-fit: cover; }
.barton-imgs .main { grid-row: span 2; aspect-ratio: 4 / 5; }
.barton-imgs img:not(.main) { aspect-ratio: 1 / 1; }
.barton-text { display: grid; gap: 1.2rem; max-width: var(--measure); }
.barton-text h3 { font-size: clamp(2rem, 3.6vw, 2.8rem); }
.facts { list-style: none; margin: 0; padding: 1rem 0; border-block: 1px solid color-mix(in srgb, var(--ink) 20%, transparent); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .3rem 1rem; font-size: .95rem; }
.cottages { display: grid; gap: 1.5rem; border-top: 1px solid color-mix(in srgb, var(--ink) 20%, transparent); padding-top: 2rem; }
@media (min-width: 700px) { .cottages { grid-template-columns: 1fr 1fr 2fr; } }
.cottages h3 { font-size: 1.5rem; }
.cottages p { font-size: .95rem; color: var(--muted); }

/* Journal */
.journal { padding-block: 7rem; display: grid; gap: 3rem; }
.journal-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 1rem; }
.entries { list-style: none; margin: 0; padding: 0; display: grid; gap: 3rem; }
@media (min-width: 820px) { .entries { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.2rem; } }
.entry { display: grid; gap: .8rem; align-content: start; }
.entry img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.entry .place { color: var(--muted); }
.entry h3 { font-size: 1.6rem; }
.entry h3 a { text-decoration: none; }
.entry h3 a:hover { text-decoration: underline; }
.entry p { font-size: .96rem; color: var(--muted); }

/* Footer */
.foot { background: var(--foot-bg); color: var(--foot-ink); border-top: 1px solid var(--rule); }
.foot .wrap { padding-block: 5rem 3rem; display: grid; gap: 3rem; justify-items: center; text-align: center; }
.foot .logo img { width: clamp(120px, 12vw, 150px); }
.foot address { font-style: normal; font-size: .95rem; color: var(--muted); }
.mock-note { font-size: .78rem; color: var(--muted); }

/* ---------- Inner pages ---------- */
.menu a[aria-current="page"] { color: var(--line); text-decoration: underline; text-underline-offset: .5em; }
.page-head { padding-block: 4.5rem 3rem; display: grid; justify-items: center; gap: 1.2rem; text-align: center; }
.page-head h1 { font-size: clamp(2.3rem, 5vw, 3.8rem); max-width: 20ch; }
.page-head .intro { max-width: 40rem; color: var(--muted); font-size: 1.12rem; }
.page-hero img { width: 100%; aspect-ratio: 2.2 / 1; object-fit: cover; }
.prose { max-width: var(--measure); margin-inline: auto; padding-block: 4.5rem 5rem; display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.3rem; }
.prose h2 { font-size: clamp(1.7rem, 3vw, 2.2rem); margin-top: 1.6rem; }
.prose h3 { font-size: 1.4rem; margin-top: 1rem; }
.prose figure { margin-block: 1.5rem; }
.prose figure.wide { width: min(calc(100vw - 32px), 62rem); margin-left: 50%; transform: translateX(-50%); }
.prose figure img { width: 100%; }
.prose ul { margin: 0; padding-left: 1.2rem; display: grid; gap: .4rem; }
.prose blockquote { margin: 0; font-family: var(--display); font-size: 1.45rem; line-height: 1.35; border-left: 2px solid var(--brass); padding-left: 1.2rem; }
.prose .note { font-size: .9rem; color: var(--muted); font-style: italic; }
.prose .sources { font-size: .85rem; color: var(--muted); border-top: 1px solid var(--rule); padding-top: 1.5rem; margin-top: 2rem; }
.prose .sources ul { padding-left: 1rem; }
.prose details.sources summary { cursor: pointer; font-style: italic; list-style: none; width: max-content; }
.prose details.sources summary::-webkit-details-marker { display: none; }
.prose details.sources summary::after { content: " +"; }
.prose details.sources[open] summary::after { content: " \2212"; }
.prose details.sources summary:hover { color: var(--ink); }
.prose details.sources p { margin-top: .8rem; }
.byline { color: var(--muted); }
.split { display: grid; gap: 3rem; padding-block: 5rem; }
@media (min-width: 900px) { .split { grid-template-columns: 1fr 1fr; gap: 4.5rem; align-items: center; } .split.flip > :first-child { order: 2; } }
.split img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.split .text { display: grid; gap: 1.2rem; max-width: var(--measure); }
.split h2 { font-size: clamp(1.9rem, 3.6vw, 2.8rem); }
.band { background: var(--stone); }
.slot-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.slot { border: 1px solid var(--rule); background: var(--paper); padding: 1.4rem 1.6rem; display: grid; gap: .5rem; }
@media (min-width: 700px) { .slot { grid-template-columns: 1fr auto; align-items: center; } }
.slot-img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
.slot-about { margin-top: .4rem; }
.slot-about p { color: var(--ink); font-size: 1rem; line-height: 1.55; margin: 0 0 .5rem; max-width: 34rem; }
@media (min-width: 700px) {
  .slot.has-img { grid-template-columns: 15rem 1fr; column-gap: 1.6rem; align-items: start; }
  .slot.has-img .slot-img { grid-row: 1 / span 2; }
  .slot.has-img .tickets, .slot.has-img > .caps { grid-column: 2; }
}
@media (min-width: 1100px) {
  .slot.has-img { grid-template-columns: 15rem minmax(0, 1fr) 25rem; align-items: start; }
  .slot.has-img .slot-img { grid-row: auto; }
  .slot.has-img .tickets, .slot.has-img > .caps { grid-column: 3; }
}
.slot h3 { font-size: 1.5rem; }
.slot p { color: var(--muted); font-size: .95rem; }
.empty { border: 1px dashed var(--line); padding: 2rem; display: grid; gap: .6rem; background: var(--paper); }
.prop-gallery { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); padding-block: 0 4rem; }
.prop-gallery img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.prop-gallery img:first-child { grid-column: 1 / -1; aspect-ratio: 2 / 1; }
@media (min-width: 900px) { .prop-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.prop-body { display: grid; gap: 3rem; padding-block: 1rem 6rem; }
@media (min-width: 900px) { .prop-body { grid-template-columns: 7fr 4fr; gap: 5rem; align-items: start; } }
.prop-body .prose { padding-block: 0; margin: 0; }
.booking { border: 1px solid var(--line); padding: 2rem; display: grid; gap: 1rem; background: var(--paper); position: sticky; top: 1.5rem; }
.booking h2 { font-size: 1.6rem; }
.booking .facts { grid-template-columns: 1fr; }
.prop-cards { display: grid; gap: 3rem; padding-block: 1rem 6rem; }
@media (min-width: 900px) { .prop-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; } }
.prop-card { display: grid; gap: .9rem; align-content: start; }
.prop-card img, .prop-card .ph { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.prop-card .ph { background: var(--celadon); display: grid; place-items: center; color: var(--muted); font-style: italic; }
.prop-card h2 { font-size: 1.8rem; }
.prop-card h2 a { text-decoration: none; }
.prop-card p { color: var(--muted); font-size: .97rem; }
.journal-list { padding-block: 1rem 6rem; }
.crumb { font-style: italic; color: var(--muted); }

.prose ul.press { list-style: none; padding: 0; gap: .7rem; }
.prose ul.press a { text-decoration-color: var(--rule); }
.prose ul.press a:hover { text-decoration-color: currentColor; }

/* ---------- Ornaments from the billiard-room frieze ---------- */
.orn { display: inline-block; background: var(--line); -webkit-mask: var(--orn) center / contain no-repeat; mask: var(--orn) center / contain no-repeat; }
.timeline li::before { width: 18px; height: 18px; top: -9px; left: -2px; transform: none; background: var(--brass);
  -webkit-mask: url(/brand/ornaments/rosette.svg?v=b8923eb1a8) center / contain no-repeat; mask: url(/brand/ornaments/rosette.svg?v=b8923eb1a8) center / contain no-repeat; }
.prose ul:not(.press) { list-style: none; padding-left: 0; }
.prose ul:not(.press) li { position: relative; padding-left: 1.7rem; }
.prose ul:not(.press) li::before { content: ""; position: absolute; left: 0; top: .2em; width: 1.2em; height: 1.2em; background: var(--brass);
  -webkit-mask: url(/brand/ornaments/fleur.svg?v=b8923eb1a8) center / contain no-repeat; mask: url(/brand/ornaments/fleur.svg?v=b8923eb1a8) center / contain no-repeat; }
.divider { display: block; width: 40px; height: 40px; margin: 2.2rem auto; background: var(--brass);
  -webkit-mask: url(/brand/ornaments/shell.svg?v=b8923eb1a8) center / contain no-repeat; mask: url(/brand/ornaments/shell.svg?v=b8923eb1a8) center / contain no-repeat; }
.frieze { height: 30px; background: var(--brass); opacity: .9;
  -webkit-mask: url(/brand/ornaments/frieze.svg?v=b8923eb1a8) calc(50% - 19.5px) center / auto 26px repeat-x; mask: url(/brand/ornaments/frieze.svg?v=b8923eb1a8) calc(50% - 19.5px) center / auto 26px repeat-x; }
.foot .frieze { width: min(100%, 819px); width: calc(round(down, min(100%, 819px) - 39px, 78px) + 39px); } /* 21 icons of 39px: a whole, symmetrical run centred on a fleur-de-lis */

.timeline-scroller { padding-top: 12px; }
.prose ul:not(.press) li::before { width: 1.15em; height: 1.15em; top: .22em; }

/* Journal photo groups */
.prose .gallery { display: grid; gap: 12px; margin-block: 1.8rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.prose .gallery.wide { width: min(calc(100vw - 32px), 62rem); margin-left: 50%; transform: translateX(-50%); }
.prose .gallery.n3, .prose .gallery.n4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.prose .gallery.n1 { grid-template-columns: minmax(0, 1fr); }
.prose .gallery.n1 img { max-height: 80vh; object-fit: cover; }
.prose .gallery figure { margin: 0; }
.prose .gallery img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; display: block; }
.prose .gallery.n1 img { aspect-ratio: auto; }
.prose .gallery figcaption { font-size: .82rem; color: var(--line); margin-top: .4rem; line-height: 1.35; }
@media (max-width: 640px) { .prose .gallery.n3, .prose .gallery.n4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.prose figure.wide figcaption { font-size: .82rem; color: var(--line); margin-top: .4rem; text-align: right; }

/* Home: one card per section */
.sections { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem 1.6rem; padding-block: 2rem 5rem; }
.section-card { color: inherit; text-decoration: none; display: block; }
.section-card img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; transition: opacity .3s; }
.section-card:hover img { opacity: .88; }
.section-card h2 { font-family: var(--display); font-weight: 400; font-size: 1.7rem; margin: 1rem 0 .35rem; }
.section-card p { margin: 0; color: var(--line); line-height: 1.5; }
.section-card:hover h2 { text-decoration: underline; text-underline-offset: .2em; text-decoration-thickness: 1px; }
@media (max-width: 900px) { .sections { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .sections { grid-template-columns: minmax(0, 1fr); } }

/* Booking widgets */
.book-section { padding-block: 3rem 5rem; border-top: 1px solid var(--rule, #e3e0d8); }
.book-section h2 { font-family: var(--display); font-weight: 400; font-size: clamp(1.8rem, 3vw, 2.4rem); margin: 0 0 1.2rem; }
.bk-controls { display: flex; flex-wrap: wrap; gap: 1rem 1.6rem; margin-bottom: 1.2rem; }
.bk-field { display: grid; gap: .3rem; margin: 0 0 .9rem; }
.bk-field > span { font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: var(--line); }
.bk-field small { color: var(--line); font-size: .85rem; }
.bk-field input, .bk-field select, .bk-field textarea { font: inherit; color: var(--ink); background: var(--paper); border: 1px solid var(--line); padding: .55rem .7rem; border-radius: 0; max-width: 100%; }
.bk-field textarea { width: 100%; }
.bk-form .bk-field input { width: 100%; }
.bk-hint, .bk-small { color: var(--line); font-size: .92rem; }
.bk-status { color: var(--brass); min-height: 1.4em; }
.bk-cal { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 1.4rem 2rem; margin-bottom: 2rem; }
.bk-cal > .bk-hint { grid-column: 1 / -1; margin: 0; }
.bk-month h4 { font-family: var(--display); font-weight: 400; font-size: 1.15rem; margin: 0 0 .5rem; }
.bk-days { display: flex; flex-wrap: wrap; gap: .4rem; }
.bk-day, .bk-slot { font: inherit; color: var(--ink); background: var(--paper); border: 1px solid var(--line); padding: .45rem .6rem; min-width: 4.4rem; cursor: pointer; display: grid; text-align: left; line-height: 1.25; }
.bk-slot { max-width: 17rem; }
.bk-ticket { text-align: center; border: 1px solid var(--line); background: var(--paper); padding: 1.5rem 1rem; max-width: 24rem; margin: 0 auto; }
.bk-ticket img { display: block; margin: 0 auto 1rem; width: 260px; max-width: 100%; height: auto; image-rendering: pixelated; }
.bk-day b, .bk-slot b { font-weight: 400; font-family: var(--display); font-size: 1.15rem; }
.bk-day span, .bk-slot span { font-size: .75rem; color: var(--line); }
.bk-day:hover:not(:disabled), .bk-slot:hover:not(:disabled) { border-color: var(--green); }
.bk-day.is-on, .bk-slot.is-on { background: var(--green); border-color: var(--green); color: #fff; }
.bk-day.is-on span, .bk-slot.is-on span { color: #dfe8e0; }
.bk-day:disabled, .bk-slot:disabled { opacity: .38; cursor: default; text-decoration: line-through; }
.bk-quote { max-width: 38rem; }
.bk-quote h3, .bk-form h3 { font-family: var(--display); font-weight: 400; font-size: 1.4rem; margin: 1.4rem 0 .8rem; }
.bk-lines { width: 100%; border-collapse: collapse; margin-bottom: .8rem; }
.bk-lines td { padding: .5rem 0; border-bottom: 1px solid var(--rule, #e3e0d8); }
.bk-lines td:last-child { text-align: right; }
.bk-total td { font-weight: 700; }
.bk-check { display: flex; gap: .6rem; align-items: flex-start; margin: .6rem 0 1rem; font-size: .9rem; line-height: 1.5; }
.bk-check input { margin-top: .2rem; }
.bk-slots { display: flex; flex-wrap: wrap; gap: .5rem; margin: .4rem 0 1rem; }
.tickets { min-width: min(100%, 26rem); }
.tickets .bk-form { margin-top: .6rem; }
.bk-total-line { font-weight: 700; }
.bk-closed { grid-column: 1 / -1; padding: 1rem 1.2rem; background: var(--celadon, #D5E2D6); color: var(--ink); margin: 0; }
/* Property photographs: a mosaic of five, and a sheet with every photograph */
.mosaic { position: relative; display: grid; gap: 8px; margin-bottom: 4rem; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 15rem)); }
.mosaic .tile { padding: 0; border: 0; background: none; cursor: zoom-in; overflow: hidden; display: block; min-height: 0; }
.mosaic .tile img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.mosaic .tile:hover img { transform: scale(1.03); }
.mosaic .t0 { grid-column: 1 / 3; grid-row: 1 / 3; }
.mosaic.n1 { grid-template-columns: 1fr; grid-template-rows: 30rem; } .mosaic.n1 .t0 { grid-column: auto; grid-row: auto; }
.all-photos { position: absolute; right: 1rem; bottom: 1rem; font: inherit; font-size: .9rem; background: var(--paper); color: var(--ink); border: 1px solid var(--ink); padding: .55rem 1rem; cursor: pointer; }
.all-photos:hover { background: var(--ink); color: var(--paper); }
@media (max-width: 760px) {
  .mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: 16rem 9rem; }
  .mosaic .t0 { grid-column: 1 / -1; grid-row: 1; }
  .mosaic .t3, .mosaic .t4 { display: none; }
}
.photo-sheet { width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; padding: 0; border: 0; background: var(--paper); color: var(--ink); }
.photo-sheet::backdrop { background: rgba(0,0,0,.4); }
.sheet-head { position: sticky; top: 0; z-index: 1; display: flex; justify-content: space-between; align-items: center; padding: 1rem clamp(16px, 4vw, 3rem); background: var(--paper); border-bottom: 1px solid var(--rule, #e3e0d8); }
.sheet-head h2 { font-family: var(--display); font-weight: 400; font-size: 1.5rem; margin: 0; }
.sheet-close { font: inherit; background: none; border: 1px solid var(--ink); color: var(--ink); padding: .45rem .9rem; cursor: pointer; }
.sheet-body { height: calc(100dvh - 4.2rem); overflow-y: auto; padding: 1rem clamp(16px, 4vw, 3rem) 4rem; }
.sheet-body h3 { font-family: var(--display); font-weight: 400; font-size: 1.35rem; margin: 2rem 0 1rem; }
.sheet-grid { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sheet-grid figure { margin: 0; scroll-margin-top: 5rem; }
.sheet-grid img { width: 100%; display: block; }
.sheet-grid figcaption { font-size: .85rem; color: var(--line); margin-top: .35rem; }
@media (max-width: 760px) { .sheet-grid { grid-template-columns: 1fr; } }

/* House pages: photographs and map on the left; facts, description, facilities and booking on the right */
.prop-head { padding-block: 2.2rem 1.4rem; }
.prop-head h1 { font-size: clamp(2.2rem, 4vw, 3.2rem); margin: .2rem 0 .3rem; }
.prop-place { color: var(--muted); margin: 0; }
.prop-grid { display: grid; gap: 2rem; padding-bottom: 5rem; }
.prop-media, .prop-side, .prop-where { min-width: 0; }
.prop-where { order: 3; }
@media (min-width: 1000px) {
  .prop-grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); grid-template-areas: "media side" "where side"; grid-template-rows: auto 1fr; column-gap: 2.6rem; row-gap: 0; align-items: start; }
  .prop-media { grid-area: media; } .prop-side { grid-area: side; } .prop-where { grid-area: where; }
}
.prop-media .mosaic { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: 24rem 7.5rem; margin-bottom: 1.2rem; }
@media (max-width: 760px) { .prop-media .mosaic .all-photos { font-size: .78rem; padding: .4rem .7rem; right: .5rem; bottom: .5rem; } .prop-media .mosaic { margin-bottom: 0; } }
.prop-media .mosaic .t0 { grid-column: 1 / -1; grid-row: 1; }
.prop-media .mosaic .t3, .prop-media .mosaic .t4 { display: block; }
@media (max-width: 760px) { .prop-media .mosaic { grid-template-rows: 15rem 4.8rem; } }
.prop-map { margin: 0; }
.prop-map iframe { width: 100%; height: 17rem; border: 1px solid var(--rule, #e3e0d8); display: block; filter: saturate(.45) contrast(.95); }
.prop-map figcaption { display: flex; align-items: center; gap: .4rem; color: var(--muted); font-size: .85rem; margin-top: .5rem; }
.ic { width: 1.55rem; height: 1.55rem; flex: none; }
.prop-map .ic { width: 1.1rem; height: 1.1rem; }
.key-facts { list-style: none; margin: 0 0 1.2rem; padding: 0; display: flex; flex-wrap: wrap; gap: .7rem 1.8rem; font-size: .95rem; }
.key-facts li { display: flex; align-items: center; gap: .55rem; }
.prop-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin: 0 0 1.6rem; }
.prop-actions .btn { margin: 0; min-width: 9rem; text-align: center; }
.btn-quiet { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
.btn-quiet:hover { background: var(--ink); color: var(--paper); }
.prop-desc .lead { font-size: 1.1rem; line-height: 1.55; margin: 0 0 1rem; }
.prop-desc .prose { padding: 0; margin: 0; }
.prop-desc .prose h2 { font-size: 1.35rem; margin: 1.4rem 0 .5rem; }
.prop-desc.is-clamped { max-height: 15rem; overflow: hidden; -webkit-mask-image: linear-gradient(#000 65%, transparent); mask-image: linear-gradient(#000 65%, transparent); }
.read-more { font: inherit; background: none; border: 0; padding: .3rem 0; color: var(--ink); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.amenities { list-style: none; margin: 1.4rem 0; padding: 1.1rem 0; border-block: 1px solid var(--rule, #e3e0d8); display: grid; grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); gap: .9rem 1rem; font-size: .88rem; }
.amenities li { display: flex; align-items: center; gap: .55rem; position: relative; }
.amenities li.no { color: var(--muted); }
.amenities li.no::after { content: ""; position: absolute; left: -.1rem; top: 50%; width: 1.75rem; border-top: 1.4px solid currentColor; transform: rotate(-45deg); }
.prop-book { margin-top: 1.6rem; }
.prop-book > h2.caps { font-family: var(--text); font-size: .78rem; letter-spacing: .16em; margin: 0 0 .8rem; color: var(--muted); }
.prop-book .bk-controls { gap: .4rem 1.2rem; margin-bottom: .6rem; }
.prop-book .bk-quote { max-width: none; }

/* one-month calendar */
.bk-cal { display: block; margin-bottom: 1rem; }
.bk-cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: .5rem; }
.bk-cal-head h4 { margin: 0; font-family: var(--display); font-weight: 400; font-size: 1.25rem; }
.bk-nav { font: inherit; font-size: 1.6rem; line-height: 1; background: none; border: 0; padding: .1rem .7rem; cursor: pointer; color: var(--ink); }
.bk-nav:disabled { opacity: .25; cursor: default; }
.bk-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px; background: var(--rule, #e3e0d8); border: 1px solid var(--rule, #e3e0d8); }
.bk-wd { background: var(--stone); text-align: center; font-size: .7rem; letter-spacing: .12em; color: var(--muted); padding: .35rem 0; }
.bk-cell { background: var(--paper); min-height: 3.3rem; display: grid; place-content: center; text-align: center; font-size: .8rem; color: color-mix(in srgb, var(--muted) 70%, transparent); border: 0; padding: .2rem; font-family: inherit; }
.bk-cell.in-stay { background: var(--celadon, #D5E2D6); color: var(--ink); }
.bk-fri { cursor: pointer; color: var(--ink); line-height: 1.2; }
.bk-fri b { font-family: var(--display); font-weight: 400; font-size: 1.05rem; }
.bk-fri small { font-size: .64rem; color: var(--green); }
.bk-fri:hover:not(:disabled) { box-shadow: inset 0 0 0 1px var(--green); }
.bk-fri.is-on { background: var(--green); color: #fff; }
.bk-fri.is-on small { color: #dfe8e0; }
.bk-fri:disabled { cursor: default; text-decoration: line-through; color: color-mix(in srgb, var(--muted) 60%, transparent); }
.bk-cal .bk-hint { margin: .7rem 0 0; font-size: .85rem; }

/* enquiry form */
.enquire { width: min(34rem, calc(100% - 2rem)); border: 0; padding: 1.6rem 1.8rem; background: var(--paper); color: var(--ink); }
.enquire::backdrop { background: rgba(0, 0, 0, .45); }
.enq-head { display: flex; justify-content: space-between; align-items: start; gap: 1rem; }
.enq-head h2 { font-size: 1.6rem; margin: 0 0 .6rem; }
.enq-close { font: inherit; font-size: 1.8rem; line-height: 1; background: none; border: 0; cursor: pointer; color: var(--ink); padding: 0 .2rem; }
.enq-form .bk-field input, .enq-form .bk-field textarea { width: 100%; }
.enq-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Form fields line up: labels on top, boxes the same height, drop-downs styled like text boxes */
.bk-controls { align-items: flex-start; }
.bk-field { align-content: start; }
.bk-field select { -webkit-appearance: none; appearance: none; border-radius: 0; line-height: 1.4; padding: .55rem 2.1rem .55rem .7rem; min-width: 5.5rem; cursor: pointer;
  background: var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%2323292A' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right .75rem center; }
.bk-field input { line-height: 1.4; }
.bk-field select:focus, .bk-field input:focus, .bk-field textarea:focus { outline: 2px solid color-mix(in srgb, var(--green) 45%, transparent); outline-offset: 1px; }
.bk-pair { margin-bottom: 0; }
.bk-pair .bk-field { margin-bottom: .3rem; }
.bk-under { margin: 0 0 1.1rem; }
.bk-news { font-size: .9rem; color: var(--muted); margin: .2rem 0 1rem; }
.bk-news input { accent-color: var(--green); }
.tickets .bk-form { max-width: 34rem; }
.bk-check input { width: 1.05rem; height: 1.05rem; flex: none; accent-color: var(--green); }

/* House page, second pass: calendar first, compact cells, tidy facility rows */
.prop-book { margin-top: 1.4rem; padding-top: 1.3rem; border-top: 1px solid var(--rule, #e3e0d8); }
.prop-book .bk-controls { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1fr); gap: .8rem; }
.prop-book .bk-controls .bk-field { margin: 0; }
.prop-book .bk-controls select { width: 100%; min-width: 0; }
.prop-book .bk-cal { margin-top: 1rem; }
.bk-cell { min-height: 2.75rem; }
.bk-fri b { font-size: 1rem; }
.amenities { margin-top: 1.6rem; grid-template-columns: repeat(auto-fill, minmax(11.5rem, 1fr)); align-items: start; }
.amenities li { align-items: flex-start; line-height: 1.35; }
.amenities li .ic { margin-top: -.1rem; }
.amenities li.no::after { top: .75rem; }
.read-more { margin-top: .2rem; }
@media (max-width: 600px) {
  .prop-head { padding-block: 1.4rem .8rem; }
  .key-facts { gap: .6rem 1.2rem; font-size: .92rem; }
  .prop-actions .btn { flex: 1 1 0; min-width: 0; }
  .prop-book .bk-controls { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr); gap: .5rem; }
  .bk-field > span { font-size: .7rem; letter-spacing: .1em; }
  .bk-cell { min-height: 2.5rem; padding: .1rem; }
  .bk-fri small { font-size: .56rem; }
  .amenities { grid-template-columns: repeat(2, minmax(0, 1fr)); font-size: .85rem; }
  .prop-map iframe { height: 14rem; }
}
.prop-book .bk-status:empty { min-height: 0; margin: 0; }
.prop-book + .amenities { margin-top: .8rem; }

/* House page, third pass: facts beside the name; a smaller, tidier calendar */
.prop-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 1rem 2.5rem; }
.prop-head .key-facts { margin: 0 0 .35rem; justify-content: flex-end; gap: .5rem 1.6rem; }
@media (max-width: 760px) { .prop-head .key-facts { justify-content: flex-start; } }
.prop-actions { margin-bottom: 1.4rem; }
.prop-book { max-width: 30rem; }
.prop-book > h2.caps { margin-bottom: .6rem; }
.prop-book .bk-field > span { font-size: .68rem; letter-spacing: .12em; }
.prop-book .bk-field select { padding: .4rem 1.9rem .4rem .6rem; font-size: .95rem; background-position: right .6rem center; }
.prop-book .bk-cal { margin-top: .8rem; }
.bk-cal-head { margin-bottom: .35rem; }
.bk-cal-head h4 { font-size: 1.05rem; }
.bk-nav { font-size: 1.3rem; padding: 0 .5rem; }
.bk-wd { font-size: .6rem; padding: .25rem 0; }
.bk-cell { min-height: 2.35rem; font-size: .72rem; padding: .1rem; }
.bk-fri b { font-size: .92rem; }
.bk-fri small { font-size: .56rem; }
.bk-cal .bk-hint { font-size: .8rem; margin-top: .5rem; }

/* Photograph bands below page text: every photograph shown whole, never cropped */
.photo-section { padding-block: 0 4.5rem; }
.photo-section .band-title { font-family: var(--display); font-weight: 400; font-size: clamp(1.6rem, 3vw, 2.2rem); margin: 0 0 1.4rem; }
.photo-band { display: grid; gap: 10px; }
.photo-row { display: flex; gap: 10px; }
.photo-row figure { margin: 0; flex: var(--r) 1 0; min-width: 0; }
.photo-row img { display: block; width: 100%; height: auto; }
.pb-wide { display: none; }
@media (min-width: 800px) {
  .pb-wide { display: grid; } .pb-narrow { display: none; }
  .photo-band, .photo-row { gap: 14px; }
}
.photo-section p.photo-credit { font-size: .62rem; line-height: 1.2; letter-spacing: .02em; color: var(--muted); font-style: italic; text-align: right; margin: 3px 0 0; }
/* Photo credits sit tight under the right-hand corner of the picture, with the space falling below them */
.interlude:has(figcaption) { padding-bottom: 2.5rem; }
.interlude figcaption { font-size: .62rem; line-height: 1.2; letter-spacing: .02em; text-align: right; margin: 3px 0 0; padding-inline: 16px; }
.interlude img { display: block; }
.bk-arrival { max-width: 24rem; margin: 1.6rem auto 0; }
.bk-arrival h3 { font-weight: 400; margin: 0 0 .5rem; }
.bk-arrival-text { white-space: pre-line; margin: 0 0 1rem; }
.page-hero figcaption { font-size: .62rem; line-height: 1.2; letter-spacing: .02em; text-align: right; margin: 3px 0 0; padding-inline: 16px; }
.page-hero img { display: block; }
/* The House: a pair of photographs within the text, kept to a narrower measure */
.photo-pair { max-width: 52rem; margin-inline: auto; padding-block: .5rem; }
.prose-cont { padding-top: 3rem; }
/* privacy notice: a quiet fold in the footer, like the Sources note */
.foot details.privacy { font-size: .8rem; color: var(--muted); margin-top: -1.5rem; max-width: 38rem; text-align: left; }
.foot details.privacy summary { cursor: pointer; font-style: italic; list-style: none; width: max-content; margin: 0 auto; }
.foot details.privacy summary::-webkit-details-marker { display: none; }
.foot details.privacy summary::after { content: " +"; }
.foot details.privacy[open] summary::after { content: " \2212"; }
.foot details.privacy summary:hover { color: var(--foot-ink); }
.foot details.privacy p { margin: .8rem 0 0; line-height: 1.55; }
.foot details.privacy b { font-weight: normal; font-style: italic; }
.foot details.privacy a { color: inherit; }
