/* Header */
.utility { background: var(--espresso); color: rgba(248,245,239,.75); font-size: .78rem; letter-spacing: .04em; }
.utility-in { display: flex; justify-content: space-between; gap: 1rem; padding-top: .55rem; padding-bottom: .55rem; }
.utility a { color: rgba(248,245,239,.85); text-decoration: none; }
.utility a:hover { color: var(--gold); }
.utility-r { display: flex; gap: 1.75rem; }
.site-head { background: var(--ivory); border-bottom: 1px solid var(--stone); position: sticky; top: 0; z-index: 40; }
.head-in { display: flex; align-items: center; gap: 2rem; min-height: 88px; }
.wordmark { display: flex; align-items: center; gap: .9rem; text-decoration: none; color: var(--espresso); margin-right: auto; }
.wm-mark { font-family: var(--serif); font-size: 1.05rem; letter-spacing: .12em; border: 1px solid var(--gold); color: var(--burgundy); width: 52px; height: 52px; display: grid; place-items: center; }
.wm-name { font-family: var(--serif); font-size: 1.55rem; line-height: 1; font-weight: 500; }
.wm-name small { display: block; font-family: var(--sans); font-size: .62rem; letter-spacing: .24em; text-transform: uppercase; color: var(--warm-gray); margin-top: .35rem; }
.wm-light { color: var(--ivory); }
.wm-light .wm-mark { color: var(--gold); }
.wm-light .wm-name small { color: rgba(248,245,239,.6); }
.menu { list-style: none; margin: 0; padding: 0; display: flex; gap: 1.6rem; }
.menu > li { position: relative; display: flex; align-items: center; }
.menu > li > a { white-space: nowrap; font-size: .74rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--espresso); text-decoration: none; padding: 2rem 0; position: relative; }
.menu > li > a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 1.6rem; height: 1px; background: var(--gold); transition: right .35s var(--ease); }
.menu > li > a:hover::after, .menu > li > a[aria-current]::after { right: 0; }
.dd-toggle { background: none; border: 0; color: var(--gold-text); font-size: 1rem; cursor: pointer; padding: .25rem; margin-left: .2rem; }
.dd { list-style: none; margin: 0; padding: 1.25rem 0; position: absolute; top: 100%; left: -1.5rem; width: 330px; background: var(--ivory); border: 1px solid var(--stone); border-top: 2px solid var(--burgundy); opacity: 0; visibility: hidden; transform: translateY(6px); transition: all .25s var(--ease); }
.has-dd:hover .dd, .has-dd:focus-within .dd, .has-dd.open .dd { opacity: 1; visibility: visible; transform: none; }
.dd a { display: flex; justify-content: space-between; align-items: center; padding: .55rem 1.5rem; color: var(--espresso); text-decoration: none; font-size: .95rem; }
.dd a:hover { background: var(--cream); color: var(--burgundy); }
.dd-all { border-top: 1px solid var(--stone); margin-top: .75rem; padding-top: .5rem; }
.dd-all a { font-size: .75rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 600; color: var(--burgundy); }
.nav-open, .nav-panel-head, .nav-panel-foot { display: none; }

/* Hero */
.hero { position: relative; min-height: min(92vh, 900px); display: flex; align-items: flex-end; color: var(--ivory); overflow: hidden; background: var(--burgundy-dark); }
.hero-media, .phero-media { position: absolute; inset: 0; }
.hero-media img, .phero-media img { width: 100%; height: 100%; object-fit: cover; }
.hero-media::after, .phero-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, rgba(41,20,27,.92) 0%, rgba(72,33,44,.78) 42%, rgba(72,33,44,.25) 100%); }
.hero-in, .phero-in { position: relative; z-index: 1; padding-top: 8rem; padding-bottom: clamp(4rem, 9vw, 7.5rem); width: 100%; }
.hero h1 { max-width: 15ch; }
.hero h1 em { color: var(--gold); font-style: italic; }
.hero-side { position: absolute; right: var(--gutter); bottom: 3rem; writing-mode: vertical-rl; font-size: .7rem; letter-spacing: .3em; text-transform: uppercase; color: rgba(248,245,239,.55); z-index: 1; margin: 0; }
.phero { position: relative; color: var(--ivory); min-height: 520px; display: flex; align-items: flex-end; background: var(--burgundy-dark); overflow: hidden; }
.phero-short { min-height: 420px; }
.phero h1 { font-size: clamp(2.5rem, 5.5vw, 4.75rem); max-width: 20ch; }

