/* Hallmark · pre-emit critique: P4 H5 E4 S5 R5 V3 */
/* Hallmark · pre-emit critique: P4 H5 E4 S5 R4 V4
 * Macrostructure: Photographic · H6 full-bleed · N9 edge-aligned · Ft1 mast-headed
 * Theme: custom Beam brand · charcoal / teal / warm white · geometric sans
 * Context: supplied Beam deck and project workbook · enquiries for retail, hospitality, leisure
 * Brand takes precedence over catalogue accent limits; motion: client marquee and image hover.
 */
@import url('./tokens.css');
@font-face { font-family:'Beam Sans'; src:url('./assets/jost.ttf') format('truetype'); font-style:normal; font-weight:400; font-display:swap; }
* { box-sizing:border-box; }
[hidden] { display:none!important; }
html { scroll-behavior:smooth; overflow-x:clip; scroll-padding-top:2rem; }
body { margin:0; overflow-x:clip; background:var(--color-paper); color:var(--color-ink); font-family:var(--font-body); font-size:var(--text-body); line-height:1.55; }
body:has(dialog[open]) { overflow-y:hidden; }
html:has(dialog[open]) { overflow:hidden; }
button, a, summary { -webkit-tap-highlight-color:var(--color-clear); }
button { font:inherit; cursor:pointer; }
a { color:inherit; text-decoration:none; }
button, a, summary { touch-action:manipulation; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline:3px solid var(--color-focus); outline-offset:5px; }
.contact a:focus-visible { outline-color:var(--color-ink); }
img { display:block; max-width:100%; height:auto; }
button { color:inherit; }
h1,h2,h3,p,figure { margin:0; }
h1,h2,h3 { font-family:var(--font-display); font-style:normal; font-weight:400; line-height:1.08; letter-spacing:-.035em; overflow-wrap:anywhere; min-width:0; }
h2 { font-size:var(--text-heading); }
h3 { font-size:var(--text-large); }
p { max-width:64ch; }
.skip { position:fixed; top:1rem; left:1rem; background:var(--color-paper); padding:1rem; transform:translateY(-200%); z-index:var(--z-header); }
.skip:focus { transform:none; }
.top { color:var(--color-paper); background:var(--color-ink); }
.header { display:flex; align-items:center; justify-content:space-between; padding:1.75rem var(--page-gutter); gap:1rem; }
.brand { width:172px; display:block; flex-shrink:0; padding-block:.3rem; }
.header-actions { display:flex; align-items:center; gap:2.5rem; }
.text-link { display:inline-flex; gap:1.8rem; align-items:center; white-space:nowrap; min-height:44px; border-bottom:1px solid currentColor; padding-block:.3rem; }
.text-link .arrow { font-size:1.5rem; line-height:1; }
.menu-button { display:flex; align-items:center; justify-content:center; gap:1rem; padding:.4rem 0 .4rem .6rem; min-width:44px; min-height:44px; border:0; background:var(--color-clear); }
.menu-lines { display:grid; gap:7px; width:26px; }
.menu-lines i { display:block; height:1px; background:currentColor; }
.hero { position:relative; margin-inline:var(--space-md); min-height:clamp(470px,68svh,680px); display:flex; align-items:flex-end; isolation:isolate; }
.hero-img { width:100%; height:100%; object-fit:cover; object-position:center 54%; }
.hero::after { content:''; position:absolute; inset:0; background:var(--color-scrim); opacity:.52; z-index:-1; }
.hero-img { position:absolute; inset:0; z-index:-2; }
.hero-copy { position:relative; width:100%; min-width:0; padding:3.5rem var(--page-gutter); display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:2rem; }
.hero h1 { font-size:var(--text-display); max-width:17ch; flex:1 1 17ch; line-height:1.04; overflow-wrap:normal; word-break:normal; }
.hero h1 span { color:var(--color-accent); }
.hero-bottom { display:flex; justify-content:space-between; gap:1rem; align-items:center; padding:1.4rem calc(var(--page-gutter) + 1.5rem) 1.8rem; font-size:var(--text-small); }
.hero-bottom p { letter-spacing:.015em; }
.hero-bottom a { min-height:44px; display:flex; align-items:center; gap:2rem; white-space:nowrap; }
.intro { padding:var(--space-3xl) var(--page-gutter) 5.5rem; display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:10%; align-items:start; }
.intro h2 { max-width:15ch; }
.intro-body { padding-top:.4rem; }
.intro-body p { color:var(--color-muted); margin-bottom:1.8rem; }
.intro-body .text-link { font-size:1rem; }
.clients { padding-block:1.5rem 3rem; }
.client-heading { padding-inline:var(--page-gutter); display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.client-heading p { font-size:var(--text-small); color:var(--color-muted); }
.pause { background:var(--color-clear); border:0; min-height:44px; padding:0 .3rem; text-decoration:underline; text-underline-offset:4px; font-size:var(--text-small); white-space:nowrap; }
.marquee { overflow:clip; margin-top:2rem; padding-block:1rem; }
.track { display:flex; width:max-content; animation:marquee 56s linear infinite; }
.logo-set { display:flex; align-items:center; gap:6rem; padding-right:6rem; }
.logo-set img { width:150px; height:62px; object-fit:contain; }
.logo-set img:first-child { width:100px; }
.track.paused { animation-play-state:paused; }
.clients:focus-within .track:not(.user-controlled),
.clients:hover .track:not(.user-controlled) { animation-play-state:paused; }
@keyframes marquee { to { transform:translateX(-50%); } }
.work { padding:var(--space-2xl) var(--page-gutter) var(--space-3xl); }
.work-top { display:flex; justify-content:space-between; align-items:flex-end; gap:2rem; margin-bottom:2.75rem; }
.work-top p { color:var(--color-muted); max-width:29ch; }
.project-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4.5rem 2rem; }
.project-card { border:0; background:var(--color-clear); padding:0; text-align:left; display:block; width:100%; }
.project-photo { overflow:clip; position:relative; }
.project-photo img { width:100%; aspect-ratio:1.36; object-fit:cover; transition:transform 600ms var(--ease-out); }
.project-card:nth-child(even) { padding-top:6rem; }
.project-card:nth-child(even) .project-photo img { aspect-ratio:1.18; }
.project-open { position:absolute; right:1.25rem; bottom:1.25rem; width:48px; height:48px; display:grid; place-items:center; border-radius:var(--radius-control); background:var(--color-paper); color:var(--color-ink); font-size:1.6rem; }
.project-info { display:flex; justify-content:space-between; align-items:start; gap:1rem; margin-top:1.4rem; }
.project-info h3 { font-size:1.75rem; }
.project-info p { color:var(--color-muted); font-size:1rem; margin-top:.35rem; }
.project-info > span { font-size:var(--text-small); white-space:nowrap; margin-top:.3rem; }
.more-projects { margin-top:5rem; border-top:1px solid var(--color-rule); }
.more-projects > p { color:var(--color-muted); font-size:var(--text-small); margin-block:1.5rem .6rem; }
.project-row { display:flex; align-items:center; justify-content:space-between; gap:1rem; width:100%; padding:1.2rem 0; border:0; border-bottom:1px solid var(--color-rule); background:var(--color-clear); text-align:left; }
.project-row > span:first-child { font-size:1.5rem; }
.project-row small { color:var(--color-muted); font-size:1rem; margin-left:1.5rem; }
.project-row > span:last-child { font-size:1.5rem; }
.approach { background:var(--color-ink); color:var(--color-paper); padding:var(--space-3xl) var(--page-gutter); display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1fr); gap:12%; align-items:start; }
.approach h2 { max-width:12ch; }
.approach h2 span { color:var(--color-accent); }
.approach-body > p { color:var(--color-on-dark); margin-bottom:2.25rem; }
.approach-facts { display:flex; align-items:flex-start; gap:4rem; border-top:1px solid var(--color-muted); padding-top:2rem; margin-top:3rem; }
.approach-facts strong { display:block; font-size:3rem; line-height:1.15; font-weight:400; }
.approach-facts p { color:var(--color-on-dark); font-size:1rem; margin-top:.4rem; }
.services { padding:var(--space-3xl) var(--page-gutter); display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1fr); gap:12%; }
.services-head p { color:var(--color-muted); margin-top:2rem; max-width:31ch; }
.services-head .text-link { margin-top:1.5rem; font-size:1rem; }
.service-list { border-top:1px solid var(--color-rule); }
details { border-bottom:1px solid var(--color-rule); }
summary { list-style:none; display:flex; justify-content:space-between; gap:1rem; padding-block:1.25rem; cursor:pointer; align-items:center; min-height:60px; font-size:1.4rem; line-height:1.3; }
summary::-webkit-details-marker { display:none; }
summary::after { content:'+'; font-size:1.75rem; font-weight:400; }
details[open] summary::after { content:'−'; }
details p { padding:0 2rem 1.75rem 0; color:var(--color-muted); font-size:1rem; }
.contact { color:var(--color-accent-ink); background:var(--color-accent); padding:5.5rem var(--page-gutter); display:flex; align-items:flex-end; justify-content:space-between; gap:3rem; }
.contact h2 { max-width:14ch; }
.contact-links { display:grid; gap:.5rem; flex-shrink:0; }
.contact-links a { white-space:nowrap; min-height:44px; display:flex; align-items:center; justify-content:space-between; gap:3rem; border-bottom:1px solid currentColor; padding-bottom:.4rem; font-size:1.4rem; }
.footer { padding:3.5rem var(--page-gutter) 1.75rem; background:var(--color-ink); color:var(--color-paper); }
.footer-top { display:flex; justify-content:space-between; align-items:center; gap:2rem; padding-bottom:3.25rem; }
.footer-logo { width:190px; }
.footer-top p { max-width:25ch; color:var(--color-on-dark); font-size:1rem; }
.footer-meta { border-top:1px solid var(--color-muted); padding-top:1.5rem; display:flex; justify-content:space-between; gap:1rem; font-size:var(--text-small); color:var(--color-on-dark); }
.footer-meta a { min-height:44px; display:flex; align-items:center; white-space:nowrap; }
dialog { border:0; padding:0; background:var(--color-paper); color:var(--color-ink); max-height:90dvh; max-width:calc(100% - 2rem); width:960px; }
dialog::backdrop { background:var(--color-scrim); }
.dialog-head { display:flex; align-items:center; justify-content:space-between; padding:1.25rem 2rem; border-bottom:1px solid var(--color-rule); gap:1rem; }
.dialog-head p { color:var(--color-muted); font-size:var(--text-small); }
.close { border:0; background:var(--color-clear); min-height:44px; min-width:44px; font-size:1.75rem; }
.dialog-body { padding:2.5rem; }
.dialog-body h2 { font-size:clamp(2rem,4vw,3.5rem); margin-bottom:1.5rem; }
.dialog-image { width:100%; aspect-ratio:1.8; object-fit:cover; margin-bottom:2.5rem; }
.dialog-body > p { color:var(--color-muted); }
.project-data { margin-top:2rem; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem 2rem; }
.project-data div { border-top:1px solid var(--color-rule); padding-top:.8rem; }
.project-data dt { color:var(--color-muted); font-size:var(--text-small); }
.project-data dd { margin:.2rem 0 0; }
.menu-dialog { width:520px; }
.menu-dialog nav { display:grid; padding:1.5rem 2rem 2.5rem; }
.menu-dialog nav a { padding:.6rem 0; font-size:2.5rem; }
.muted { color:var(--color-muted); }
@media(hover:hover) {
  .project-card:hover img { transform:scale(1.035); }
  .text-link:hover .arrow, .project-row:hover > span:last-child { transform:translate(2px,-2px); }
  .project-row:hover, summary:hover { color:var(--color-focus); }
  .menu-button:hover { color:var(--color-accent); }
}
.arrow { transition:transform var(--dur-short) var(--ease-out); }
button:active { transform:translateY(1px); }
button:disabled { opacity:.55; cursor:not-allowed; }
@media(min-width:1600px) { .hero { min-height:760px; } }
@media(max-width:960px) {
 .hero-copy { padding-inline:2rem; } .intro,.approach,.services { gap:3rem; }
 .contact { align-items:flex-start; flex-direction:column; }
 .project-row small { display:block; margin-left:0; margin-top:.2rem; }
}
@media(max-width:640px) {
 .header { padding-block:1rem; } .brand { width:132px; } .header-actions { gap:1rem; }
 .header-actions > .text-link { display:none; } .menu-button > span:first-child { display:none; }
 .hero { margin-inline:.75rem; min-height:470px; }
 .hero-copy { padding:3.5rem 1.25rem 1.75rem; display:block; }
 .hero h1 { font-size:clamp(2.6rem,11vw,3.6rem); max-width:12ch; }
 .hero-bottom { padding:1.1rem var(--page-gutter) 1.5rem; align-items:flex-start; }
 .hero-bottom p { max-width:19ch; } .hero-bottom a { gap:.8rem; min-height:44px; }
 .intro { display:block; padding-block:4rem 2.5rem; } .intro h2 { max-width:16ch; }
 .intro-body { padding-top:2rem; } .intro-body p { margin-bottom:1.3rem; }
 .clients { padding-block:1rem 2rem; } .logo-set { gap:3rem; padding-right:3rem; } .logo-set img { width:125px; height:48px; }
 .work { padding-block:3rem 4rem; } .work-top { display:block; margin-bottom:2rem; } .work-top p { margin-top:1.25rem; max-width:34ch; }
 .project-grid { grid-template-columns:minmax(0,1fr); gap:2.75rem; } .project-card:nth-child(even) { padding-top:0; }
 .project-card .project-photo img,.project-card:nth-child(even) .project-photo img { aspect-ratio:1.2; }
 .project-info h3 { font-size:1.6rem; } .project-info > span { font-size:.8rem; }
 .more-projects { margin-top:3rem; } .project-row > span:first-child { font-size:1.25rem; }
 .approach,.services { grid-template-columns:minmax(0,1fr); gap:2.5rem; padding-block:4rem; }
 .approach h2 { max-width:16ch; } .approach-facts { margin-top:2rem; gap:2rem; }
 .approach-facts strong { font-size:2.5rem; } .approach-facts p { font-size:.875rem; }
 .services-head p { margin-top:1.25rem; } summary { font-size:1.25rem; }
 .contact { padding-block:3.5rem; gap:2rem; } .contact-links { width:100%; } .contact-links a { font-size:1.25rem; gap:1rem; }
 .footer { padding-top:2.5rem; } .footer-top { flex-wrap:wrap; align-items:flex-start; padding-bottom:2rem; }
 .footer-logo { width:150px; } .footer-top p { max-width:22ch; } .footer-meta { flex-wrap:wrap; }
 .footer-meta > p { width:100%; } .dialog-body { padding:1.5rem; } .dialog-head { padding:1rem 1.5rem; }
 .project-data { grid-template-columns:minmax(0,1fr); } .dialog-image { aspect-ratio:1.2; margin-bottom:1.5rem; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important; transition:none!important; }
 .track { width:auto; } .logo-set { flex-wrap:wrap; justify-content:center; width:100%; padding-inline:var(--page-gutter); gap:2rem; }
 .logo-set[aria-hidden] { display:none; }
}

