/* Public Noas Photography website. The admin keeps its existing light layout. */
.public-site{--bg:#fff;--paper:#fff;--text:#37352f;--muted:#77736b;--line:#e9e6e0;--accent:#716853;--accent-dark:#514b3d;color:var(--text);font-family:Arial,Helvetica,sans-serif;background:#fff;line-height:1.65}
.public-site h1,.public-site h2,.public-site h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.025em;line-height:1.15}
.public-site h1{font-size:clamp(34px,4.5vw,68px)}
.public-site h2{font-size:clamp(28px,3vw,43px)}
.public-site h3{font-size:26px}
.public-site img{max-width:100%;height:auto}
.public-site a{text-underline-offset:5px}
.public-site .eyebrow{font:600 11px/1.5 Arial,Helvetica,sans-serif;letter-spacing:.2em;color:#80745e;margin:0 0 18px}
.public-site .public-main{width:min(1280px,calc(100% - 80px));padding:0 0 60px}
.skip-link{position:absolute;left:16px;top:-80px;background:#fff;padding:12px;z-index:100}
.skip-link:focus{top:8px}
.noas-header{background:#fff;border-bottom:1px solid var(--line);position:relative;z-index:20}
.noas-header-inner{width:min(1440px,calc(100% - 80px));margin:auto;min-height:116px;display:flex;align-items:center;gap:36px}
.noas-brand{display:flex;flex-direction:column;text-decoration:none;align-items:center;color:#454234;flex-shrink:0}
.noas-brand>span{font:400 45px/1 Georgia,serif;letter-spacing:.19em;padding-left:.19em}
.noas-brand>small{font-size:9px;letter-spacing:.36em;margin-top:7px;padding-left:.36em}
.desktop-menu{display:flex;align-items:center;justify-content:center;gap:28px;margin-left:auto}
.desktop-menu>a,.portfolio-menu>summary,.mobile-menu>summary,.mobile-menu nav>a{font-size:11px;text-transform:uppercase;letter-spacing:.12em;text-decoration:none;white-space:nowrap;color:#514b41}
.desktop-menu a[aria-current=page]{text-decoration:underline;text-decoration-color:#b0a48e}
.portfolio-menu{position:relative}
.portfolio-menu>summary{cursor:pointer;padding:12px 0;list-style:none}
.portfolio-menu>summary::after{content:'⌄';margin-left:7px}
.portfolio-menu>summary::-webkit-details-marker,.mobile-menu>summary::-webkit-details-marker{display:none}
.portfolio-menu-links{position:absolute;top:100%;left:-22px;width:245px;background:#fff;padding:16px 22px;box-shadow:0 12px 35px #37352f14;border:1px solid var(--line);z-index:30;display:flex;flex-direction:column;gap:0}
.portfolio-menu-links a{font-size:13px;text-decoration:none;padding:8px 0;letter-spacing:.02em}
.portfolio-menu-links a:hover{text-decoration:underline}
.booking-link{display:inline-flex;align-items:center;justify-content:center;min-height:45px;padding:12px 18px;background:#f3f1ec;border:1px solid #d9d2c4;color:#514b3d;text-decoration:none;white-space:nowrap;font-size:10px;font-weight:700;letter-spacing:.1em}
.booking-link:hover{background:#e9e5dc}
.mobile-menu{display:none}
.noas-hero{display:grid;grid-template-columns:.85fr 1.15fr;gap:65px;align-items:center;padding:48px 0 28px}
.noas-hero-copy{padding:35px 0}
.noas-hero-copy h1{margin:0 0 25px;line-height:1.05}
.noas-hero-copy h1 em{font-weight:400;color:#827660}
.noas-hero-copy>p:not(.eyebrow){color:var(--muted);max-width:380px;font-size:15px;margin-bottom:30px}
.noas-hero-copy .quiet-link{display:block;margin-top:22px;font-size:12px}
.noas-hero-photo{position:relative}
.noas-hero-photo>img{width:100%;aspect-ratio:1.08;object-fit:cover;object-position:center}
.noas-hero-photo>span{display:block;text-align:right;font:italic 14px Georgia,serif;color:var(--muted);margin-top:10px}
.public-site .button{background:#716853;color:#fff;border-radius:0;font:600 11px/1.4 Arial,sans-serif;letter-spacing:.1em;padding:16px 22px;min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:20px;text-align:center;text-decoration:none}
.public-site .quiet-link{font-size:12px;text-decoration:none;letter-spacing:.04em;color:#5d5444;border-bottom:1px solid #cfc6b6;padding-bottom:4px;display:inline-block}
.noas-section{padding:70px 0;border-bottom:1px solid var(--line)}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:32px}
.section-heading h2{margin:0}
.section-heading .quiet-link{flex-shrink:0}
.section-heading .eyebrow{margin-bottom:12px}
.public-site .scenography-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:start}
.public-site .theme-card{background:#fff;border:1px solid var(--line);border-radius:0;box-shadow:none;min-width:0}
.scene-image-link{display:block;text-decoration:none}
.public-site .theme-card img,.public-site .placeholder{aspect-ratio:4/3;object-fit:cover;background:#f6f5f2}
.public-site .theme-card-body{padding:22px}
.public-site .theme-card h2{font-size:26px;line-height:1.2;margin:0 0 14px;overflow-wrap:anywhere}
.scene-excerpt{font-size:13px;margin:0 0 12px}
.public-site .meta-row{gap:8px;margin:14px 0}
.public-site .meta-row span{background:#fff;border-color:var(--line);border-radius:0;padding:4px 8px;font-size:12px;color:#575146}
.public-site .slots-label{font-size:11px;letter-spacing:.1em;text-transform:uppercase;margin:18px 0 8px;color:#746a58}
.public-site .slot-list{display:flex;flex-direction:column;gap:6px;margin:0 0 18px}
.public-site .slot-pill{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:3px 10px;min-height:42px;width:100%;border-radius:0;border:1px solid #e6e1d8;background:#faf9f6;color:#544d3f;padding:8px 10px;font-size:12px;font-weight:400;text-align:center;text-decoration:none}
.public-site .slot-pill:hover{background:#ede9e0;border-color:#c6bca9}
.public-site .text-link{font-size:12px;color:#615744;line-height:1.5}
.empty-scenes{padding:35px;background:#faf9f6;text-align:center}
.empty-scenes h3{margin:0 0 12px}
.empty-scenes p{margin:0;color:var(--muted)}
.portfolio-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px 28px}
.portfolio-card{display:block;text-decoration:none;min-width:0}
.portfolio-photo{overflow:hidden;background:#f5f4f1}
.portfolio-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform .4s ease}
.portfolio-card:hover img{transform:scale(1.025)}
.portfolio-card h3{font-size:26px;margin:18px 0 6px}
.portfolio-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.6}
.about-split{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:80px}
.about-photo img{width:100%;aspect-ratio:4/5;object-fit:cover}
.editorial-copy{max-width:560px}
.editorial-copy h2{margin:0 0 25px}
.editorial-copy>p:not(.eyebrow){color:var(--muted);font-size:15px;line-height:1.9}
.editorial-copy .button,.editorial-copy .quiet-link{margin-top:16px}
.memory-pair{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.memory-pair img{width:100%;aspect-ratio:3/2;object-fit:cover}
.closing-note{padding:85px 20px 35px;text-align:center}
.closing-note h2{margin:10px 0 30px}
.page-heading{text-align:center;max-width:820px;padding:65px 0 45px;margin:0 auto}
.page-heading h1{margin:0 0 20px}
.page-heading>p:not(.eyebrow){max-width:600px;margin:0 auto;color:var(--muted);font-size:15px}
.page-heading .back-link{margin-bottom:22px;font-size:12px}
.booking-heading h1{font-size:clamp(32px,4vw,54px)}
.studio-cover img{width:100%;max-height:630px;object-fit:cover}
.photo-gallery{columns:3;column-gap:22px}
.gallery-photo{display:block;margin-bottom:22px;break-inside:avoid;text-decoration:none;background:#f6f5f2}
.gallery-photo img{width:100%;height:auto;display:block}
.session-details{display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:start}
.session-includes{padding:30px;background:#faf9f6}
.session-includes h3{margin:0 0 15px}
.session-includes ul{margin:0 0 26px;padding-left:20px}
.session-includes li{font-size:14px;color:#6b6356;padding:8px 0}
.gallery-return{text-align:center;padding:38px 0 0}
.contact-only{text-align:center;padding:110px 0 140px}
.contact-only h1{font-size:18px;text-transform:uppercase;letter-spacing:.18em;font-family:Arial,sans-serif;margin:0 0 28px;color:var(--muted)}
.contact-phone{font-family:Georgia,serif;font-size:clamp(28px,5vw,66px);text-decoration:none;white-space:nowrap}
.noas-footer{border-top:1px solid var(--line);display:flex;flex-direction:column;align-items:center;gap:8px;padding:45px 20px;background:#fff;text-align:center}
.footer-brand{font:27px Georgia,serif;text-decoration:none}
.noas-footer>span{font-size:12px;color:var(--muted)}
.noas-footer>small{font-size:10px;color:var(--muted);margin-top:18px;letter-spacing:.06em}
.public-site .panel{box-shadow:none;border-radius:0;margin:45px auto 0}
.public-site .panel h1{font-size:clamp(30px,4vw,46px)}
.public-site .form input{border-radius:0;min-height:48px;border-color:#dcd7ce}
.public-site .form label{font-size:13px;font-weight:400}
.public-site .theme-detail{padding-top:60px;gap:50px}
.public-site .theme-detail h1{font-size:clamp(32px,4vw,54px)}
.public-site .theme-detail .slot-list{margin-top:20px;max-width:400px}
.public-site .theme-detail .gallery{align-content:start}
.public-site .theme-detail .gallery img{border-radius:0;object-fit:contain;aspect-ratio:auto}
.public-site .success,.public-site .error{border-radius:0}
.photo-viewer{border:0;padding:65px 60px 25px;background:#fff;max-width:96vw;width:1100px;max-height:94vh;overflow:auto;color:#37352f}
.photo-viewer::backdrop{background:rgba(25,24,22,.8)}
.photo-viewer figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:14px}
.photo-viewer figure img{max-width:100%;max-height:70vh;object-fit:contain;width:auto;height:auto}
.photo-viewer figcaption{font-size:12px;text-align:center;color:#77736b}
.photo-viewer button{border:0;background:#f4f2ed;color:#514b3d;font:14px Arial,sans-serif;cursor:pointer;min-width:44px;min-height:44px;padding:10px}
.viewer-close{position:absolute;top:10px;right:14px}
.viewer-prev{position:absolute;top:45%;left:8px}
.viewer-next{position:absolute;top:45%;right:8px}
.photo-viewer-open{overflow:hidden}
@media(max-width:1050px){
 .noas-header-inner{width:calc(100% - 40px);gap:20px;min-height:95px;flex-wrap:wrap}
 .desktop-menu{display:none}
 .booking-link{margin-left:auto}
 .mobile-menu{display:block}
 .mobile-menu>summary{cursor:pointer;list-style:none;padding:12px 0}
 .mobile-menu>nav{position:absolute;top:100%;left:0;right:0;padding:24px;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 12px 20px #37352f0a;display:flex;flex-direction:column;gap:15px}
 .mobile-menu .portfolio-menu-links{position:static;box-shadow:none;border:0;border-left:1px solid var(--line);width:auto;margin:10px 0;padding:0 20px}
 .mobile-menu .portfolio-menu>summary{padding:0}
 .noas-hero{gap:32px}.about-split{gap:40px}
}
@media(max-width:760px){
 .public-site .public-main{width:calc(100% - 32px);padding-bottom:35px}
 .noas-header-inner{width:calc(100% - 32px);min-height:88px;gap:12px}
 .noas-brand>span{font-size:32px}.noas-brand>small{font-size:7px;letter-spacing:.24em}
 .booking-link{font-size:9px;letter-spacing:.04em;padding:11px 10px;min-height:40px}
 .mobile-menu>summary{font-size:9px;letter-spacing:.05em}
 .noas-hero{grid-template-columns:1fr;gap:24px;padding:30px 0 0}
 .noas-hero-copy{padding:10px 4px 0;text-align:center}
 .noas-hero-copy h1{font-size:43px}.noas-hero-copy>p:not(.eyebrow){margin-left:auto;margin-right:auto;font-size:14px}
 .noas-hero-copy .eyebrow{font-size:10px}
 .noas-hero-photo>img{aspect-ratio:4/3}
 .noas-section{padding:40px 0}
 .section-heading{display:block;margin-bottom:24px}.section-heading>.quiet-link{margin-top:16px}
 .section-heading h2{font-size:31px}
 .portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 12px}
 .public-site .scenography-grid{grid-template-columns:minmax(0,1fr);gap:22px}
 .public-site .theme-card-body{padding:12px 10px}
 .public-site .theme-card h2{font-size:20px;margin-bottom:10px}
 .scene-excerpt{font-size:12px;line-height:1.5}
 .public-site .meta-row{gap:5px}.public-site .meta-row span{font-size:11px;padding:3px 5px}
 .public-site .slots-label{font-size:9px;letter-spacing:.06em}
 .public-site .slot-pill{padding:7px 4px;font-size:11px;justify-content:center;gap:1px 5px;min-height:44px}
 .public-site .slot-pill>span:last-child{white-space:nowrap}
 .public-site .text-link{font-size:11px}
 .public-site .theme-card .muted{font-size:12px}
 .portfolio-card h3{font-size:21px;margin-top:12px;overflow-wrap:anywhere}.portfolio-card p{font-size:12px}
 .portfolio-photo img{aspect-ratio:4/5}
 .about-split,.session-details{grid-template-columns:1fr;gap:30px}
 .about-photo img{aspect-ratio:4/3}
 .editorial-copy>p:not(.eyebrow){font-size:14px}
 .memory-pair{gap:12px}.memory-pair img{aspect-ratio:4/5}
 .page-heading{padding:40px 0 30px}.page-heading h1{font-size:38px}.page-heading>p:not(.eyebrow){font-size:14px}
 .photo-gallery{columns:2;column-gap:12px}.gallery-photo{margin-bottom:12px}
 .session-includes{padding:22px}.closing-note{padding:45px 5px 15px}
 .contact-only{padding:100px 0 120px}
 .public-site .theme-detail{padding-top:35px;gap:30px}
 .photo-viewer{padding:60px 35px 20px}.photo-viewer button{min-width:32px;padding:5px}
 .viewer-prev{left:0}.viewer-next{right:0}
}
@media(max-width:380px){
 .noas-header-inner{gap:8px}.noas-brand>span{font-size:27px}.noas-brand>small{font-size:6px}
 .booking-link{font-size:8px;padding:10px 7px}.mobile-menu>summary{font-size:8px}
 .public-site .theme-card-body{padding:10px 8px}.public-site .theme-card h2{font-size:18px}
 .public-site .slot-pill>span{display:block;flex-basis:100%}
 .noas-hero-copy h1{font-size:38px}
}
@media(prefers-reduced-motion:reduce){.portfolio-photo img{transition:none}}

/* Homepage: admin-uploaded photo carousel and separate calls to action. */
.public-site .hero-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 24px; margin-top: 28px; }
.public-site .noas-hero-copy .hero-actions .quiet-link { display: inline-block; margin: 0; }
.scene-slide-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; border: 1px solid var(--line); background: #faf9f6; }
.carousel-ready .scene-slide-track { scrollbar-width: none; }
.carousel-ready .scene-slide-track::-webkit-scrollbar { display: none; }
.scene-slide { flex: 0 0 100%; min-width: 0; scroll-snap-align: start; }
.public-site .scene-slide img { width: 100%; aspect-ratio: 1.08; object-fit: contain; display: block; }
.scene-slide-controls { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 12px 0 2px; }
[data-scene-slider] [hidden] { display: none !important; }
.scene-slide-controls button { min-width: 44px; min-height: 44px; border: 1px solid #e1dbcf; background: #fff; color: #514b3d; font: 18px Arial,sans-serif; cursor: pointer; }
.scene-slide-controls .slide-pause { font-size: 11px; padding: 0 12px; margin-left: 6px; }
.scene-slide-controls [data-slide-count] { font-size: 12px; min-width: 56px; text-align: center; color: #746a58; font-variant-numeric: tabular-nums; }
.contact-layout { display: grid; grid-template-columns: .9fr 1.1fr; gap: 60px; align-items: center; padding: 20px 0 75px; }
.contact-details .contact-phone { display: inline-block; font-size: clamp(26px,3.1vw,44px); }
.contact-block { margin-top: 36px; }
.contact-block h2 { font-size: 24px; margin: 0 0 12px; }
.contact-block p { color: var(--muted); }
.contact-map { display: block; width: 100%; min-width: 0; height: 440px; border: 1px solid var(--line); }
@media(max-width:760px) {
    .public-site .hero-actions { align-items: center; gap: 22px; }
    .public-site .scene-slide img { aspect-ratio: 4/3; }
    .contact-layout { grid-template-columns: 1fr; gap: 35px; padding-bottom: 30px; }
    .contact-map { height: 340px; }
}

.public-site .noas-hero-photo{min-width:0}

.public-site .scene-slider,.public-site .scene-detail-gallery{min-width:0;max-width:100%}
.public-site .scene-slide img{height:auto;border-radius:0}
.public-site .scene-slide a{display:block}
.public-site .scene-slide-controls{flex-wrap:wrap;gap:4px;padding:8px 4px}
.public-site .scene-slide-controls [data-slide-count]{min-width:38px}
.public-site .scene-slide-controls .slide-pause{margin-left:0;padding:0 7px}
@media(max-width:600px){.public-site .theme-card .scene-slide-controls .slide-pause{flex-basis:100%}}
