/* Marshe.ca V2.1 — universal responsive guardrails for all theme families */
html{overflow-x:hidden;-webkit-text-size-adjust:100%}
body{max-width:100%;overflow-x:hidden}
*,*::before,*::after{box-sizing:border-box;min-width:0}
img,video,svg,canvas,iframe{max-width:100%}
img{height:auto}
.shell{width:min(1180px,calc(100% - 48px));margin-inline:auto}
.hero-copy,.acting-copy,.event-card-copy,.event-detail-copy,.contact-card,.news-card,.media-card,.prose{min-width:0}
.hero h1,.page-hero h1,.section-heading h2,.feature-strip h2,.featured-book-home h2,.contact-card h2,.news-card h2,.media-card h2,.event-card h2,.acting-copy h2,.prose h2{overflow-wrap:break-word;word-break:normal;text-wrap:balance}
p,li,a,strong,span{overflow-wrap:break-word}
.button{max-width:100%}
.theme-preview-banner{position:relative;z-index:40;padding:8px 18px;background:#f5d565;color:#111;text-align:center;font:700 12px/1.3 Arial,Helvetica,sans-serif;letter-spacing:.03em}

/* The six layout families share the same safe mobile collapse rules. */
@media(max-width:1024px){
  .layout-classic .hero-inner,.layout-editorial .hero-inner,.layout-cinematic .hero-inner,.layout-minimal .hero-inner,.layout-gallery .hero-inner,.layout-split .hero-inner,
  .layout-classic .feature-strip-grid,.layout-editorial .feature-strip-grid,.layout-cinematic .feature-strip-grid,.layout-minimal .feature-strip-grid,.layout-gallery .feature-strip-grid,.layout-split .feature-strip-grid,
  .feature-strip-grid.reverse,.bio-grid,.acting-layout,.event-card,.event-detail-grid,.contact-grid,.press-card{grid-template-columns:1fr!important}
  .layout-split .page-hero .shell{display:block!important}
  .layout-cinematic .page-hero,.layout-minimal .page-hero{min-height:unset!important;padding-top:80px!important;padding-bottom:70px!important}
  .layout-gallery .hero-photo img{max-width:560px;margin-inline:auto}
  .hero-photo,.feature-strip-grid>div,.bio-grid>div,.acting-layout>div{width:100%}
  .feature-strip-grid,.feature-strip-grid.reverse,.bio-grid,.acting-layout,.event-detail-grid{gap:44px!important}
  .contact-grid,.news-grid,.media-grid,.video-grid{grid-template-columns:1fr!important}
  .site-bg-layer{background-attachment:scroll!important}
}

@media(max-width:900px){
  .shell{width:min(100% - 36px,1180px)}
  .site-header{position:relative!important}
  .header-inner{min-height:74px!important;display:flex!important;align-items:center!important;flex-direction:row!important;flex-wrap:wrap!important;gap:12px!important}
  .brand{max-width:calc(100% - 84px)}
  .brand-name{font-size:clamp(19px,5.5vw,27px)!important;line-height:1!important;white-space:normal}
  .brand-tagline{font-size:9px!important;line-height:1.25}
  .nav-toggle{display:block!important;margin-left:auto;flex:0 0 auto}
  .main-nav{display:none!important;width:100%!important;flex-direction:column!important;gap:0!important;padding:10px 0 4px!important}
  .main-nav.is-open{display:flex!important}
  .main-nav a{display:block!important;padding:11px 0!important;border-top:1px solid color-mix(in srgb,currentColor 18%,transparent)!important}
  .hero,.page-hero{min-height:unset!important}
  .hero-inner{grid-template-columns:1fr!important;gap:34px!important}
  .hero-copy{order:1}.hero-photo{order:2}
  .hero-photo img{width:100%;max-height:560px;object-fit:cover;object-position:center top}
  .page-hero{padding:62px 0 52px!important}
  .page-hero .shell{display:block!important}
  .page-hero h1{font-size:clamp(46px,11vw,70px)!important;line-height:.98!important;max-width:100%!important}
  .page-hero p{max-width:680px!important;margin-left:0!important;font-size:18px!important;line-height:1.5!important}
  .section-heading h2{font-size:clamp(38px,8.5vw,55px)!important;line-height:1.02!important}
  .feature-strip,.featured-book-home{padding:68px 0!important}
  .feature-strip h2,.featured-book-home h2{font-size:clamp(38px,9vw,56px)!important;line-height:1.02!important}
  .feature-strip img{max-height:440px!important;object-fit:contain!important}
  .bio-portrait,.feature-portrait{max-width:520px!important;margin-inline:auto}
  .career-grid{grid-template-columns:1fr!important}
  .career-card{min-height:unset!important}
  .event-image{aspect-ratio:16/9!important}
  .event-image img{width:100%!important;height:100%!important;max-height:none!important;object-fit:contain!important}
  .event-card-copy{padding:30px!important}
  .event-card h2{font-size:clamp(31px,7.8vw,44px)!important;line-height:1.04!important}
  .event-poster{aspect-ratio:16/9!important;max-height:none!important;object-fit:contain!important}
  .contact-card h2{font-size:clamp(32px,8vw,42px)!important}
  .news-card h2,.media-card h2{font-size:clamp(29px,7.5vw,38px)!important}
  .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .footer-grid{grid-template-columns:1fr!important;gap:32px!important}
  .footer-meta{text-align:left!important}
}

@media(max-width:640px){
  .shell{width:calc(100% - 28px)}
  .page-section{padding:50px 0!important}
  .hero{padding-top:46px!important;padding-bottom:46px!important}
  .hero h1{font-size:clamp(54px,16vw,76px)!important;line-height:.9!important}
  .hero-intro{font-size:17px!important;line-height:1.55!important}
  .page-hero{padding:46px 0 38px!important}
  .page-hero h1{font-size:clamp(42px,13vw,58px)!important}
  .section-heading{margin-bottom:26px!important}
  .section-heading h2{font-size:clamp(36px,10vw,46px)!important}
  .feature-strip,.featured-book-home{padding:54px 0!important}
  .feature-strip-grid,.feature-strip-grid.reverse,.bio-grid,.acting-layout,.event-detail-grid{gap:30px!important}
  .feature-strip h2,.featured-book-home h2{font-size:clamp(35px,10vw,48px)!important}
  .button-row,.hero-actions,.inline-actions{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;width:100%}
  .button-row .button,.hero-actions .button,.inline-actions .button,.contact-card .button{width:100%!important;justify-content:center!important;text-align:center!important}
  .contact-card,.event-card-copy,.news-card>div,.media-card>div,.video-card{padding:24px!important}
  .contact-card h2{font-size:34px!important}
  .event-card h2{font-size:clamp(28px,8vw,35px)!important}
  .event-date,.feature-date{font-size:17px!important}
  .event-books{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important}
  .event-books a{width:auto!important}
  .event-books strong{font-size:14px!important;line-height:1.25!important}
  .news-grid,.media-grid,.video-grid{gap:20px!important}
  .news-card img,.media-card img{aspect-ratio:16/10!important;object-fit:cover!important}
  .photo-grid{grid-template-columns:1fr!important;gap:14px!important}
  .photo-grid img{width:100%!important;max-height:620px!important;object-fit:cover!important;object-position:center top!important}
  .article-body,.prose p{font-size:17px!important;line-height:1.72!important}
  .footer-newsletter form{flex-direction:column!important}
  .footer-newsletter button{min-height:46px!important}
}

@media(max-width:430px){
  .shell{width:calc(100% - 24px)}
  .brand{max-width:calc(100% - 72px)}
  .brand-name{font-size:20px!important}
  .brand-tagline{font-size:8px!important}
  .nav-toggle{padding:9px 10px!important}
  .hero h1{font-size:clamp(50px,16vw,68px)!important}
  .page-hero h1{font-size:clamp(40px,13vw,54px)!important}
  .section-heading h2{font-size:clamp(34px,10.5vw,44px)!important}
  .event-card-copy,.contact-card,.news-card>div,.media-card>div{padding:21px!important}
  .event-books{gap:10px!important}
  .review-controls{gap:12px!important}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