/* Breadcrumbs */
.crumbs ol { list-style: none; padding: 0; margin: 0 0 2rem; display: flex; flex-wrap: wrap; gap: .5rem; font-size: .78rem; letter-spacing: .08em; }
.crumbs li + li::before { content: "/"; margin-right: .5rem; opacity: .5; }
.crumbs a { color: inherit; opacity: .8; text-decoration: none; }
.crumbs a:hover { opacity: 1; color: var(--gold); }
.crumbs [aria-current] { opacity: .6; }
.ahero .crumbs { color: var(--warm-gray); }

/* Sections */
.sec { padding: var(--sec) 0; }
.sec-cream { background: var(--cream); }
.sec-dark { background: var(--espresso); color: var(--ivory); }
.sec-head { display: grid; grid-template-columns: auto 1fr auto; gap: 2.5rem; align-items: end; margin-bottom: 3.5rem; padding-bottom: 2rem; border-bottom: 1px solid var(--gold); }
.sec-head .display { margin: 0; }
.split-asym { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.split-even { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 6vw, 6rem); }
.split-img { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 6vw, 6rem); align-items: center; }
.split-media img { width: 100%; aspect-ratio: 4/5; object-fit: cover; }

/* Directory */
.directory { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--stone); }
.directory li { border-bottom: 1px solid var(--stone); }
.dir-row, .aud-row { display: grid; grid-template-columns: 4.5rem minmax(14rem, 1.1fr) 1.6fr 2rem; gap: 2rem; align-items: center; padding: 1.9rem .5rem; text-decoration: none; color: var(--espresso); position: relative; transition: background .35s var(--ease), padding .35s var(--ease); }
.dir-row:hover, .aud-row:hover { background: var(--ivory); padding-left: 1.5rem; color: var(--espresso); }
.sec:not(.sec-cream) .dir-row:hover, .sec:not(.sec-cream) .aud-row:hover { background: var(--cream); }
.dir-num { font-family: var(--serif); font-size: 1.6rem; color: var(--gold-text); }
.dir-name { font-family: var(--serif); font-size: clamp(1.5rem, 2.4vw, 2.1rem); line-height: 1.1; }
.dir-desc { color: var(--warm-gray); font-size: .98rem; }
.dir-arrow { color: var(--burgundy); }
.dir-row:hover .ico, .aud-row:hover .ico { transform: translateX(6px); }

/* Statement */
.statement { background: var(--burgundy); color: var(--ivory); padding: clamp(5rem, 11vw, 9.5rem) 0; }
.statement-q { font-family: var(--serif); font-style: italic; font-size: clamp(2rem, 4.2vw, 3.6rem); line-height: 1.18; margin-bottom: 2rem; }
.statement-s { max-width: 40rem; opacity: .85; }

/* Who list */
.who-list { list-style: none; margin: 2rem 0 0; padding: 0; border-top: 1px solid var(--stone); }
.who-list a { display: flex; justify-content: space-between; align-items: center; padding: 1.05rem 0; border-bottom: 1px solid var(--stone); text-decoration: none; color: var(--espresso); font-family: var(--serif); font-size: 1.45rem; }
.who-list a:hover { color: var(--burgundy); }
.who-list a:hover .ico { transform: translateX(5px); }
.who-list .ico { color: var(--gold-text); }

/* Timeline */
.timeline { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, 1fr); border-top: 1px solid rgba(198,167,120,.45); }
.timeline li { padding: 2rem 1.5rem 0 0; position: relative; }
.timeline li::before { content: ""; position: absolute; top: -5px; left: 0; width: 9px; height: 9px; background: var(--gold); border-radius: 50%; }
.tl-num { font-family: var(--serif); font-size: 2.4rem; color: var(--gold); display: block; margin-bottom: .75rem; }
.timeline h3 { font-size: 1.35rem; }
.timeline p { color: rgba(248,245,239,.72); font-size: .95rem; }
.steps { list-style: none; margin: 0 0 4rem; padding: 0; }
.steps li { display: grid; grid-template-columns: 5rem 1fr; column-gap: 1.5rem; padding: 2rem 0; border-bottom: 1px solid var(--stone); }
.steps .tl-num { grid-row: span 2; color: var(--gold-text); }
.steps h3 { margin: 0 0 .4rem; }
.steps p { margin: 0; color: var(--warm-gray); }