/* Final review: retain Beam's photographic layout; improve navigation and reading contrast. */
.header { gap:2rem; }
.desktop-nav { display:flex; align-items:center; gap:2rem; margin-left:auto; font-size:1rem; }
.desktop-nav a { display:flex; align-items:center; min-height:44px; white-space:nowrap; }
.header-actions { gap:2rem; }
.menu-button { display:none; }
.hero::after { background:linear-gradient(180deg,var(--color-hero-top) 15%,var(--color-hero-bottom) 100%); opacity:1; }
.hero h1 span { color:var(--color-hero-accent); }
.hero-bottom { padding-inline:calc(var(--page-gutter) + 1.5rem); }
.hero-bottom a { border-bottom:1px solid var(--color-muted); }
.top :focus-visible, .approach :focus-visible, .footer :focus-visible { outline-color:var(--color-accent); }
.marquee { position:relative; mask-image:linear-gradient(90deg,var(--color-clear),var(--color-ink) 5%,var(--color-ink) 95%,var(--color-clear)); }
.track.offscreen { animation-play-state:paused; }
.project-info { flex-wrap:wrap; gap:.6rem 1rem; }
.project-info > div { min-width:0; }
.project-info > span { padding-top:.2rem; }
.project-card:focus-visible .project-open { outline:2px solid var(--color-focus); outline-offset:3px; }
.project-card:focus-visible img { transform:scale(1.035); }
.project-info h3 { white-space:nowrap; }
.project-dialog { overscroll-behavior:contain; }
#project-dialog { overscroll-behavior:contain; }
.dialog-head { position:sticky; top:0; background:var(--color-paper); z-index:1; }
.dialog-head .close { line-height:1; }
#project-title { outline:none; }
.dialog-image { background:var(--color-hover); }
.project-enquiry { margin-top:2rem; font-size:1rem; }
.project-pagination { display:flex; align-items:center; justify-content:space-between; padding:1rem 2.5rem; border-top:1px solid var(--color-rule); gap:1rem; }
.project-pagination button { border:0; background:var(--color-clear); min-height:44px; padding:.5rem 0; white-space:nowrap; font-size:1rem; }
.project-pagination > span { color:var(--color-muted); font-size:var(--text-small); white-space:nowrap; }
summary { font-size:clamp(1.05rem,1.8vw,1.4rem); }
summary::after { flex-shrink:0; }
.menu-dialog nav a { white-space:nowrap; }
a:active, summary:active { opacity:.75; }
@media(hover:hover) {
 .desktop-nav a:hover { text-decoration:underline; text-underline-offset:.4rem; }
 .project-pagination button:hover { text-decoration:underline; text-underline-offset:.3rem; }
 .close:hover { background:var(--color-hover); }
}
@media(max-width:60rem) {
 .desktop-nav { display:none; }
 .menu-button { display:flex; }
 .header-actions { margin-left:auto; }
 .work-top { display:block; }
 .work-top p { margin-top:1.25rem; max-width:40ch; }
}
@media(max-width:40rem) {
 .header { gap:1rem; }
 .header-actions { gap:1rem; }
 .menu-button > span:first-child { display:block; font-size:.875rem; }
 .hero h1 { font-size:clamp(2.45rem,10.7vw,3.6rem); max-width:13ch; }
 .hero-bottom { padding-inline:var(--page-gutter); font-size:.8rem; gap:1rem; }
 .hero-bottom p { max-width:14ch; }
 .hero-bottom a { gap:.75rem; }
 .project-info { display:block; }
 .project-info > span { display:block; font-size:.8rem; margin-top:.6rem; color:var(--color-muted); }
 .project-info p { font-size:.95rem; }
 .project-row small { font-size:.875rem; }
 .project-pagination { padding:1rem 1.5rem; gap:.5rem; }
 .dialog-head { padding:.75rem 1.25rem; }
 .dialog-body { padding:1.25rem; }
 .project-enquiry .text-link { gap:1rem; font-size:.95rem; }
 .client-heading p { max-width:20ch; }
 .services-head .text-link { font-size:1rem; }
 summary { font-size:1.05rem; gap:.75rem; }
 .menu-dialog nav a { font-size:2rem; }
 .marquee { mask-image:none; }
}
@media(prefers-reduced-motion:reduce) {
 .project-card:focus-visible img { transform:none; }
 .track { animation:none; }
}

