:root { color-scheme: light; --accent: #315f9e; --accent-bright: #6f9bd5; --navy: #0b1830; --navy-soft: #17365f; --ink: #17263b; --muted: #66758a; --line: #e1e8f0; --paper: #f3f6fa; --white: #fff; --shadow: 0 24px 70px rgb(11 24 48 / .09); }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font: 16px/1.65 Inter, "Segoe UI", system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
a { text-underline-offset: .22em; }
.website-field { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.wysiwyg-toolbar { margin-bottom: .75rem; flex-wrap: wrap; }
.wysiwyg-editor, .wysiwyg-source { min-height: 24rem; padding: 1rem; background: #fff; border: 1px solid #aabdb7; border-radius: .25rem; }
.wysiwyg-editor:focus { outline: 2px solid var(--accent); outline-offset: 2px; }
.wysiwyg-editor img { max-width: 100%; height: auto; }
.container { width: min(1240px, calc(100% - 3rem)); margin-inline: auto; }
.site-header { position: relative; z-index: 10; padding: 1rem 0; color: #fff; background: var(--navy); border-bottom: 1px solid rgb(255 255 255 / .12); }
.brand { display: inline-flex; align-items: center; gap: .75rem; color: #fff; text-decoration: none; }
.brand-mark { display: grid; place-items: center; width: 2.75rem; aspect-ratio: 1; color: var(--navy); background: var(--accent-bright); border-radius: 50%; font: 800 .78rem/1 system-ui,sans-serif; letter-spacing: -.03em; }
.site-logo-image { display: block; width: auto; max-width: 12rem; height: 3.25rem; object-fit: contain; object-position: left center; }
.brand-copy { display: grid; line-height: 1.15; }
.brand-copy strong { font-size: .98rem; }
.brand-copy small { margin-top: .28rem; color: rgb(255 255 255 / .58); font-size: .67rem; letter-spacing: .08em; text-transform: uppercase; }
.header-inner, .site-nav, .section-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.header-inner { gap: 0; }
.site-nav { justify-content: center; gap: clamp(1rem,2.2vw,2rem); margin-left: auto; }
.site-nav a { position: relative; color: rgb(255 255 255 / .78); font-size: .9rem; font-weight: 600; text-decoration: none; }
.site-nav a::after { position: absolute; right: 0; bottom: -.55rem; left: 0; height: 2px; content: ""; background: var(--accent-bright); transform: scaleX(0); transition: transform .2s ease; }
.site-nav a:hover { color: #fff; }
.site-nav a:hover::after { transform: scaleX(1); }
.menu-toggle { display: none; }
.header-email { margin-left: 35px; padding: .68rem 1rem; color: var(--navy-soft); background: #fff; border-radius: 999px; font-size: .82rem; font-weight: 750; white-space: nowrap; }
.site-footer a, .content-card a { color: #075e4b; }
.public-shell { display: grid; grid-template-columns: minmax(0, 1fr) 20rem; gap: clamp(2rem,4vw,4rem); padding-block: clamp(2rem,5vw,5rem); }
.public-shell > main { min-width: 0; }
.site-sidebar { align-self: start; min-width: 0; }
.sidebar-sticky { display: grid; gap: 1rem; }
.sidebar-card, .content-card, .calendar-card { background: var(--white); border: 1px solid rgb(0 41 84 / .08); border-radius: 1.15rem; }
.sidebar-card { padding: 1.5rem; }
.sidebar-card h2 { margin: 0 0 1.15rem; font: 700 1.25rem/1.2 Georgia,serif; }
.sidebar-label, .event-type { margin: 0 0 .4rem; color: var(--accent); font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.sidebar-card ul, .date-list { margin: 0; padding: 0; list-style: none; }
.date-list li { display: grid; grid-template-columns: 3rem 1fr; align-items: center; gap: .85rem; padding: .85rem 0; border-top: 1px solid var(--line); }
.date-list time { display: grid; color: var(--navy); line-height: 1; }
.date-list time strong { font: 700 1.5rem/1 Georgia,serif; }
.date-list time span { margin-top: .25rem; color: var(--muted); font-size: .65rem; }
.date-list a { color: var(--ink); font-size: .82rem; font-weight: 650; line-height: 1.35; text-decoration: none; }
.sidebar-more { display: inline-block; margin-top: 1rem; color: var(--accent); font-size: .78rem; font-weight: 750; text-decoration: none; }
.journal-links li { border-top: 1px solid var(--line); }
.journal-links a { display: flex; justify-content: space-between; gap: .5rem; padding: .8rem 0; color: var(--ink); font-size: .8rem; font-weight: 650; line-height: 1.35; text-decoration: none; }
.journal-links a,.journal-links a span,.journal-links a strong { color: var(--ink); }
.subscribe-card { position: relative; overflow: hidden; padding: 1.6rem; color: #fff; background: var(--navy); border-radius: 1.15rem; }
.subscribe-card > span { color: var(--accent-bright); font-size: 1.4rem; }
.subscribe-card h2 { margin: .6rem 0; font: 700 1.45rem/1.1 Georgia,serif; }
.subscribe-card p { color: rgb(255 255 255 / .66); font-size: .82rem; }
.subscribe-card a { color: #fff; font-size: .82rem; font-weight: 750; text-decoration: none; }
.sidebar-subscribe .sidebar-label { color: var(--accent-bright); }
.sidebar-subscribe form { display: grid; gap: .48rem; margin-top: .9rem; }
.sidebar-subscribe label { margin: 0; }
.sidebar-subscribe input:not([type="hidden"]) { display: block; box-sizing: border-box; width: 100%; min-width: 0; height: 2.5rem; padding: .48rem .72rem; color: #fff; background: rgb(255 255 255 / .1); border: 1px solid rgb(255 255 255 / .2); border-radius: .6rem; font: inherit; font-size: .78rem; line-height: 1.2; }
.sidebar-subscribe input::placeholder { color: rgb(255 255 255 / .55); }
.sidebar-subscribe input[type="date"] { min-height: 2.5rem; color-scheme: dark; -webkit-appearance: none; appearance: none; }
.sidebar-subscribe input[type="date"]::-webkit-date-and-time-value { min-height: 1.2em; margin: 0; text-align: left; }
.sidebar-subscribe input[type="date"]::-webkit-calendar-picker-indicator { width: 1rem; height: 1rem; margin: 0; padding: 0; opacity: .75; }
.sidebar-subscribe button { display: flex; justify-content: space-between; width: 100%; padding: .62rem .85rem; color: var(--navy); background: var(--accent-bright); border-radius: .6rem; font-size: .82rem; }
.subscribe-legal { margin: .25rem 0 .35rem !important; color: rgb(255 255 255 / .52) !important; font-size: .58rem !important; line-height: 1.45; }
.visually-hidden { position: absolute; overflow: hidden; width: 1px; height: 1px; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.card-grid, .calendar-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.1rem; margin-bottom: 2rem; }
.content-card { position: relative; padding: clamp(1.35rem,2.5vw,2rem); box-shadow: 0 1px 0 rgb(0 41 84 / .02); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.content-card:hover { border-color: rgb(6 140 108 / .25); box-shadow: var(--shadow); transform: translateY(-3px); }
.calendar-card { display: grid; grid-template-columns: 4.5rem 1fr; gap: 1.2rem; padding: 1.3rem; }
.calendar-card h2, .calendar-card h3, .content-card h2, .content-card h3 { margin: 0; }
.calendar-card > time { display: grid; align-content: center; justify-items: center; min-height: 4.5rem; color: #fff; background: var(--navy); border-radius: .8rem; font-weight: 700; line-height: 1; }
.calendar-card time strong { font: 700 1.7rem/1 Georgia,serif; }
.calendar-card time span { margin-top: .35rem; color: rgb(255 255 255 / .68); font-size: .62rem; letter-spacing: .08em; }
.calendar-card p { margin: .2rem 0 0; color: var(--muted); font-size: .86rem; }
.content-section { margin: 0 0 clamp(3rem,7vw,6rem); }
.section-heading { margin-bottom: 1.5rem; }
.section-heading > div { display: flex; align-items: baseline; gap: 1rem; }
.section-heading h2 { margin: 0; font: 700 clamp(1.8rem,3.4vw,2.75rem)/1.05 Georgia,"Times New Roman",serif; letter-spacing: -.03em; }
.section-number { color: var(--accent); font-size: .7rem; font-weight: 800; letter-spacing: .1em; }
.section-heading > a { color: var(--navy); font-size: .82rem; font-weight: 750; text-decoration: none; }
.hero { position: relative; display: grid; grid-template-columns: minmax(0,1.6fr) minmax(15rem,.75fr); overflow: hidden; margin: 0 0 clamp(3rem,7vw,6rem); padding: clamp(2rem,5vw,4.5rem); color: #fff; background: var(--navy); border: 0; border-radius: 1.5rem; box-shadow: 0 30px 80px rgb(0 41 84 / .18); }
.hero::before { position: absolute; inset: 0; content: ""; background: radial-gradient(circle at 75% 15%,rgb(16 184 141 / .2),transparent 30%),linear-gradient(120deg,transparent 55%,rgb(255 255 255 / .04)); pointer-events: none; }
.hero-copy, .hero-aside { position: relative; z-index: 1; }
.hero h1 { max-width: 36ch; margin: 1rem 0 1.5rem; font: 700 1.45rem/1.25 Georgia,"Times New Roman",serif; letter-spacing: -.02em; }
.hero h1.home-hero-title { font-size: var(--home-hero-title-size,23px); white-space: pre-line; }
.panel.hero h1 { color: var(--navy); }
.panel.hero .text-link { color: var(--navy); }
.panel.hero .button { color: #fff; background: var(--navy); }
.hero h1 em { color: var(--accent-bright); font-weight: 500; }
.hero-lead { max-width: 42rem; color: rgb(255 255 255 / .7); font-size: clamp(1rem,1.4vw,1.16rem); }
.hero .eyebrow { color: var(--accent-bright); }
.hero .actions { margin-top: 2rem; }
.hero .button { padding: .62rem .9rem; color: var(--navy); background: #fff; border-radius: 999px; font-size: .78rem; }
.hero .text-link { color: #fff; font-size: .78rem; font-weight: 700; text-decoration: none; }
.hero-aside { align-self: end; padding: 2rem 0 0 2rem; border-left: 1px solid rgb(255 255 255 / .16); }
.hero-aside p { margin: 1.5rem 0 .5rem; color: rgb(255 255 255 / .65); }
.hero-aside strong { color: #fff; }
.hero-aside small { color: var(--accent-bright); font-size: .67rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.hero-orbit { display: block; width: 5rem; aspect-ratio: 1; border: 1px solid rgb(16 184 141 / .55); border-radius: 50%; box-shadow: inset 0 0 0 1rem rgb(16 184 141 / .05),0 0 0 1rem rgb(16 184 141 / .04); }
.journal-card { min-height: 15rem; padding-top: 3.5rem; }
.journal-card h3 { max-width: 18ch; font: 700 1.35rem/1.18 Georgia,serif; }
.journal-card h2 { max-width: 18ch; font: 700 1.35rem/1.18 Georgia,serif; }
.journal-card h2 a { color: var(--navy); text-decoration: none; }
.journal-card h3 a { color: var(--navy); text-decoration: none; }
.journal-card p { display: -webkit-box; overflow: hidden; color: var(--muted); font-size: .88rem; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.card-index { position: absolute; top: 1.2rem; left: 1.5rem; color: var(--accent); font-size: .67rem; font-weight: 800; letter-spacing: .1em; }
.card-arrow { position: absolute; right: 1.4rem; bottom: 1.2rem; display: grid; place-items: center; width: 2.2rem; aspect-ratio: 1; color: var(--navy) !important; background: var(--paper); border-radius: 50%; text-decoration: none; }
.conference-card::after { position: absolute; top: 1.2rem; right: 1.4rem; width: .55rem; aspect-ratio: 1; content: ""; background: var(--accent); border-radius: 50%; box-shadow: 0 0 0 .35rem rgb(6 140 108 / .1); }
.conference-edition { margin: 0 0 .5rem !important; color: var(--accent) !important; font-size: .64rem !important; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; -webkit-line-clamp: initial !important; }
.conference-meta { margin: .7rem 0 .4rem !important; color: var(--navy) !important; font-size: .72rem !important; font-weight: 750; -webkit-line-clamp: initial !important; }
.scientometrics { display: flex !important; gap: .35rem; margin: .7rem 0 .45rem !important; color: var(--navy) !important; font-size: .68rem !important; font-weight: 800; letter-spacing: .025em; -webkit-line-clamp: initial !important; }
.scientometrics span { color: var(--muted); font-weight: 650; }
.conference-links a { align-items: flex-start !important; }
.sidebar-conference-copy { display: grid; gap: .3rem; min-width: 0; }
.sidebar-conference-copy strong { font: inherit; }
.sidebar-conference-copy small { margin-left: .55rem; color: var(--muted) !important; font-size: .58rem; font-weight: 600; line-height: 1.35; }
.listing-hero { margin-bottom: 2rem; padding-bottom: 2rem; border-bottom: 1px solid var(--line); }
.listing-hero h1 { max-width: 100%; margin: .35rem 0 .8rem; overflow-wrap: break-word; font: 700 clamp(2.2rem,4vw,3.4rem)/1.02 Georgia,serif; letter-spacing: -.04em; }
.listing-hero > p:last-child { max-width: 40rem; color: var(--muted); }
.entity-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.collection-page { display: grid; gap: 0; overflow: hidden; background: #fff; border: 1px solid rgb(0 41 84 / .08); border-radius: 1.4rem; box-shadow: var(--shadow); }
.collection-hero { display: flex; align-items: end; justify-content: space-between; gap: 2rem; padding: clamp(2rem,5vw,4rem); color: #fff; background: var(--navy); }
.collection-hero h1 { max-width: 18ch; margin: .5rem 0 1rem; font: 600 clamp(2rem,3.6vw,3.35rem)/1.02 Georgia,serif; letter-spacing: -.04em; }
.issue-name { margin: 0; color: var(--accent-bright); font-size: .85rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.collection-cta { flex: 0 0 auto; color: var(--navy); background: #fff; border-radius: 999px; }
.collection-section { display: grid; grid-template-columns: minmax(0,1fr); gap: .75rem; padding: clamp(2rem,5vw,4rem); border-bottom: 1px solid var(--line); }
.section-kicker { padding-top: 0; color: var(--accent); font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.collection-section h2,.collection-bottom h2 { margin: 0 0 1.2rem; font: 700 clamp(1.8rem,3vw,2.6rem)/1.05 Georgia,serif; letter-spacing: -.03em; }
.collection-section p { color: var(--muted); }
.detail-scientometrics { display: inline-flex; align-items: center; gap: .65rem; margin-top: 1rem; padding: .6rem .8rem; background: var(--paper); border-radius: .55rem; }
.detail-scientometrics span { color: var(--muted); font-size: .7rem; }
.detail-scientometrics strong { color: var(--navy); font-size: .76rem; letter-spacing: .04em; }
.detail-publication-facts { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1rem; }
.detail-publication-facts .detail-scientometrics { margin: 0; }
.deadline-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; margin: 1.5rem 0; }
.deadline-item { display: grid; gap: .4rem; padding: 1.2rem; background: var(--paper); border-radius: .8rem; }
.deadline-item span { color: var(--muted); font-size: .73rem; }
.deadline-item strong { color: var(--navy); font: 700 1.35rem/1 Georgia,serif; }
.requirements-callout { margin: 1.25rem 0; padding: 1.3rem 1.5rem; background: rgb(6 140 108 / .08); border-left: 3px solid var(--accent); border-radius: 0 .8rem .8rem 0; }
.requirements-callout p { margin: .35rem 0 0; font-size: .85rem; }
.document-links,.policy-links { display: grid; gap: .7rem; }
.document-links a,.policy-links a { display: grid; grid-template-columns: 5rem 1fr auto; align-items: center; gap: 1rem; padding: 1rem 1.2rem; color: var(--navy); background: var(--paper); border-radius: .8rem; text-decoration: none; }
.document-links a > span { color: var(--accent); font-size: .65rem; font-weight: 800; }
.document-links i { color: var(--accent); font-style: normal; }
.policy-links a { grid-template-columns: 1fr auto; font-weight: 700; }
.price-table { overflow: hidden; margin-top: 1.5rem; border: 1px solid var(--line); border-radius: .85rem; }
.price-section-title { padding: .85rem 1.2rem; color: var(--navy); background: rgb(6 140 108 / .09); border-bottom: 1px solid var(--line); font: 700 1rem/1.2 Georgia,serif; }
.price-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 1.5rem; padding: 1rem 1.2rem; border-bottom: 1px solid var(--line); }
.price-row:last-child { border-bottom: 0; }
.price-row > div { display: grid; }
.price-row small { color: var(--muted); }
.price-row > span { color: var(--navy); font-weight: 800; white-space: nowrap; }
.collection-bottom { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: clamp(2rem,5vw,4rem); color: #fff; background: linear-gradient(135deg,var(--navy),var(--navy-soft)); }
.collection-bottom h2 { margin-bottom: .6rem; }
.collection-bottom p:not(.eyebrow) { max-width: 38rem; margin: 0; color: rgb(255 255 255 / .65); }
.collection-bottom .button { flex: 0 0 auto; color: var(--navy); background: var(--accent-bright); border-radius: 999px; }
.entity-detail, .prose { margin-bottom: 2rem; }
.prose img { max-width: 100%; height: auto; }
.archive-hero { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 1.25rem; padding: clamp(1.7rem,4vw,3rem); color: #fff; background: linear-gradient(135deg,var(--navy),#064779); border-radius: 1.25rem; overflow: hidden; position: relative; }
.archive-hero::after { position: absolute; right: -3rem; top: -5rem; width: 15rem; aspect-ratio: 1; content: ""; border: 1px solid rgb(16 184 141 / .3); border-radius: 50%; box-shadow: 0 0 0 2.5rem rgb(16 184 141 / .04),0 0 0 5rem rgb(16 184 141 / .025); }
.archive-hero > * { position: relative; z-index: 1; }
.archive-hero h1 { margin: .35rem 0 .7rem; font: 700 clamp(2.25rem,5vw,4rem)/.95 Georgia,serif; letter-spacing: -.045em; }
.archive-hero p:last-child { max-width: 40rem; margin: 0; color: rgb(255 255 255 / .67); font-size: .9rem; }
.archive-total { flex: 0 0 auto; display: grid; min-width: 8rem; padding-left: 1.5rem; border-left: 1px solid rgb(255 255 255 / .2); }
.archive-total strong { color: var(--accent-bright); font: 700 2.4rem/1 Georgia,serif; }
.archive-total span { margin-top: .3rem; color: rgb(255 255 255 / .62); font-size: .7rem; }
.archive-filter { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: end; gap: .75rem .85rem; margin-bottom: 2.3rem; padding: 1.3rem; background: #fff; border: 1px solid var(--line); border-radius: .85rem; box-shadow: 0 10px 35px rgb(0 41 84 / .05); }
.archive-filter label { gap: .22rem; min-width: 0; margin: 0; }
.archive-filter label > span { padding-left: .1rem; color: var(--muted); font-size: .6rem; font-weight: 700; }
.archive-filter select,.archive-filter input { height: 2.35rem; min-width: 0; padding: 0 .65rem; color: var(--navy); background: var(--paper); border: 1px solid transparent; border-radius: .48rem; font-size: .7rem; font-weight: 650; }
.archive-filter select:focus,.archive-filter input:focus { outline: 2px solid rgb(6 140 108 / .2); border-color: var(--accent); }
.archive-filter button { grid-column: 1; width: 100%; height: 2.35rem; padding: 0 .9rem; border-radius: .48rem; font-size: .7rem; }
.archive-filter-reset { align-self: center; color: var(--accent); font-size: .65rem; font-weight: 700; text-decoration: none; }
.archive-list { display: grid; gap: .7rem; }
.archive-period { display: flex; align-items: center; gap: 1rem; margin: 1.7rem 0 .15rem; color: var(--navy); font: 700 1.35rem/1 Georgia,serif; }
.archive-period:first-child { margin-top: 0; }
.archive-period::after { flex: 1; height: 1px; content: ""; background: var(--line); }
.archive-card { display: grid; grid-template-columns: minmax(8rem,.85fr) minmax(0,2fr) minmax(9rem,.75fr); gap: clamp(1rem,2.5vw,2rem); align-items: center; padding: 1.3rem 1.45rem; background: #fff; border: 1px solid var(--line); border-radius: .85rem; transition: transform .2s ease,border-color .2s ease,box-shadow .2s ease; }
.archive-card:hover { transform: translateY(-2px); border-color: rgb(6 140 108 / .28); box-shadow: 0 14px 35px rgb(0 41 84 / .07); }
.archive-card-type { display: grid; gap: .35rem; align-self: stretch; align-content: center; padding-right: 1rem; border-right: 1px solid var(--line); }
.archive-card-type span { color: var(--accent); font-size: .6rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.archive-card-type small { color: var(--navy); font-size: .7rem; font-weight: 700; line-height: 1.3; }
.archive-card-main { min-width: 0; }
.archive-card-meta { display: flex; gap: .55rem; align-items: center; margin-bottom: .4rem; color: var(--muted); font-size: .68rem; }
.archive-card-meta strong { color: var(--navy); font-size: .76rem; }
.archive-card h2 { margin: 0; font: 700 1.08rem/1.2 Georgia,serif; }
.archive-card h2 a { color: var(--navy); text-decoration: none; }
.archive-card-status { display: flex; align-items: center; gap: .4rem; margin-top: .65rem; color: var(--muted); font-size: .62rem; }
.archive-card-status i { width: .38rem; aspect-ratio: 1; background: #aab8b5; border-radius: 50%; }
.archive-card-status.is-indexed { color: var(--accent); }
.archive-card-status.is-indexed i { background: var(--accent-bright); box-shadow: 0 0 0 .22rem rgb(16 184 141 / .1); }
.archive-card-links { display: grid; gap: .48rem; }
.archive-card-links a { color: var(--navy); font-size: .65rem; font-weight: 700; text-decoration: none; }
.archive-card-links .archive-file-primary { display: flex; justify-content: space-between; padding: .65rem .75rem; color: #fff; background: var(--navy); border-radius: .45rem; }
.archive-card-links .archive-file-primary span { color: var(--accent-bright); }
.archive-pagination { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: 2rem; }
.archive-pagination a { display: grid; place-items: center; min-width: 2.2rem; height: 2.2rem; padding: 0 .5rem; color: var(--navy); background: #fff; border: 1px solid var(--line); border-radius: .45rem; font-size: .72rem; font-weight: 750; text-decoration: none; }
.archive-pagination a.is-current { color: #fff; background: var(--navy); border-color: var(--navy); }
.archive-empty { padding: 4rem 2rem; background: #fff; border: 1px solid var(--line); border-radius: 1rem; text-align: center; }
.archive-empty > span { color: var(--accent); font-size: 2.5rem; }
.archive-empty h2 { margin: .5rem 0; font: 700 1.8rem/1.1 Georgia,serif; }
.archive-empty p { color: var(--muted); }
.archive-detail { overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 1.25rem; box-shadow: var(--shadow); }
.archive-detail-hero { padding: clamp(2rem,5vw,4rem); color: #fff; background: linear-gradient(135deg,var(--navy),#064779); }
.archive-back { display: inline-block; margin-bottom: 2.5rem; color: rgb(255 255 255 / .66); font-size: .7rem; font-weight: 700; text-decoration: none; }
.archive-detail-hero h1 { max-width: 16ch; margin: .5rem 0 .8rem; font: 700 clamp(2rem,4.5vw,3.8rem)/1 Georgia,serif; letter-spacing: -.04em; }
.archive-detail-hero > p:not(.eyebrow) { color: rgb(255 255 255 / .68); }
.archive-detail-tags { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.5rem; }
.archive-detail-tags span { padding: .45rem .7rem; color: var(--accent-bright); background: rgb(16 184 141 / .1); border: 1px solid rgb(16 184 141 / .22); border-radius: 999px; font-size: .65rem; font-weight: 750; }
.archive-detail-body { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(12rem,.65fr); gap: clamp(2rem,5vw,4rem); padding: clamp(2rem,5vw,4rem); }
.archive-detail-body h2 { margin: .5rem 0 1.5rem; font: 700 clamp(1.8rem,3vw,2.5rem)/1 Georgia,serif; }
.archive-detail-files { display: grid; gap: .65rem; }
.archive-detail-file { display: grid; grid-template-columns: 3rem 1fr auto; align-items: center; gap: .8rem; padding: .9rem 1rem; color: var(--navy); background: var(--paper); border-radius: .65rem; text-decoration: none; }
.archive-detail-file > span { color: var(--accent); font-size: .58rem; font-weight: 850; letter-spacing: .08em; }
.archive-detail-file strong { font-size: .76rem; }
.archive-detail-file i { color: var(--accent); font-style: normal; }
.archive-detail-file.is-primary { color: #fff; background: var(--navy); }
.archive-detail-facts { display: grid; align-content: start; }
.archive-detail-facts > div { display: grid; gap: .25rem; padding: 1rem 0; border-bottom: 1px solid var(--line); }
.archive-detail-facts span { color: var(--muted); font-size: .62rem; }
.archive-detail-facts strong { color: var(--navy); font: 700 1.05rem/1.2 Georgia,serif; }
.archive-detail-facts strong.is-green { color: var(--accent); }
.calendar-hero { margin-bottom: 1.4rem; padding: clamp(2rem,5vw,3.5rem); color: #fff; background: linear-gradient(135deg,var(--navy),#064779); border-radius: 1.25rem; }
.calendar-hero h1 { margin: .4rem 0 .7rem; font: 700 clamp(2.3rem,5vw,4rem)/.95 Georgia,serif; letter-spacing: -.045em; }
.calendar-hero > p:last-child { max-width: 34rem; margin: 0; color: rgb(255 255 255 / .66); font-size: .88rem; }
.event-timeline { display: grid; gap: .7rem; }
.event-month { display: flex; align-items: center; gap: 1rem; margin: 1.2rem 0 .1rem; color: var(--navy); font: 700 1.25rem/1 Georgia,serif; }
.event-month::after { flex: 1; height: 1px; content: ""; background: var(--line); }
.event-card { display: grid; grid-template-columns: 4.5rem minmax(0,1fr) 2.3rem; align-items: center; gap: 1.25rem; padding: 1rem 1.2rem; background: #fff; border: 1px solid var(--line); border-radius: .85rem; transition: transform .2s ease,box-shadow .2s ease; }
.event-card:hover { transform: translateY(-2px); box-shadow: 0 14px 35px rgb(0 41 84 / .07); }
.event-card > time { display: grid; place-items: center; align-content: center; min-height: 4.7rem; color: #fff; background: var(--navy); border-radius: .65rem; }
.event-card time strong { font: 700 1.55rem/1 Georgia,serif; }
.event-card time span { margin-top: .2rem; color: var(--accent-bright); font-size: .6rem; font-weight: 800; text-transform: uppercase; }
.event-card time small { color: rgb(255 255 255 / .55); font-size: .52rem; }
.event-card-copy { min-width: 0; }
.event-type { margin: 0 0 .3rem !important; color: var(--accent) !important; font-size: .58rem !important; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.event-card h2 { margin: 0; font: 700 1.05rem/1.2 Georgia,serif; }
.event-card h2 a { color: var(--navy); text-decoration: none; }
.event-card-copy > p:last-child { margin: .4rem 0 0; color: var(--muted); font-size: .7rem; }
.event-arrow { display: grid; place-items: center; width: 2.2rem; aspect-ratio: 1; color: var(--navy); background: var(--paper); border-radius: 50%; text-decoration: none; }
.crm-dialog { width: min(42rem,calc(100% - 2rem)); border: 0; border-radius: .5rem; padding: 2rem; }
.crm-dialog::backdrop { background: rgb(0 41 84 / .65); }
.dialog-close { float: right; padding: .2rem .6rem; }
.thanks-dialog { width: min(26rem,calc(100% - 2rem)); padding: 2rem; color: var(--ink); background: #fff; border: 0; border-radius: 1.2rem; text-align: center; box-shadow: var(--shadow); }
.thanks-dialog::backdrop { background: rgb(0 41 84 / .68); backdrop-filter: blur(3px); }
.thanks-dialog .dialog-close { position: absolute; top: .8rem; right: .8rem; color: var(--navy); background: var(--paper); }
.thanks-dialog h2 { margin: .8rem 0 .5rem; font: 700 1.65rem/1.1 Georgia,serif; }
.thanks-dialog p { color: var(--muted); }
.thanks-mark { display: grid; place-items: center; width: 3.5rem; margin: .5rem auto; aspect-ratio: 1; color: #fff; background: var(--accent); border-radius: 50%; font-size: 1.5rem; }
.site-footer { padding: 3rem 0; color: #fff; background: var(--navy); }
.site-footer a { color: #fff; }
.footer-inner { display: flex; justify-content: space-between; gap: 2rem; }
.footer-inner > div:last-child { text-align: right; }
.footer-inner p { margin: .35rem 0 0; color: rgb(255 255 255 / .55); font-size: .78rem; }
.panel, .auth-card { margin: 3rem auto; padding: clamp(1.25rem, 4vw, 2.5rem); background: #fff; border: 1px solid var(--line); border-radius: 1rem; }
.auth-card { max-width: 32rem; }
.eyebrow { color: var(--accent); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
label { display: grid; gap: .35rem; margin: 1rem 0; font-weight: 600; }
input { width: 100%; padding: .7rem; border: 1px solid #aabdb7; border-radius: .25rem; font: inherit; }
select, textarea { width: 100%; padding: .7rem; border: 1px solid #aabdb7; border-radius: .25rem; font: inherit; }
select { appearance: none; -webkit-appearance: none; padding-right: 2.1rem; background-image: linear-gradient(45deg,transparent 50%,#315f9e 50%),linear-gradient(135deg,#315f9e 50%,transparent 50%); background-position: calc(100% - 14px) 50%,calc(100% - 9px) 50%; background-size: 5px 5px,5px 5px; background-repeat: no-repeat; }
button, .button { display: inline-block; padding: .75rem 1.1rem; border: 0; border-radius: .55rem; color: #fff; background: var(--accent); font: inherit; font-weight: 700; text-decoration: none; cursor: pointer; transition: transform .2s ease,background .2s ease; }
button:hover, .button:hover { transform: translateY(-1px); }
.alert { padding: .75rem; color: #7b1f1f; background: #fff0f0; border: 1px solid #e8bcbc; }
.success, .notice { margin-bottom: 1rem; padding: .8rem 1rem; border: 1px solid #a9d9c9; background: #ebfaf5; }
.admin-body { background: #eef3f1; }
.admin-header { min-height: 4rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem 1.25rem; background: #fff; border-bottom: 1px solid var(--line); }
.admin-shell { display: grid; grid-template-columns: 16rem minmax(0, 1fr); min-height: calc(100vh - 4rem); }
.admin-nav { display: flex; flex-direction: column; gap: .25rem; padding: 1rem; background: #17302a; }
.admin-nav a, .link-button { display: block; width: 100%; padding: .65rem .75rem; color: #fff; background: transparent; border: 0; border-radius: .25rem; text-align: left; text-decoration: none; font: inherit; cursor: pointer; }
.admin-nav a:hover, .link-button:hover { background: #28483f; }
.admin-main { min-width: 0; padding: clamp(1rem, 3vw, 2rem); }
.page-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.page-heading h1 { margin: 0; }
.page-heading .eyebrow { margin: 0 0 .25rem; }
.stat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.stat-card, .admin-card { padding: 1.25rem; background: #fff; border: 1px solid var(--line); border-radius: .4rem; }
.stat-card { display: grid; gap: .25rem; }
.stat-card strong { color: var(--accent); font-size: 2rem; }
.admin-card { margin-bottom: 1rem; }
.admin-card h2 { margin-top: 0; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: .7rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1rem; }
.form-grid .wide { grid-column: 1 / -1; }
.actions { display: flex; align-items: center; gap: .75rem; }
.actions form { margin: 0; }
.danger-link { padding: 0; color: #9a2929; background: transparent; font-weight: 400; }
.checkbox { display: flex; grid-template-columns: auto 1fr; align-items: center; }
.checkbox input { width: auto; }
@media (max-width: 800px) {
    .container { width: min(100% - 2rem,1240px); }
    .header-inner { position: relative; flex-wrap: wrap; }
    .menu-toggle { display: grid; gap: 4px; place-content: center; width: 2.65rem; height: 2.65rem; margin-left: auto; padding: 0; background: rgb(255 255 255 / .1); border: 1px solid rgb(255 255 255 / .18); border-radius: 50%; }
    .menu-toggle span { display: block; width: 1rem; height: 2px; background: #fff; transition: transform .2s ease,opacity .2s ease; }
    .menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
    .menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
    .menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
    .site-nav { order: 4; display: none; flex-direction: column; align-items: stretch; width: 100%; gap: 0; margin: .7rem 0 0; padding: .5rem 0 0; border-top: 1px solid rgb(255 255 255 / .12); }
    .site-nav.is-open { display: flex; }
    .site-nav a { padding: .7rem .2rem; }
    .site-nav a::after { display: none; }
    .header-email { order: 3; margin-left: .5rem; }
    .public-shell { grid-template-columns: 1fr; }
    .sidebar-sticky { position: static; grid-template-columns: repeat(2,minmax(0,1fr)); }
    .sidebar-subscribe { grid-column: 1/-1; }
    .hero { grid-template-columns: 1fr; }
    .hero-aside { display: none; }
    .collection-section { grid-template-columns: 1fr; }
    .archive-filter { grid-template-columns: repeat(2,minmax(0,1fr)); padding: 1rem; }
    .archive-filter button { grid-column: 1; }
    .archive-filter-entity { grid-column: auto; }
    .archive-card { grid-template-columns: 1fr; gap: .85rem; }
    .archive-card-type { padding: 0 0 .65rem; border-right: 0; border-bottom: 1px solid var(--line); }
    .archive-card-links { grid-column: auto; grid-template-columns: 1fr 1fr; padding-top: .8rem; border-top: 1px solid var(--line); }
    .archive-card-links .archive-file-primary { grid-column: 1/-1; }
    .archive-detail-body { grid-template-columns: 1fr; }
    .section-kicker { padding-top: 0; }
    .admin-shell { grid-template-columns: 1fr; }
    .admin-nav { flex-direction: row; overflow-x: auto; }
    .admin-nav a, .link-button { white-space: nowrap; }
    .stat-grid, .form-grid { grid-template-columns: 1fr; }
    .form-grid .wide { grid-column: auto; }
}
@media (max-width: 520px) {
    .brand-copy small, .header-email { display: none; }
    .card-grid, .calendar-grid, .sidebar-sticky { grid-template-columns: 1fr; }
    .calendar-card { grid-template-columns: 4rem 1fr; }
    .site-nav { gap: 0; }
    .section-heading { align-items: flex-start; flex-direction: column; }
    .hero { padding: 2rem 1.35rem; border-radius: 1rem; }
    .hero h1 { font-size: 1.35rem; }
    .listing-hero h1 { font-size: clamp(2rem,10vw,2.75rem); }
    .hero .actions { align-items: flex-start; flex-direction: column; }
    .collection-hero,.collection-bottom { align-items: flex-start; flex-direction: column; }
    .archive-hero { align-items: flex-start; flex-direction: column; }
    .archive-total { padding: 0; border: 0; }
    .archive-filter { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .archive-filter-entity { grid-column: 1/-1; }
    .archive-filter button { width: 100%; }
    .archive-card-links { grid-column: auto; grid-template-columns: 1fr; }
    .archive-card-links .archive-file-primary { grid-column: auto; }
    .archive-card { padding: 1.1rem; }
    .archive-card h2 { font-size: 1rem; }
    .archive-period { font-size: 1.15rem; }
    .event-card { grid-template-columns: 3.8rem minmax(0,1fr); gap: .85rem; padding: .85rem; }
    .event-card > time { min-height: 4.2rem; }
    .event-arrow { display: none; }
    .deadline-grid { grid-template-columns: 1fr; }
    .document-links a { grid-template-columns: 1fr auto; }
    .document-links a > span { grid-column: 1/-1; }
    .price-row { grid-template-columns: 1fr; gap: .5rem; }
    .footer-inner { flex-direction: column; }
    .footer-inner > div:last-child { text-align: left; }
}
@media (prefers-reduced-motion: reduce) {
    *,*::before,*::after { scroll-behavior: auto !important; transition: none !important; }
}
.breadcrumbs { display: flex; flex-wrap: wrap; gap: .45rem; margin: 1rem 0; color: var(--muted); font-size: .875rem; }
.breadcrumbs a { color: var(--green); text-decoration: none; }
.breadcrumbs a:hover { text-decoration: underline; }
.check-status { display: inline-block; padding: .25rem .5rem; border-radius: 999px; font-size: .68rem; }
.check-ok { color: #075e4b; background: #e5f7f0; }
.check-warning { color: #825500; background: #fff4cf; }
.check-error { color: #9b1c1c; background: #fee8e8; }
.blog-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; margin-bottom: 2rem; }
.blog-card { display: grid; grid-template-columns: minmax(0,1fr); overflow: hidden; background: #fff; border: 1px solid rgb(0 41 84 / .08); border-radius: 1.15rem; box-shadow: 0 1px 0 rgb(0 41 84 / .02); transition: transform .25s ease,box-shadow .25s ease,border-color .25s ease; }
.blog-card:hover { border-color: rgb(6 140 108 / .25); box-shadow: var(--shadow); transform: translateY(-2px); }
.blog-card-image { display: grid; place-items: center; width: 100%; aspect-ratio: 16/9; overflow: hidden; color: rgb(255 255 255 / .8); background: linear-gradient(135deg,var(--navy),#064779); text-decoration: none; }
.blog-card-image img { width: 100%; height: 100%; object-fit: cover; }
.blog-card-image span { font: 700 2rem/1 Georgia,serif; }
.blog-card-content { display: flex; align-items: flex-start; flex-direction: column; padding: clamp(1.4rem,3vw,2.3rem); }
.blog-card-content time { margin-bottom: .65rem; color: var(--muted); font-size: .68rem; letter-spacing: .04em; }
.blog-card-content h2 { margin: 0 0 .8rem; font: 700 clamp(1.45rem,2.5vw,2rem)/1.12 Georgia,serif; letter-spacing: -.025em; }
.blog-card-content h2 a { color: var(--navy); text-decoration: none; }
.blog-card-content p { margin: 0 0 1.2rem; color: var(--muted); font-size: .9rem; line-height: 1.65; }
.blog-card-more { margin-top: auto; padding: .65rem 1rem; font-size: .72rem; }
.blog-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: 100%; margin-top: auto; }
.post-statistics { display: flex; align-items: center; gap: .8rem; color: var(--muted); font-size: .7rem; }
.post-statistics span { white-space: nowrap; }
.blog-like-form { margin: 0; }
.blog-like-form button { padding: .35rem .55rem; color: var(--accent); background: var(--paper); border: 0; border-radius: 999px; font: inherit; cursor: pointer; }
.blog-like-form button:disabled { opacity: .65; cursor: default; }
.post-detail-statistics { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 2rem; padding-top: 1.25rem; color: var(--muted); border-top: 1px solid var(--line); font-size: .78rem; }
.post-featured-image { display: block; width: 100%; max-height: 36rem; margin: 1.25rem 0 2rem; object-fit: cover; border-radius: 1rem; }
@media (max-width: 700px) {
    .blog-list { grid-template-columns: 1fr; }
    .blog-card-image { aspect-ratio: 16/9; }
    .blog-card-footer,.post-detail-statistics { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 580px) {
    .hero h1.home-hero-title { font-size: min(var(--home-hero-title-size,23px),11vw); }
}
