/*
Theme Name: Gavriil — Антарктический архив
Theme URI: https://gavriil.net/
Author: Codex
Description: Современная редакционная тема для архива путешествий и Антарктиды.
Version: 1.0.0
Requires at least: 7.0
Requires PHP: 8.3
Text Domain: codex-gavriil
*/

:root {
  --ice: #edf4f5;
  --white: #fdfefe;
  --navy: #102b39;
  --blue: #236d83;
  --fog: #69808a;
  --line: rgba(16, 43, 57, .16);
  --max: 1420px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--navy); background: var(--white); font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 17px; line-height: 1.68; }
a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .18em; }
img { display: block; max-width: 100%; height: auto; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }

.site-header { display: flex; align-items: center; justify-content: space-between; gap: 30px; max-width: var(--max); margin: 0 auto; padding: 22px 34px; border-bottom: 1px solid var(--line); }
.site-brand { display: flex; align-items: center; gap: 14px; text-decoration: none; }
.site-brand__mark { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; color: #fff; background: var(--navy); font-family: Georgia, serif; }
.site-brand strong { display: block; font-family: Georgia, serif; font-size: 24px; font-weight: 500; line-height: 1; }
.site-brand span { display: block; margin-top: 5px; color: var(--fog); font-size: 10px; letter-spacing: .15em; text-transform: uppercase; }
.site-nav ul { display: flex; flex-wrap: wrap; gap: 10px 26px; margin: 0; padding: 0; list-style: none; }
.site-nav a { font-size: 13px; font-weight: 700; letter-spacing: .04em; text-decoration: none; }
.site-nav a:hover { color: var(--blue); }

.polar-hero { max-width: var(--max); margin: 0 auto; padding: clamp(70px, 10vw, 154px) 34px clamp(64px, 9vw, 126px); background: linear-gradient(135deg, var(--ice), #fff 58%); border-bottom: 1px solid var(--line); }
.polar-hero__inner { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr); gap: 60px; align-items: end; }
.polar-hero .eyebrow { margin: 0 0 22px; color: var(--blue); font-size: 12px; font-weight: 800; letter-spacing: .19em; text-transform: uppercase; }
.polar-hero h1 { max-width: 900px; margin: 0; font-family: Georgia, serif; font-size: clamp(60px, 10vw, 146px); font-weight: 400; letter-spacing: -.065em; line-height: .83; }
.polar-hero__lead { max-width: 440px; margin: 0; padding: 28px 0 4px 28px; border-left: 2px solid var(--blue); color: var(--fog); font-family: Georgia, serif; font-size: clamp(20px, 2.4vw, 30px); line-height: 1.35; }

.section { max-width: var(--max); margin: 0 auto; padding: clamp(64px, 8vw, 116px) 34px; }
.section-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; margin-bottom: 36px; }
.section-heading h1, .section-heading h2 { margin: 0; font-family: Georgia, serif; font-size: clamp(38px, 5vw, 68px); font-weight: 400; letter-spacing: -.035em; line-height: 1; }
.section-heading a { color: var(--fog); font-size: 12px; font-weight: 750; letter-spacing: .13em; text-decoration: none; text-transform: uppercase; }

.expedition-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px 22px; }
.expedition-card { min-width: 0; border-bottom: 1px solid var(--line); padding-bottom: 24px; }
.expedition-card a { text-decoration: none; }
.expedition-card__image { aspect-ratio: 4 / 3; overflow: hidden; background: var(--ice); }
.expedition-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease, filter .5s ease; }
.expedition-card:hover img { transform: scale(1.025); filter: saturate(1.08); }
.expedition-card time { display: block; margin-top: 14px; color: var(--blue); font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.expedition-card h2, .expedition-card h3 { margin: 8px 0 0; font-family: Georgia, serif; font-size: clamp(21px, 2vw, 29px); font-weight: 400; line-height: 1.16; }

.archive-band { color: #fff; background: var(--navy); }
.archive-band__inner { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; max-width: var(--max); margin: 0 auto; padding: clamp(58px, 8vw, 108px) 34px; }
.archive-band h2 { margin: 0; font-family: Georgia, serif; font-size: clamp(40px, 6vw, 80px); font-weight: 400; line-height: .98; }
.archive-band p { max-width: 520px; margin: 0; align-self: end; color: #c6d5da; font-size: 19px; }

.content-shell { width: min(100% - 40px, 920px); margin: 0 auto; padding: clamp(58px, 8vw, 112px) 0; }
.content-shell--wide { width: min(100% - 40px, 1260px); }
.entry-kicker { margin: 0; color: var(--blue); font-size: 11px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.entry-title { margin: 13px 0 44px; font-family: Georgia, serif; font-size: clamp(44px, 7vw, 92px); font-weight: 400; letter-spacing: -.045em; line-height: .96; }
.entry-media { margin: 0 0 50px; background: var(--ice); }
.entry-media img { width: 100%; max-height: 82vh; object-fit: contain; }
.entry-content { font-family: Georgia, serif; font-size: clamp(18px, 2vw, 22px); }
.entry-content > * { max-width: 780px; margin-left: auto; margin-right: auto; }
.entry-content > .alignwide, .entry-content .wp-block-gallery { max-width: 1180px; }
.entry-content h2, .entry-content h3 { margin-top: 2.2em; line-height: 1.15; }
.entry-content blockquote { margin-top: 2em; margin-bottom: 2em; padding: 2px 0 2px 28px; border-left: 2px solid var(--blue); color: var(--fog); font-style: italic; }
.entry-content .gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; max-width: 1180px; }
.entry-content .gallery-item { margin: 0; }
.entry-content .gallery img { width: 100%; height: 100%; object-fit: cover; border: 0; }

.pagination { margin-top: 52px; }
.nav-links { display: flex; flex-wrap: wrap; gap: 10px; }
.page-numbers { padding: 8px 13px; border: 1px solid var(--line); text-decoration: none; }
.page-numbers.current { color: #fff; background: var(--navy); }
.site-footer { max-width: var(--max); margin: 0 auto; padding: 36px 34px 54px; border-top: 1px solid var(--line); color: var(--fog); font-size: 13px; display: flex; justify-content: space-between; gap: 24px; }

/* Editorial archive */
.archive-editorial { max-width: var(--max); margin: 0 auto; padding: clamp(68px, 9vw, 130px) 34px; }
.archive-editorial__head { max-width: 920px; margin-bottom: clamp(56px, 7vw, 100px); }
.archive-editorial__head h1 { margin: 14px 0 0; font-family: Georgia, serif; font-size: clamp(58px, 9vw, 132px); font-weight: 400; letter-spacing: -.07em; line-height: .82; }
.archive-editorial__head > div { max-width: 590px; margin-top: 31px; color: var(--fog); font-family: Georgia, serif; font-size: 21px; }
.archive-editorial__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 56px 24px; }
.archive-story { padding-bottom: 23px; border-bottom: 1px solid var(--line); }
.archive-story a { display: block; height: 100%; color: inherit; text-decoration: none; }
.archive-story figure { aspect-ratio: 4 / 3; margin: 0 0 20px; overflow: hidden; background: var(--ice); }
.archive-story figure img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.archive-story:hover figure img { transform: scale(1.025); }
.archive-story p, .archive-story span { color: var(--blue); font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.archive-story p { margin: 0 0 10px; }
.archive-story h2 { margin: 0 0 22px; font-family: Georgia, serif; font-size: clamp(24px, 2.4vw, 35px); font-weight: 400; line-height: 1.08; }
.archive-story span { color: var(--fog); }

/* Long-form archive stories: original wording remains untouched. */
.story-layout { padding: clamp(62px, 9vw, 126px) 20px clamp(80px, 11vw, 150px); }
.story-layout__hero { width: min(100%, 1120px); margin: 0 auto clamp(44px, 6vw, 78px); }
.story-layout__hero h1 { max-width: 1060px; margin: 14px 0 0; font-family: Georgia, serif; font-size: clamp(51px, 8.2vw, 118px); font-weight: 400; letter-spacing: -.067em; line-height: .83; }
.story-layout__line { width: 78px; height: 2px; margin-top: 39px; background: var(--blue); }
.story-layout__cover { width: min(100%, 1260px); margin: 0 auto clamp(45px, 7vw, 92px); overflow: hidden; background: var(--ice); }.story-layout__cover img { width: 100%; max-height: 82vh; object-fit: cover; }
.story-layout__content { width: min(100%, 790px); margin: 0 auto; color: #203943; font-family: Georgia, serif; font-size: clamp(19px, 2vw, 23px); line-height: 1.66; }
.story-layout__content > p { max-width: none; margin: 0 0 1.42em; }.story-layout__content > p:first-child { color: #49636c; font-size: 1.19em; line-height: 1.49; }
.story-layout__content h2, .story-layout__content h3 { max-width: none; margin: 2.3em 0 .75em; color: var(--navy); font-family: Georgia, serif; font-weight: 400; line-height: 1.04; }.story-layout__content h2 { font-size: clamp(35px, 4vw, 57px); letter-spacing: -.04em; }.story-layout__content h3 { font-size: clamp(27px, 3vw, 39px); }
.story-layout__content img { display: block; width: min(100%, 1110px); height: auto; margin: clamp(30px, 5vw, 62px) auto; border-radius: 2px; }.story-layout__content a { color: var(--blue); }.story-layout__content figure, .story-layout__content .wp-block-image, .story-layout__content .wp-block-gallery { width: min(1110px, calc(100vw - 40px)); max-width: none; margin: clamp(30px, 5vw, 62px) 50%; transform: translateX(-50%); }.story-layout__content figcaption { color: var(--fog); font-family: Inter, -apple-system, sans-serif; font-size: 12px; text-align: left; }.story-layout__content .wp-block-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }.story-layout__content .wp-block-gallery img { width: 100%; height: 100%; margin: 0; object-fit: cover; }

/* Orthodox calendar */
.orthodox-calendar { --cal-ink: #23352d; --cal-pine: #173d33; --cal-gold: #b7934d; --cal-cream: #f8f3e7; color: var(--cal-ink); background: var(--cal-cream); font-family: Georgia, serif; }
.calendar-hero { color: #fff9ed; background: radial-gradient(circle at 15% 15%, rgba(232,205,139,.19), transparent 28%), radial-gradient(circle at 83% 74%, rgba(229,204,146,.09), transparent 28%), linear-gradient(130deg, #122f28, #235342 58%, #16382f); }
.calendar-hero__inner { max-width: 1320px; margin: 0 auto; padding: 38px 34px 112px; }
.calendar-kicker { margin: 0; color: var(--cal-gold); font-family: Inter, -apple-system, sans-serif; font-size: 11px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.calendar-hero .calendar-kicker { color: #e4c782; }
.calendar-hero__grid { display: grid; grid-template-columns: minmax(0, 1.16fr) minmax(310px, .6fr); gap: 9vw; align-items: end; margin-top: 92px; }
.calendar-cross { display: block; margin-bottom: 19px; color: #e4c782; font-size: 45px; line-height: 1; }
.calendar-hero h1 { margin: 0; font-size: clamp(62px, 9.1vw, 132px); font-weight: 400; letter-spacing: -.075em; line-height: .78; }
.calendar-lead { max-width: 530px; margin: 39px 0 0; color: #dbe8dc; font-size: clamp(20px, 2.1vw, 28px); line-height: 1.35; }
.calendar-today { padding: 30px 31px 34px; border: 1px solid rgba(230,204,139,.46); background: rgba(7,35,27,.25); box-shadow: 14px 14px 0 rgba(9,33,26,.13); }
.calendar-today > p { margin: 0 0 10px; color: #e4c782; font-family: Inter, -apple-system, sans-serif; font-size: 11px; font-weight: 800; letter-spacing: .17em; text-transform: uppercase; }
.calendar-today > strong { display: block; font-size: clamp(38px, 4vw, 57px); font-weight: 400; line-height: 1; }
.calendar-today > small { display: block; margin: 13px 0 26px; color: #d6e4d8; font-size: 16px; }
.calendar-today > div { display: grid; gap: 4px; padding-top: 17px; border-top: 1px solid rgba(230,204,139,.36); font-family: Inter, -apple-system, sans-serif; }
.calendar-today span { color: #c8ded0; font-size: 12px; }.calendar-today b { color: #f4dfab; font-size: 16px; }
.calendar-section { max-width: 1320px; margin: 0 auto; padding: clamp(76px, 10vw, 148px) 34px; }
.calendar-welcome { display: grid; grid-template-columns: minmax(0, .95fr) minmax(330px, .75fr); gap: 10vw; background: linear-gradient(90deg, transparent, rgba(202,177,127,.18)); }
.orthodox-calendar h2 { margin: 17px 0 0; font-size: clamp(51px, 6.3vw, 96px); font-weight: 400; letter-spacing: -.066em; line-height: .88; }
.calendar-copy { max-width: 570px; align-self: end; font-size: clamp(20px, 2vw, 26px); line-height: 1.5; }.calendar-copy p { margin: 0 0 25px; }.calendar-copy p:last-child { margin-bottom: 0; color: #5c665d; font-size: .78em; }
.calendar-feasts { border-top: 1px solid rgba(35,53,45,.16); }.calendar-feasts h2 { margin-bottom: 62px; }
.feast-list { border-top: 1px solid rgba(35,53,45,.2); }.feast-item { display: grid; grid-template-columns: 125px minmax(0,1fr) auto; align-items: center; gap: 26px; padding: 20px 4px 23px; border-bottom: 1px solid rgba(35,53,45,.2); }
.feast-item time { display: flex; align-items: baseline; gap: 9px; color: #81775e; font-family: Inter, -apple-system, sans-serif; font-size: 12px; font-weight: 700; text-transform: uppercase; }.feast-item time strong { color: var(--cal-pine); font-family: Georgia, serif; font-size: 46px; font-weight: 400; line-height: 1; }.feast-item p { margin: 0 0 3px; color: #81745c; font-family: Inter, -apple-system, sans-serif; font-size: 10px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }.feast-item h3 { margin: 0; font-size: clamp(23px,2.6vw,35px); font-weight: 400; line-height: 1.12; }.feast-item i { color: var(--cal-gold); font-family: Inter, -apple-system, sans-serif; font-size: 10px; font-style: normal; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.calendar-post { display: grid; grid-template-columns: 1fr 1fr; gap: 9vw; padding: clamp(78px,10vw,142px) max(34px, calc((100vw - 1252px)/2)); color: #fbf5e8; background: var(--cal-pine); }.calendar-post .calendar-kicker { color:#dfc083; }.calendar-post > div:last-child { max-width: 590px; align-self: end; color: #d9e6d9; font-size: clamp(19px,1.8vw,24px); }.calendar-post > div:last-child > p { margin-top: 0; }.calendar-post dl { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:37px 0 0; }.calendar-post dl div { padding:16px 0; border-top:1px solid rgba(228,199,127,.4); }.calendar-post dt { color:#f4dfab; font-size:21px; }.calendar-post dd { margin:2px 0 0; color:#b7cdbb; font-family:Inter,-apple-system,sans-serif; font-size:12px; }
.calendar-guide { padding-bottom: clamp(72px,10vw,130px); }.calendar-guide blockquote { max-width:1000px; margin:40px 0 70px; color:var(--cal-pine); font-size:clamp(38px,5.1vw,73px); letter-spacing:-.055em; line-height:.98; }.calendar-guide cite { display:block; margin-top:24px; color:#85795f; font-family:Inter,-apple-system,sans-serif; font-size:12px; font-style:normal; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }.calendar-guide__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }.calendar-guide__grid article { padding-top:17px; border-top:1px solid rgba(35,53,45,.27); }.calendar-guide__grid span { color:var(--cal-gold); font-family:Inter,-apple-system,sans-serif; font-size:12px; font-weight:800; letter-spacing:.13em; }.calendar-guide__grid h3 { margin:42px 0 11px; font-size:27px; font-weight:400; line-height:1.1; }.calendar-guide__grid p { margin:0; color:#5f685f; font-size:17px; line-height:1.48; }
.calendar-ending { display:grid; place-items:center; min-height:290px; padding:44px 24px; color:#f6e8c8; text-align:center; background:linear-gradient(135deg,#173d33,#265b47); }.calendar-ending p { margin:0; font-family:Georgia,serif; font-size:clamp(33px,4.8vw,65px); letter-spacing:-.05em; }.calendar-ending span { margin-top:21px; color:#d8b970; font-size:28px; }

@media (max-width: 900px) {
  .site-header { align-items: flex-start; padding: 20px; }
  .site-nav ul { justify-content: flex-end; gap: 8px 16px; }
  .polar-hero { padding-left: 20px; padding-right: 20px; }
  .polar-hero__inner { grid-template-columns: 1fr; gap: 38px; }
  .polar-hero__lead { max-width: 600px; }
  .section { padding-left: 20px; padding-right: 20px; }
  .expedition-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .archive-band__inner { padding-left: 20px; padding-right: 20px; }
  .archive-editorial, .calendar-section, .calendar-hero__inner { padding-left: 20px; padding-right: 20px; }
  .archive-editorial__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .calendar-hero__grid, .calendar-welcome, .calendar-post { grid-template-columns: 1fr; gap: 48px; }
  .calendar-post { padding-left: 20px; padding-right: 20px; }
  .calendar-today { max-width: 530px; }
  .story-layout__content figure, .story-layout__content .wp-block-image, .story-layout__content .wp-block-gallery { width: 100%; margin-left: 0; margin-right: 0; transform: none; }
}
@media (max-width: 580px) {
  body { font-size: 16px; }
  .site-header { display: block; }
  .site-nav { margin-top: 20px; }
  .site-nav ul { justify-content: flex-start; }
  .polar-hero h1 { font-size: clamp(58px, 20vw, 92px); }
  .section-heading { display: block; }
  .section-heading a { display: inline-block; margin-top: 18px; }
  .expedition-grid { grid-template-columns: 1fr; }
  .archive-band__inner { grid-template-columns: 1fr; }
  .entry-content .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-footer { display: block; padding-left: 20px; padding-right: 20px; }
  .archive-editorial__grid, .calendar-post dl, .calendar-guide__grid { grid-template-columns: 1fr; }
  .calendar-hero__grid { margin-top: 62px; }
  .calendar-hero h1 { font-size: clamp(58px, 18vw, 86px); }
  .feast-item { grid-template-columns: 68px minmax(0, 1fr); gap: 15px; }
  .feast-item time { display: block; }.feast-item time strong { display:block; font-size:34px; }.feast-item time span { font-size:9px; }.feast-item i { display:none; }
  .calendar-guide__grid { gap:37px; }.calendar-guide__grid h3 { margin-top:22px; }
  .story-layout__content .wp-block-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