/* Luke Ford feedback — 23 October 2026. Existing Beam colours and content retained. */
body { font-weight:300; }
h1,h3 { font-weight:300; letter-spacing:-.025em; }
h2 { font-family:var(--font-editorial); font-weight:400; letter-spacing:-.04em; line-height:1.12; }
.hero h1 { font-family:var(--font-display); font-weight:300; }
.section-mark { width:64px; height:64px; object-fit:contain; margin-bottom:var(--space-lg); }
.footer-mark { width:64px; height:64px; object-fit:contain; flex-shrink:0; }
.project-card:nth-child(even) { padding-top:0; }
.project-card .project-photo img,
.project-card:nth-child(even) .project-photo img,
.dialog-image { aspect-ratio:3/2; object-fit:cover; }
.contact-links a { font-size:clamp(1rem,2vw,1.4rem); }
@media(max-width:40rem) {
 .section-mark,.footer-mark { width:48px; height:48px; }
 .footer-top { gap:var(--space-md); }
 .footer-top > p { width:100%; max-width:none; }
 .contact-links a { font-size:1rem; }
}

.section-mark { filter:brightness(0); opacity:.85; }
.project-card { align-self:start; }
.project-info { display:block; }
.project-info > span { display:block; margin-top:.6rem; color:var(--color-muted); }

