/* Corafter Phase 9 — full-bleed poster heroes + page-turn section transitions. */
:root{--cora-header-offset:92px;--cora-page-turn-duration:760ms}
/* Every top-level page hero uses artwork as a background layer, never as a framed card. */
.page-hero,.portfolio-hero,.case-hero,.article-hero,.service-page .service-hero,.hero-home.rd-hero{position:relative;isolation:isolate;min-height:100svh;min-height:100vh;overflow:hidden;padding-top:var(--cora-header-offset)}
.page-hero,.portfolio-hero,.case-hero,.article-hero{display:flex;align-items:center;padding-bottom:clamp(72px,9vh,120px)}
.page-hero>.container,.portfolio-hero>.container,.case-hero>.container,.article-hero>.container{position:relative;z-index:3}
/* Poster image fills the complete hero canvas and blends into a readable navy copy area. */
.page-hero:after,.portfolio-hero:after{content:"";position:absolute;inset:0;z-index:0;width:100%;height:100%;right:auto;top:0;opacity:1;background-position:center right;background-repeat:no-repeat;background-size:cover;pointer-events:none;mask-image:none}
.page-hero:before,.portfolio-hero:before{z-index:1;background-image:linear-gradient(90deg,rgba(5,20,55,.99) 0%,rgba(5,24,65,.95) 31%,rgba(5,27,73,.68) 53%,rgba(5,27,73,.12) 100%),linear-gradient(0deg,rgba(3,15,43,.3),transparent 38%),linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:auto,auto,42px 42px,42px 42px}
.page-hero .container,.portfolio-hero .container{z-index:3}
.page-hero-art,.portfolio-hero-art,.contact-art,.quote-art{position:relative;z-index:2}
/* The supplied About/Services/Process/Blog/Contact posters are full-bleed background art. */
body.page-about .page-hero:after{background-image:url('../images/hero-posters/enterprise-solutions.webp')}
body.page-services .page-hero:after{background-image:url('../images/hero-posters/software-development.webp')}
body.page-process .page-hero:after{background-image:url('../images/hero-posters/it-consulting.webp')}
body.page-blog .page-hero:after{background-image:url('../images/hero-posters/seo-digital-solutions.webp')}
body.page-contact .page-hero:after{background-image:url('../images/hero-posters/custom-business-solutions.webp')}
body.page-quote .page-hero:after{background-image:url('../images/hero-posters/enterprise-solutions.webp')}
body.page-privacy-policy\.php .page-hero:after,body.page-terms\.php .page-hero:after,body.page-cookie-policy\.php .page-hero:after{background-image:url('../images/hero-posters/it-consulting.webp')}
body.page-portfolio .portfolio-hero:after{background-image:url('../images/hero-posters/website-development.webp')}
/* Remove the smaller decorative SVG/cards that competed with the full-background posters. */
body.page-about .page-hero-art,body.page-services .page-hero-art,body.page-process .page-hero-art,body.page-blog .page-hero-art,body.page-contact .contact-art,body.page-quote .quote-art,body.page-portfolio .portfolio-hero-art{opacity:0;pointer-events:none}
/* Home poster: one large, cinematic background rather than an image card in the right column. */
.home-scroll-stack>.rd-hero{height:100svh;height:100vh;min-height:100svh;max-height:none;padding-top:var(--cora-header-offset);padding-bottom:clamp(36px,6vh,76px);background:#061638}
.home-scroll-stack>.rd-hero:before{content:"";position:absolute;inset:0;z-index:0;background:url('../images/hero-posters/home-hero.webp') center right/cover no-repeat;opacity:.96}
.home-scroll-stack>.rd-hero:after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(4,17,49,.98) 0%,rgba(4,22,61,.93) 31%,rgba(4,22,61,.58) 52%,rgba(4,22,61,.08) 100%),linear-gradient(0deg,rgba(3,15,44,.18),transparent 40%);pointer-events:none}
.home-scroll-stack>.rd-hero .hero-inner{width:100%;min-height:calc(100svh - var(--cora-header-offset));display:flex;align-items:center;position:relative;z-index:2}
.home-scroll-stack>.rd-hero .hero-copy{width:min(52%,650px);position:relative;z-index:3}
.home-scroll-stack>.rd-hero .rd-hero-devices{display:none!important}
.home-scroll-stack>.rd-hero .wave{z-index:3}
/* Full-screen, full-bleed background on service detail heroes. */
.service-page .service-hero{height:100svh;height:100vh;min-height:100svh;max-height:none;padding-top:var(--cora-header-offset);padding-bottom:0;align-items:stretch}
.service-page .service-hero:before{z-index:0;background:linear-gradient(90deg,rgba(4,17,49,.99) 0%,rgba(4,22,61,.94) 29%,rgba(4,22,61,.64) 52%,rgba(4,22,61,.13) 100%),linear-gradient(0deg,rgba(3,15,44,.28),transparent 36%)}
.service-page .service-hero:after{z-index:1;background:linear-gradient(90deg,rgba(4,17,49,.12),transparent 58%),linear-gradient(0deg,rgba(3,15,44,.18),transparent 36%)}
.service-page .service-hero-grid{min-height:calc(100svh - var(--cora-header-offset));height:auto;padding-top:22px;padding-bottom:56px;align-items:center}
.service-page .service-hero-copy{max-width:690px}
.service-page .service-hero-visual{position:absolute;inset:0;width:100%;height:100%;z-index:0;opacity:1;overflow:hidden}
.service-page .service-poster-frame{position:absolute;inset:0;width:100%;height:100%;max-width:none;border:0;border-radius:0;box-shadow:none;transform:none;background:transparent;overflow:hidden}
.service-page .service-poster-frame img{width:100%;height:100%;object-fit:cover;object-position:center;background:transparent}
.service-page .service-poster-frame:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,17,49,.98) 0%,rgba(4,22,61,.92) 30%,rgba(4,22,61,.56) 53%,rgba(4,22,61,.08) 100%),linear-gradient(0deg,rgba(3,15,44,.24),transparent 38%)}
.service-page .service-hero-copy{z-index:3}
.service-page .service-hero-grid>.service-hero-copy{width:54%;}
.service-page .service-hero .wave{z-index:4}
/* Book-like page opening and overlapping layers for each top-level section on inner pages. */
main#main-content>.page-turn-section{position:sticky;top:0;z-index:var(--page-turn-z,2);isolation:isolate;transform-origin:50% 0%;backface-visibility:hidden;will-change:transform,opacity;scroll-margin-top:0}
main#main-content>.page-turn-section:not(.page-hero):not(.portfolio-hero):not(.service-hero):not(.case-hero):not(.article-hero){background-color:#fff}
main#main-content>.page-turn-section.page-turn-ready{animation:coraPageOpen var(--cora-page-turn-duration) cubic-bezier(.2,.72,.2,1) both}
@keyframes coraPageOpen{0%{opacity:.78;transform:perspective(1400px) rotateX(3deg) translateY(32px) scale(.988);filter:brightness(.96)}55%{opacity:1;transform:perspective(1400px) rotateX(-.5deg) translateY(-2px) scale(1.002);filter:brightness(1.01)}100%{opacity:1;transform:perspective(1400px) rotateX(0) translateY(0) scale(1);filter:none}}
/* A restrained reveal for content blocks; all text remains visible if motion is disabled. */
.page-turn-reveal{opacity:0;transform:translateY(24px);transition:opacity .72s ease,transform .72s cubic-bezier(.2,.7,.2,1)}
.page-turn-reveal.page-turn-visible{opacity:1;transform:none}
@media(max-width:900px){
 :root{--cora-header-offset:82px}
 .page-hero,.portfolio-hero,.case-hero,.article-hero{min-height:100svh;min-height:100vh;padding-bottom:90px}
 .page-hero:before,.portfolio-hero:before{background-image:linear-gradient(90deg,rgba(5,20,55,.96),rgba(5,24,65,.78)),linear-gradient(0deg,rgba(3,15,43,.3),transparent 38%),linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px)}
 .home-scroll-stack>.rd-hero .hero-copy{width:min(72%,650px)}
 .service-page .service-hero-grid>.service-hero-copy{width:min(72%,690px)}
 .service-page .service-poster-frame img{object-position:62% center}
}
@media(max-width:600px){
 :root{--cora-header-offset:78px;--cora-page-turn-duration:600ms}
 .home-scroll-stack>.rd-hero{min-height:100svh;padding-top:100px}
 .home-scroll-stack>.rd-hero:before{background-position:62% center;opacity:.68}
 .home-scroll-stack>.rd-hero:after{background:linear-gradient(90deg,rgba(4,17,49,.94),rgba(4,22,61,.65)),linear-gradient(0deg,rgba(3,15,44,.28),transparent 45%)}
 .home-scroll-stack>.rd-hero .hero-inner{min-height:calc(100svh - 100px);align-items:center}
 .home-scroll-stack>.rd-hero .hero-copy{width:100%;max-width:100%}
 .home-scroll-stack>.rd-hero .hero-copy h1{font-size:clamp(2.5rem,11vw,4rem);line-height:1.02}
 .page-hero:after,.portfolio-hero:after{background-position:62% center}
 .service-page .service-hero-grid{min-height:calc(100svh - 78px);padding-top:20px;padding-bottom:34px}
 .service-page .service-hero-grid>.service-hero-copy{width:100%}
 .service-page .service-poster-frame img{object-position:64% center}
 .service-page .service-poster-frame:after{background:linear-gradient(90deg,rgba(4,17,49,.92),rgba(4,22,61,.58)),linear-gradient(0deg,rgba(3,15,44,.2),transparent 40%)}
 main#main-content>.page-turn-section{position:relative;top:auto;animation:none!important;transform:none!important;filter:none!important;will-change:auto}
 .page-turn-reveal{opacity:1;transform:none;transition:none}
}
@media(prefers-reduced-motion:reduce){main#main-content>.page-turn-section.page-turn-ready{animation:none!important}.page-turn-reveal{opacity:1;transform:none;transition:none!important}}
/* Project case studies and individual articles receive the same edge-to-edge hero treatment. */
.article-hero:after,.case-hero:after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-position:center right;background-size:cover;background-repeat:no-repeat}
.article-hero:after{background-image:linear-gradient(90deg,rgba(5,20,55,.98),rgba(5,24,65,.68)),url('../images/hero-posters/seo-digital-solutions.webp')}
.case-hero:after{background-image:linear-gradient(90deg,rgba(5,20,55,.98),rgba(5,24,65,.68)),url('../images/hero-posters/enterprise-solutions.webp')}
.article-hero .container,.case-hero .container{position:relative;z-index:2}

