/* Inner pages: one opening frame, then plain, well-spaced content. */

/* ---------- the opening frame ---------- */
.page-hero{ position:relative;min-height:88svh;display:grid;align-items:end;overflow:hidden;color:var(--stone);background:var(--ink); }
.page-hero-media{ position:absolute;inset:0;overflow:hidden; }
.page-hero-media img{ width:100%;height:100%;object-fit:cover; }
.page-hero-media::after{ content:"";position:absolute;inset:0;background:rgba(8,14,24,.36); }
.page-hero-text{ position:relative;z-index:2;padding:calc(var(--header-h) + 40px) var(--gutter) clamp(40px,8vh,88px);display:grid;gap:22px;max-width:1100px; }
.page-hero-text .lead{ max-width:38ch;color:var(--stone); }
.page-hero--plain{ min-height:0;align-items:start;background:var(--bg,var(--sky));color:var(--fg,var(--ink)); }
/* no photograph to fill the screen, so the title sits just under the header and the
   page starts straight after it, rather than at the foot of an empty block */
.page-hero--plain .page-hero-text{ padding-top:calc(var(--header-h) + clamp(28px,6vh,72px));padding-bottom:clamp(28px,5vh,56px); }
.page-hero--plain + .page-section{ padding-top:clamp(16px,3vh,40px); }
/* short pages on a tall screen: the last section stretches so the footer always sits at the
   foot of the window, rather than the page ending with a strip of sky under it */
body.page{ display:flex;flex-direction:column;min-height:100svh; }
body.page > main{ flex:1 0 auto;display:flex;flex-direction:column; }
body.page > main > section:last-child{ flex:1 0 auto; }
.page-hero--plain .page-hero-text .lead{ color:var(--fg-soft); }

/* ---------- section heads and the venue rows ---------- */
.page-section{ padding-block:clamp(72px,12vh,140px); }
.page-section + .page-section{ padding-top:0; }
.section-head{ display:grid;gap:14px;margin-bottom:clamp(32px,6vh,64px);max-width:60ch; }
.section-head p{ color:var(--fg-soft); }

.rows{ border-top:1px solid var(--line); }
.row{
  display:grid;gap:18px 32px;padding:clamp(22px,3vw,34px) 0;border-bottom:1px solid var(--line);
  grid-template-columns:1fr;align-items:start;
}
@media (min-width:900px){ .row{ grid-template-columns:minmax(200px,26%) 1fr minmax(160px,auto); } }
.row .frame{ aspect-ratio:4/3;border-radius:2px; }
.row .frame img{ transition:transform 1.1s var(--ease-out); }
.row:hover .frame img{ transform:scale(1.06); }
.row h3{ margin-bottom:6px; }
.row .what{ font-weight:600;margin-bottom:10px; }
.row p{ max-width:56ch; }
.row .row-links{ display:flex;flex-direction:column;gap:2px;align-items:flex-start; }
@media (max-width:899px){ .row .frame{ aspect-ratio:16/9; } }

.story{
  display:grid;gap:clamp(28px,4vw,64px);align-items:center;
  padding:clamp(40px,6vw,80px);border-radius:3px;background:var(--ink);color:var(--stone);
}
@media (min-width:900px){ .story{ grid-template-columns:1fr 1fr; } }
.story .lead{ color:var(--stone); }

/* ---------- questions ---------- */
.qa{ border-bottom:1px solid var(--line); }
.qa:first-child{ border-top:1px solid var(--line); }
.qa summary{
  list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:24px;align-items:center;
  padding:22px 0;min-height:44px;font-size:clamp(1.15rem,1rem + .6vw,1.45rem);font-weight:500;line-height:1.3;
}
.qa summary::-webkit-details-marker{ display:none; }
.qa summary i{ position:relative;flex:none;width:16px;height:16px; }
.qa summary i::before,.qa summary i::after{ content:"";position:absolute;left:0;right:0;top:50%;height:1.5px;background:currentColor;transition:transform var(--t-m) var(--ease-in-out); }
.qa summary i::after{ transform:rotate(90deg); }
.qa[open] summary i::after{ transform:rotate(0deg); }
.qa-body{ overflow:hidden; }
.qa-body > div{ padding:0 0 26px;max-width:62ch;color:var(--fg-soft); }
.qa-body a{ color:var(--fg); }

/* ---------- contact ---------- */
.contact-grid{ display:grid;gap:clamp(28px,4vw,56px); }
@media (min-width:900px){ .contact-grid{ grid-template-columns:repeat(2,1fr); } }
.contact-block{ border-top:1px solid var(--line);padding-top:22px; }
.contact-block h2,.contact-block h3{ margin-bottom:10px; }
.contact-block p + p{ margin-top:8px; }
.big-line{ font-family:var(--f-display);font-weight:var(--dw);font-stretch:var(--dst);font-size:calc(clamp(1.8rem,3.4vw,3rem) * var(--ds));line-height:1.05;text-decoration:none;display:inline-block; }

