/* MIPYMAG visual 2.2.0. Scoped to public pages; reader and admin retain tested controls. */
.portal-design{--brand:#4f2624;--orange:#f73600;--ink:#4f2624;--line:#e4ddda;--soft:#f7f5f4;--muted:#5e5553;--paper:#fff;background:#fff;color:var(--brand);font-family:Arial,Helvetica,sans-serif;font-size:1rem;line-height:1.65}
.portal-design h1,.portal-design h2,.portal-design h3{color:var(--brand);font-weight:750;letter-spacing:-.045em;text-wrap:balance}
.portal-design h1{font-size:clamp(2.75rem,5vw,4.5rem);line-height:1.04}.portal-design p{color:var(--muted)}
.portal-design a:focus-visible,.portal-design button:focus-visible,.portal-design input:focus-visible,.portal-design select:focus-visible,.portal-design textarea:focus-visible,.portal-design summary:focus-visible{outline:3px solid var(--brand);outline-offset:5px}
.portal-design .site-header{max-width:1376px;padding:28px 48px;min-height:104px;gap:32px;border-color:var(--line);flex-wrap:nowrap}
.brand-image{width:220px;max-width:100%;height:auto}.brand.compact .brand-image{width:165px}.portal-design .brand{color:var(--brand);max-width:240px;flex-shrink:0;font-size:2.75rem;letter-spacing:-.07em}
.portal-design .public-nav{width:auto;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:30px;font-size:.875rem;line-height:1.4;font-weight:700;text-transform:uppercase;letter-spacing:.035em}
.portal-design .public-nav a{padding:12px 0}.portal-design .public-nav .site-link{border:0;padding:12px 0;font-size:inherit;white-space:nowrap}.portal-design .public-nav .site-link span{color:var(--orange);font-size:1.25rem;margin-left:7px}.portal-design .public-nav [aria-current=page]{text-decoration-color:var(--orange);text-decoration-thickness:2px;text-underline-offset:9px}
.portal-design .catalog{max-width:1376px;padding:54px 48px 80px}.portal-design .catalog-heading{margin-bottom:36px;align-items:center;gap:30px}.portal-design .catalog-heading>p{font-size:1rem;line-height:1.6;margin:0}.portal-design .catalog-heading h1:after{content:'';display:block;width:48px;height:4px;background:var(--orange);margin-top:20px}
.portal-design .featured{border-top:0;border-bottom:1px solid var(--line);min-height:0;padding-bottom:38px;gap:48px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.portal-design .cover-stage{padding:36px;background:var(--soft);min-width:0}.portal-design .cover-stage picture{width:100%;display:flex;justify-content:center}.portal-design .hero-cover{width:min(100%,350px);height:auto;transform:none;box-shadow:0 10px 24px #4f26241a}.portal-design .cover-stage:hover .hero-cover{transform:none}
.portal-design .feature-copy{padding:34px 0;min-width:0;align-items:flex-start}.portal-design .feature-copy h2,.portal-design .issue-detail .feature-copy h1{font-size:clamp(2rem,3.7vw,3.5rem);line-height:1.07;margin-bottom:24px;overflow-wrap:anywhere}.portal-design .feature-copy>p{font-size:1.0625rem;line-height:1.7;max-width:510px;margin-bottom:24px}
.portal-design .edition-tag{font-size:.8125rem;letter-spacing:.08em;gap:12px;margin-bottom:24px}.portal-design .edition-tag span{border:0;border-left:3px solid var(--orange);padding:2px 0 2px 12px;font-size:.75rem}.portal-design .feature-copy>.edition-meta{font-size:.8125rem;line-height:1.6;letter-spacing:.03em;margin-bottom:24px;gap:0}
.portal-design .button{background:var(--brand);border-color:var(--brand);color:#fff;min-height:50px;padding:13px 24px;font-size:.9375rem;gap:15px;border-radius:0;transition:background .18s ease,box-shadow .18s ease}.portal-design .button:hover{background:#351917;border-color:#351917;box-shadow:inset 0 -3px var(--orange)}.portal-design .button.secondary{background:#fff;color:var(--brand)}.portal-design .button.secondary:hover{background:var(--soft)}
.portal-design .feature-copy>.micro{font-size:.8125rem;line-height:1.6;margin:14px 0 18px}.portal-design .text-link{font-size:.875rem;color:var(--brand);text-decoration-thickness:1px;text-underline-offset:5px}.portal-design .text-link:hover{ text-decoration-color:var(--orange)}
.portal-design .archive{padding-top:42px}.portal-design .section-title{margin-bottom:28px;gap:20px;align-items:baseline}.portal-design .section-title h2{font-size:1.875rem;letter-spacing:-.035em}.portal-design .section-title>a{font-size:.875rem;text-decoration:underline;text-underline-offset:5px}
.portal-design .edition-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 32px}.portal-design .small-cover{padding:24px;margin-bottom:20px;background:var(--soft)}.portal-design .small-cover img{box-shadow:0 7px 18px #4f262414;transition:transform .2s ease}.portal-design .edition-card:hover .small-cover img{transform:translateY(-3px)}.portal-design .edition-card .eyebrow{font-size:.75rem;letter-spacing:.1em;margin-bottom:8px}.portal-design .edition-card h3{font-size:1.375rem;line-height:1.22;letter-spacing:-.025em;margin-bottom:14px}.portal-design .edition-card:focus-within{outline-color:var(--brand)}
.portal-design .archive-filters{padding:22px 0;border-block:1px solid var(--line);gap:20px;margin:28px 0 18px}.portal-design .archive-filters label{max-width:250px;font-size:.875rem}.portal-design select{border-color:#b7aaa6;min-height:50px;color:var(--brand)}.portal-design .pagination{justify-content:center;gap:10px;margin-top:44px}.portal-design .pagination a{border-color:var(--line);min-height:44px;min-width:44px}.portal-design .pagination [aria-current=page]{background:var(--brand);color:#fff;border-color:var(--brand)}
.portal-design .footer{max-width:1376px;display:grid;grid-template-columns:minmax(150px,1fr) auto;align-items:center;gap:24px 48px;padding:34px 48px 28px;color:var(--brand);border-color:var(--line)}.portal-design .footer .footer-brand{display:block}.cattus-brand{display:inline-flex;max-width:180px;font-weight:700;font-size:1.25rem}.cattus-brand img{width:125px;height:auto;max-height:90px;object-fit:contain;object-position:left center}.portal-design .footer>nav{max-width:none;display:flex;justify-content:flex-end;gap:12px 24px;font-size:.875rem;line-height:1.5}.portal-design .footer .footer-credit{grid-column:1/-1;text-align:right;font-size:.75rem;line-height:1.6;margin:0;color:var(--muted)}.portal-design .footer-credit a{text-decoration:underline;text-underline-offset:4px;color:var(--brand)}
.portal-design .prose,.portal-design .about-layout,.portal-design .contact-page{padding-top:54px;padding-bottom:70px}.portal-design .lead{color:var(--brand)}.portal-design .breadcrumb{color:var(--muted);font-size:.875rem}.portal-design .breadcrumb a{color:var(--brand)}
.portal-design dialog{background:var(--brand);border:0;border-top:4px solid var(--orange);color:#fff}.portal-design dialog h2,.portal-design dialog label,.portal-design dialog p,.portal-design dialog a,.portal-design dialog .dialog-close{color:#fff}.portal-design dialog input,.portal-design dialog textarea,.portal-design dialog select{color:#272220;background:#fff}.portal-design dialog .button{background:#fff;color:var(--brand);border-color:#fff}.portal-design dialog .form-error{color:#ffe5dc}.portal-design dialog :focus-visible{outline-color:#fff}.portal-design dialog input:focus-visible{outline-color:#fff}.portal-design .fineprint{font-size:.8125rem}
@media(max-width:900px){.portal-design .site-header{padding-inline:28px}.portal-design .catalog{padding:40px 28px 60px}.portal-design .featured{gap:30px}.portal-design .cover-stage{padding:28px}.portal-design .footer{padding-inline:28px}.portal-design .small-cover{padding:18px}.portal-design .edition-grid{gap:32px 22px}.portal-design .brand-image{width:195px}}
@media(max-width:700px){.portal-design .site-header{padding:22px 24px;min-height:92px;flex-wrap:wrap;gap:16px}.portal-design .brand-image{width:185px}.portal-design .public-nav{gap:20px;font-size:.8125rem}.portal-design .catalog{padding:32px 24px 52px}.portal-design .catalog-heading{display:block;margin-bottom:28px}.portal-design .catalog-heading h1{margin-bottom:20px}.portal-design .catalog-heading>p{font-size:.9375rem}.portal-design .featured{grid-template-columns:1fr;gap:0;padding-bottom:28px}.portal-design .cover-stage{padding:28px 38px}.portal-design .hero-cover{width:min(100%,310px)}.portal-design .feature-copy{padding:28px 0 0}.portal-design .feature-copy h2,.portal-design .issue-detail .feature-copy h1{font-size:2.125rem}.portal-design .feature-copy>p{font-size:1rem}.portal-design .feature-copy>.button{width:auto}.portal-design .feature-copy>.micro{align-self:flex-start}.portal-design .edition-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 18px}.portal-design .small-cover{padding:12px;margin-bottom:14px}.portal-design .edition-card h3{font-size:1.125rem;line-height:1.28}.portal-design .section-title{align-items:start;flex-wrap:wrap;gap:10px}.portal-design .section-title h2{font-size:1.625rem}.portal-design .archive{padding-top:30px}.portal-design .footer{padding:28px 24px;grid-template-columns:1fr;gap:22px}.portal-design .footer>nav{justify-content:flex-start;gap:14px 22px}.portal-design .footer .footer-credit{text-align:left}.portal-design .archive-filters label{min-width:110px;max-width:none}.portal-design .archive-filters .button{width:100%}.portal-design .cattus-brand img{width:125px;max-height:50px}.portal-design .prose h1,.portal-design .contact-page h1{font-size:2.625rem}}
@media(max-width:420px){.portal-design .public-nav{width:100%;justify-content:flex-start;gap:26px}.portal-design .cover-stage{padding:24px}.portal-design .edition-grid{gap:26px 14px}.portal-design .small-cover{padding:8px}.portal-design .edition-card .eyebrow{font-size:.75rem}.portal-design .edition-card .text-link{font-size:.8125rem}}
@media(prefers-reduced-motion:reduce){.portal-design *{transition:none!important}.portal-design .edition-card:hover .small-cover img{transform:none}}

/* 2.3: consistent actions, aligned navigation, larger native logo, compact footer. */
.portal-design .brand{max-width:280px;line-height:1;display:flex;align-items:center}
.portal-design .brand-image{width:250px;display:block}
.portal-design .public-nav{align-items:center}
.portal-design .public-nav>a,.portal-design .public-nav .site-link{display:inline-flex;align-items:center;gap:9px;min-height:44px;line-height:1.4;padding:10px 0}
.portal-design .public-nav .site-link span{display:inline-flex;align-items:center;justify-content:center;font-size:18px;width:18px;height:18px;line-height:1;margin:0}
.portal-design .action-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.portal-design .button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;border-radius:6px;font-size:15px;line-height:1.3;padding:12px 18px;font-weight:600;text-decoration:none;white-space:normal;text-align:center}
.portal-design .button.secondary{border-color:#c9bcb8;background:#fff;color:#4f2624}
.portal-design .button.secondary:hover{background:#f7f5f4;border-color:#4f2624}
.portal-design .button-icon{display:block;flex:0 0 18px;width:18px;height:18px}
.portal-design .button>span{line-height:1.3}
.portal-design .share-status:empty{display:none}
.portal-design .footer{grid-template-columns:1fr auto;align-items:center}
.portal-design .footer .footer-credit{grid-column:auto;text-align:left;margin:0;font-size:13px}
@media(max-width:700px){.portal-design .brand-image{width:230px}.portal-design .public-nav{width:100%;justify-content:flex-start}.portal-design .footer{grid-template-columns:1fr;gap:18px}.portal-design .footer>nav{justify-content:flex-start}.portal-design .action-row{width:100%;gap:10px}.portal-design .action-row .button{flex:0 1 auto}}
@media(max-width:360px){.portal-design .action-row .button{flex:1 1 100%}}

/* 2.3.1: complete gate button states prevent inherited dark-on-dark hover. */
.portal-design #access-dialog .button{background:#fff;color:#4f2624;border-color:#fff;box-shadow:none}
.portal-design #access-dialog .button:hover,.portal-design #access-dialog .button:active{background:#f7f5f4;color:#4f2624;border-color:#f7f5f4;box-shadow:inset 0 -3px #f73600}
.portal-design #access-dialog .button:focus-visible{outline:3px solid #fff;outline-offset:4px;color:#4f2624}
.portal-design #access-dialog .button:disabled{background:#e4ddda;color:#4f2624;border-color:#e4ddda;opacity:1;cursor:wait;box-shadow:none}

@media(forced-colors:active){.portal-design #access-dialog .button,.portal-design #access-dialog .button:hover,.portal-design #access-dialog .button:active,.portal-design #access-dialog .button:disabled{background:ButtonFace;color:ButtonText;border-color:ButtonText;box-shadow:none}}

/* 2.3.3: keep vector arrows beside link text. */
.portal-design .ui-arrow{display:inline-block;vertical-align:-.15em}
.portal-design .edition-card .text-link{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}

/* 2.5.1: home only — fourth additional edition appears in the mobile grid. */
.portal-design .home-archive .edition-grid>.edition-card:nth-child(n+4){display:none}
@media(max-width:700px){.portal-design .home-archive .edition-grid>.edition-card:nth-child(4){display:block}}

/* 2.5.2: keep the footer at the viewport bottom on short public pages.
   Auto margin absorbs spare space; long pages keep their natural document flow. */
body.portal-design{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
.portal-design>header.site-header{width:100%;flex-shrink:0;margin:0 auto}
.portal-design>main{width:100%;flex-shrink:0;margin-top:0;margin-bottom:0}
.portal-design>footer.footer{width:100%;flex-shrink:0;margin:auto auto 0}
