/* Camera CMS v1.0.18 — public site width & responsiveness.
   Content ONLY: does not rewrite or resize source image files, or alter SEO/DB data.
   Keep full-bleed section backgrounds; align their inner content to 1180px. */
:root{--camera-content-max:1180px;--camera-side-gap:clamp(14px,3vw,24px)}

/* Legacy HTML layouts: one predictable content width on every brand page. */
body[data-camera-page] :is(.wrap,.container){box-sizing:border-box;max-width:var(--camera-content-max);width:min(var(--camera-content-max),calc(100% - 2 * var(--camera-side-gap)));margin-left:auto;margin-right:auto}
body[data-camera-page] main,body[data-camera-page] main :is(.wrap,.container,.panel,.copy,.card,.feature,.article,.cta,.split,.hero-grid){min-width:0}
body[data-camera-page] main :is(img,video){max-width:100%;height:auto}
body[data-camera-page] main :is(p,h1,h2,h3,h4,li,td,th){overflow-wrap:anywhere}

/* Shared full-width sections get the SAME content edges as original page wrappers. */
.aic-review-inner,.pcprep .pcprep-shell,.pcfaq .pcfaq-shell,
.pca .pca-container,footer.bcf-footer .bcf-shell,
.province-main,.province-browse,.aic-public-main{
  box-sizing:border-box;max-width:var(--camera-content-max);min-width:0;
  width:min(var(--camera-content-max),calc(100% - 2 * var(--camera-side-gap)));
  margin-left:auto;margin-right:auto
}
/* The section itself already supplies its own side padding. Avoid double gutter. */
.aic-review-inner,.pcprep .pcprep-shell,.pcfaq .pcfaq-shell,.pca .pca-container{
  width:100%
}
/* Footer has its own, separately composed full-bleed background. */
footer.bcf-footer .bcf-shell{width:min(var(--camera-content-max),calc(100% - 2 * var(--camera-side-gap)))}
/* Province navigation and province directory align with page main. */
.province-top{box-sizing:border-box;max-width:var(--camera-content-max);width:min(var(--camera-content-max),calc(100% - 2 * var(--camera-side-gap)));margin:0 auto;padding-left:0;padding-right:0;min-width:0}
.province-top nav{min-width:0}
.province-browse{margin-top:clamp(32px,5vw,65px);margin-bottom:clamp(32px,5vw,65px)}
.province-site :is(.province-hero,.province-hero-copy,.province-index-hero,.province-split,.province-section,.province-workflow,.province-advanced,.province-toolkit,.province-steps,.province-brand-links,.province-index-cards),
.province-site :is(.province-hero,.province-hero-copy,.province-section,.province-index-card) > *{min-width:0;max-width:100%}
.province-site :is(img,video){max-width:100%;height:auto}

/* Editorial listing and stories: unified canvas; 4 cards/row on desktop only. */
.aic-review-grid{grid-template-columns:repeat(4,minmax(0,1fr));width:100%}
.aic-review-card,.aic-review-card a,.aic-review-body,.aic-post-layout,.aic-post-sidebar,.aic-post-content{min-width:0;max-width:100%}
.aic-review-img{aspect-ratio:2/1;max-width:100%}
.aic-review-img img{width:100%!important;height:100%!important;object-fit:cover!important;aspect-ratio:2/1!important}
.aic-public-nav,.aic-public-footer{box-sizing:border-box;padding-left:max(var(--camera-side-gap),calc((100% - var(--camera-content-max))/2));padding-right:max(var(--camera-side-gap),calc((100% - var(--camera-content-max))/2))}
.aic-public :is(h1,h2,h3,p,li,a,th,td,figcaption){overflow-wrap:anywhere}
.aic-public :is(img,video){max-width:100%}
.aic-post-hero img{height:auto!important;max-height:none;object-fit:cover}
.aic-table-wrap{max-width:100%;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch}
.aic-share-links{min-width:0;max-width:100%}

/* The legacy Nikon split contained a 4096px-wide media element.
   Fix the min-content grid track instead of clipping the entire page. */
body[data-camera-page="nikon"] main .hero-grid{grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr)}
body[data-camera-page="nikon"] main .hero-grid>*{min-width:0;max-width:100%}
body[data-camera-page="nikon"] main .hero-card img{display:block;width:100%;max-width:100%;height:auto;object-fit:contain}
body[data-camera-page="nikon"] main .split{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)}
body[data-camera-page="nikon"] main .split>*{min-width:0;max-width:100%}
body[data-camera-page="nikon"] main .split>img{display:block;box-sizing:border-box;width:100%;max-width:100%;height:auto;object-fit:contain}

/* Standalone privacy is a reading page, deliberately narrower than 1180px. */
body.camera-privacy>main{box-sizing:border-box;width:min(830px,calc(100% - 2 * var(--camera-side-gap)));max-width:830px;overflow-wrap:anywhere}
body.camera-privacy>main :is(img,video,table){max-width:100%;height:auto}

@media(max-width:1100px){.aic-review-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){body[data-camera-page="nikon"] main .split,body[data-camera-page="nikon"] main .hero-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){
 .aic-review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .aic-post-layout{grid-template-columns:minmax(0,1fr)}
 .province-top{flex-wrap:wrap;gap:10px;padding-top:13px;padding-bottom:13px}
 .province-top nav{max-width:100%;gap:10px 14px}
 .aic-public-nav{padding-top:15px;padding-bottom:15px}
 .aic-share-links>a,.aic-share-links>button{max-width:100%}
}
@media(max-width:560px){
 .aic-review-grid{grid-template-columns:minmax(0,1fr)}
 .aic-review-heading{flex-direction:column;align-items:flex-start;gap:14px}
 .aic-review-card{width:100%}
 .aic-review-body{min-height:0}
 .aic-public-nav{flex-wrap:wrap;gap:8px}
 .aic-public-nav nav{width:100%;display:flex;flex-wrap:wrap;gap:7px 13px}
 .aic-public-main{padding-bottom:48px}
 .aic-post-hero{width:100%}
 .aic-share{padding:16px}
 .aic-share-links{gap:7px}
 .aic-public-footer{gap:9px}
}
@media(max-width:360px){
 .aic-public-nav .aic-brand{font-size:16px;white-space:normal}
 .aic-share-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
 .aic-share-links :is(a,button){width:100%;min-width:0;padding:10px 6px;text-align:center}
 .province-top nav{font-size:11px;gap:7px}
}
