/* Press (rebuilt 12 Sep 2026 after Nuo: "way too basic", "full page width", "quicker to scroll", logos "much nicer").
   page.css gives the tokens, nav, hero, chapter rail, mosaic tiles and lightbox; this file adds what is particular
   to the page. Every section runs the full width between the page gutters - no max-width column (Nuo, 12 Sep). */

section.ps{padding:72px var(--pad) 0}
section.ps.first .hd{border-top:0;padding-top:0}   /* straight under the hero: no rule above the first heading (the intro paragraph went on 12 Sep) */
section.ps:last-of-type{padding-bottom:96px}
.ps .hd{border-top:1px solid rgba(0,0,0,.12);padding-top:28px;margin-bottom:26px;align-items:flex-end}
.ps .hd h2{margin:0}
.ps .hd p{margin:0;font-size:16px;line-height:1.45;color:#2b2926;max-width:56ch;text-align:right}
.enq h2.caps,.ps h2.caps{font-size:clamp(28px,2.8vw,40px)}

/* ---- awards: the grid takes two-thirds, the LinkedIn spotlight the third (Nuo, 13 Sep 2026); the card itself is ../awards.css ----
   Four columns in the two-thirds (Nuo, of 3 / 4 / 5 offered: three rows, about the spotlight's height; at five the cards were
   ~160px on his screen and the longest prize ran to seven lines). Under 1100px the two stack, the grid goes to three columns
   at full width and the card sits left at 560px; under 860px two columns, as before. Nothing here styles .awt - audit_press.js
   checks the card's classes against this file. */
/* align-items:stretch, and the card a flex column that fills its cell (Nuo, 13 Sep 2026: "make sure the LinkedIn card is bottom
   aligned with the second row of the awards cards"): with eight awards the grid is exactly two rows of four, and the card's
   foot meets the second row's foot at EVERY width because the card takes the cell's height and the photograph takes what is
   left under the header (object-fit:cover - a sliver cropped on a ~1400px screen where the card is about the grid's height
   already, a letterbox on a 2,700px monitor where two rows are short). Since the same night the title sits on the heading row
   (.awhd.split below), so the card's HEAD meets the first row's head too - the column holds the card alone above 1100px. */
.awsplit{display:grid;grid-template-columns:2fr 1fr;gap:14px 28px;align-items:stretch}
.awsplit.solo{display:block}
.awg{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.awsplit.solo .awg{grid-template-columns:repeat(5,1fr)}
/* the spotlight: the careers page's induction-day card, less LinkedIn's player - our header over the photograph, the caption
   laid on the photograph as their compact frame lays it, the whole card the link. The in-bug is the footer's white artwork
   inverted, 18px from the edge, as on Careers. */
.lipost{display:flex;flex-direction:column;min-height:0}
/* THE CARD IS LEVEL WITH THE CARDS TOP AND BOTTOM, AND THE TITLE SITS ON THE HEADING ROW (13 Sep 2026, night - Nuo: "make the
   LinkedIn card both top and bottom aligned with the 2 rows of awards cards, display the text The Sunday Times Hundred 2025
   above the LinkedIn card"). With the title inside the column the card started ~60px under the grid's top. So above 1100px:
   the heading row becomes the grid's own two columns (.awhd.split - the same 2fr 1fr and 28px gutter as .awsplit, so the title
   starts exactly at the card's left edge), "Awards" and the title on ONE BASELINE at the title's present size (his two
   answers), and the column's own .vhead is hidden - the card is the column's only child and stretch does the rest. Under
   1100px the card stacks under the grid, the heading row is far from it, so the two swap: .vhead shows, .sptitle hides.
   press.js draws both; one is always display:none. */
.awhd.split{display:grid;grid-template-columns:2fr 1fr;gap:0 28px;align-items:baseline}
.awhd .sptitle{margin:0;font-size:clamp(20px,1.6vw,24px)}
.lipost .vhead{display:none;align-items:center;justify-content:space-between;gap:12px 16px;flex-wrap:wrap;margin-bottom:14px;flex:none}
.lipost .vhead h3{margin:0;font-size:clamp(20px,1.6vw,24px)}
.licard{display:flex;flex-direction:column;flex:1;min-height:0;background:#fff;border-radius:16px;overflow:hidden;color:var(--ink);transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
@media (hover:hover){.licard:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(0,0,0,.08)}}
.lihead{display:flex;align-items:center;gap:12px;padding:14px 18px 14px 16px;flex:none}
.liav{flex:0 0 48px;width:48px;height:48px;border-radius:8px;background:var(--sand);display:grid;place-items:center}
.liav img{width:38px;height:auto;display:block}
.liwho{display:flex;flex-direction:column;gap:2px;min-width:0}
.liwho b{font-family:var(--head);font-weight:500;font-size:15px;letter-spacing:-0.01em;color:#111;line-height:1.2}
.liwho span{font-size:13px;line-height:1.2;color:#5b5652}
.limark{margin-left:auto;display:block;width:26px;height:26px;flex:0 0 26px}
.limark img{width:100%;height:100%;display:block;filter:invert(1);opacity:.85;transition:opacity .2s}
@media (hover:hover){.licard:hover .limark img{opacity:1}}
.lipic{position:relative;display:block;flex:1;min-height:240px;background:#000;overflow:hidden}   /* fills the card under the header; 240px is the least photograph worth showing */
.lipic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s var(--ease)}   /* absolute: its box is the slot's, whatever gave the slot its height */
@media (hover:hover){.licard:hover .lipic img{transform:scale(1.04)}}
.licap{position:absolute;left:0;right:0;top:0;padding:14px 16px 44px;color:#fff;font-size:15px;line-height:1.35;background:linear-gradient(rgba(0,0,0,.6),rgba(0,0,0,0));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}   /* one line, cut with an ellipsis as LinkedIn cuts it */

/* ---- coverage: the award card in the Awards section's geometry, with the Instagram post in the right third (Nuo, 27 Sep 2026) ----
   ONE GRID OF FIVE COLUMNS, so the post can span rows 1-2 while the opened rows stay in four columns under it. The fifth column
   is (W - 28px)/3 + 14px and the post carries a 14px left margin: the post is then (W - 28)/3 wide with a 28px gutter, and each
   card is ((W - 28) x 2/3 - 42)/4 - exactly the Awards section's .awsplit 2fr 1fr / 28px gutter / four columns at 14px, so the
   two sections' edges line up at every width. The cards are pinned to columns 1-4 by :nth-of-type (the post is an <aside>, the
   cards <div>s), or auto-placement would drop card nine into the fifth column under the post. */
.cvg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) calc((100% - 28px) / 3 + 14px);gap:14px;align-items:stretch}
.cvg > .cvspot{grid-column:5;grid-row:1 / span 2;margin-left:14px}
.cvg > div.cvt:nth-of-type(4n+1){grid-column:1}.cvg > div.cvt:nth-of-type(4n+2){grid-column:2}
.cvg > div.cvt:nth-of-type(4n+3){grid-column:3}.cvg > div.cvt:nth-of-type(4n+4){grid-column:4}
.cvg.solo{grid-template-columns:repeat(4,minmax(0,1fr))}
.cvt .lg .word{text-transform:uppercase;font-size:20px;letter-spacing:.02em}   /* the outlet in type where an award has its logo */
.cvt .y{letter-spacing:.02em}
.cvt .pz{font-size:15px}
.cvt .cvq{font-size:13px;line-height:1.4;color:#2b2926}
.cvt .cite.none{color:#8a857f}
.cvspot .licap{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;padding-bottom:52px}   /* two lines, not LinkedIn's one: the caption Nuo chose is the post's whole point, and one line cut it at "Daisy…" (27 Sep 2026) */

/* ---- about: the boilerplate across the full width, one column, a size up (Nuo, 12 Sep: "use the full page width for the text") ---- */
.boiler{font-size:clamp(19px,1.5vw,27px);line-height:1.4;letter-spacing:-0.01em;color:#2b2926;max-width:none;hyphens:auto;-webkit-hyphens:auto;text-wrap:pretty}
.boiler p{margin:0}
.about .more{margin-top:8px;font-size:15px;color:#3f3c39}
.about .more a{text-decoration:underline;text-underline-offset:3px}

/* ---- enquiries: a black band, the mailbox as the headline ---- */
.enq{background:var(--ink);color:var(--sand);margin-top:72px;padding:72px var(--pad);display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.enq h2{margin:0 0 18px}
.enq p{font-size:17px;line-height:1.5;color:rgba(242,236,233,.8);max-width:46ch}
.enq .mail{font-family:var(--head);font-weight:400;font-size:clamp(26px,3vw,52px);letter-spacing:-0.03em;line-height:1;color:var(--sand);display:inline-block;border-bottom:3px solid var(--blue);padding-bottom:8px;transition:color .2s,border-color .2s;overflow-wrap:anywhere}
@media (hover:hover){.enq .mail:hover{color:#fff;border-color:#fff}}
.enq .right{display:flex;flex-direction:column;align-items:flex-end;gap:22px;text-align:right}
.enq .k{color:rgba(242,236,233,.7)}
.enq .dgsoc a{font-family:var(--head);text-transform:uppercase;font-size:12px;letter-spacing:.08em;color:var(--sand);min-height:24px} /* 18px tall as a bare flex row (25 Sep 2026) */

/* ---- logos: the two wordmark tiles, then the sixteen places on their own inks ----
   Nuo, 13 Sep 2026, when the count reached sixteen: four to a row, and short enough that all sixteen sit in one
   screen. 5:2 tiles: at 1900px a tile is ~465x186 and four rows are ~790px; at 1200px ~290x116 and ~470px. The
   mark is capped to the slot's height in press.js so Larry's and Ziggy's tall scripts cannot spill out of a
   short tile. Under 1100px the tile goes to 2:1 (four still fit); under 860px two to a row, eight rows. */
.wmg{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:36px}
.wmt{border-radius:14px;padding:44px 24px 20px;display:flex;flex-direction:column;align-items:center;gap:22px;color:var(--ink);transition:transform .25s var(--ease)}
@media (hover:hover){.wmt:hover{transform:translateY(-3px)}}
.wmt.white{background:#fff}.wmt.black{background:#000;color:var(--sand)}
.wmt img{height:44px;width:auto;display:block}
.wmt .lab{display:flex;justify-content:space-between;align-self:stretch;font-family:var(--head);text-transform:uppercase;font-size:11px;letter-spacing:.08em;opacity:.75}
.wmt .lab b{font-weight:500}
.places{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.plt{position:relative;border-radius:14px;aspect-ratio:5/2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:14px 18px 12px;color:var(--ink);overflow:hidden;transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
@media (hover:hover){.plt:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(0,0,0,.14)}}
.plt.pink{background:var(--pink)}.plt.orange{background:var(--orange)}.plt.blue{background:var(--blue);color:var(--sand)}
.plt .markslot{display:flex;align-items:center;justify-content:center;flex:1;width:100%;line-height:0}
.plt .markslot canvas{display:block;max-width:100%}
.plt .n{font-family:var(--head);text-transform:uppercase;font-size:11px;letter-spacing:.08em;margin-top:8px;text-align:center}
.plt .dl{position:absolute;right:12px;top:12px;font-family:var(--head);font-size:10px;letter-spacing:.06em;text-transform:uppercase;opacity:0;transition:opacity .2s}
@media (hover:hover){.plt:hover .dl,.plt:focus-visible .dl{opacity:.85}}
.markslot{line-height:0}

/* ---- photographs: the shared mosaic (page.css), captions by place or dish ---- */
.photos .mosaic{margin-top:4px}
.tile figcaption{position:absolute;left:12px;bottom:10px;font-family:var(--head);text-transform:uppercase;font-size:11px;letter-spacing:.08em;color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.6);opacity:0;transform:translateY(6px);transition:opacity .25s,transform .25s}
@media (hover:hover){.tile:hover figcaption,.tile:focus-visible figcaption{opacity:1;transform:none}}
.photos .ask{margin-top:22px;font-size:15px;color:#3f3c39}
.photos .ask a{text-decoration:underline;text-underline-offset:3px}

@media (max-width:1100px){
  .awsplit{grid-template-columns:1fr;gap:28px}.lipost{max-width:560px}   /* the spotlight stacks under the grid, left, at a card's width */
  .awhd.split{display:flex}.awhd .sptitle{display:none}.lipost .vhead{display:flex}   /* stacked: the title goes back above the card; the heading row is page.css's flex row again */
  .licard{flex:none}.lipic{flex:none;aspect-ratio:1/1;min-height:0}   /* stacked, nothing to stretch to: the photograph is square again */
  .awg,.awsplit.solo .awg{grid-template-columns:repeat(3,1fr)}.plt{aspect-ratio:2/1}   /* .places stays four across: 16 is 4x4, three across leaves an orphan row */
  .cvg{grid-template-columns:repeat(3,minmax(0,1fr))}.cvg > div.cvt{grid-column:auto!important}   /* stacked, as the awards: three across */
  .cvg > .cvspot{grid-column:1 / -1;grid-row:auto;margin-left:0;order:1}.cvg > div.cvt:nth-of-type(n+9){order:2}   /* the post after the eight, before the rest */
}
@media (max-width:860px){
  section.ps{padding:48px var(--pad) 0}.ps .hd{align-items:flex-start}.ps .hd p{text-align:left;font-size:15px}   /* the desktop rule's flex-end beat page.css's phone rule (two classes against one) and put the heading on the right - measured 12 Sep */
  .awg,.awsplit.solo .awg{grid-template-columns:1fr 1fr;gap:10px}   /* the card's own phone rules are in awards.css */
  .lipost{max-width:none}.licap{font-size:14px}
  .cvg{grid-template-columns:1fr 1fr;gap:10px}
  .boiler{font-size:18px}
  .enq{grid-template-columns:1fr;padding:48px var(--pad);gap:26px}.enq .right{align-items:flex-start;text-align:left}.enq .mail{font-size:clamp(22px,7vw,30px)}
  .wmg{grid-template-columns:1fr}.wmt{padding:32px 18px 16px}.wmt img{height:34px}
  .places{grid-template-columns:1fr 1fr;gap:10px}.plt{aspect-ratio:2/1;padding:12px 12px 10px}   /* .plt .n stays 11px: a place name, the names floor */
  .tile figcaption{opacity:1;transform:none}   /* hover-only captions never show on touch */
  .quiet{padding:28px var(--pad) 48px}
}

/* the press pack's gate (23 Sep 2026; press.js PACK) */
.gate{min-height:100svh;display:grid;place-items:center;padding:var(--nav) var(--pad) 60px}
.gate form{max-width:420px;width:100%}
.gate h1{font-size:clamp(32px,4vw,56px);margin-bottom:16px}
.gate p{font-size:17px;line-height:1.5;color:#2b2926;margin-bottom:24px}
.gate label{display:block;margin-bottom:16px}.gate label .k{display:block;margin-bottom:8px}
.gate input{width:100%;font:inherit;font-size:18px;padding:12px 14px;border:2px solid var(--ink);border-radius:8px;background:#fff;color:var(--ink)}
.gate .no{color:#B3261E;font-size:14px;margin-top:12px}
/* PHONE, 27 Sep 2026 (Nuo: "make all the pill buttons linking to site pages slightly smaller so they fit on fewer lines on mobile"):
   the coverage cards' venue pills at 10px with tighter sides; each still 24px tall, the tap floor. Desktop unchanged. */
@media (max-width:860px){.cvt.awt .awsites{gap:4px}.cvt.awt .awpill{font-size:10px;padding:6px 5px;letter-spacing:-0.01em;min-height:24px;box-sizing:border-box;display:inline-flex;align-items:center}}
/* == COVERAGE CARDS ON SHARED ROWS 28 SEP 2026 == Nuo: "for these press coverage cards, top align all the article titles". The
   masthead slot was already a fixed 72px; the date line was not - "26th September 2026 · Niamh Curran" wraps to two lines where
   "23rd January 2026" takes one, so the titles under them sat 28px apart. SHARED TRACKS, not a min-height (the /requests/ lesson:
   a margin answer was asked for three times): each card is a subgrid of five rows - masthead, date, title, pills, Read the article -
   so every card in a row shares each row's height and the titles start on one line whatever the dates above them do. Pills sit at
   the foot of their row, just above the link, as before. A card with no pills leaves row 4 empty. The Instagram post spans the first
   two card rows, which are now ten tracks. Engines without subgrid (Safari < 16) keep the old flex card. */
@supports (grid-template-rows:subgrid){
  .cvg > .cvt{display:grid;grid-template-rows:subgrid;grid-row:span 5;row-gap:0;align-content:stretch}
  .cvg > .cvt > .lg{grid-row:1}.cvg > .cvt > .y{grid-row:2}.cvg > .cvt > .pz{grid-row:3}
  .cvg > .cvt > .awsites{grid-row:4;align-self:end}
  .cvg > .cvt > .cite{grid-row:5;align-self:end}
  .cvg > .cvspot{grid-row:1 / span 10}
}
@media (max-width:1100px){@supports (grid-template-rows:subgrid){.cvg > .cvspot{grid-row:auto}}}
/* the outlets' mastheads (build_press_logos.py, 29 Sep 2026): the file's width attribute is its display width - one visual area,
   capped - and height follows. max-width keeps a long mark inside a narrow card on a phone. awards.css hides any .lg img on a card
   without .haslogo (0,3,1, and it loads after this sheet), so this rule is 0,4,1 - and never names .awt, which audit_press.js keeps
   to awards.css. */
.cvg > .cvt .lg img.cvlogo{display:block;max-width:100%;height:auto;object-fit:contain}

/* == THE LANDING PAGE'S CARD GAP 30 SEP 2026 == (Nuo, after an interview: "for all the dish cards, use the same dynamic spacing as the site cards on the landing page - apply this to all the similar cards on all pages"). Above 1440px the gap between cards grows with the screen, +1px per 15px, to 48px at 1920 - index.html's --gw; never below the gap the grid already had. Phones unchanged. */
@media (min-width:1441px){.press-gap,.awg,.places,.cvg,.awsplit,.awhd.split{--pg:clamp(14px, calc(16px + (100vw - 1440px) / 15), 48px)}.awg,.places{gap:var(--pg)}.cvg{gap:var(--pg);grid-template-columns:repeat(4,minmax(0,1fr)) calc((100% - 2 * var(--pg)) / 3 + var(--pg))}.awsplit{column-gap:calc(2 * var(--pg))}.awhd.split{column-gap:calc(2 * var(--pg))}}

/* PRESS ENQUIRIES ON DARK SANDSTONE (6 Nov 2026 website meeting: "bring a dark sandstone colour back down here"): the footer's #E6DDD7,
   ink type; the sub-line went ("remove that text ... interviews, photographs, facts and figures") */
.enq{background:#E6DDD7;color:#000}
.enq a,.enq .mail,.enq .dgsoc a{color:#000}
.enq .k{color:#3f3c39}
.enq .mail{border-bottom-color:#000}
@media (hover:hover){.enq .mail:hover{color:#0F4A2C;border-color:#0F4A2C}}
.enq .dgsoc img{filter:invert(1)!important;opacity:1;width:20px;height:20px}   /* black at full strength, 20px, on the light band (Nuo, 7 Nov 2026: "make social logos more visible") */
.enq .dgsoc a{font-size:13px;gap:9px}
/* THE ADDRESS ON ONE LINE, ALWAYS (Nuo, 7 Nov 2026: "Always show email address here on one line, adjust font size"): the column is a
   container and the size is fitted to it - 24 characters of IBM Plex Mono (0.6em each, less the -0.03em tracking) is 13.7em; /14.4 leaves slack */
.enq .right{container-type:inline-size;min-width:0;width:100%}
.enq .mail{white-space:nowrap;font-size:min(52px,calc(100cqi / 14.4))!important}
/* == FULL WIDTH, TIGHTER (Nuo, 6 Nov 2026, 12:17: "use less space between the cards so there is space to make cards larger / use the
   same width as other pages") == the awards and coverage rows run gutter to gutter like every other page (layout.css held them to the
   old 1440px column), and every card gap is 14px at every width, so the space goes to the cards. */
html body :is(.awsplit, .awsplit:not(.solo), .awhd.split, .cvg, .cvg + .dgmore){max-width:none!important;margin-inline:0!important}   /* !important: layout.css names #ids in its :is() */
html body .awg, html body .places, html body .cvg{gap:14px!important}
html body .awsplit, html body .awhd.split{column-gap:20px!important}
/* coverage lines up with awards again (Nuo, 8 Nov 2026: "align all the cards here between coverage and awards"): the awards row is .awsplit
   2fr 1fr with a 20px gutter, four cards at 14px; so the fifth column is (W - 20px)/3 + 6px and the post carries a 6px left margin (the 27 Sep
   geometry above with the 20px gutter): the post is (W - 20)/3 and each card ((W - 20) x 2/3 - 42)/4, the awards' own widths. */
@media (min-width:1101px){html body .cvg:not(.solo){grid-template-columns:repeat(4,minmax(0,1fr)) calc((100% - 20px) / 3 + 6px)!important}html body .cvg > .cvspot{margin-left:6px!important}html body .awsplit:not(.solo){grid-template-columns:minmax(0,2fr) minmax(0,1fr)}html body .awsplit:not(.solo) .awg{grid-template-columns:repeat(4,minmax(0,1fr))}}   /* minmax(0,..): a wide award card no longer stretches the 2fr at 1101-1279px */

/* NOTHING SPILLS OUT OF A PRESS CARD (Nuo, 7 Nov 2026: "fix the formatting of this card, don't let it spill out of the card!", Hot Dinners'
   "Daisy Green at Holland Park" at 1280-1440px): a card never grows past its track, the masthead shrinks to the card, and a long venue pill
   wraps after "Daisy Green" (kept whole by .nb) instead of pushing the card wider */
.cvg > .cvt{min-width:0}
.cvg > .cvt .lg img.cvlogo{max-width:100%!important;height:auto}
.cvt.awt .awsites{max-width:100%}
.cvt.awt .awpill{white-space:normal;max-width:100%;box-sizing:border-box;text-align:center}

/* == FOLLOW US, MOVED FROM /about/ (Nuo, 7 Nov 2026: "move the follow us section to the end of the press page, after press enquiries /
   show 3 cards on desktop side by side, one for instagram, one for tiktop and one for Linkedin like we had before") ==
   Every .follow and dialog#post rule of about/about.css, in its cascade order and with its @media wrapper, copied here by script
   (the one-card and "also on" rules of 6-7 Nov left behind: three cards again). The comments behind each rule stay in about.css's
   history (git). press.js builds the band and wires the dialog; the feeds are about/about-social.js. */
.follow{background:#000;color:var(--sand);padding:110px var(--pad) 40px;margin-top:40px;overflow:hidden}
.follow .fhd{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:44px}
.follow h2.big{font-size:clamp(48px,7vw,112px);letter-spacing:-0.035em;line-height:.95;margin:0;text-wrap:balance}
.follow .sub{max-width:40ch;font-size:clamp(15px,1.1vw,18px);line-height:1.5;color:rgba(242,236,233,.72);margin:0 0 10px;text-align:right}
.follow .ftiles{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px;align-items:stretch}
.follow .ftile{position:relative;display:flex;flex-direction:column;gap:14px;min-height:240px;padding:26px 28px 28px;border-radius:18px;background:#161412;color:var(--sand);text-decoration:none;overflow:hidden;transition:opacity .7s var(--ease) var(--d,0s),transform .7s var(--ease) var(--d,0s),translate .5s var(--ease),background .5s var(--ease),box-shadow .5s var(--ease)}
.follow .ftile .top{display:flex;justify-content:space-between;align-items:center;gap:12px;color:inherit;text-decoration:none}
.follow .ftile .k{display:inline-flex;align-items:center;gap:10px;color:var(--sand);opacity:.75;font-family:var(--head);text-transform:uppercase;font-size:15px;letter-spacing:.14em;transition:opacity .3s}
.follow .ftile .ico{display:inline-flex;align-items:center;flex:0 0 auto}
.follow .ftile .ico:empty{display:none}
.follow .ftile .ico .dgi{width:24px;height:24px;opacity:1;filter:none}
.follow .ftile .h{display:block;font-size:clamp(22px,2.2vw,40px);letter-spacing:-0.035em;line-height:.95;overflow-wrap:anywhere;margin-top:auto;color:inherit;text-decoration:none}
.follow .ftile.has-feed .h{margin-top:6px;margin-bottom:6px}
.follow .ftile .go{display:block;flex:0 0 auto}
.follow .ftile .pill.light{padding:9px 16px;font-size:13px;border-color:rgba(242,236,233,.55);color:var(--sand);transition:background .3s,color .3s,border-color .3s}
@media (hover:hover){
  .follow .ftile:hover{translate:0 -6px;box-shadow:0 30px 60px rgba(0,0,0,.55)}
  .follow .ftile.instagram:hover{background:var(--pink)}
  .follow .ftile.tiktok:hover{background:var(--blue)}
  .follow .ftile.linkedin:hover{background:var(--orange)}
  .follow .ftile:hover .k{opacity:1}
  .follow .ftile:hover .pill.light{background:var(--sand);color:#000;border-color:var(--sand)}
}
.follow .ftile .top:focus-visible,.follow .ftile .h:focus-visible{outline:3px solid var(--sand);outline-offset:3px;border-radius:6px}
.follow .feed{margin-top:auto}
.follow .feed.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.follow .post{position:relative;display:block;aspect-ratio:3/4;border-radius:10px;overflow:hidden;background:#221f1c;color:var(--sand);text-decoration:none;transition:opacity .6s var(--ease) var(--d,0s),transform .6s var(--ease) var(--d,0s),translate .4s var(--ease),box-shadow .5s var(--ease)}
.follow .post .media{position:absolute;inset:0;display:block}
.follow .post .media img,.follow .post .media video{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.001);transition:transform 1s var(--ease)}
@media (hover:hover){
  .follow .post:hover .media img,.follow .post:hover .media video,.follow .post:focus-visible .media img,.follow .post:focus-visible .media video{transform:scale(1.08)}
}
.follow .post.live .media img{transform:scale(1.09);transition:transform 4.6s linear}
.follow .post.live .media video{transform:scale(1.03);transition:transform 1.4s var(--ease)}
.follow .post::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 40%,rgba(0,0,0,.72) 100%);opacity:0;transition:opacity .4s}
.follow .post.nomedia::after{opacity:1}
@media (hover:hover){
  .follow .post:hover::after,.follow .post:focus-visible::after{opacity:1}
  .follow .post:hover,.follow .post:focus-visible{translate:0 -4px;box-shadow:0 18px 40px rgba(0,0,0,.55);z-index:2}
}
.follow .post:focus-visible{outline:3px solid var(--sand);outline-offset:2px}
.follow .post .pin,.follow .lpost .pin{position:absolute;top:8px;left:8px;z-index:1;display:inline-flex;align-items:center;gap:4px;padding:4px 7px 4px 5px;border-radius:999px;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);font-family:var(--head);font-weight:500;text-transform:uppercase;font-size:10px;letter-spacing:.1em;line-height:1;color:var(--sand)}
.follow .post .pin svg,.follow .lpost .pin svg{width:11px;height:11px;fill:currentColor;display:block}
.follow .post .kind{position:absolute;top:8px;right:8px;z-index:1;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;color:var(--sand);filter:drop-shadow(0 1px 3px rgba(0,0,0,.6))}
.follow .post .kind svg{width:14px;height:14px;fill:currentColor;display:block}
.follow .post .cap{position:absolute;left:10px;right:10px;bottom:9px;z-index:1;display:flex;flex-direction:column;gap:3px;transform:translateY(8px);opacity:0;transition:opacity .35s var(--ease),transform .45s var(--ease)}
@media (hover:hover){
  .follow .post:hover .cap,.follow .post:focus-visible .cap{opacity:1;transform:none}
}
.follow .post .t{font-family:var(--head);font-weight:400;letter-spacing:-0.01em;font-size:13px;line-height:1.25;text-wrap:pretty;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.follow .post.nomedia .media{display:none}
.follow .post.nomedia{background:#1d1a17 radial-gradient(120% 90% at 100% 0%,rgba(242,236,233,.08),rgba(242,236,233,0) 60%)}
.follow .post.nomedia .cap{opacity:1;transform:none}
.follow .post.nomedia .t{-webkit-line-clamp:4}
.follow .feed.rows .rin{display:flex;flex-direction:column;border-top:1px solid rgba(242,236,233,.14)}
.follow .lpost{position:relative;display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid rgba(242,236,233,.14);color:inherit;text-decoration:none;transition:opacity .6s var(--ease) var(--d,0s),transform .6s var(--ease) var(--d,0s),border-color .4s}
.follow .lpost .media{position:relative;display:block;flex:0 0 auto;width:min(36%,220px);aspect-ratio:4/3;border-radius:8px;overflow:hidden;background:#221f1c}
@media (min-width:1101px){
  .follow .ftile .feed.rows{position:relative;flex:1 1 0;min-height:0}
  .follow .feed.rows .rin{position:absolute;inset:0}
  .follow .lpost{flex:1 1 0;min-height:0;overflow:hidden}
  .follow .lpost .media{height:100%;width:auto;max-width:45%}
}
@media (max-width:1400px) and (min-width:1101px){
  .follow .lpost{padding:10px 0;gap:12px}
  .follow .lpost .t{-webkit-line-clamp:2;font-size:14px}
}
.follow .lpost .media img,.follow .lpost .media video{width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s var(--ease)}
@media (hover:hover){
  .follow .lpost:hover .media img{transform:scale(1.06)}
}
.follow .lpost .media .kind{position:absolute;right:6px;bottom:6px;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(0,0,0,.55);color:var(--sand)}
.follow .lpost .media .kind svg{width:11px;height:11px;fill:currentColor;display:block}
.follow .lpost .txt{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1 1 auto}
.follow .lpost .meta{display:flex;align-items:center;gap:6px 10px;min-width:0}
.follow .lpost .pin{position:static;background:rgba(242,236,233,.12);backdrop-filter:none;-webkit-backdrop-filter:none}
.follow .lpost .rp{font-family:var(--head);text-transform:uppercase;font-size:10px;letter-spacing:.1em;line-height:1.3;color:rgba(242,236,233,.6);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (hover:hover){
  .follow .ftile:hover .lpost .rp{color:rgba(242,236,233,.85)}
}
.follow .lpost .t{font-family:var(--head);font-weight:400;font-size:15px;line-height:1.35;letter-spacing:-0.01em;text-wrap:pretty;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;color:rgba(242,236,233,.92)}
.follow .lpost .go{flex:0 0 auto;font-size:18px;line-height:1;opacity:.5;transform:translateX(-4px);transition:opacity .3s,transform .4s var(--ease)}
@media (hover:hover){
  .follow .lpost:hover .go,.follow .lpost:focus-visible .go{opacity:1;transform:none}
}
.follow .lpost:focus-visible{outline:3px solid var(--sand);outline-offset:2px;border-radius:8px}
.follow .lpost.nomedia .media{display:none}
.follow .lpost.nomedia .t{font-size:clamp(17px,1.15vw,21px);line-height:1.25;-webkit-line-clamp:3}
@media (hover:hover){
  .follow .ftile:hover .feed.rows .rin,.follow .ftile:hover .lpost{border-color:rgba(0,0,0,.18)}
  .follow .ftile:hover .lpost .t{color:var(--sand)}
}
dialog#post{position:fixed;inset:0;margin:auto;border:0;padding:0;border-radius:16px;width:min(600px,94vw);max-height:92vh;max-height:92dvh;overflow:hidden;background:#000;color:var(--sand);box-shadow:0 30px 80px rgba(0,0,0,.5)}
dialog#post::backdrop{background:rgba(0,0,0,.72)}
dialog#post .hd{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid rgba(242,236,233,.14)}
dialog#post .hd b{font-family:var(--head);font-weight:500;text-transform:uppercase;font-size:12px;letter-spacing:.12em;opacity:.8}
dialog#post .acts{display:flex;align-items:center;gap:8px}
dialog#post .pill.light{border-color:rgba(242,236,233,.5);color:var(--sand);padding:7px 14px;font-size:12px}
dialog#post .x{border:0;background:transparent;font-size:24px;line-height:1;padding:4px 8px;cursor:pointer;color:inherit}
dialog#post .frame{height:min(760px,78vh);height:min(760px,78dvh);background:#000}
dialog#post .frame iframe{width:100%;height:100%;border:0;display:block;background:#000}
@media (max-width:1100px){
  .follow .ftiles{grid-template-columns:1fr}
  .follow .ftile{min-height:170px}
  .follow .ftile .h{font-size:clamp(26px,3.4vw,36px)}
  .follow .feed.grid{grid-template-columns:repeat(6,1fr)}
}
@media (max-width:860px){
  .follow{padding:64px var(--pad) 32px;margin-top:24px}
  .follow .fhd{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:24px}
  .follow h2.big{font-size:clamp(40px,13vw,56px)}
  .follow .sub{text-align:left;font-size:15px}
  .follow .ftiles{grid-template-columns:1fr;gap:12px}
  .follow .ftile{min-height:150px;padding:20px 20px 22px;border-radius:14px}
  .follow .ftile .h{font-size:clamp(22px,7vw,30px)}
  .follow .feed.grid{grid-template-columns:repeat(3,1fr);gap:6px}
  .follow .post{border-radius:8px}
  .follow .post .pin{top:6px;left:6px;padding:3px 6px 3px 4px}
  .follow .post .kind{top:5px;right:5px}
  .follow .lpost{gap:12px;padding:10px 0}
  .follow .lpost .media{width:80px}
  .follow .lpost .t{font-size:13px}
  dialog#post{width:100vw;max-width:100vw;border-radius:16px 16px 0 0;margin:auto 0 0}
  dialog#post .frame{height:min(720px,80dvh)}
}
@media (prefers-reduced-motion:reduce){
  .follow .post .media img,.follow .post .media video,.follow .lpost .media img{transition:none;transform:none}
  .follow .post:hover,.follow .ftile:hover{translate:none}
}
.follow .ftile{container-type:inline-size}
.follow .ftile .h{font-size:min(28px,calc(100cqi / 16));white-space:nowrap;overflow-wrap:normal;letter-spacing:-0.02em}
.follow{background:var(--sand);color:var(--ink)}
.follow .sub{color:#3f3c39}
.follow .ftile{background:#fff;color:var(--ink)}
.follow .ftile .k{color:var(--ink)}
.follow .ftile .ico .dgi{filter:invert(1)}
.follow .ftile .pill.light{border-color:var(--ink);color:var(--ink)}
@media (hover:hover){
  .follow .ftile:hover{color:var(--sand);box-shadow:0 30px 60px rgba(0,0,0,.18)}
  .follow .ftile:hover .k,.follow .ftile:hover .pill.light{color:var(--sand);border-color:rgba(242,236,233,.7);background:transparent}
  .follow .ftile:hover .ico .dgi{filter:none}
}
.follow .lpost .t{color:var(--ink)}
.follow .lpost .rp{color:#5a5754}
.follow .lpost .go{color:var(--ink)}
.follow .feed.rows .rin,.follow .lpost{border-color:rgba(0,0,0,.12)}
.follow .lpost .pin{background:rgba(0,0,0,.08);color:var(--ink)}
@media (hover:hover){
  .follow .ftile:hover .lpost .t,.follow .ftile:hover .lpost .go,.follow .ftile:hover .lpost .pin{color:var(--sand)}
  .follow .ftile:hover .lpost .rp{color:rgba(242,236,233,.85)}
  .follow .ftile:hover .lpost .pin{background:rgba(0,0,0,.25)}
}
@media (hover:hover){
  .follow .ftile.instagram:hover{background:#FCE3E7}
  .follow .ftile.tiktok:hover{background:#D4ECF5}
  .follow .ftile.linkedin:hover{background:#F9E5D3}
  .follow .ftile:hover{color:var(--ink)}
  .follow .ftile:hover .k,.follow .ftile:hover .pill.light{color:var(--ink);border-color:var(--ink);background:transparent}
  .follow .ftile:hover .ico .dgi{filter:invert(1)}
  .follow .ftile:hover .lpost .t,.follow .ftile:hover .lpost .go,.follow .ftile:hover .lpost .pin{color:var(--ink)}
  .follow .ftile:hover .lpost .rp{color:#5a5754}
  .follow .ftile:hover .lpost .pin{background:rgba(0,0,0,.08)}
  .follow .ftile:hover .feed.rows .rin,.follow .ftile:hover .lpost{border-color:rgba(0,0,0,.12)}
}
.follow .fhd{flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px}
.follow h2.big,.follow .fhd h2.big{font-size:clamp(28px,2.8vw,40px);letter-spacing:.02em;line-height:1.1}
.follow .sub{text-align:center}

/* PHONE: INSTAGRAM ALONE, TIKTOK AND LINKEDIN AS SMALL LINKS (Nuo, 7 Nov 2026, 14:37: "on mobile, only show instagram card, show tiktok and
   linkedin as small links like the current version") - the About band's "also on" line of 6 Nov, under 861px only; three cards above it */
.follow .alsoon{display:none;flex-wrap:wrap;justify-content:center;text-align:center;gap:28px;margin:22px auto 0;font-family:var(--head);text-transform:uppercase;font-size:12px;letter-spacing:.1em}
.follow .alsoon a{display:inline-flex;align-items:center;gap:8px;color:inherit;text-decoration:none;padding:6px 0;min-height:24px}
.follow .alsoon .ico img,.follow .alsoon .ico svg,.follow .alsoon .ico .dgi{width:16px;height:16px;filter:invert(1)}
@media (hover:hover){.follow .alsoon a:hover{color:#F36F23}}
@media (max-width:860px){.follow .alsoon{display:flex}.follow .ftile.tiktok,.follow .ftile.linkedin{display:none}}
/* PRESS ENQUIRIES EVENLY SPACED (Nuo, 7 Nov 2026, 14:51: "move press enquiries section bit lower so there's equal space above and below the box
   in dark sandstone"): the gap over the band = the gap under it to FOLLOW US; one number each side, the Follow band's own top margin folded in */
html body .enq{margin-top:150px}
html body .enq + .follow{margin-top:0;padding-top:150px}
@media (max-width:860px){html body .enq{margin-top:88px}html body .enq + .follow{padding-top:88px}}
/* layout.css's wide-screen section margins (#app > section, from 1281px) beat a class: name the two ids */
#app > #enquiries{margin-block:150px 0}
#app > #enquiries + #follow{margin-top:0}
@media (max-width:860px){#app > #enquiries{margin-block:88px 0}}
/* MORE AIR BETWEEN THE THREE CARDS (Nuo, 7 Nov 2026, 17:27: "show bit more space between these 3 cards"): 16px -> 32px side by side */
@media (min-width:1101px){.follow .ftiles{gap:32px}}
/* from 1441px layout.css spaces the cards by its --wg (16px for .follow .ftiles); the band's id outranks it */
#follow .ftiles{--wg:32px}