/* Feature split */
.feature { display: grid; grid-template-columns: 1fr 1fr; background: var(--cream); }
.feature-media img { width: 100%; height: 100%; min-height: 520px; object-fit: cover; }
.feature-body { padding: clamp(3rem, 7vw, 7rem); align-self: center; max-width: 700px; }

/* Magazine */
.mag { display: grid; grid-template-columns: 1.4fr 1fr; grid-template-rows: auto auto; gap: 3rem 3.5rem; }
.mag .acard-big { grid-row: span 2; }
.mag-all { grid-template-columns: repeat(3, 1fr); }
.mag-all .acard-big { grid-column: span 2; grid-row: auto; }
.acard-link { text-decoration: none; color: var(--espresso); display: block; }
.acard-img { overflow: hidden; margin-bottom: 1.5rem; }
.acard-img img { width: 100%; aspect-ratio: 3/2; object-fit: cover; transition: transform .8s var(--ease); }
.acard-big .acard-img img { aspect-ratio: 16/11; }
.acard-link:hover .acard-img img { transform: scale(1.04); }
.acard h3 { font-size: 1.65rem; margin-bottom: .6rem; }
.acard-big h3 { font-size: clamp(2rem, 3vw, 2.6rem); }
.acard p { color: var(--warm-gray); font-size: .97rem; }
.meta { display: flex; flex-wrap: wrap; gap: 1.25rem; font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; color: var(--warm-gray); margin-bottom: 1rem; }
.meta span:first-child { color: var(--burgundy); font-weight: 600; }
.mini-arts { display: grid; gap: 2rem; margin-top: 2rem; }
.mini-arts .acard-link { display: grid; grid-template-columns: 160px 1fr; gap: 1.5rem; }
.mini-arts .acard-img { margin: 0; }
.mini-arts .acard h3 { font-size: 1.3rem; }
.mini-arts .acard p:not(.meta) { display: none; }

/* FAQ */
.faq { border-bottom: 1px solid var(--stone); }
.faq:first-child { border-top: 1px solid var(--stone); }
.faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 2rem; align-items: center; padding: 1.5rem 0; font-family: var(--serif); font-size: 1.4rem; line-height: 1.25; }
.faq summary::-webkit-details-marker { display: none; }
.faq-ico { width: 16px; height: 16px; position: relative; flex: none; }
.faq-ico::before, .faq-ico::after { content: ""; position: absolute; background: var(--burgundy); left: 0; right: 0; top: 50%; height: 1px; transition: transform .3s var(--ease); }
.faq-ico::after { transform: rotate(90deg); }
.faq[open] .faq-ico::after { transform: rotate(0); }
.faq-a { padding: 0 3rem 1.25rem 0; color: var(--warm-gray); }

/* Key-value */
.kv { margin: 0; display: grid; gap: 0; }
.kv > div { display: grid; grid-template-columns: 10rem 1fr; gap: 1.5rem; padding: 1rem 0; border-bottom: 1px solid var(--stone); }
.kv dt { font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; font-weight: 600; color: var(--warm-gray); padding-top: .2rem; }
.kv dd { margin: 0; }
.kv-tight { margin: 1.5rem 0 2rem; }
.transp { display: grid; grid-template-columns: 1fr 2fr; gap: 3rem 5rem; }
.transp .textlink { grid-column: 2; justify-self: start; }