/* Additional client logos supplied by Luke via WhatsApp, 23 October 2026. */
.logo-set img.logo-nammos { object-fit:cover; object-position:center 51%; filter:grayscale(1) invert(1) brightness(3) contrast(1.6); mix-blend-mode:multiply; }

.logo-set { background:var(--color-paper); }
.logo-set img { mix-blend-mode:multiply; }

/* Project photos and phone layout — 24 October 2026. */
.project-gallery { display:grid; gap:1.5rem; margin-bottom:2rem; }
.gallery-frame { aspect-ratio:var(--photo-ratio); width:100%; max-height:70dvh; background:var(--color-hover); }
.project-gallery .dialog-image { aspect-ratio:auto; width:100%; height:100%; max-height:none; object-fit:contain; margin:0; }
.project-gallery figcaption { font-size:.875rem; color:var(--color-muted); margin-top:.5rem; }
.project-info h3 { white-space:normal; overflow-wrap:normal; }
.project-info p, .project-data dd { overflow-wrap:anywhere; }
.project-pagination { position:sticky; bottom:0; background:var(--color-paper); z-index:1; }
@media(max-width:60rem) {
 .intro,.approach,.services { grid-template-columns:minmax(0,1fr); }
 .intro { gap:2rem; }
 .intro h2 { max-width:19ch; }
 .hero-copy { gap:1.5rem; }
}
@media(max-width:40rem) {
 body { font-size:1rem; }
 .header { padding-block:.75rem; flex-wrap:wrap; }
 .hero { height:auto; min-height:min(66svh,540px); max-height:none; margin-inline:min(.75rem,12px); }
 .hero-copy { position:relative; inset:auto; width:100%; min-width:0; padding:4rem min(1.25rem,20px) 1.75rem; }
 .hero h1 { font-size:clamp(1.75rem,8.4vw,3.35rem); max-width:none; line-height:1.1; letter-spacing:-.035em; }
 .hero h1 span { white-space:normal; }
 .hero-bottom { align-items:center; flex-wrap:wrap; padding-block:.75rem 1.25rem; }
 .hero-bottom p { max-width:20ch; }
 .intro,.approach,.services { padding-block:3rem; }
 .work { padding-block:2.5rem 3rem; }
 .project-grid { gap:2rem; }
 .project-info { margin-top:1rem; }
 .project-info h3 { font-size:1.5rem; }
 .project-info p { font-size:.9375rem; line-height:1.5; }
 .approach-facts { gap:1.5rem; }
 .approach-facts > div { flex:1; min-width:0; }
 .client-heading { align-items:center; }
 .client-heading p { max-width:19ch; }
 summary { padding-block:1.1rem; font-size:1.0625rem; }
 .contact-links { min-width:0; }
 .contact-links a { white-space:normal; overflow-wrap:anywhere; }
 .footer-top { display:grid; grid-template-columns:minmax(0,1fr); align-items:center; gap:1rem; }
 .footer-top > p { grid-column:1 / -1; }
 .footer-meta { display:grid; gap:.75rem; }
 #project-dialog { width:100%; max-width:100%; height:100dvh; max-height:100dvh; margin:0; overflow-y:auto; }
 #project-dialog .dialog-head { padding:.75rem 1.25rem; padding-top:max(.75rem,env(safe-area-inset-top)); }
 .dialog-head p { min-width:0; }
 #project-dialog .dialog-body { padding:1.25rem; }
 .project-gallery { gap:1.25rem; margin-bottom:1.75rem; }
 .gallery-frame { max-height:65dvh; }
 .project-pagination { padding:.75rem 1.25rem; padding-bottom:max(.75rem,env(safe-area-inset-bottom)); }
 .project-pagination button { font-size:.9375rem; }
 .menu-dialog { max-height:calc(100dvh - 2rem); }
 .menu-dialog nav { padding-inline:1.25rem; }
}

/* Let enlarged text wrap within the available width instead of clipping it. */
.text-link { white-space:normal; max-width:100%; min-width:0; overflow-wrap:anywhere; gap:clamp(.5rem,3vw,1.8rem); }
.text-link .arrow { flex-shrink:0; }
.hero-bottom a { white-space:normal; min-width:0; max-width:100%; overflow-wrap:anywhere; }
.hero-bottom a span { flex-shrink:0; }
.menu-dialog nav a { white-space:normal; overflow-wrap:anywhere; }
.project-pagination { flex-wrap:wrap; }
.project-pagination button { white-space:normal; overflow-wrap:anywhere; }
.client-heading { flex-wrap:wrap; }
.pause { white-space:normal; max-width:100%; }
