/* Desktop editorial system. Loaded only above the approved mobile breakpoint. */
:root{--content:1280px;--reading:700px;--gutter:clamp(32px,5vw,80px);--section:clamp(64px,6vw,88px);--title:clamp(48px,4vw,64px);--heading:clamp(34px,3vw,44px);--copy:18px;--column-gap:clamp(32px,4vw,64px)}
header{display:flex;justify-content:space-between;padding-inline:max(var(--gutter),calc((100vw - var(--content))/2));height:80px}
header nav[aria-label="Accesos rápidos"]{font-size:12px;letter-spacing:.7px;gap:32px;margin-left:auto;margin-right:32px}
header nav a{display:inline-flex;align-items:center;min-height:44px}.menu-toggle{min-width:44px;min-height:44px}
main section[id]{scroll-margin-top:96px}
h2{font-size:var(--heading);line-height:1.12;letter-spacing:-.035em;margin:20px 0 28px;text-wrap:balance}
.poster-opening .opening-sticky{padding:22px var(--gutter) 28px}
.poster-top{max-width:var(--content);margin:0 auto 20px;font-size:10px;letter-spacing:.7px}
.poster-scene{max-width:var(--content);grid-template-columns:minmax(140px,1fr) minmax(260px,440px) minmax(140px,1fr);gap:var(--column-gap)}
.poster-frame{width:max-content;max-width:100%;justify-self:center;box-shadow:none}
.poster-frame img{height:clamp(320px,60vh,620px);max-height:none;max-width:100%;width:auto}
.poster-side{font-size:clamp(22px,2vw,28px);line-height:1.35}.poster-side b{font-size:28px}
.poster-actions{max-width:var(--content);margin-top:20px;gap:20px}.poster-down small{font-size:10px;letter-spacing:.7px}.purchase-note{font-size:11px}
.dilemma-cta{font-size:14px;letter-spacing:.3px;min-height:52px}
/* The same purchase treatment in the hero, book section and book page. */
:is(.poster-actions,.book-purchase) .purchase-cta,
:is(.poster-actions,.book-purchase) .purchase-cta:disabled{background:#a5362d;border:1px solid #a5362d;color:#fff;opacity:1;min-height:52px;min-width:240px;padding:15px 24px;border-radius:3px;font:14px/1.4 Arial,sans-serif;letter-spacing:.3px;display:inline-flex;align-items:center;justify-content:space-between;gap:36px;box-shadow:none}
:is(.poster-actions,.book-purchase) .purchase-cta:not(:disabled):hover{background:#852920;border-color:#852920}
:is(.poster-actions,.book-purchase) .purchase-cta:disabled{cursor:default}
.purchase-note,.book-purchase-note{font:12px/1.6 Arial,sans-serif;letter-spacing:0;color:#454a40;margin:10px 0 0}
.memory{padding:var(--section) max(var(--gutter),calc((100vw - var(--content))/2));min-height:0}
.memory h2{font-size:var(--title);max-width:850px}.memory-intro{max-width:var(--reading);font-size:var(--copy);line-height:1.75;margin:0 0 24px;letter-spacing:0}
.memory-line{max-width:var(--reading);margin-top:12px}.memory-tail{align-self:start;font-size:20px;line-height:1.5;margin:18px 0 0}
.cast{padding-top:var(--section);padding-bottom:56px}.section-head{max-width:calc(var(--content) + var(--gutter)*2);margin-inline:auto;padding-inline:var(--gutter);align-items:center}
.cast h2{font-size:var(--heading);max-width:700px;margin-bottom:24px}.cast-intro{max-width:var(--reading);font-size:var(--copy);line-height:1.7}
.cast-track{gap:24px;padding-inline:max(var(--gutter),calc((100vw - var(--content))/2));scroll-padding-inline:var(--gutter)}
.cast-card{flex-basis:clamp(260px,23vw,320px)}.cast-card:nth-child(even){padding-top:32px}.cast-caption{font-size:22px}.gallery-controls{padding-bottom:0}
.cast-bottom,.fiction-note{padding-inline:0;margin-left:max(var(--gutter),calc((100vw - var(--content))/2));margin-right:var(--gutter)}
.dilemma{padding:var(--section) max(var(--gutter),calc((100vw - var(--content))/2))}.dilemma .section-head{padding:0}
.dilemma-story{max-width:var(--reading);margin:42px auto 0}.dilemma h2{font-size:var(--heading);line-height:1.15;margin:0 0 28px}.dilemma-lead{font-size:var(--copy);line-height:1.75;max-width:var(--reading)}
.dilemma-invitation{margin-top:36px;padding-top:28px}.faction-context p{font-size:18px;line-height:1.6}.dilemma-emblems{gap:36px}
.book{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--column-gap);padding:var(--section) max(var(--gutter),calc((100vw - var(--content))/2));min-height:0}
.book h2{font-size:var(--title);line-height:1.05;margin:24px 0}.book-summary{font-size:var(--copy);line-height:1.75;max-width:520px}.book-stage>button{max-width:310px;width:85%}
.profile-main{max-width:calc(var(--content) + var(--gutter)*2);margin-inline:auto;padding:128px var(--gutter) var(--section)}
.profile-main h1{font-size:var(--title);line-height:1.1;margin:20px 0 24px;letter-spacing:-.04em;text-wrap:balance}
.profile-lead,.author-hero .profile-lead{font-size:21px;line-height:1.65;max-width:560px}
.author-hero,.book-detail-hero{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:var(--column-gap)}
.author-hero figure{width:100%;max-width:360px}.author-editorial .profile-copy,.book-detail .profile-copy{margin:64px auto 0;max-width:var(--reading)}
.profile-copy{max-width:var(--reading)}.profile-copy h2,.author-book h2,.book-final-cta h2{font-size:var(--heading)}.profile-copy p{font-size:var(--copy);line-height:1.8}
.detail-cover{max-width:310px;justify-self:center}.book-final-cta{margin-top:56px;padding-top:40px}
.contact-card{padding:28px 32px;max-width:800px}.contact-email{font-size:clamp(22px,2vw,28px)}
.legal-content{max-width:calc(var(--reading) + var(--gutter)*2);padding:128px var(--gutter) var(--section)}.legal-content h1{font-size:var(--title)}.legal-content h2{font-size:28px}.legal-content p,.legal-content td,.legal-content th{font-size:17px;line-height:1.8}
/* Compact shared footer: constrained width and quieter supporting content. */
footer.site-footer{padding:32px var(--gutter) 18px}
.site-footer .footer-main,.site-footer .footer-bottom{max-width:1120px}
.site-footer .footer-main{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,.85fr);gap:32px;padding-bottom:24px}
.site-footer .footer-identity{grid-column:auto}
.site-footer .footer-logo{width:54px;height:54px}
.site-footer .footer-wordmark{gap:12px}
.site-footer .footer-brand-text{font-size:16px;letter-spacing:2px}
.site-footer .footer-brand-text>span{font-size:10px;letter-spacing:4px}
.site-footer .footer-identity p{font-size:13px;line-height:1.6;margin-top:12px;max-width:300px}
.site-footer .footer-group{font-size:13px;gap:0}
.site-footer .footer-group h2{font-size:10px;margin-bottom:8px;letter-spacing:1.2px}
.site-footer .footer-group a{min-height:34px;padding:7px 0;line-height:1.5}
.site-footer .footer-bottom{padding-top:14px;gap:12px 24px;align-items:center}
.site-footer .footer-bottom nav{font-size:11px;gap:0 18px}
.site-footer .footer-bottom nav a{min-height:34px;padding:6px 0}
.site-footer .footer-bottom p{font-size:11px;line-height:1.6}
.site-footer .footer-top{font-size:11px;min-height:34px}
@media(max-width:950px){.site-footer .footer-main{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}.site-footer .footer-identity{grid-column:1/-1}}
#site-menu{max-width:min(680px,90vw)}#site-menu nav a{font-size:clamp(24px,2.4vw,34px)}
.dialog-inner{gap:32px}.dialog-inner h2{font-size:var(--heading)}.dialog-inner img{max-height:70vh}
@media(max-width:1000px){.poster-scene{grid-template-columns:minmax(110px,1fr) minmax(230px,40vw) minmax(110px,1fr);gap:20px}.poster-side{font-size:21px}.author-hero,.book-detail-hero{gap:28px}}

/* Desktop opening: one editorial composition with the approved poster and message. */
.poster-opening .opening-sticky{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto 1fr auto auto;column-gap:clamp(48px,7vw,110px);max-width:calc(var(--content) + 2 * var(--gutter));margin-inline:auto;padding:24px var(--gutter) 50px;align-items:center}
.poster-top{grid-column:1/-1;grid-row:1;width:100%;margin:0 0 28px;gap:24px}
.poster-scene,.poster-actions{display:contents}
.poster-side{display:none}
.poster-frame{grid-column:2;grid-row:2/5;width:auto;max-width:100%;justify-self:center;align-self:center;box-shadow:0 24px 55px #28251a26}
.poster-frame img{display:block;width:auto;height:auto;max-width:100%;max-height:min(69vh,720px);object-fit:contain}
.poster-question{display:block;grid-column:1;grid-row:2;align-self:end;text-align:left;font:400 clamp(38px,3.8vw,62px)/1.12 Georgia,serif;letter-spacing:-.04em;margin:0 0 30px;color:#222622;text-wrap:balance}
.poster-question::before{content:'UNNAMED PROTOCOL  /  LIBRO 1 · EL OLVIDO';display:block;font:11px/1.6 monospace;letter-spacing:1.5px;color:#a5362d;margin-bottom:24px}
.poster-question em{display:block;margin-top:8px;font-style:normal;color:#a5362d}
.purchase-area{grid-column:1;grid-row:3;text-align:left;justify-self:start}
.poster-down{grid-column:1;grid-row:4;justify-self:start;align-self:start;margin-top:32px;border-bottom:1px solid #22262255;padding-bottom:8px}
.poster-down small{font-size:11px;letter-spacing:1px}
@media(max-width:1000px){.poster-opening .opening-sticky{column-gap:32px}.poster-question{font-size:clamp(34px,4vw,44px)}.poster-question::before{font-size:10px}}

/* Continuity with the opening: editorial columns, generous imagery and red accents. */
.memory{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);column-gap:clamp(60px,8vw,120px);row-gap:0;align-content:start;align-items:start}
.memory>.eyebrow{grid-column:1;grid-row:1;color:#a5362d;margin:0 0 22px}
.memory h2{grid-column:1;grid-row:2/6;font-size:clamp(42px,4vw,58px);line-height:1.1;margin:0;max-width:510px}
.memory-intro{grid-column:2;max-width:650px}
.memory-intro:nth-of-type(2){grid-row:1/3}.memory-intro:nth-of-type(3){grid-row:3}.memory-intro:nth-of-type(4){grid-row:4}.memory-intro:nth-of-type(5){grid-row:5}
.memory-line{grid-column:2;grid-row:6;width:100%}.memory-tail{grid-column:1;grid-row:6;color:#a5362d;border-left:2px solid #a5362d;padding-left:20px;font:21px/1.45 Georgia,serif;margin:18px 0 0}
.cast{padding-top:var(--section)}.cast .section-head{align-items:end}.cast-intro{margin-left:max(var(--gutter),calc((100vw - var(--content))/2));margin-right:var(--gutter);color:#454a40}
.cast h2{font-size:clamp(38px,3.6vw,54px);line-height:1.12}.cast .eyebrow{color:#a5362d}
.cast-card img{box-shadow:0 14px 30px #22262218}.cast-caption{font-size:21px}.gallery-controls button{width:48px;height:48px}
.dilemma-story{max-width:var(--content);display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);column-gap:clamp(60px,8vw,120px);align-items:start}
.dilemma h2{grid-column:1;grid-row:1/3;font-size:clamp(40px,3.8vw,56px);line-height:1.12;margin:0}.dilemma-lead{grid-column:2;margin:0 0 24px;max-width:650px}
.dilemma-invitation{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:20px 65px;align-items:center;text-align:left;margin-top:48px;padding-top:38px}
.dilemma-emblems{grid-column:1;grid-row:1/4;justify-content:center;gap:clamp(30px,5vw,70px)}.dilemma-emblems .faction-mark canvas{width:120px;height:110px}
.dilemma-invitation .faction-context,.dilemma-invitation .dilemma-cta,.dilemma-invitation .dilemma-meta{grid-column:2}.dilemma-invitation .dilemma-cta{justify-self:start}.dilemma-invitation .dilemma-meta{margin:0}
.book{align-items:center;column-gap:clamp(60px,8vw,120px)}.book h2{font-size:clamp(55px,5vw,72px)}.book-stage>button{max-width:350px;transform:none}.book-stage img{box-shadow:0 22px 44px #22262226}.book-summary{max-width:560px}
.book-detail-hero,.author-hero{column-gap:clamp(60px,8vw,120px)}.book-detail-hero .profile-lead,.author-hero .profile-lead{font-size:clamp(21px,2vw,25px);line-height:1.5}
.book-detail-hero .detail-cover{max-width:350px}.profile-main h1{font-size:clamp(52px,4.5vw,68px)}
.profile-page .profile-copy h2{font-size:clamp(36px,3vw,44px);line-height:1.2}.profile-page .profile-copy p{max-width:700px}
.contact-card{border-left:2px solid #a5362d}.contact-button{min-height:52px;display:inline-flex;align-items:center;justify-content:center;padding:14px 24px}
@media(max-width:1000px){.memory,.dilemma-story{column-gap:36px}.dilemma-invitation{gap:20px 32px}.memory h2,.dilemma h2{font-size:clamp(36px,4.4vw,44px)}}

/* Larger intro mark on desktop; keep its wordmark clear of the image. */
.intro-logo .intro-brand{width:clamp(260px,24vw,320px);height:clamp(260px,24vw,320px)}
.intro-wordmark{top:calc(43% + clamp(150px,14vw,185px));font-size:17px}
.intro-wordmark small{font-size:11px}
@media (min-width:701px) and (max-width:1100px){.intro-logo .intro-brand{width:clamp(290px,30vw,320px);height:clamp(290px,30vw,320px)}.intro-wordmark{top:calc(43% + clamp(165px,17vw,180px))}}