/* Pillars, considerations */
.pillars { display: grid; grid-template-columns: repeat(4, 1fr); gap: 3rem; }
.pillars > div { border-top: 1px solid var(--gold); padding-top: 2rem; }
.pillars p, .consid p { color: var(--warm-gray); }
.consid-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3rem; margin-top: 3rem; }
.consid-grid.four { grid-template-columns: repeat(4, 1fr); }
.consid { border-top: 1px solid var(--stone); padding-top: 2rem; }
.ruled { list-style: none; margin: 0; padding: 0; counter-reset: r; }
.ruled li { padding: 1.25rem 0 1.25rem 3.5rem; border-bottom: 1px solid var(--stone); position: relative; font-size: 1.12rem; counter-increment: r; }
.ruled li::before { content: counter(r, decimal-leading-zero); position: absolute; left: 0; top: 1.25rem; font-family: var(--serif); color: var(--gold-text); font-size: 1.25rem; }
.note { border-left: 2px solid var(--gold); padding: 1.5rem 2rem; background: var(--cream); margin-top: 2.5rem; }
.note p { margin: 0; color: var(--warm-gray); }

/* Final CTA + footer */
.final-cta { background: var(--burgundy); color: var(--ivory); padding: clamp(5rem, 10vw, 8.5rem) 0; }
.final-cta .display { margin-bottom: 1.5rem; }
.final-cta p { opacity: .85; max-width: 38rem; margin-left: auto; margin-right: auto; }
.final-cta .btn { margin-top: 1.5rem; }
.final-cta .fine { color: rgba(248,245,239,.65); }
.site-foot { background: var(--espresso); color: rgba(248,245,239,.78); padding: 5.5rem 0 2.5rem; font-size: .95rem; }
.site-foot a { color: rgba(248,245,239,.82); text-decoration: none; }
.site-foot a:hover { color: var(--gold); }
.foot-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 3rem; padding-bottom: 4rem; border-bottom: 1px solid rgba(198,167,120,.35); }
.foot-desc { margin-top: 1.75rem; max-width: 22rem; }
.foot-h { font-family: var(--sans); font-size: .72rem; letter-spacing: .22em; text-transform: uppercase; color: var(--gold); margin-bottom: 1.25rem; font-weight: 600; }
.site-foot ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.foot-small { font-size: .82rem; opacity: .7; }
.foot-legal { display: flex; flex-wrap: wrap; gap: .75rem 1.75rem; padding: 2rem 0 1rem; font-size: .82rem; }
.foot-legal .linkish { color: var(--gold); font-size: .82rem; }
.foot-copy { font-size: .8rem; opacity: .6; margin: 0; }