/* ---------- articles ---------- */
.article-head{ padding:calc(var(--header-h) + clamp(48px,10vh,120px)) var(--gutter) clamp(32px,5vh,56px);max-width:1100px; }
.article-head time{ display:block;margin-bottom:18px;color:var(--fg-soft); }
.article-figure{ margin:0 var(--gutter);border-radius:3px;overflow:hidden;aspect-ratio:16/8; }
.article-figure img{ width:100%;height:100%;object-fit:cover; }
.article-body{ padding:clamp(40px,7vh,80px) var(--gutter);display:grid;gap:1.1em;max-width:calc(64ch + 2 * var(--gutter));margin-inline:auto;font-size:clamp(1.05rem,1rem + .25vw,1.2rem);line-height:1.65; }
.article-body .byline{ color:var(--fg-soft);font-size:var(--fs-small); }
.news-index{ display:grid;gap:clamp(40px,5vw,72px); }
@media (min-width:900px){ .news-index{ grid-template-columns:repeat(3,1fr); } }
.news-index a{ text-decoration:none; }
.news-index .frame{ aspect-ratio:4/3;margin-bottom:18px;border-radius:2px; }
.news-index time{ color:var(--fg-soft); }
.news-index h2{ margin-top:8px; }

/* a visible gap in the facts: stays on the page until the client fills it */
.hole{ display:inline-block;padding:3px 8px;border:1px dashed currentColor;border-radius:3px;font-size:var(--fs-small);opacity:.85; }

/* ---------- 404 ---------- */
.lost{ min-height:100svh;display:grid;place-content:center;justify-items:center;text-align:center;gap:24px;padding:var(--gutter); }
.lost svg{ width:min(70vw,520px);fill:var(--ink); }
@media (min-width:900px){ .row.row--text{ grid-template-columns:1fr auto; } }
.post-meta{ margin-top:18px;color:var(--fg-soft);font-size:var(--fs-small); }
.post-date{ display:block;margin-top:8px;color:var(--fg-soft);font-size:var(--fs-small); }
.article-head .post-meta time{ display:inline;margin:0; }

/* ---------- the private hire enquiry form (on the ink card) ---------- */
.enquiry{ align-items:start; }
@media (min-width:900px){ .enquiry{ grid-template-columns:.8fr 1.2fr; } }
.enq-form{ color-scheme:dark; }
.enq-grid{ display:grid;gap:22px 28px; }
@media (min-width:600px){ .enq-grid{ grid-template-columns:1fr 1fr; } .enq-wide{ grid-column:1 / -1; } }
.enq-field{ display:grid;gap:8px;min-width:0;margin:0;padding:0;border:0; }
.enq-field > span,.enq-field legend{ padding:0;font-size:var(--fs-small);letter-spacing:.02em;color:rgba(244,239,231,.78); }
.enq-field i{ font-style:normal;opacity:.7; }
.enq-field input,.enq-field select,.enq-field textarea{
  width:100%;min-height:48px;padding:10px 0;font:inherit;font-size:max(1rem,16px);color:var(--stone);
  background:transparent;border:0;border-bottom:1px solid rgba(244,239,231,.4);border-radius:0;
  transition:border-color var(--t-s) var(--ease-out);
}
.enq-field textarea{ resize:vertical;min-height:84px; }
.enq-field select{ appearance:none;-webkit-appearance:none;padding-right:28px;cursor:pointer;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23F4EFE7' stroke-width='1.4'/%3E%3C/svg%3E") right 4px center no-repeat; }
.enq-field select option{ color:var(--ink);background:var(--stone); }
.enq-field input:focus-visible,.enq-field select:focus-visible,.enq-field textarea:focus-visible{ outline:none;border-bottom-color:var(--peach);box-shadow:0 1px 0 var(--peach); }
.enq-choice{ display:flex;gap:10px;padding-top:4px; }
.enq-choice label{ position:relative;flex:1; }
.enq-choice input{ position:absolute;opacity:0;inset:0;margin:0;cursor:pointer; }
.enq-choice span{ display:grid;place-items:center;min-height:46px;padding:0 16px;border:1px solid rgba(244,239,231,.4);border-radius:999px;transition:background-color var(--t-s) var(--ease-out),color var(--t-s) var(--ease-out),border-color var(--t-s) var(--ease-out); }
.enq-choice input:checked + span{ background:var(--stone);color:var(--ink);border-color:var(--stone); }
.enq-choice input:focus-visible + span{ outline:2px solid var(--peach);outline-offset:2px; }
.enq-field.is-bad input,.enq-field.is-bad select,.enq-field.is-bad textarea,.enq-field.is-bad .enq-choice span{ border-color:var(--peach); }
.enq-err{ font-size:var(--fs-small);color:var(--peach); }
.enq-hp{ position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden; }
.enq-ts:empty{ display:none; }
.enq-ts{ margin-top:22px; }
.enq-status{ min-height:1.5em;margin-top:22px;font-size:var(--fs-small);color:rgba(244,239,231,.85); }
.enq-status a{ color:var(--stone); }
.enq-send{ margin-top:10px;width:100%; }
@media (min-width:600px){ .enq-send{ width:auto; } }
.enq-send:disabled{ opacity:.6;cursor:progress; }
.enq-done{ display:grid;gap:14px;outline:none; }
.enq-done p:last-child{ color:rgba(244,239,231,.85);max-width:46ch; }
