/*
Theme Name: Photo Studio 308 Atelier
Theme URI: https://www.photostudio308.com/
Author: Photo Studio 308
Description: Contemporary photography portfolio with visual theme management, galleries and AJAX enquiries.
Version: 3.1.0
Requires at least: 6.3
Requires PHP: 8.0
Text Domain: photo-studio-308
*/
:root{--ink:#101113;--muted:#686c72;--line:#e5e6e8;--content:1440px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;font:16px/1.65 system-ui,-apple-system,"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit}img{max-width:100%;height:auto}button,input,select,textarea{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #a9c5fa;outline-offset:3px}h1,h2,h3{line-height:1.15;letter-spacing:-.035em}.site-header{background:#080808;color:#fff;position:relative;z-index:40}.site-header.sticky{position:sticky;top:0}body.admin-bar .site-header.sticky{top:32px}.header-inner{max-width:1640px;margin:auto;min-height:94px;padding:15px 42px;display:flex;align-items:center;justify-content:space-between;gap:32px}.brand{flex-shrink:0;text-decoration:none;font-weight:800;font-size:22px}.brand img{display:block;width:auto;max-width:245px;max-height:63px;object-fit:contain}.nav-menu{display:flex;align-items:center;list-style:none;padding:0;margin:0;gap:clamp(18px,2.5vw,38px)}.nav-menu a{font-size:12px;font-weight:750;letter-spacing:.12em;text-decoration:none;text-transform:uppercase}.nav-menu a:hover,.social a:hover{opacity:.65}.social{display:flex;gap:15px}.social a{font-size:12px;text-decoration:none;text-transform:uppercase;font-weight:700}.menu-toggle{display:none;background:transparent;color:#fff;border:1px solid #777;padding:8px 12px}.hero-section{background:#090909}.hero-gallery{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:2px;background:#090909}.hero-gallery .gallery-lightbox{padding:0;border:0;background:#1c1c1c;aspect-ratio:3/4;overflow:hidden;min-width:0}.hero-gallery img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s}.hero-gallery button:hover img{transform:scale(1.045)}.hero-action{text-align:center;padding:26px 20px 32px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:16px;background:#111;color:#fff;border:1px solid #111;padding:15px 30px;font-size:13px;font-weight:800;text-decoration:none;text-transform:uppercase;letter-spacing:.09em;transition:background .2s,color .2s}.hero-action .btn{background:#fff;color:#111;border-color:#fff}.btn:hover,.hero-action .btn:hover{background:#888;color:#fff;border-color:#888}.btn-outline{background:transparent;color:#111}.section{max-width:var(--content);margin:auto;padding:100px 34px}.section-head{text-align:center;margin:0 0 44px}.eyebrow{font-size:11px;letter-spacing:.24em;font-weight:800;color:#8b8b8b}.section-head h2{font-size:clamp(32px,4vw,58px);font-weight:800;margin:11px 0 0}.reviews-section{padding-top:80px;padding-bottom:80px}.reviews-carousel{position:relative;display:flex;align-items:center;gap:10px}.reviews-track{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;flex:1}.reviews-track::-webkit-scrollbar{display:none}.review-card{flex:0 0 calc((100% - 54px)/4);scroll-snap-align:start;border:1px solid #dedfe2;padding:22px;background:#fff;min-height:190px}.review-card-head{display:flex;gap:12px;align-items:center}.review-card-head img{width:46px;height:46px;object-fit:cover;border-radius:50%}.review-card-head strong{font-size:15px;text-transform:uppercase}.review-stars{color:#e5a03e;letter-spacing:2px}.review-card p{font-size:15px;color:#52565d;margin:16px 0 0}.reviews-prev,.reviews-next{background:transparent;border:0;font-size:36px;flex-shrink:0}.services-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.service-card{position:relative;overflow:hidden;background:#171717;display:block;min-height:300px;aspect-ratio:1.3;text-decoration:none;color:#fff}.service-card>img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}.service-card:hover>img{transform:scale(1.04)}.service-overlay{position:absolute;inset:auto 0 0;padding:55px 26px 25px;background:linear-gradient(transparent,#000b)}.service-overlay h3{font-size:clamp(24px,2.5vw,39px);text-transform:uppercase;margin:0 0 5px}.service-overlay span{font-size:12px;letter-spacing:.13em;text-transform:uppercase}.studio-section{border-top:1px solid var(--line)}.studio-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:6%;align-items:center}.studio-copy{font-size:18px;line-height:1.85;color:#42464b}.studio-logos{display:flex;flex-wrap:wrap;gap:22px;align-items:center;margin-top:24px}.studio-logos img{max-width:190px;max-height:75px;object-fit:contain}.studio-slideshow{position:relative;overflow:hidden;background:#111}.studio-slideshow img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}.studio-slideshow button{position:absolute;top:50%;transform:translateY(-50%);background:#0009;color:#fff;border:0;font-size:30px;padding:8px 18px}.studio-slideshow button:last-child{right:0}.video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:35px}.video-card iframe{display:block;width:100%;aspect-ratio:16/9;height:auto}.video-poster{border:0;background:#111;position:relative;width:100%;padding:0}.video-poster img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.video-poster span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;background:#000b;color:white;padding:20px 24px}.blog-grid{display:grid;grid-template-columns:repeat(var(--blog-cols,3),minmax(0,1fr));gap:42px 25px}.blog-card{text-decoration:none;min-width:0}.blog-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.blog-date{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#777;display:block;margin-top:16px}.blog-card h3{font-size:19px;margin:8px 0 12px;text-transform:uppercase}.blog-read{font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.08em}.section-cta{text-align:center;margin-top:50px}.location-section{padding:90px max(24px,calc((100vw - 1540px)/2));background:#f6f6f5}.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:stretch}.quote-form{background:#090909;color:#fff;padding:30px;min-width:0}.form-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:20px}.field{grid-column:span 3;min-width:0}.field.third{grid-column:span 2}.field.full{grid-column:span 6}.field label{display:block;text-transform:uppercase;font-size:12px;font-weight:650;line-height:1.3;min-height:31px;margin-bottom:8px}.field input,.field select,.field textarea{display:block;width:100%;min-height:62px;background:#fff;border:0;border-radius:0;color:#111;padding:14px 16px;font-size:15px}.field textarea{min-height:128px}.quote-form .btn{width:100%;background:transparent;color:#fff;border-color:#fff;margin-top:20px;font-size:16px}.quote-form .btn:hover{background:#fff;color:#111}.form-status.error{color:#ff7777}.form-status.success{color:#6df2a0}.map-holder{min-width:0}.map-frame{display:block;border:0;width:100%;height:100%;min-height:690px}.site-footer{background:#050505;color:#fff;text-align:center;padding:34px 24px 18px}.footer-grid{max-width:var(--content);margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.footer-grid>div:not(:last-child){border-right:1px solid #555}.footer-grid h3{text-transform:uppercase;font-size:14px;font-weight:650}.footer-grid p{font-size:15px}.footer-grid a{margin:0 8px;text-decoration:none}.footer-menu{display:flex;justify-content:center;gap:25px;list-style:none;border-top:1px solid #444;margin:24px 0 0;padding:20px 0 0}.footer-menu a{font-size:12px;text-decoration:none}.page-heading{background:#070707;color:#fff;text-align:center;padding:55px 20px}.page-heading h1{font-size:clamp(32px,4vw,58px);text-transform:uppercase;margin:0}.wrap{max-width:var(--content);margin:auto;padding:60px 30px}.post-content{max-width:980px;margin:auto;font-size:18px;line-height:1.85}.post-content img{height:auto}.center{text-align:center;margin:35px 0}.gallery-grid{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));gap:12px}.gallery-grid button{border:0;background:none;padding:0}.gallery-grid img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block}.lightbox{position:fixed;inset:0;background:#050505f5;z-index:10000;display:none;align-items:center;justify-content:center}.lightbox.open{display:flex}.lightbox img{max-width:calc(100vw - 160px);max-height:85vh;object-fit:contain}.lightbox button{position:absolute;background:#161616aa;color:#fff;border:1px solid #7777;border-radius:50%;font-size:33px;width:52px;height:52px;display:grid;place-items:center;line-height:1}.lightbox .close{right:22px;top:22px}.lightbox .prev{left:22px;top:50%}.lightbox .next{right:22px;top:50%}.lightbox .counter{position:absolute;top:28px;left:26px;color:#fff;font-size:14px;letter-spacing:.1em}.cookie{position:fixed;bottom:18px;left:18px;max-width:400px;padding:20px;background:#fff;color:#111;border:1px solid #ddd;box-shadow:0 8px 35px #0003;z-index:100}.cookie[hidden]{display:none}.cookie button{margin:5px 6px 0 0;padding:8px 12px}.pagination{text-align:center;margin:30px}.pagination a,.pagination span{padding:9px}
@media(max-width:1100px){.header-inner{padding:14px 22px}.hero-gallery{grid-template-columns:repeat(4,1fr)}.blog-grid{grid-template-columns:repeat(min(3,var(--blog-cols,3)),1fr)}.review-card{flex-basis:calc((100% - 18px)/2)}.section{padding:70px 24px}}
@media(max-width:850px){body.admin-bar .site-header.sticky{top:46px}.menu-toggle{display:block}.site-header nav{order:4}.nav-menu{display:none;position:absolute;top:100%;left:0;right:0;padding:24px;background:#080808;flex-direction:column;align-items:flex-start}.nav-menu.open{display:flex}.header-inner{min-height:78px}.hero-gallery{grid-template-columns:repeat(3,1fr)}.studio-grid,.location-grid{grid-template-columns:1fr}.map-frame{min-height:440px}.blog-grid{grid-template-columns:repeat(2,1fr)}.review-card{flex-basis:calc((100% - 18px)/2)}.footer-grid{grid-template-columns:1fr}.footer-grid>div:not(:last-child){border-right:0;border-bottom:1px solid #333}}
@media(max-width:560px){.header-inner{padding:10px 16px;min-height:72px}.brand img{max-width:170px}.social{display:none}.hero-gallery{grid-template-columns:repeat(2,1fr)}.section{padding:55px 18px}.section-head{margin-bottom:28px}.services-grid,.blog-grid,.video-grid{grid-template-columns:1fr}.review-card{flex-basis:90%}.location-section{padding:55px 12px}.quote-form{padding:18px}.field,.field.third{grid-column:span 6}.field label{min-height:0}.map-frame{min-height:340px}.lightbox img{max-width:calc(100vw - 35px);max-height:78vh}.lightbox .prev,.lightbox .next{top:auto;bottom:18px}.lightbox button{width:44px;height:44px}.gallery-grid{grid-template-columns:repeat(2,1fr)}.footer-menu{flex-wrap:wrap}}

/* Photo Studio 308 refinement: responsive layout and accessible media */
html{scroll-behavior:smooth;scroll-padding-top:105px}#home,#services,#studio,#blog,#location{scroll-margin-top:105px}
.header-inner{position:relative}.social-link{display:inline-flex;align-items:center;gap:7px}.social-link img{display:block;filter:invert(1);width:19px;height:19px}.social-link span{font-size:12px}
.field label{font-weight:400;min-height:48px;display:flex;align-items:flex-end}.form-grid{align-items:start}.field{display:flex;flex-direction:column}.field input,.field select{margin-top:auto}
.post-content>img,.post-content>p>img,.post-content .wp-block-image img,.post-content .wp-block-image,.post-content figure,.post-content .aligncenter{display:block;margin-left:auto;margin-right:auto;max-width:100%;height:auto}.post-content .wp-block-image figcaption{text-align:center}
.blog-card img{object-position:center 22%}.blog-read{display:inline-flex;padding:10px 15px;border:1px solid #111;margin-top:8px;transition:.2s}.blog-card:hover .blog-read{background:#111;color:#fff}
.pagination{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:9px}.pagination a,.pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:1px solid #d5d5d5;text-decoration:none;border-radius:6px;font-size:15px}.pagination a[aria-current="page"],.pagination a:hover{background:#111;color:white;border-color:#111}
.video-poster{aspect-ratio:16/9;cursor:pointer;overflow:hidden}.video-poster img{height:100%}.video-poster .video-play{font-size:24px;box-shadow:0 4px 30px #0008}.video-provider{position:absolute;bottom:12px;left:12px;background:#000a;color:white;padding:5px 10px;font-size:12px}
.video-lightbox[hidden]{display:none!important}.video-lightbox{position:fixed;inset:0;z-index:11000;background:#000e;display:flex;align-items:center;justify-content:center;padding:55px 20px}.video-lightbox-inner{width:min(1100px,100%);aspect-ratio:16/9}.video-lightbox iframe{width:100%;height:100%;border:0}.video-close{position:absolute;top:12px;right:20px;border:0;background:none;color:#fff;font-size:46px;cursor:pointer}
@media(max-width:850px){.header-inner{display:flex;justify-content:space-between;gap:15px}.menu-toggle{order:0;flex:0 0 auto;margin-right:auto}.brand{order:1;margin-left:auto}.site-header nav{order:2}.site-header .header-inner>.social{display:none}.nav-menu{z-index:100}.services-grid{margin-inline:auto;max-width:700px}.section-head h2{text-align:center}}
@media(max-width:560px){.header-inner{min-height:72px}.brand img{max-height:56px;max-width:165px}.menu-toggle{font-size:22px}.services-grid{width:100%;margin:auto}.service-card{min-height:0;aspect-ratio:4/5}.service-overlay h3{font-size:clamp(24px,7vw,34px)}.section-head h2{font-size:clamp(30px,8vw,42px);overflow-wrap:break-word}.field label{min-height:0;display:block}.social-link{margin:4px 6px}}

/* Atelier v3.2 corrections */
.service-card>img{object-position:center 15%}
@media(min-width:851px){.service-card{aspect-ratio:1.6;min-height:340px}.service-card>img{object-position:center 12%}}
.video-poster .video-provider{display:none!important}
.video-poster .video-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:76px;height:76px;border-radius:50%;padding:0;display:grid;place-items:center;background:rgba(0,0,0,.76);color:#fff;box-shadow:0 6px 25px #0005;border:2px solid #ffffffb3;transition:transform .2s,background .2s}
.video-poster:hover .video-play{transform:translate(-50%,-50%) scale(1.1);background:#e62117}
.video-poster .video-play svg{display:block;margin-left:4px}
.blog-grid .blog-card .blog-read{display:inline-flex!important;margin-top:14px;padding:10px 16px;border:1px solid #111;font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.07em}
.blog-grid .blog-card:hover .blog-read{background:#111;color:#fff}

/* v3.3 mobile header and studio video spacing */
@media (max-width:850px){
 .header-inner .menu-toggle{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:58px;height:58px;min-width:58px;padding:0;border:2px solid #a2a2a2;font-family:Arial,sans-serif;font-size:31px;font-weight:900;line-height:1;color:#fff;letter-spacing:-2px}
 .header-inner .brand img{max-height:58px;width:auto;object-fit:contain}
 .studio-media .studio-slideshow + .video-grid{margin-top:32px!important}
 .studio-media .video-grid{row-gap:32px!important}
}
@media (max-width:560px){
 .header-inner .menu-toggle{width:56px;height:56px;min-width:56px;font-size:30px}
 .studio-media .studio-slideshow + .video-grid{margin-top:32px!important}
 .studio-media .video-grid{gap:32px!important}
}

/* v3.4: unframed, larger hamburger; correct slideshow-to-video gap */
@media(max-width:850px){
 .header-inner .menu-toggle{border:0!important;box-shadow:none!important;background:transparent!important;width:64px!important;min-width:64px!important;height:64px!important;padding:0!important;font-size:40px!important;font-weight:900!important;line-height:1!important;letter-spacing:0!important}
 .studio-section>.video-grid{margin-top:32px!important;row-gap:32px!important}
}
@media(max-width:560px){
 .header-inner .menu-toggle{width:62px!important;min-width:62px!important;height:62px!important;font-size:40px!important}
 .studio-section>.video-grid{margin-top:32px!important;gap:32px!important}
}

/* v3.5: actual DOM: .studio-grid and .video-grid are siblings.
   Padding cannot collapse and guarantees separation from the slideshow. */
@media (max-width:850px) {
  .studio-section > .studio-grid + .video-grid {
    margin-top:0 !important;
    padding-top:32px !important;
    row-gap:32px !important;
  }
}

/* v3.6: explicit separation between studio slideshow and video grid */
.studio-video-separator{display:block;clear:both;height:35px;min-height:35px;flex:none}
.studio-video-separator + .video-grid{margin-top:0!important}
@media(max-width:850px){
 .studio-video-separator{height:32px!important;min-height:32px!important}
 .studio-video-separator + .video-grid{padding-top:0!important;margin-top:0!important;row-gap:32px!important}
}

/* v3.8: account for the studio slideshow protruding 46px beyond its grid
   (measured in Chrome mobile viewport at 393px). The existing 32px
   separator then begins after the visible slideshow rather than over it. */
@media (max-width:850px) {
  .studio-section > .studio-grid {
    padding-bottom:46px !important;
  }
  .studio-section > .studio-video-separator {
    display:block !important;
    height:32px !important;
    min-height:32px !important;
  }
  .studio-section > .studio-video-separator + .video-grid {
    margin-top:0 !important;
    padding-top:0 !important;
    row-gap:32px !important;
  }
}

/* Lighthouse accessibility: increase small-label contrast without changing layout. */
.eyebrow{color:#666}
.blog-date{color:#666}