/* Article + policy */
.ahero { padding: 5rem 0 3rem; }
.ahero h1 { font-size: clamp(2.4rem, 5vw, 4.25rem); }
.ahero-img img { width: 100%; aspect-ratio: 21/9; object-fit: cover; }
.policy-hero { border-bottom: 1px solid var(--stone); background: var(--cream); }
.policy-hero .meta span:first-child { color: var(--warm-gray); }
.doc { display: grid; grid-template-columns: 280px 1fr; gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.toc { position: sticky; top: 120px; border-top: 2px solid var(--burgundy); padding-top: 1.25rem; max-height: calc(100vh - 140px); overflow: auto; }
.toc summary { font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; font-weight: 600; cursor: pointer; list-style: none; margin-bottom: 1rem; }
.toc summary::-webkit-details-marker { display: none; }
.toc ol { margin: 0; padding-left: 1.25rem; font-size: .9rem; display: grid; gap: .45rem; }
.toc a { color: var(--warm-gray); text-decoration: none; }
.toc a:hover { color: var(--burgundy); }
.doc-body { font-size: 1.12rem; max-width: 70ch; }
.doc-body h2 { font-size: 2.1rem; margin-top: 2.75rem; scroll-margin-top: 120px; }
.doc-body h2:first-child { margin-top: 0; }
.disclaimer { margin-top: 3rem; padding: 1.75rem 2rem; border: 1px solid var(--stone); background: var(--white); font-size: .92rem; color: var(--warm-gray); }
.policy { max-width: 72ch; }
.policy section { padding: 0 0 2.25rem; margin-bottom: 2.25rem; border-bottom: 1px solid var(--stone); scroll-margin-top: 120px; }
.policy h2 { font-size: 1.85rem; display: flex; gap: 1rem; align-items: baseline; }
.pnum { font-size: 1rem; color: var(--gold-text); font-family: var(--sans); letter-spacing: .1em; }
.policy p { color: #4a4440; margin: 0; }
.addr { margin: 2rem 0; line-height: 1.9; }

/* Contact form */
.contact-grid { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.form { background: var(--white); border: 1px solid var(--stone); border-top: 2px solid var(--burgundy); padding: clamp(1.75rem, 4vw, 3.5rem); }
.row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.field { margin-bottom: 1.5rem; }
.field label { display: block; font-size: .74rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 600; margin-bottom: .55rem; }
.req { color: var(--burgundy); }
.opt { color: var(--warm-gray); font-weight: 400; letter-spacing: .08em; text-transform: none; font-size: .78rem; }
.field input, .field select, .field textarea { width: 100%; font: inherit; font-size: 1rem; padding: .9rem 1rem; border: 1px solid var(--stone); background: var(--ivory); color: var(--espresso); border-radius: 0; transition: border-color .25s; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--burgundy); outline: 2px solid rgba(198,167,120,.5); outline-offset: 0; }
.field.check { display: grid; grid-template-columns: auto 1fr; gap: .9rem; align-items: start; }
.field.check input { width: 20px; height: 20px; margin-top: .2rem; accent-color: var(--burgundy); }
.field.check label { text-transform: none; letter-spacing: 0; font-weight: 400; font-size: .92rem; margin: 0; }
.field.check .field-err { grid-column: 2; }
.field-err { color: #8f1d2c; font-size: .85rem; margin: .45rem 0 0; }
.form-msg { padding: 1rem 1.25rem; margin-bottom: 1.75rem; font-size: .95rem; border-left: 3px solid; }
.form-msg-ok { background: #eef3ea; border-color: #4f6b45; }
.form-msg-err { background: #f6e9ea; border-color: var(--burgundy); }
.form-msg-info { background: var(--cream); border-color: var(--gold); }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* 404 */
.nf { padding: 9rem 0; }
.nf .bignum { font-size: 9rem; }
.nf h1 { font-size: clamp(2.4rem, 5vw, 4rem); }

/* Cookie consent */
.cc { position: fixed; left: 1.25rem; bottom: 1.25rem; z-index: 60; max-width: 560px; background: var(--ivory); border: 1px solid var(--stone); border-top: 2px solid var(--gold); box-shadow: 0 20px 50px -20px rgba(41,37,35,.35); }
.cc-in { padding: 1.75rem; }
.cc-text p { font-size: .93rem; margin-bottom: .5rem; }
.cc-text .eyebrow { margin-bottom: .6rem; }
.cc-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.25rem; }
.cc-actions .btn { padding: .8rem 1.1rem; font-size: .7rem; flex: 1 1 auto; justify-content: center; }
.cc-modal { position: fixed; inset: 0; z-index: 70; background: rgba(41,37,35,.55); display: grid; place-items: center; padding: 1rem; }
.cc-modal[hidden], .cc[hidden] { display: none; }
.cc-dialog { background: var(--ivory); max-width: 640px; width: 100%; max-height: 90vh; overflow: auto; padding: clamp(1.5rem, 4vw, 2.75rem); position: relative; border-top: 2px solid var(--burgundy); }
.cc-dialog h2 { font-size: 2rem; }
.cc-note { font-size: .9rem; color: var(--warm-gray); }
.cc-cat { display: flex; justify-content: space-between; gap: 1.5rem; align-items: center; padding: 1.1rem 0; border-bottom: 1px solid var(--stone); }
.cc-cat h3 { font-family: var(--sans); font-size: .95rem; font-weight: 600; margin: 0 0 .2rem; }
.cc-cat p { font-size: .85rem; color: var(--warm-gray); margin: 0; }
.cc-always { font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-text); font-weight: 600; white-space: nowrap; }
.switch { appearance: none; width: 46px; height: 26px; border: 1px solid var(--warm-gray); background: var(--stone); position: relative; cursor: pointer; flex: none; border-radius: 13px; transition: background .25s; }
.switch::after { content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; background: var(--white); border-radius: 50%; transition: transform .25s var(--ease); }
.switch:checked { background: var(--burgundy); border-color: var(--burgundy); }
.switch:checked::after { transform: translateX(20px); }
.cc-x { position: absolute; top: 1rem; right: 1rem; background: none; border: 0; font-size: 1.8rem; line-height: 1; cursor: pointer; color: var(--espresso); }
body.nav-locked .cc { display: none; }
