/*
Theme Name: Cowan & Payne Event Photography
Theme URI: https://cowanandpayne.com
Author: Cowan & Payne
Description: A photo-led event photography theme for Cowan & Payne.
Version: 2.3
Text Domain: cowan-payne
*/

:root{
  --cp-blue:#2e3192;
  --cp-blue-dark:#15175d;
  --cp-ink:#111321;
  --cp-muted:#5f6474;
  --cp-bg:#ffffff;
  --cp-soft:#f3f4fb;
  --cp-border:#dfe2ef;
  --cp-max:1180px;
  --cp-wide:1360px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,"Aptos","Segoe UI",Arial,sans-serif;color:var(--cp-ink);background:var(--cp-bg);line-height:1.58;font-size:16px}img{max-width:100%;height:auto;display:block;border-radius:0!important}a{color:var(--cp-blue);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3,h4,.site-title,.nav-menu a,.button,.eyebrow,summary{font-family:Poppins,Inter,"Segoe UI",Arial,sans-serif}h1,h2,h3{line-height:1.08;margin:0 0 .55em;color:var(--cp-ink);letter-spacing:-.035em}h1{font-size:clamp(2.4rem,5.4vw,5.4rem)}h2{font-size:clamp(1.8rem,2.8vw,3rem)}h3{font-size:1.18rem;letter-spacing:-.02em}p{margin:0 0 1.05em}.muted{color:var(--cp-muted)}.narrow{max-width:760px}.container{max-width:var(--cp-max);margin:0 auto}.wide-container{max-width:var(--cp-wide)}
.site-header{position:sticky;top:0;z-index:50;background:var(--cp-blue);color:#fff;border-bottom:1px solid rgba(255,255,255,.12)}.header-inner{max-width:var(--cp-max);margin:0 auto;padding:13px 22px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand-wrap{display:flex;align-items:center;justify-content:flex-start;margin:0;padding:0}.custom-logo-link{display:flex;align-items:center;line-height:0;margin:0;padding:0}.custom-logo,.logo-img{max-height:72px;width:auto;margin:0;padding:0}.site-title{font-size:1.42rem;color:#fff;font-weight:850;text-decoration:none;letter-spacing:-.03em}.nav-menu{list-style:none;margin:0;padding:0;display:flex;gap:26px;align-items:center;justify-content:flex-end}.nav-menu a{font-size:.9rem;font-weight:800;color:#fff;text-transform:uppercase;letter-spacing:.08em}.nav-menu a:hover{color:rgba(255,255,255,.78);text-decoration:none}.menu-toggle{display:none;background:#fff;color:var(--cp-blue);border:0;padding:10px 14px;font-weight:900}
.intro-hero{background:#fff;padding:54px 22px 42px}.intro-grid{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(360px,.98fr);gap:46px;align-items:center}.intro-copy .standfirst{font-size:clamp(1.18rem,1.7vw,1.5rem);line-height:1.38;color:var(--cp-blue);font-weight:700;max-width:780px}.intro-copy p:not(.standfirst){font-size:1.05rem;color:#33394b;max-width:720px}.intro-mosaic{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:170px;gap:12px}.intro-mosaic a,.intro-mosaic .photo-placeholder{display:block;overflow:hidden;background:#dfe2ef}.intro-mosaic a:first-child{grid-row:span 2}.intro-mosaic img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.intro-mosaic a:hover img{transform:scale(1.035)}.photo-placeholder{min-height:170px;display:flex;align-items:center;justify-content:center;color:var(--cp-muted);font-weight:800;background:linear-gradient(135deg,#dfe2ef,#f7f7f7)}.photo-placeholder.tall{min-height:520px}
.button-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:24px}.button{display:inline-flex;align-items:center;justify-content:center;padding:13px 20px;font-weight:850;text-decoration:none;border:2px solid transparent;background:var(--cp-blue);color:#fff}.button-primary{background:var(--cp-blue);color:#fff}.button-outline{background:#fff;border-color:var(--cp-blue);color:var(--cp-blue)}.button:hover{text-decoration:none;filter:brightness(.96)}
.slideshow-band{height:min(72vh,720px);background:var(--cp-blue-dark);overflow:hidden}.slideshow-band img{width:100%;height:100%;object-fit:cover}.slideshow-placeholder{height:100%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;background:linear-gradient(135deg,var(--cp-blue),var(--cp-blue-dark))}
.section{padding:52px 22px}.section.compact{padding:42px 22px}.section.alt{background:var(--cp-soft)}.section-head{display:flex;justify-content:space-between;gap:26px;align-items:end;margin-bottom:25px}.section-head.simple{display:block;max-width:850px}.section-head p{max-width:650px;color:var(--cp-muted);font-size:1.04rem}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.service-card,.plain-card{background:#fff;border:1px solid var(--cp-border);padding:23px}.service-card p,.plain-card p{color:var(--cp-muted);font-size:.97rem}.gallery-section{background:#fff}.gallery-section h2{margin-bottom:22px}.wall-gallery{columns:3 300px;column-gap:14px}.wall-item{display:block;break-inside:avoid;margin:0 0 14px;background:#ddd;overflow:hidden}.wall-item img{width:100%;height:auto;transition:opacity .2s ease}.wall-item:hover img{opacity:.88}.wall-placeholder{height:260px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#dfe2ef,#f7f7f7);color:var(--cp-muted);font-weight:800;break-inside:avoid;margin:0 0 14px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:54px}.tick-list{margin:0;padding:0;list-style:none;display:grid;gap:12px}.tick-list li{padding-left:28px;position:relative;color:#303648}.tick-list li:before{content:"";position:absolute;left:0;top:.64em;width:11px;height:11px;background:var(--cp-blue)}.logo-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:22px}.logo-row span{border:1px solid var(--cp-border);background:#fff;padding:22px;text-align:center;font-family:Poppins,Inter,sans-serif;font-weight:800;color:var(--cp-blue)}.faq-wrap{max-width:900px}.faq-wrap details{border-top:1px solid var(--cp-border);padding:18px 0}.faq-wrap details:last-child{border-bottom:1px solid var(--cp-border)}summary{cursor:pointer;font-weight:800;font-size:1.05rem}details p{color:var(--cp-muted);margin-top:10px}.enquiry-section{background:#fff}.enquiry-box{background:var(--cp-blue);color:#fff;padding:38px;display:grid;grid-template-columns:1fr auto;gap:26px;align-items:center}.enquiry-box h2{color:#fff}.enquiry-box p{color:rgba(255,255,255,.82);max-width:720px}.enquiry-box .button{background:#fff;color:var(--cp-blue)}
.page-hero{background:var(--cp-blue);color:#fff;padding:68px 22px}.page-hero.slim{padding:45px 22px}.page-hero h1{color:#fff;font-size:clamp(2.4rem,5vw,4.8rem)}.page-hero p{color:rgba(255,255,255,.84);font-size:1.16rem;max-width:800px}.content{max-width:840px;margin:0 auto;padding:60px 22px}.about-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:44px;align-items:center}.about-photo img{width:100%;height:auto}.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:42px;align-items:start}.contact-form{display:grid;gap:14px;background:var(--cp-soft);padding:26px;border:1px solid var(--cp-border)}.contact-form label{display:grid;gap:6px;font-weight:800;font-family:Poppins,Inter,sans-serif}.contact-form input,.contact-form textarea{width:100%;padding:12px;border:1px solid var(--cp-border);font:inherit;background:#fff}.contact-form button{border:0;cursor:pointer;justify-self:start}.post-card img{aspect-ratio:4/3;object-fit:cover;width:100%}.post-meta{font-size:.9rem;color:var(--cp-muted);font-weight:700;margin-bottom:8px}
.footer{background:#11133f;color:#fff;padding:42px 22px 24px}.footer-inner{max-width:var(--cp-max);margin:auto;display:grid;grid-template-columns:1.25fr .8fr .8fr;gap:34px;align-items:start}.footer-brand{font-family:Poppins,Inter,sans-serif;font-size:1.35rem;font-weight:850;letter-spacing:-.03em;margin-bottom:8px}.footer h3{color:#fff;font-size:1rem;margin:0 0 12px;letter-spacing:-.01em}.footer a{color:#fff}.footer p{color:rgba(255,255,255,.72);margin:0}.footer .small{color:rgba(255,255,255,.68);font-size:.9rem}.footer-links{list-style:none;margin:0;padding:0;display:grid;gap:8px}.footer-bottom{max-width:var(--cp-max);margin:30px auto 0;padding-top:18px;border-top:1px solid rgba(255,255,255,.14);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;color:rgba(255,255,255,.58);font-size:.88rem}
@media(max-width:980px){.intro-grid,.two-col,.about-grid,.contact-grid{grid-template-columns:1fr}.grid-4{grid-template-columns:repeat(2,1fr)}.intro-mosaic{grid-auto-rows:150px}.slideshow-band{height:54vh}.enquiry-box{grid-template-columns:1fr}.logo-row{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.menu-toggle{display:block}.nav-menu{display:none;position:absolute;top:78px;left:16px;right:16px;flex-direction:column;align-items:flex-start;background:var(--cp-blue);border:1px solid rgba(255,255,255,.2);padding:18px}.nav-menu.open{display:flex}.header-inner{padding:10px 16px}.custom-logo,.logo-img{max-height:54px}.site-title{font-size:1.05rem}.intro-hero{padding:36px 16px 28px}.intro-mosaic{grid-template-columns:1fr 1fr;gap:8px}.section,.section.compact{padding:34px 16px}.grid-3,.grid-4{grid-template-columns:1fr}.wall-gallery{columns:1}.footer-inner{grid-template-columns:1fr}.footer-bottom{display:block}.page-hero{padding:48px 16px}.enquiry-box{padding:28px}.logo-row{grid-template-columns:1fr}}

/* v2.1 refinements */
h1{font-size:clamp(2.25rem,4.45vw,4.65rem)}
.intro-grid{grid-template-columns:minmax(0,.92fr) minmax(430px,1.08fr);align-items:stretch}.intro-copy{align-self:stretch;display:flex;flex-direction:column;justify-content:center}.intro-mosaic.hero-wall{grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);gap:10px;height:100%;min-height:620px}.hero-wall-item{display:block;border:0;padding:0;margin:0;background:#dfe2ef;overflow:hidden;cursor:pointer}.hero-wall-item img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.hero-wall-item:hover img{transform:scale(1.035)}.hero-wall-item:nth-child(1){grid-column:1 / span 2;grid-row:1 / span 2}.hero-wall-item:nth-child(2){grid-column:3 / span 2;grid-row:1 / span 1}.hero-wall-item:nth-child(3){grid-column:3 / span 1;grid-row:2 / span 2}.hero-wall-item:nth-child(4){grid-column:4 / span 1;grid-row:2 / span 1}.hero-wall-item:nth-child(5){grid-column:1 / span 2;grid-row:3 / span 2}.hero-wall-item:nth-child(6){grid-column:4 / span 1;grid-row:3 / span 1}.hero-wall-item:nth-child(7){grid-column:3 / span 2;grid-row:4 / span 1}.wall-item{border:0;padding:0;text-align:left;cursor:pointer;width:100%;font:inherit}.wall-item:hover{text-decoration:none}.cp-lightbox{position:fixed;inset:0;background:rgba(7,10,44,.88);display:none;align-items:center;justify-content:center;z-index:99999;padding:28px}.cp-lightbox.open{display:flex}.cp-lightbox img{max-width:88vw;max-height:86vh;width:auto;height:auto;object-fit:contain;box-shadow:0 30px 90px rgba(0,0,0,.55);cursor:pointer}.cp-lightbox-close{position:absolute;top:18px;right:20px;border:0;background:rgba(255,255,255,.12);color:#fff;width:44px;height:44px;font-size:28px;line-height:1;cursor:pointer}.cp-lightbox-close:hover{background:rgba(255,255,255,.22)}
@media(max-width:980px){.intro-grid{grid-template-columns:1fr}.intro-mosaic.hero-wall{min-height:500px;grid-auto-rows:114px}}
@media(max-width:760px){h1{font-size:clamp(2rem,9vw,3.15rem)}.intro-mosaic.hero-wall{grid-template-columns:repeat(2,1fr);grid-auto-rows:130px;min-height:auto}.hero-wall-item:nth-child(n){grid-column:span 1;grid-row:span 1}.hero-wall-item:nth-child(1),.hero-wall-item:nth-child(5){grid-column:span 2;grid-row:span 2}.cp-lightbox{padding:14px}.cp-lightbox img{max-width:94vw;max-height:82vh}}

/* v2.3: homepage selected work + portfolio page gallery blocks */
.portfolio-page-content .wp-block-gallery,
.portfolio-page-content .gallery {
  display: block !important;
  columns: 3 300px;
  column-gap: 14px;
  margin: 0;
}
.portfolio-page-content .wp-block-gallery.has-nested-images figure.wp-block-image,
.portfolio-page-content .wp-block-gallery figure.wp-block-image,
.portfolio-page-content .gallery .gallery-item,
.portfolio-page-content figure.wp-block-image {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 0 14px !important;
  break-inside: avoid;
  page-break-inside: avoid;
}
.portfolio-page-content .wp-block-gallery img,
.portfolio-page-content .gallery img,
.portfolio-page-content figure.wp-block-image img {
  width: 100% !important;
  height: auto !important;
  object-fit: cover;
  border-radius: 0 !important;
  display: block;
}
.portfolio-page-content .wp-block-gallery a,
.portfolio-page-content .gallery a,
.portfolio-page-content figure.wp-block-image a {
  display: block;
  color: inherit;
  text-decoration: none;
}
.portfolio-page-content figcaption,
.portfolio-page-content .wp-element-caption,
.portfolio-page-content .gallery-caption {
  display: none !important;
}
@media(max-width:760px){
  .portfolio-page-content .wp-block-gallery,
  .portfolio-page-content .gallery { columns: 1; }
}
