/* Palette (approx. screen values): RAL 9016 traffic white, RAL 3004 purple red, RAL 5011 steel blue. Loaded after home-new.css */
:root{
  --bg:#f4f4f0; --bg2:#e8e8e2; --white:#fff;
  --indigo:#1a2b3c;   /* RAL 5011 */
  --deep:#0f1b28;     /* darker shade of 5011 */
  --saffron:#6b1c23; --saffron-d:#6b1c23; /* RAL 3004 */
  --text:#0f1b28; --muted:#5b6470; --line:rgba(15,27,40,.14);
  --r3004:#6b1c23; --r3004d:#561319; --r9016:#f4f4f0; --tint:#e3b3b9;
}
.nav.solid{background:rgba(244,244,240,.95)}
.hero::after{background:linear-gradient(180deg,rgba(15,27,40,.55) 0%,rgba(15,27,40,.10) 35%,rgba(15,27,40,.86) 100%)}
.door::after{background:linear-gradient(180deg,rgba(15,27,40,0) 45%,rgba(15,27,40,.88) 100%)}
.cta,.btn-fill,.door .arrow{background:var(--r3004);border-color:var(--r3004);color:#fff}
.cta:hover,.btn-fill:hover{background:var(--r3004d);border-color:var(--r3004d)}
.hero .tag b,.logo i,.marquee span::after{background:var(--tint)}
.hero h1 em,.statement em{color:var(--tint)}
.eyebrow{color:var(--indigo)}
.eyebrow::before{background:var(--r3004)}
.price .eyebrow,.price .foot a{color:var(--tint)}
.price .foot a{border-color:var(--tint)}
.price .eyebrow::before{background:var(--tint)}
.plan.pop{background:var(--r3004);border-color:var(--r3004);color:#fff}
.plan.pop .badge{border-color:#fff}
.link{border-color:var(--r3004)}
.plan .go{border-color:currentColor}
.stars{color:var(--r3004)}
.final{background:var(--r3004);color:#fff}
.btn-dark{background:var(--r9016);border-color:var(--r9016);color:var(--r3004)}
.btn-dark:hover{background:#fff;border-color:#fff}
.print-grid span{background:rgba(244,244,240,.95)}
.review:hover{box-shadow:0 18px 40px -22px rgba(15,27,40,.4)}
footer a:hover{color:var(--tint)}

/* ---------- pricing: list design (as on the current site) ---------- */
.price-sec{padding-top:0}
.price-head{background:var(--indigo);color:#fff;padding:2.2rem 2rem 2rem;border-radius:6px 6px 0 0}
.price-head .eyebrow{color:var(--tint);margin-bottom:.5rem}
.price-head .eyebrow::before{background:var(--tint)}
.price-head h2{font-size:clamp(1.8rem,3vw,2.4rem);margin-bottom:.5rem}
.price-head p:last-child{color:rgba(255,255,255,.8)}
.price-list{background:#fff;border:1px solid var(--line);border-top:0;border-radius:0 0 6px 6px;overflow:hidden}
.price-row{display:grid;grid-template-columns:1.1fr 1.2fr 1.4fr .9fr auto;align-items:center;gap:1.2rem;padding:1.5rem 2rem;border-top:1px solid var(--line)}
.price-row:first-child{border-top:0}
.price-row h3{font-size:1.25rem;display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}
.pd{color:var(--muted);font-size:.98rem}
.pp{font-size:1.7rem;font-weight:300;letter-spacing:-.02em;text-align:right}
.pbtn{border:1px solid var(--text);padding:.65rem 1.3rem;border-radius:999px;font-size:.95rem;transition:background .3s,color .3s;white-space:nowrap}
.pbtn:hover{background:var(--text);color:#fff}
.pbtn.solid{background:var(--r3004);border-color:var(--r3004);color:#fff}
.pbtn.solid:hover{background:var(--r3004d);border-color:var(--r3004d)}
.price-row.featured{background:var(--bg2);box-shadow:inset 4px 0 0 var(--r3004)}
.price-row.featured .pp{color:var(--r3004)}
.ptag{font-size:.8rem;font-weight:400;border:1px solid var(--r3004);color:var(--r3004);border-radius:999px;padding:.05rem .6rem}
.price-foot{margin-top:1.4rem;color:var(--muted)}
.price-foot a{border-bottom:1px solid var(--r3004);color:var(--text)}
@media (max-width:900px){
  .price-row{grid-template-columns:1fr auto;gap:.4rem 1rem;padding:1.3rem 1.3rem}
  .price-row h3{grid-column:1}.pp{grid-column:2;grid-row:1;font-size:1.5rem}
  .pd{grid-column:1 / -1}.pbtn{grid-column:1 / -1;justify-self:start;margin-top:.6rem}
  .price-head{padding:1.8rem 1.3rem}
}

/* ---------- prints: navy (RAL 5011) ---------- */
.prints{background:var(--indigo);color:#fff}
.prints .eyebrow{color:var(--tint)}
.prints .eyebrow::before{background:var(--tint)}
.prints .link{border-color:var(--tint)}

/* ---------- about + how it works ---------- */
.about{background:var(--bg)}
.about-grid{display:grid;grid-template-columns:5fr 6fr;gap:clamp(2rem,6vw,5.5rem);align-items:center}
.about-photo{aspect-ratio:4/5;border-radius:6px;overflow:hidden;background:var(--bg2)}
.about-photo img{width:100%;height:100%;object-fit:cover}
.about-text h2{font-size:clamp(2.2rem,4.8vw,3.8rem);margin-bottom:.8rem}
.about-lead{font-size:1.3rem;font-weight:300;color:var(--indigo);margin-bottom:1.1rem;line-height:1.35}
.about-text p{color:var(--muted)}
.about-text .about-lead{color:var(--indigo)}
.about-text .link{margin-top:1.6rem;color:var(--text);border-color:var(--r3004)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;margin-top:clamp(3rem,6vw,5rem);border-top:1px solid var(--line);padding-top:2.2rem}
.step span{font-size:.95rem;color:var(--r3004);display:block;margin-bottom:.6rem}
.step h3{font-size:1.35rem;margin-bottom:.4rem}
.step p{color:var(--muted);font-size:.98rem}
@media (max-width:900px){
  .about-grid{grid-template-columns:1fr}
  .about-photo{aspect-ratio:4/4.4;max-height:520px}
  .steps{grid-template-columns:1fr 1fr}
}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

/* ---------- portfolio (dynamic mosaic) ---------- */
.portfolio{background:var(--bg)}
.pf-filters{display:flex;flex-wrap:wrap;gap:.5rem}
.pf-btn{font:inherit;font-size:.95rem;background:none;border:1px solid var(--line);color:var(--text);padding:.5rem 1.1rem;border-radius:999px;cursor:pointer;transition:background .3s,color .3s,border-color .3s}
.pf-btn:hover{border-color:var(--text)}
.pf-btn.on{background:var(--indigo);border-color:var(--indigo);color:#fff}
.pf-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(150px,17vw,235px);grid-auto-flow:dense;gap:.8rem}
.pf-item{position:relative;display:block;overflow:hidden;border-radius:4px;background:var(--bg2);cursor:zoom-in}
.pf-item.s-big{grid-column:span 2;grid-row:span 2}
.pf-item.s-tall{grid-row:span 2}
.pf-item.s-wide{grid-column:span 2}
.pf-item.s-full{grid-column:1 / -1}
.pf-item img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease),filter .6s}
.pf-item:hover img{transform:scale(1.08)}
.pf-item::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,27,40,0) 55%,rgba(15,27,40,.78) 100%);opacity:0;transition:opacity .5s}
.pf-item:hover::after{opacity:1}
.pf-cap{position:absolute;left:1rem;right:1rem;bottom:.9rem;z-index:2;color:#fff;display:flex;flex-direction:column;gap:.1rem;transform:translateY(12px);opacity:0;transition:transform .55s var(--ease),opacity .45s}
.pf-cap em{font-style:normal;font-size:.82rem;color:var(--tint)}
.pf-cap b{font-weight:300;font-size:1.15rem;letter-spacing:-.01em}
.pf-item:hover .pf-cap{transform:none;opacity:1}
.pf-item.hide{display:none}
.pf-item.pop{animation:pfIn .7s var(--ease) both}
@keyframes pfIn{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
.pf-grid:hover .pf-item:not(:hover) img{filter:brightness(.82) saturate(.9)}
@media (hover:none){.pf-cap{opacity:1;transform:none}.pf-item::after{opacity:1}}
@media (max-width:700px){
  .pf-grid{grid-template-columns:1fr 1fr;grid-auto-rows:clamp(130px,38vw,200px)}
  .pf-item.s-wide{grid-column:span 2}
}
/* lightbox */
.lb{position:fixed;inset:0;z-index:100;background:rgba(10,18,28,.94);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;opacity:0;pointer-events:none;transition:opacity .4s}
.lb.open{opacity:1;pointer-events:auto}
.lb img{max-width:min(92vw,1400px);max-height:80vh;border-radius:3px;box-shadow:0 30px 80px -30px #000;transform:scale(.97);transition:transform .5s var(--ease)}
.lb.open img{transform:none}
.lb p{color:rgba(255,255,255,.8);font-size:.98rem}
.lb button{position:absolute;background:none;border:0;color:#fff;cursor:pointer;font:inherit;line-height:1}
.lb-x{top:1rem;right:1.4rem;font-size:2.6rem}
.lb-p,.lb-n{top:50%;font-size:3.2rem;padding:1rem;transform:translateY(-50%)}
.lb-p{left:.6rem}.lb-n{right:.6rem}
.lb button:hover{color:var(--tint)}

/* ---------- events section ---------- */
.ev-points{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-bottom:clamp(2rem,4vw,3rem);border-top:1px solid var(--line);padding-top:1.6rem}
.ev-points span{display:block;font-size:.95rem;color:var(--r3004);margin-bottom:.5rem}
.ev-points h3{font-size:1.25rem;margin-bottom:.3rem}
.ev-points p{color:var(--muted);font-size:.98rem}
.ev-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(150px,17vw,235px);grid-auto-flow:dense;gap:.8rem}
.ev-item{position:relative;overflow:hidden;border-radius:4px;background:var(--bg2)}
.ev-item.s-big{grid-column:span 2;grid-row:span 2}
.ev-item.s-wide{grid-column:span 2}
.ev-item.s-tall{grid-row:span 2}
.ev-item img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease),filter .6s}
.ev-item{display:block;cursor:zoom-in}
.ev-item:hover img{transform:scale(1.12)}
.ev-item:after,.ev-item .zi{pointer-events:none}
.ev-item::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,27,40,0) 55%,rgba(15,27,40,.78) 100%);opacity:0;transition:opacity .5s}
.ev-item:hover::after{opacity:1}
.ev-cap{position:absolute;left:1rem;right:1rem;bottom:.9rem;z-index:2;color:#fff;display:flex;flex-direction:column;gap:.1rem;transform:translateY(12px);opacity:0;transition:transform .55s var(--ease),opacity .45s}
.ev-cap em{font-style:normal;font-size:.82rem;color:var(--tint)}
.ev-cap b{font-weight:300;font-size:1.15rem;letter-spacing:-.01em}
.ev-item:hover .ev-cap{transform:none;opacity:1}
.ev-grid:hover .ev-item:not(:hover) img{filter:brightness(.82) saturate(.9)}
@media (hover:none){.ev-cap{opacity:1;transform:none}.ev-item::after{opacity:1}}
.ev-cta{display:flex;align-items:center;justify-content:space-between;gap:1.2rem;flex-wrap:wrap;margin-top:2rem;padding:1.5rem 1.8rem;background:var(--bg2);border-radius:6px}
.ev-cta p{font-size:1.25rem;font-weight:300}
@media (max-width:900px){.ev-points{grid-template-columns:1fr}}
@media (max-width:700px){.ev-grid{grid-template-columns:1fr 1fr;grid-auto-rows:clamp(130px,38vw,200px)}}

/* zoom icon on hover (events) */
.ev-item::before{content:"";position:absolute;top:.9rem;right:.9rem;z-index:2;width:2.4rem;height:2.4rem;border-radius:50%;background:rgba(244,244,240,.92) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a2b3c' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6'/%3E%3Cpath d='M15 15l5 5M10.5 8v5M8 10.5h5'/%3E%3C/svg%3E") center/55% no-repeat;opacity:0;transform:scale(.8);transition:opacity .4s,transform .4s}
.ev-item:hover::before{opacity:1;transform:none}

/* ---------- usability / accessibility pass ---------- */
.skip{position:absolute;left:-999px;top:.6rem;z-index:200;background:var(--r3004);color:#fff;padding:.6rem 1rem;border-radius:6px}
.skip:focus{left:.6rem}
a:focus-visible,button:focus-visible{outline:2px solid var(--r3004);outline-offset:3px;border-radius:4px}
.hero a:focus-visible,.nav:not(.solid) a:focus-visible,.lb button:focus-visible,footer a:focus-visible{outline-color:var(--tint)}
.m-cta{display:none}
@media (max-width:700px){
  .hero::after{background:linear-gradient(180deg,rgba(15,27,40,.62) 0%,rgba(15,27,40,.30) 30%,rgba(15,27,40,.88) 100%)}
  .hero h1{text-shadow:0 2px 24px rgba(15,27,40,.55)}
  .m-cta{display:block;position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:60;text-align:center;background:var(--r3004);color:#fff;padding:.95rem 1rem;border-radius:999px;box-shadow:0 14px 34px -12px rgba(15,27,40,.7);transform:translateY(160%);transition:transform .45s var(--ease)}
  .m-cta.show{transform:none}
  footer{padding-bottom:5.5rem}
}
@media (prefers-reduced-motion:reduce){.ev-item img,.pf-item img,.m-cta{transition:none}.ev-item:hover img{transform:none}html{scroll-behavior:auto}}

/* mobile menu: keep the closed menu fully hidden (backdrop-filter made it leak under the header) */
@media (max-width:900px){
  .nav.solid{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(244,244,240,.98)}
  .nav ul{visibility:hidden;transition:transform .6s var(--ease),visibility 0s .6s}
  .nav ul.open{visibility:visible;transition:transform .6s var(--ease),visibility 0s}
}
@media (max-width:900px){
  .nav .logo,.nav .burger{position:relative;z-index:3}
  .nav.menu-open .logo,.nav.menu-open .burger{color:#fff}
  .nav.menu-open{background:transparent;box-shadow:none}
  .nav.menu-open ~ .m-cta{display:none}
}

/* ---------- MOBILE MENU v2 (full screen, numbered, with contact) ---------- */
.m-extra{display:none}
@media (max-width:900px){
  body:has(.nav.menu-open){overflow:hidden}
  .nav ul{inset:0;transform:none;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:0;
    padding:5.5rem 1.6rem 2rem;counter-reset:m;overflow-y:auto;
    background:radial-gradient(120% 70% at 100% 0%,rgba(107,28,35,.55),rgba(107,28,35,0) 60%),var(--deep);
    opacity:0;visibility:hidden;transition:opacity .35s,visibility 0s .35s}
  .nav ul.open{opacity:1;visibility:visible;transition:opacity .35s,visibility 0s}
  .nav ul li{border-bottom:1px solid rgba(255,255,255,.1);opacity:0;transform:translateY(16px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
  .nav ul.open li{opacity:1;transform:none}
  .nav ul.open li:nth-child(1){transition-delay:.08s}.nav ul.open li:nth-child(2){transition-delay:.13s}
  .nav ul.open li:nth-child(3){transition-delay:.18s}.nav ul.open li:nth-child(4){transition-delay:.23s}
  .nav ul.open li:nth-child(5){transition-delay:.28s}.nav ul.open li:nth-child(6){transition-delay:.33s}
  .nav ul.open li:nth-child(7){transition-delay:.38s}.nav ul.open li:nth-child(8){transition-delay:.45s}
  .nav ul.open li:nth-child(9){transition-delay:.52s}
  .nav ul li a:not(.cta){display:flex;align-items:baseline;gap:1rem;font-size:clamp(1.7rem,7.5vw,2.2rem);font-weight:300;padding:.78rem 0;color:#fff}
  .nav ul li a:not(.cta)::before{counter-increment:m;content:"0" counter(m);font-size:.78rem;color:var(--tint);letter-spacing:.06em;min-width:1.6rem}
  .nav ul li a:not(.cta)::after{display:none}
  .nav ul li:nth-child(8){border:0;margin-top:1.6rem}
  .nav ul a.cta{display:block;text-align:center;font-size:1.1rem;padding:1rem 1.2rem;background:var(--r3004);color:#fff}
  .nav ul li.m-extra{display:flex;flex-direction:column;gap:.5rem;border:0;margin-top:1.4rem}
  .nav ul li.m-extra a{font-size:.95rem!important;color:rgba(255,255,255,.7)!important;padding:.2rem 0!important}
  .nav ul li.m-extra a::before{display:none!important}
  .nav ul li.m-extra a:first-child{color:var(--tint)!important}
  /* burger -> X */
  .burger span{transition:transform .4s var(--ease),top .4s var(--ease),opacity .25s}
  .nav.menu-open .burger span:nth-child(1){top:12px;transform:rotate(45deg)}
  .nav.menu-open .burger span:nth-child(2){opacity:0}
  .nav.menu-open .burger span:nth-child(3){top:12px;transform:rotate(-45deg)}
}
@media (prefers-reduced-motion:reduce){.nav ul,.nav ul li{transition:none!important}}

/* MOBILE READABILITY: stronger scrim under captions on touch screens */
@media (hover:none),(max-width:760px){
  .ev-item::after,.pf-item::after{background:linear-gradient(180deg,rgba(15,27,40,0) 30%,rgba(15,27,40,.55) 62%,rgba(15,27,40,.9) 100%)}
  .ev-cap b,.pf-cap b{text-shadow:0 1px 8px rgba(15,27,40,.7)}
  .ev-cap em,.pf-cap em{text-shadow:0 1px 6px rgba(15,27,40,.8)}
  .door::after{background:linear-gradient(180deg,rgba(15,27,40,0) 25%,rgba(15,27,40,.6) 55%,rgba(15,27,40,.92) 100%)}
  .door h3,.door p{text-shadow:0 1px 10px rgba(15,27,40,.6)}
}

/* MOBILE: smaller portrait in About */
@media (max-width:760px){
  .about-photo{width:min(58%,220px);margin-inline:0}
}

/* ---------- REVIEWS: summary, show more, write-a-review form ---------- */
#reviews .head{align-items:flex-end;gap:1rem;flex-wrap:wrap}
.review .stars .off{opacity:.25}
.reviews-summary{display:flex;align-items:center;gap:.8rem;margin:0 0 1.4rem;color:var(--muted)}
.reviews-summary .stars{font-size:1.05rem}
.reviews-more{margin:1.6rem auto 0;display:block}
.review-form{max-width:46rem;margin:2.4rem auto 0;background:var(--white);border-radius:12px;padding:clamp(1.4rem,4vw,2.4rem);box-shadow:0 24px 60px -34px rgba(15,27,40,.5);display:flex;flex-direction:column;gap:1.1rem}
.review-form[hidden],.reviews-more[hidden],.reviews-summary[hidden]{display:none}
.review-form h3{font-size:1.6rem;font-weight:300;margin:0}
.review-form .form-lead{color:var(--muted);margin:0}
.review-form label,.review-form legend{display:block;font-size:.95rem;margin-bottom:.35rem;color:var(--text)}
.review-form .label-note{color:var(--muted)}
.review-form input[type=text],.review-form input[type=email],.review-form select,.review-form textarea{width:100%;font:inherit;font-size:1rem;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:.8rem 1rem}
.review-form textarea{min-height:9rem;resize:vertical}
.review-form input:focus,.review-form select:focus,.review-form textarea:focus{outline:none;border-color:var(--r3004);box-shadow:0 0 0 3px rgba(107,28,35,.14)}
.review-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.review-form fieldset{border:0;padding:0;margin:0}
.star-row{display:flex;align-items:center;gap:1rem}
.star-input{display:flex;gap:.1rem}
.star-input .star{margin:0;cursor:pointer;position:relative}
.star-input .star input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer}
.star-input .star span{font-size:2.2rem;line-height:1;color:var(--line);padding:.1rem .15rem;display:block;transition:color .2s,transform .2s}
.star-input .star.on span{color:var(--r3004)}
.star-input .star:hover span{transform:scale(1.12)}
.star-input .star:focus-within span{outline:2px solid var(--r3004);outline-offset:2px;border-radius:4px}
.star-readout{color:var(--muted);font-size:.95rem}
.review-form .check-opt{display:flex;gap:.7rem;align-items:flex-start;font-size:.95rem;cursor:pointer}
.review-form .check-opt input{width:1.2rem;height:1.2rem;margin-top:.15rem;accent-color:var(--r3004);flex:none}
.review-form .btn-solid{align-self:flex-start;background:var(--r3004);color:#fff;border-color:var(--r3004)}
.review-form .btn-solid[disabled]{opacity:.6;cursor:wait}
.review-form .form-msg{min-height:1.2rem;color:var(--r3004);margin:0}
.review-form .form-privacy{font-size:.9rem;color:var(--muted);margin:0}
.review-form .form-privacy a{color:var(--r3004);text-decoration:underline}
.review-form.sent>*:not(.review-thanks){display:none}
.review-thanks h3{margin:0 0 .5rem}
@media (max-width:600px){.review-form .form-row{grid-template-columns:1fr}}
/* the floating "Request a quote" bar must not cover the review form */
body:has(#reviewForm:not([hidden])) .m-cta{display:none!important}

/* ---------- HERO: lighter scrim so the photos keep their colour ---------- */
.hero::after{background:
  linear-gradient(0deg,rgba(15,27,40,.80) 0%,rgba(15,27,40,.48) 26%,rgba(15,27,40,0) 56%),
  linear-gradient(180deg,rgba(15,27,40,.38) 0%,rgba(15,27,40,0) 16%)}
.hero h1,.hero p.lead{text-shadow:0 2px 22px rgba(15,27,40,.6)}
@media (max-width:700px){
  .hero::after{background:
    linear-gradient(0deg,rgba(15,27,40,.88) 0%,rgba(15,27,40,.64) 38%,rgba(15,27,40,0) 72%),
    linear-gradient(180deg,rgba(15,27,40,.42) 0%,rgba(15,27,40,0) 14%)}
}

/* ---------- NAV: "Request a quote" pill must hold its text (desktop) ---------- */
@media (min-width:901px){
  .nav ul a.cta{display:inline-block;padding:.62rem 1.3rem;line-height:1.2;white-space:nowrap}
}

/* anchors: leave room for the fixed header so section headings are not hidden under it */
section[id],.statement[id],#top{scroll-margin-top:4.2rem}

/* portfolio: show-more button */
.pf-more{display:block;margin:2rem auto 0}
.pf-more[hidden]{display:none}

/* ---------- PHOTO GRIDS: justified rows, photos keep their own proportions (no cropping) ---------- */
.ev-grid,.pf-grid,.bento{--rh:clamp(100px,17vw,235px);display:flex;flex-wrap:wrap;gap:.8rem;grid-template-columns:none;grid-auto-rows:auto}
.ev-grid::after,.pf-grid::after,.bento::after{content:"";flex:1000 1 0}
.ev-item,.pf-item,.bento figure{
  --ar:1.5;position:relative;
  flex:calc(var(--ar)*100) 1 calc(var(--ar)*var(--rh));
  aspect-ratio:var(--ar);min-width:0;grid-column:auto!important;grid-row:auto!important}
.ev-item img,.pf-item img,.bento figure img{width:100%;height:100%;object-fit:cover;object-position:50% 50%!important;display:block}
.ev-item.hide,.pf-item.hide{display:none}
@media (max-width:700px){
  .ev-grid,.pf-grid,.bento{--rh:clamp(95px,27vw,160px);gap:.6rem}
}

/* statement: second half on its own line */
.statement p em{display:block}
@media (min-width:600px){.statement p em{white-space:nowrap}}

/* small tiles on phones: compact captions that never cover the photo */
@media (max-width:700px){
  .pf-cap,.ev-cap{left:.7rem;right:.7rem;bottom:.6rem;gap:0}
  .pf-cap b,.ev-cap b{font-size:.9rem;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .pf-cap em,.ev-cap em{font-size:.875rem}
}

/* hero text: bolder for legibility over photos */
.hero h1{font-weight:500;text-shadow:0 2px 6px rgba(15,27,40,.45),0 3px 28px rgba(15,27,40,.7)}
.hero h1 em{font-weight:500}
.hero p.lead{font-weight:500;text-shadow:0 1px 5px rgba(15,27,40,.6),0 2px 22px rgba(15,27,40,.75)}
.hero .tag{font-weight:500}

/* no captions on photo tiles */
.pf-cap,.ev-cap,.lb-cap,#lbCap{display:none!important}
.pf-item::after,.ev-item::after{display:none!important}

/* grids: no lone photo in the last row (script balances the last rows) */
.ev-grid,.pf-grid,.bento{gap:0 .8rem;margin-bottom:-.8rem}
.ev-item,.pf-item,.bento figure{margin-bottom:.8rem}
.grid-brk{flex:0 0 100%;height:0;margin:0;padding:0;border:0}
.lastfull::after{display:none!important}
.ev-item.orph,.pf-item.orph,.bento figure.orph{display:none}
@media (max-width:700px){
  .ev-grid,.pf-grid,.bento{gap:0 .6rem;margin-bottom:-.6rem}
  .ev-item,.pf-item,.bento figure{margin-bottom:.6rem}
}

/* mosaic rows are laid out by script: exact row widths, no filler */
.js-mosaic::after{display:none!important}