/* Phase 10 QA: real section-over-section stack stages on inner pages.
   The stage adds one viewport of sticky runway but cancels it from normal flow,
   so page length does not grow by an extra screen for every section. */
.page-turn-stage{position:relative;isolation:isolate;padding-bottom:100svh;margin-bottom:-100svh;}
.page-turn-stage>.page-turn-section{position:sticky;top:0;z-index:var(--page-turn-z,2);min-height:0;scroll-margin-top:0;}
.page-turn-stage>.page-turn-section.page-hero,
.page-turn-stage>.page-turn-section.portfolio-hero,
.page-turn-stage>.page-turn-section.service-hero,
.page-turn-stage>.page-turn-section.article-hero,
.page-turn-stage>.page-turn-section.case-hero{min-height:100svh;}
/* Keep later sections opaque so they genuinely cover the previous section. */
.page-turn-stage>.page-turn-section:not(.page-hero):not(.portfolio-hero):not(.service-hero):not(.article-hero):not(.case-hero){background-color:#fff;}
@media(max-width:600px){
 .page-turn-stage{padding-bottom:0;margin-bottom:0;}
 .page-turn-stage>.page-turn-section{position:relative;top:auto;min-height:0;}
 .page-turn-stage>.page-turn-section.page-hero,
 .page-turn-stage>.page-turn-section.portfolio-hero,
 .page-turn-stage>.page-turn-section.service-hero,
 .page-turn-stage>.page-turn-section.article-hero,
 .page-turn-stage>.page-turn-section.case-hero{min-height:100svh;}
}
@media(prefers-reduced-motion:reduce){.page-turn-stage{padding-bottom:0;margin-bottom:0}.page-turn-stage>.page-turn-section{position:relative;top:auto}}
