/* Approved photography layouts, using the shared website typography and palette. */
.photo-layout-page{--photo-paper:#fffdf8;--photo-muted:rgba(255,253,248,.72);--photo-dark:#0b0d0e;--photo-edge:clamp(24px,6vw,96px)}
/* Photographs remain ordinary content, with captions outside the image. */
.concert-photo{position:relative;display:block;min-width:0;margin:0;isolation:isolate}
.concert-photo img{display:block;width:100%;height:auto;max-width:100%;border:1px solid rgba(255,253,248,.22);border-radius:0}
.concert-photo figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 20px;margin:0;padding:14px 0 0;border:0;color:var(--photo-muted);font-family:var(--font-body);font-size:11px;font-weight:400;line-height:1.6;opacity:1}

/* Recover the original, open editorial page structure and warm site surface. */
.photo-layout-page.action-page{--action-edge:max(24px,3vw,calc((100vw - 1760px)/2));color:var(--photo-paper);background:#11120e}
.photo-layout-page.action-page .action-shell{overflow:visible;display:block;width:100%;max-width:none;min-height:100svh;margin:0;padding:clamp(128px,13vh,164px) var(--action-edge) 0;border:0;border-radius:0;color:var(--photo-paper);background:linear-gradient(110deg,#0b1711 0%,#171511 52%,#26120f 100%)}
.photo-layout-page.action-page .action-shell::before{display:none}
.photo-layout-page.action-page .subpage-topbar{height:0;min-height:0;margin:0;padding:0}
.photo-layout-page.action-page .site-back-control{left:calc(env(safe-area-inset-left,0px) + var(--action-edge));max-width:calc(100vw - 2 * var(--action-edge) - 151px);color:var(--photo-paper);background:rgba(11,23,17,.8);border:1px solid rgba(255,253,248,.3)}
.photo-layout-page.action-page .site-corner-tools{right:calc(env(safe-area-inset-right,0px) + var(--action-edge))}
.photo-layout-page.action-page .site-search-anchor.is-open{right:calc(env(safe-area-inset-right,0px) + var(--action-edge));width:min(620px,calc(100vw - 2 * var(--action-edge)))}
.photo-layout-page.action-page .language-switch{background:rgba(11,23,17,.8);border-color:rgba(255,253,248,.3)}
.photo-layout-page.action-page .language-switch button{color:var(--photo-paper)}
.photo-layout-page.action-page .language-switch button.is-active,.photo-layout-page.action-page .language-switch button[aria-pressed=true]{color:var(--ink);background:var(--photo-paper)}
.photo-layout-page .subpage-back,.photo-layout-page .language-switch{flex-shrink:0}
.photo-layout-page.action-page .action-hero{width:100%;max-width:none;margin:0 0 40px;padding:0;text-align:left}
.photo-layout-page.action-page .action-hero h1{max-width:none;margin:0;color:var(--photo-paper);font-size:clamp(3rem,6.4vw,5.5rem);line-height:1.04!important;overflow-wrap:normal;hyphens:none;text-wrap:balance}

/* Main headings sit above the photographs; navigation and content share the same page edges. */
.photo-layout-page.action-page .action-hero h1{max-width:none;font-size:clamp(3.5rem,5.4vw,6rem);line-height:1!important;text-wrap:balance}
.photo-layout-page.action-page .concert-photo{width:100%;margin:0}
.photo-layout-page.action-page .concert-photo figcaption{padding-left:0}
.photo-layout-page.action-page .concert-photo figcaption{font-size:12px;gap:6px 20px}
/* The photograph leads the support page. Its story and the transfer details
   use separate grids so banking controls cannot determine the image size. */
.photo-layout-page.donate-page .action-shell{padding-top:clamp(112px,13svh,144px)}
.donate-page .donation-layout{--donation-gap:clamp(32px,4vw,72px);width:100%;margin:0 auto}
.photo-layout-page.donate-page .action-hero{max-width:none;margin:0 0 clamp(24px,3vh,36px)}
.photo-layout-page.donate-page .action-hero h1{max-width:none;text-wrap:balance}
.donate-page .donation-opening{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);gap:var(--donation-gap);align-items:center}
.donate-page .donation-opening .concert-photo{position:relative;top:auto;align-self:start;margin:0}
.donate-page .donation-opening .concert-photo img{width:100%;height:auto;aspect-ratio:1.5;object-fit:contain}
.donate-page .donation-funding-note{max-width:40ch;margin:0 0 32px;color:var(--photo-paper)}
.donate-page .donation-funding-note h2{margin:0 0 20px;font-size:clamp(1.65rem,2.1vw,2rem);line-height:1.15!important;text-wrap:balance}
.donate-page .donation-funding-note p{margin:0;color:var(--photo-muted);font-size:clamp(1rem,1.05vw,1.075rem);font-weight:400;line-height:1.8;text-wrap:pretty}
.donate-page .donation-funding-note p+p{margin-top:20px}
.donate-page .donation-funding-note .donation-purpose{color:var(--photo-paper)}
.donate-page .roots-separator{height:2px;margin:clamp(48px,5vw,72px) 0;background:var(--green)}
.donate-page .donation-details{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:var(--donation-gap);align-items:start;margin:0;padding:0;border:0}
.donate-page .donation-details .donation-allocation-note{justify-self:start;align-self:start;max-width:56ch;margin:0;padding:0}
.donate-page .donation-workflow{justify-self:start;max-width:none;position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr);row-gap:32px;width:100%;min-width:0;margin:0;padding:0;background:none}
/* A single restrained selector, with an explicit selected account. */
.donate-page .donation-region-switch{grid-column:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;margin:0;padding:4px;gap:4px;border:1px solid rgba(255,253,248,.2);border-radius:999px;background:rgba(0,0,0,.12);box-shadow:none}
.donate-page .donation-region-switch button{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:12px;min-width:0;min-height:52px;padding:10px 14px;border:0;border-radius:999px;background:transparent;color:var(--photo-muted);box-shadow:none;transition:background-color 160ms ease,color 160ms ease}
.donate-page .donation-region-switch button span{font-family:var(--font-body);font-size:.78rem;line-height:1.4;font-weight:700;letter-spacing:0}
.donate-page .donation-region-switch button small{font-family:var(--font-body);color:inherit;font-size:.72rem;font-weight:500;line-height:1.4;opacity:.8}
.donate-page .donation-region-switch button.is-active{color:var(--photo-paper);background:var(--green);border:0;box-shadow:none}
.donate-page .donation-region-switch button:hover{background:rgba(255,253,248,.08);color:var(--photo-paper)}
.donate-page .donation-region-switch button.is-active:hover{color:var(--photo-paper);background:var(--green)}
.donate-page .donation-allocation-note{display:block;width:100%;margin:0 0 48px;padding:0;border:0;color:var(--photo-paper);background:none}
.donate-page .donation-allocation-note>div{display:block}
.donate-page .donation-allocation-note p{max-width:none;margin:0;color:var(--photo-paper);font-size:1rem;line-height:1.8;font-weight:400}
.donate-page .donation-allocation-note>p{margin-top:16px;color:var(--photo-muted);font-size:.9rem;line-height:1.75;opacity:1}
.donate-page .donation-allocation-note>a{display:inline-block;margin-top:24px;color:var(--photo-paper);font-size:.72rem;line-height:1.6;text-decoration:none}
.donate-page .donation-account-list{grid-column:1/-1;width:100%;margin:0}
.donate-page .donation-account-simple{color:var(--photo-paper);background:none}
.donate-page .donation-account-simple.is-active{animation:donation-account-reveal 160ms ease-out}
/* The account-holder row already contains the recipient name and its copy action. */
.donate-page .donation-account-simple h3{display:none}
.donate-page .simple-bank-details,.donate-page .simple-bank-details div,.donate-page .simple-bank-details div:first-child{border:0;background:none}
.donate-page .simple-bank-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 32px;margin:0;align-items:start}
.donate-page .simple-bank-details div{min-width:0;padding:0}
.donate-page .simple-bank-details div:first-child{grid-column:1/-1;grid-row:auto;padding:0}
.donate-page .simple-bank-details dt{margin-bottom:6px;color:var(--photo-muted);font-size:.65rem;font-weight:500;letter-spacing:.06em}
.donate-page .simple-bank-details dd{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0;color:var(--photo-paper);font-size:1rem;font-weight:500;line-height:1.6}
.donate-page .simple-bank-details dd>span{min-width:0;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.donate-page .simple-bank-details div:first-child dd>span{font-family:var(--font-display);font-size:clamp(1.5rem,2.3vw,2rem);font-weight:400;line-height:1.2;text-wrap:balance}
.donate-page .simple-bank-details button{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex:0 0 auto;min-width:84px;min-height:44px;padding:8px;border:0;border-radius:8px;background:transparent;color:var(--photo-muted);font-family:var(--font-body);font-size:.64rem;font-weight:600;box-shadow:none;transition:color 150ms ease,background-color 150ms ease}
.donate-page .simple-bank-details button::before{content:"";display:block;flex:0 0 15px;width:15px;height:15px;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='8' y='8' width='12' height='12' rx='1.5'/%3E%3Cpath d='M16 5V4H4v12h1'/%3E%3C/svg%3E") center/contain no-repeat}
.donate-page .simple-bank-details button:is(:hover,:focus-visible){background:rgba(255,253,248,.08);color:var(--photo-paper)}
.donate-page .donation-region-switch button:focus-visible,.donate-page .simple-bank-details button:focus-visible{outline:2px solid var(--photo-paper);outline-offset:3px}
@keyframes donation-account-reveal{from{opacity:0}to{opacity:1}}

/* Contact: photograph, heading, captions and links follow one aligned grid. */
.contact-page .contact-landing-content{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(340px,1fr);grid-template-rows:auto 1fr;align-items:start;column-gap:clamp(40px,4vw,72px);row-gap:0;width:100%;min-height:0;margin:0;padding:0;background:none;text-align:left}
.photo-layout-page.contact-page .contact-hero{grid-column:1/-1;grid-row:1;justify-self:start;max-width:none;margin:0 0 40px}
.contact-page .contact-layout{display:contents}
.contact-page .contact-layout .concert-photo{grid-column:1;grid-row:2;align-self:start;width:100%;margin:0}
.photo-layout-page.contact-page .concert-photo figcaption{padding-left:0}
.contact-page .contact-layout .concert-photo img{height:auto;aspect-ratio:1.5;object-fit:contain;object-position:center;mask-image:none;-webkit-mask-image:none}
.contact-page .contact-layout .contact-email-panel{grid-column:2;grid-row:2;justify-self:start;display:grid;grid-template-columns:1fr;gap:24px;width:100%;max-width:480px;margin:0}
.contact-page .contact-layout .contact-email-entry{--contact-tone:var(--green);--contact-arrow:var(--photo-paper);position:relative;display:grid;grid-template-columns:minmax(0,1fr) 44px;grid-template-rows:auto auto;min-height:88px;margin:0;padding:0;gap:8px 24px;align-content:center;align-items:center;border:0;border-radius:0;background:none;color:var(--photo-paper);opacity:1;transform:none;transition:none}
.contact-page .contact-layout .contact-email-entry span{grid-column:1;grid-row:1;color:var(--photo-muted);font-size:.68rem;font-weight:600;line-height:1.5;letter-spacing:.035em}
.contact-page .contact-layout .contact-email-entry strong{grid-column:1;grid-row:2;color:var(--photo-paper);font-size:clamp(.95rem,1.35vw,1.1rem);line-height:1.5;font-weight:500;overflow-wrap:anywhere}
.contact-page .contact-layout .contact-email-entry-yellow{--contact-tone:var(--yellow);--contact-arrow:var(--ink)}
.contact-page .contact-layout .contact-email-entry-red{--contact-tone:var(--red)}
.contact-page .contact-layout .contact-email-entry-blue{--contact-tone:var(--blue)}
.contact-page .contact-layout .contact-email-entry::after{position:static;content:"↗";grid-column:2;grid-row:2;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;color:var(--contact-arrow);background:var(--contact-tone);font-size:24px;font-weight:400;transform:none;transition:translate 160ms ease,filter 160ms ease}
.contact-page .contact-layout .contact-email-entry:is(:hover,:focus-visible){background:none;color:var(--photo-paper);opacity:1;transform:none}
.contact-page .contact-layout .contact-email-entry:is(:hover,:focus-visible)::after{translate:2px -2px;filter:brightness(1.15)}
.contact-page .contact-layout .contact-email-entry:focus-visible{outline:2px solid var(--photo-paper);outline-offset:6px}

/* Match the existing footer spacing and rounded colour controls. */
.photo-layout-page.action-page .action-footer{width:100%;margin:0 auto;padding:72px 0 32px;border:0;background:none}
.photo-layout-page.action-page .action-footer{max-width:1180px}
.photo-layout-page.action-page .action-footer .site-credit{width:100%;color:var(--photo-muted);font-size:.75rem;line-height:1.8;opacity:1}
.photo-layout-page.action-page .action-footer .footer-legal-link{color:var(--photo-paper);background:var(--footer-tone);border:0;border-radius:999px;font-size:.7rem;box-shadow:none;opacity:1}
.photo-layout-page .footer-legal-link-green{--footer-tone:var(--green)}
.photo-layout-page .footer-legal-link-yellow{--footer-tone:var(--yellow)}
.photo-layout-page .footer-legal-link-red{--footer-tone:var(--red)}
.photo-layout-page .footer-legal-link-blue{--footer-tone:var(--blue)}
.photo-layout-page.action-page .action-footer .footer-legal-link-yellow{color:var(--ink)}
.photo-layout-page.action-page .action-footer .footer-legal-link:is(:hover,:focus-visible){background:var(--footer-tone);filter:brightness(1.15)}
.photo-layout-page.action-page .action-footer .footer-legal-link:focus-visible{outline:2px solid var(--photo-paper);outline-offset:4px}

/* Diary cards: clear Bauhaus colour fields, without glossy or muddy shading. */
.photo-layout-page .diary-card{background:var(--date-color);box-shadow:0 18px 40px rgba(0,0,0,.18)}
.photo-layout-page .diary-card::after{display:none}
.photo-layout-page .diary-card.is-active{filter:none}
.photo-layout-page .diary-card-date strong{text-shadow:none}
.photo-layout-page .diary-card:nth-child(4n+2) :is(.diary-card-date strong,.diary-card-date span,.diary-card-meta span,h3,p,.diary-card-points,.entry-link){color:var(--ink)}
.photo-layout-page .diary-card:nth-child(4n+2) .diary-card-points li::before{background:var(--ink)}

/* Project: one clear heading hierarchy and a bounded, normal-flow photograph. */
/* Keep the shared site-lower gradient and the original spacing into the diary. */
.landing-page .about-section{padding:clamp(48px,6vw,80px) var(--photo-edge) clamp(20px,2vw,28px);background:transparent}
.landing-page .about-section>.section-heading{width:min(1180px,100%);margin:0 auto clamp(36px,4vw,56px);padding:0}
.landing-page .about-section>.section-heading h2{margin:0;font-size:clamp(2rem,4vw,3.75rem)}
.landing-page .about-section .story-flow{width:min(1180px,100%);gap:clamp(48px,6vw,72px)}
.landing-page .about-section .project-scene{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);align-items:start;gap:clamp(32px,4vw,56px);width:100%;min-height:0;margin:0;padding:0;border:0;background:none;text-align:left}
.landing-page .project-copy{width:100%;max-width:65ch;margin:0}
.landing-page .about-section .story-copy h3{margin:0 0 20px;padding:0;border:0;font-size:clamp(1.5rem,2.2vw,2.1rem);color:var(--photo-paper)}
.landing-page .about-section .project-copy h3{text-align:left}
.landing-page .about-section .project-copy p{max-width:65ch;margin:0;color:var(--photo-paper);font-size:1rem;line-height:1.75;text-align:left;white-space:pre-line;text-wrap:pretty}
.landing-page .project-scene .concert-photo{position:relative;inset:auto;z-index:auto;width:100%;height:auto;margin:0}
.landing-page .project-scene .concert-photo img{position:static;width:100%;height:auto;aspect-ratio:1.5;object-fit:contain}
.landing-page .project-scene .concert-photo::after{display:none}
.landing-page .project-scene .concert-photo figcaption{position:static;margin:0;padding-top:12px;font-size:11px}
.landing-page .about-section .story-copy{border:0}
.landing-page .about-section .story-copy:not(.project-scene),.landing-page .about-section .identity-strip{max-width:760px;width:100%}
@media(max-width:1000px){
 .landing-page .about-section .story-flow{max-width:760px}
 .landing-page .about-section .project-scene{grid-template-columns:minmax(0,1fr);gap:28px}
 .landing-page .project-copy{max-width:none}
 .landing-page .about-section .project-copy p{max-width:none}
}

@media(min-width:1101px){
 .photo-layout-page.donate-page .action-hero h1{font-size:clamp(3.5rem,5vw,5rem)}
 .photo-layout-page.contact-page .action-hero h1{max-width:none;font-size:clamp(3.5rem,5vw,5rem);text-wrap:nowrap}
}
@media(max-width:1100px){
 .photo-layout-page.action-page .action-hero h1{max-width:none;font-size:clamp(3.25rem,7vw,5rem)}
 .photo-layout-page.action-page .concert-photo{width:100%;margin-left:0;margin-top:0}
 .photo-layout-page.action-page .concert-photo figcaption{padding-left:0}
 .contact-page .contact-landing-content{grid-template-columns:minmax(0,1fr);grid-template-rows:auto;max-width:none;margin-inline:auto;row-gap:30px}
 .photo-layout-page.contact-page .contact-hero{grid-column:1;grid-row:1;margin:0}
 .contact-page .contact-layout .concert-photo{position:relative;top:auto;grid-column:1;grid-row:2}
 .contact-page .contact-layout .contact-email-panel{grid-column:1;grid-row:3;grid-template-columns:repeat(2,minmax(0,1fr));max-width:none;gap:24px 36px}
 .contact-page .contact-layout .contact-email-entry{column-gap:16px}
 .contact-page .contact-layout .contact-email-entry strong{font-size:.94rem}
}
@media(max-width:1000px){
 .donate-page .donation-opening,.donate-page .donation-details{grid-template-columns:minmax(0,1fr)}
 .donate-page .donation-funding-note{max-width:60ch;margin:0}
 .donate-page .donation-details .donation-allocation-note{max-width:68ch}
 .donate-page .donation-region-switch{max-width:560px}
}
@media(max-width:600px){
 .photo-layout-page{--photo-edge:24px}
 .photo-layout-page.action-page .action-shell{padding-top:124px}
 .photo-layout-page.action-page .action-hero{margin-bottom:0}
 .photo-layout-page.action-page .action-hero h1{max-width:none;font-size:clamp(3rem,12.5vw,4.25rem)}
 .concert-photo figcaption{gap:4px 12px;font-size:10px;padding-top:12px}
 .photo-layout-page.donate-page .action-hero{margin-bottom:24px}
 .donate-page .donation-opening{gap:36px}
 .donate-page .donation-opening .concert-photo img{height:auto;aspect-ratio:1.5;object-fit:contain}
 .donate-page .donation-workflow{grid-template-columns:minmax(0,1fr);row-gap:28px}
 .donate-page .donation-region-switch{margin:0}
 .donate-page .donation-region-switch button{gap:8px;padding-inline:10px}
 .donate-page .simple-bank-details dd{font-size:1rem;gap:12px}
 .donate-page .simple-bank-details{grid-template-columns:minmax(0,1fr);row-gap:24px}
 .contact-page .contact-layout .contact-email-panel{grid-template-columns:1fr;gap:10px}
 .contact-page .contact-layout .contact-email-entry{min-height:82px}
 .contact-page .contact-layout .contact-email-entry strong{font-size:1rem}
 .photo-layout-page.action-page .action-footer{padding-top:48px}
}
@media(prefers-reduced-motion:reduce){.contact-page .contact-layout .contact-email-entry::after{transition:none}}

@media(max-width:380px){.donate-page .donation-region-switch button{flex-direction:column;gap:2px;padding:7px 6px}}
@media(prefers-reduced-motion:reduce){.donate-page .donation-account-simple.is-active{animation:none}.donate-page .donation-region-switch button,.donate-page .simple-bank-details button{transition:none}}

/* Fit the desktop contact opening to the visible height while retaining
   the complete photograph and readable email links. Small screens scroll. */
@media(min-width:960px) and (min-height:560px){
 .photo-layout-page.contact-page .action-shell{--contact-top:clamp(100px,12svh,140px);--contact-heading-size:clamp(56px,5vw,80px);--contact-heading-gap:clamp(20px,3svh,36px);--contact-photo-height:max(220px,calc(100svh - var(--contact-top) - var(--contact-heading-size) - var(--contact-heading-gap) - 92px));padding-top:var(--contact-top)}
 .contact-page .contact-landing-content{grid-template-columns:minmax(0,min(60%,calc(var(--contact-photo-height) * 1.5))) minmax(340px,1fr);min-height:calc(100svh - var(--contact-top));padding-bottom:28px;align-content:start}
 .photo-layout-page.contact-page .contact-hero{grid-column:1/-1;margin-bottom:var(--contact-heading-gap)}
 .photo-layout-page.contact-page .contact-hero h1{font-size:var(--contact-heading-size)}
 .contact-page .contact-layout .concert-photo img{height:auto;aspect-ratio:1.5}
 .contact-page .contact-layout .contact-email-panel{grid-column:2;grid-row:2;grid-template-columns:1fr;gap:clamp(12px,2.2svh,24px)}
 .contact-page .contact-layout .contact-email-entry{min-height:clamp(72px,9svh,88px)}
}
