/*
Theme Name: Travelwoom
Theme URI: https://travelwoom.com/
Author: Travelwoom
Description: Custom classic theme for travelwoom.com: a jade-green travel blog with a side rail (bottom tab bar on phones), a full-width photo hero with search, a Latest stories slider, a story grid, "In this guide" contents, travel shortcodes, a Site pages tool for About, Contact and the legal pages, and local Poppins fonts.
Version: 1.0.0
Requires at least: 6.3
Tested up to: 6.9
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: travelwoom
Tags: blog, one-column, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready, wide-blocks
*/

/* ==========================================================================
   1. Tokens
   ========================================================================== */
:root {
	--twm-bg: #404E3B;      /* page */
	--twm-deep: #36432F;    /* rail, bands, panel, footer */
	--twm-card: #4A5945;    /* cards, boxes */
	--twm-line: #56654F;    /* lines */
	--twm-text: #E6E6E6;    /* text, light pills */
	--twm-soft: #D9DFD5;    /* secondary text (6.5:1 on page, 5.5:1 on cards) */
	--twm-sage: #BAC8B1;    /* accent: buttons, links, labels (5.1:1 on page, 6.0:1 on deep) */
	--twm-moss: #7B9669;    /* placeholders */
	--twm-slate: #6C8480;   /* placeholders, dots */
	--twm-ink: #2A3327;     /* text on sage / light (7.5:1 on sage) */
	--twm-dot: #E47B02;     /* logo orange: fills only */
	--twm-white: #FFFFFF;

	--twm-font: 'Poppins', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
	--twm-gutter: 48px;
	--twm-max: 1240px;
	--twm-text-w: 760px;
	--twm-rail-w: 88px;
	--twm-r-xl: 32px;
	--twm-r-lg: 22px;
	--twm-r: 18px;
	--twm-r-sm: 14px;

	--twm-logo-h: 70px;
	--twm-logo-h-phone: 48px;
	--twm-logo-text: 28px;
	--twm-foot-logo-h: 76px;
	--twm-hero-shade: .45;
}

/* ==========================================================================
   2. Base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }
body {
	margin: 0;
	background: var(--twm-bg);
	color: var(--twm-text);
	font-family: var(--twm-font);
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
body.twm-lock { overflow: hidden; }
img, svg, video { max-width: 100%; height: auto; }
a { color: var(--twm-sage); text-underline-offset: 3px; }
a:hover { color: var(--twm-text); }
h1, h2, h3, h4, h5, h6 { color: var(--twm-white); font-weight: 700; line-height: 1.2; letter-spacing: -0.02em; margin: 0 0 .5em; }
p { margin: 0 0 1em; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--twm-sage); outline-offset: 3px; border-radius: 6px; }
::selection { background: var(--twm-sage); color: var(--twm-ink); }
hr { border: 0; border-top: 1px solid var(--twm-line); margin: 2.4em 0; }

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important;
	width: 1px; word-wrap: normal !important;
}
.skip-link:focus {
	clip: auto; clip-path: none; height: auto; width: auto; margin: 0;
	position: fixed !important; left: 12px; top: 12px; z-index: 1000;
	background: var(--twm-text); color: var(--twm-ink); padding: 12px 18px; border-radius: 999px; font-weight: 600; text-decoration: none;
}

/* ==========================================================================
   3. Buttons, chips, icons
   ========================================================================== */
.twm-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 11px 18px; border-radius: 999px; border: 0;
	font-size: 14px; font-weight: 600; line-height: 1.2; text-decoration: none; cursor: pointer;
	transition: transform .15s ease, filter .15s ease;
}
.twm-btn:hover { filter: brightness(1.06); transform: translateY(-1px); }
.twm-btn--light { background: var(--twm-text); color: var(--twm-bg); }
.twm-btn--light:hover { color: var(--twm-bg); }
.twm-btn--sage { background: var(--twm-sage); color: var(--twm-ink); }
.twm-btn--sage:hover { color: var(--twm-ink); }
.twm-btn--sm { padding: 8px 14px; font-size: 13px; }
.twm-btn--lg { padding: 13px 26px; font-size: 15px; }

.twm-iconbtn {
	display: inline-flex; align-items: center; justify-content: center;
	width: 44px; height: 44px; border-radius: 999px; padding: 0;
	border: 1px solid var(--twm-line); background: transparent; color: var(--twm-text); cursor: pointer;
}
.twm-iconbtn:hover { border-color: var(--twm-sage); }
.twm-ico { flex: 0 0 auto; display: block; }

.twm-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.twm-chips a {
	display: inline-flex; align-items: center; gap: 8px; padding: 7px 15px; border-radius: 999px;
	border: 1px solid var(--twm-line); color: var(--twm-text); text-decoration: none; font-size: 14px;
}
.twm-chips a:hover { border-color: var(--twm-sage); color: var(--twm-white); }
.twm-chips--hero { justify-content: center; }
.twm-chips--hero a { border-color: rgba(230, 230, 230, .6); color: var(--twm-white); }
.twm-chips--hero a:hover { background: rgba(255, 255, 255, .12); }

.twm-pill { margin: 0 0 14px; }
.twm-pill a {
	display: inline-block; padding: 6px 12px; border-radius: 999px; background: var(--twm-sage); color: var(--twm-ink);
	font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; text-decoration: none;
}

/* ==========================================================================
   4. Shell, rail, top bar
   ========================================================================== */
.twm-shell { display: flex; min-height: 100vh; }
/* Paint the rail column the full page height, while the rail itself stays sticky. */
body.twm-header--rail .twm-shell { background: linear-gradient(to right, var(--twm-deep) calc(var(--twm-rail-w) - 1px), var(--twm-line) calc(var(--twm-rail-w) - 1px), var(--twm-line) var(--twm-rail-w), transparent var(--twm-rail-w)); }
body.twm-header--classic .twm-shell { display: block; }
.twm-main { flex: 1 1 auto; min-width: 0; position: relative; display: flex; flex-direction: column; }
.twm-content { flex: 1 0 auto; outline: none; }

.twm-wrap { width: 100%; max-width: calc(var(--twm-max) + 2 * var(--twm-gutter)); margin: 0 auto; padding-left: var(--twm-gutter); padding-right: var(--twm-gutter); }
.twm-wrap--text { max-width: calc(var(--twm-text-w) + 2 * var(--twm-gutter)); }

.twm-rail {
	flex: 0 0 var(--twm-rail-w); width: var(--twm-rail-w);
	display: flex; flex-direction: column; align-items: center; justify-content: space-between; gap: 24px;
	padding: 22px 0; background: var(--twm-deep); border-right: 1px solid var(--twm-line); z-index: 50;
}
body.twm-rail-sticky .twm-rail { position: sticky; top: 0; height: 100vh; }
.admin-bar.twm-rail-sticky .twm-rail { top: 32px; height: calc(100vh - 32px); }
.twm-rail__mark { display: block; width: 52px; height: 52px; border-radius: 999px; overflow: hidden; flex: 0 0 auto; }
.twm-rail__mark-img { display: block; width: 52px; height: 52px; object-fit: cover; }
.twm-rail__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.twm-rail__btn {
	display: flex; flex-direction: column; align-items: center; gap: 5px; width: 72px; padding: 10px 0;
	border: 0; border-radius: 14px; background: transparent; color: var(--twm-text); cursor: pointer;
	font-size: 11px; font-weight: 600; letter-spacing: .02em; text-decoration: none;
}
.twm-rail__btn:hover, .twm-rail__btn.is-active, .twm-rail__btn[aria-current="page"] { background: var(--twm-card); color: var(--twm-white); }
.twm-rail__label {
	margin: 0; writing-mode: vertical-rl; transform: rotate(180deg);
	font-size: 11px; font-weight: 500; letter-spacing: .22em; text-transform: uppercase; color: var(--twm-sage);
}

.twm-topbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px var(--twm-gutter); }
.twm-topbar--over { position: absolute; top: 0; left: 0; right: 0; z-index: 5; padding-top: 24px; }

.twm-logo { margin: 0; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.twm-logo__link { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; color: var(--twm-white); line-height: 1; }
.twm-logo__img { display: block; height: var(--twm-logo-h); width: auto; max-width: 60vw; }
.twm-logo__text { font-size: var(--twm-logo-text); font-weight: 700; letter-spacing: -0.03em; color: var(--twm-white); }
.twm-hl { color: var(--twm-sage); }
.twm-logo__tag { font-size: 13px; color: var(--twm-soft); padding-left: 12px; border-left: 1px solid var(--twm-line); }

.twm-below-header { padding-top: 16px; padding-bottom: 16px; }

/* Classic header (fallback) */
.twm-classic { background: var(--twm-deep); border-bottom: 1px solid var(--twm-line); }
.twm-classic__in { max-width: calc(var(--twm-max) + 2 * var(--twm-gutter)); margin: 0 auto; padding: 14px var(--twm-gutter); display: flex; align-items: center; gap: 24px; }
.twm-classic .twm-logo__img { height: calc(var(--twm-logo-h) * .8); }
.twm-classic__nav { margin-left: auto; }
.twm-classic__menu { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 22px; }
.twm-classic__menu a { color: var(--twm-text); text-decoration: none; font-weight: 600; font-size: 15px; }
.twm-classic__menu a:hover, .twm-classic__menu .current-menu-item > a { color: var(--twm-sage); }
.twm-classic__actions { display: flex; align-items: center; gap: 10px; }
.twm-classic__menu-btn { display: none; }

/* ==========================================================================
   5. Panel (Topics / Search / Menu)
   ========================================================================== */
.twm-panel { position: fixed; inset: 0; z-index: 200; }
.twm-panel[hidden] { display: none; }
.twm-panel__backdrop { position: absolute; inset: 0; background: rgba(20, 26, 18, .62); opacity: 0; transition: opacity .2s ease; }
.twm-panel__sheet {
	position: absolute; top: 0; bottom: 0; left: var(--twm-rail-w);
	width: min(440px, calc(100vw - var(--twm-rail-w))); overflow-y: auto; overscroll-behavior: contain;
	background: var(--twm-deep); border-right: 1px solid var(--twm-line); padding: 24px 24px 40px;
	transform: translateX(-18px); opacity: 0; transition: transform .22s ease, opacity .22s ease;
	display: flex; flex-direction: column; gap: 20px;
}
body.twm-header--classic .twm-panel__sheet { left: 0; width: min(440px, 100vw); }
.admin-bar .twm-panel__sheet { top: 32px; }
.twm-panel.is-open .twm-panel__backdrop { opacity: 1; }
.twm-panel.is-open .twm-panel__sheet { transform: none; opacity: 1; }
.twm-panel__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.twm-panel__logo { margin: 0; }
.twm-panel__logo .twm-flogo__img { height: var(--twm-foot-logo-h); }
.twm-panel__logo img { display: block; }
.twm-panel__tabs { display: flex; gap: 4px; padding: 4px; border-radius: 999px; background: var(--twm-bg); }
.twm-panel__tab { flex: 1; padding: 10px 12px; border: 0; border-radius: 999px; background: transparent; color: var(--twm-text); font-weight: 600; font-size: 14px; cursor: pointer; }
.twm-panel__tab[aria-selected="true"] { background: var(--twm-sage); color: var(--twm-ink); }
.twm-panel__sec { display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.twm-panel__sec[hidden] { display: none; }
.twm-panel__cats { list-style: none; margin: 0; padding: 0; width: 100%; display: flex; flex-direction: column; gap: 8px; }
.twm-panel__cats a { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; border-radius: var(--twm-r-sm); background: var(--twm-card); color: var(--twm-white); text-decoration: none; font-weight: 600; }
.twm-panel__cats a:hover { background: var(--twm-line); }
.twm-count { font-size: 13px; font-weight: 500; color: var(--twm-soft); }
.twm-panel__menu { list-style: none; margin: 0; padding: 0; width: 100%; }
.twm-panel__menu a { display: block; padding: 13px 0; border-bottom: 1px solid var(--twm-line); color: var(--twm-white); font-size: 18px; font-weight: 600; text-decoration: none; }
.twm-panel__menu a:hover { color: var(--twm-sage); }
.twm-panel__menu .sub-menu { list-style: none; padding-left: 16px; margin: 0; }
.twm-panel__menu .sub-menu a { font-size: 15px; font-weight: 500; }
.twm-panel__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.twm-panel .twm-search { width: 100%; }
.twm-panel__sec > nav { width: 100%; }

/* ==========================================================================
   6. Hero
   ========================================================================== */
.twm-hero {
	position: relative; overflow: hidden; color: var(--twm-white);
	min-height: 640px; padding: 150px var(--twm-gutter) 64px;
	display: flex; align-items: flex-end; justify-content: center;
	border-radius: 0 0 var(--twm-r-xl) var(--twm-r-xl);
}
.twm-hero__media { position: absolute; inset: 0; }
.twm-hero__img, .twm-hero__media .twm-scene { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.twm-hero__shade { position: absolute; inset: 0; background: rgba(36, 45, 33, var(--twm-hero-shade)); }
.twm-hero__in { position: relative; z-index: 1; width: 100%; max-width: 900px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 18px; }
.twm-hero__kicker { margin: 0; font-size: 13px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--twm-text); }
.twm-hero__title { margin: 0; font-size: clamp(36px, 5.2vw, 64px); line-height: 1.04; letter-spacing: -0.03em; color: var(--twm-white); text-wrap: balance; }
.twm-hero__sub { margin: 0; max-width: 640px; font-size: 18px; line-height: 1.6; color: #F2F2F2; }
.twm-hero__search {
	margin-top: 12px; width: 100%; max-width: 620px; display: flex; align-items: center; gap: 12px;
	background: var(--twm-text); border-radius: 999px; padding: 8px 8px 8px 28px; color: var(--twm-ink);
}
.twm-hero__search:focus-within { outline: 3px solid var(--twm-sage); outline-offset: 3px; }
.twm-hero__field { flex: 1 1 auto; display: flex; flex-direction: column; gap: 1px; text-align: left; min-width: 0; }
.twm-hero__label { font-size: 12px; font-weight: 600; color: var(--twm-bg); }
.twm-hero__field input { border: 0; background: transparent; font-size: 16px; font-weight: 500; color: var(--twm-ink); padding: 2px 0; outline: none; min-width: 0; width: 100%; }
.twm-hero__field input::placeholder { color: #55604F; }
.twm-hero__go { width: 54px; height: 54px; flex: 0 0 auto; border: 0; border-radius: 999px; background: var(--twm-bg); color: var(--twm-text); display: flex; align-items: center; justify-content: center; cursor: pointer; }
.twm-hero__go:hover { background: var(--twm-deep); }

/* ==========================================================================
   7. Sections, slider, cards, grid
   ========================================================================== */
.twm-section__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 24px; }
.twm-section__title { margin: 0; font-size: 28px; letter-spacing: -0.02em; color: var(--twm-white); }
.twm-section__link { font-weight: 600; font-size: 15px; text-decoration: none; }

.twm-slider { padding-top: 56px; padding-bottom: 24px; }
.twm-slider__ctrl { display: flex; align-items: center; gap: 10px; }
.twm-slider__ctrl[hidden] { display: none; }
.twm-slider__count { font-size: 13px; color: var(--twm-sage); margin-right: 6px; font-variant-numeric: tabular-nums; }
.twm-slider__arrow { width: 48px; height: 48px; border-radius: 999px; display: flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; }
.twm-slider__arrow--prev { border: 1.5px solid var(--twm-sage); background: transparent; color: var(--twm-text); }
.twm-slider__arrow--next { border: 0; background: var(--twm-sage); color: var(--twm-ink); }
.twm-slider__arrow:disabled { opacity: .4; cursor: default; }
.twm-slider__viewport { overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; border-radius: 4px; }
.twm-slider__viewport::-webkit-scrollbar { display: none; }
.twm-slider__track { list-style: none; margin: 0; padding: 0; display: flex; gap: 20px; }
.twm-slider__slide { flex: 0 0 calc((100% - 60px) / 4); min-width: 0; scroll-snap-align: start; }
.twm-slider__dots { display: flex; justify-content: center; gap: 6px; margin-top: 24px; }
.twm-slider__dots[hidden] { display: none; }
.twm-slider__dot { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 999px; background: var(--twm-slate); cursor: pointer; transition: width .2s ease, background .2s ease; }
.twm-slider__dot.is-active { width: 28px; background: var(--twm-dot); }
/* Dots are 8px tall; give them a 24px hit area without changing the look. */
.twm-slider__dot { position: relative; }
.twm-slider__dot::after { content: ""; position: absolute; inset: -8px -2px; }

.twm-card { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.twm-card__media { position: relative; display: block; overflow: hidden; border-radius: var(--twm-r-lg); background: var(--twm-card); }
.twm-card__media img, .twm-card__media .twm-scene { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.twm-card:hover .twm-card__media img { transform: scale(1.03); }
.twm-card__badge {
	position: absolute; left: 12px; top: 12px; padding: 6px 11px; border-radius: 999px;
	background: var(--twm-text); color: var(--twm-ink); font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
}
.twm-card__body { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.twm-card__cat { margin: 0; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.twm-card__cat a { color: var(--twm-soft); text-decoration: none; }
.twm-card__cat a:hover { color: var(--twm-white); }
.twm-card__title { margin: 0; font-size: 18px; font-weight: 600; line-height: 1.35; letter-spacing: -0.01em; }
.twm-card__title a { color: var(--twm-white); text-decoration: none; }
.twm-card__title a:hover { text-decoration: underline; text-decoration-color: var(--twm-sage); text-decoration-thickness: 2px; }
.twm-card__meta { margin: 0; font-size: 12px; color: var(--twm-soft); }

.twm-card--slide .twm-card__media { aspect-ratio: 4 / 5; }
.twm-card--slide .twm-card__title { font-size: 17px; line-height: 1.38; }
.twm-card--slide .twm-card__meta { color: var(--twm-sage); }
.twm-card--grid { background: var(--twm-card); border-radius: var(--twm-r-lg); padding: 14px 14px 20px; }
.twm-card--grid .twm-card__media { aspect-ratio: 3 / 2; border-radius: var(--twm-r-sm); }
.twm-card--grid .twm-card__body { padding: 0 6px; }

.twm-grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.twm-more { padding-top: 40px; padding-bottom: 72px; }
.twm-more__btn { margin: 32px 0 0; text-align: center; }
.twm-band-widgets { padding-top: 32px; padding-bottom: 8px; display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }

/* ==========================================================================
   8. Bands (page heads), breadcrumbs, byline
   ========================================================================== */
.twm-band { background: var(--twm-deep); border-radius: 0 0 var(--twm-r-xl) var(--twm-r-xl); padding: 40px 0 44px; }
.twm-band__kicker { margin: 0 0 8px; font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--twm-sage); }
.twm-band__title { margin: 0 0 14px; font-size: clamp(30px, 4vw, 46px); line-height: 1.1; letter-spacing: -0.03em; text-wrap: balance; }
.twm-band__page { color: var(--twm-soft); font-weight: 500; }
.twm-band__desc { max-width: 720px; color: var(--twm-soft); }
.twm-band__desc p:last-child { margin-bottom: 0; }
.twm-band__search { max-width: 560px; margin-top: 18px; }

.twm-crumbs { margin: 0 0 16px; font-size: 13px; color: var(--twm-soft); }
.twm-crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 0; }
.twm-crumbs li { display: inline-flex; align-items: center; }
.twm-crumbs a { color: var(--twm-soft); text-decoration: none; }
.twm-crumbs a:hover { color: var(--twm-white); text-decoration: underline; }
.twm-crumbs__sep { margin: 0 8px; color: var(--twm-sage); }
.twm-crumbs [aria-current] { color: var(--twm-text); }

.twm-story__dek { margin: 0 0 18px; font-size: 18px; line-height: 1.6; color: var(--twm-soft); }
.twm-byline { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; font-size: 14px; color: var(--twm-soft); }
.twm-byline__who a { color: var(--twm-white); font-weight: 600; text-decoration: none; }
.twm-byline__who a:hover { text-decoration: underline; }
.twm-byline__item { display: inline-flex; align-items: center; gap: 6px; }
.twm-byline__updated { color: var(--twm-sage); font-weight: 600; }

/* ==========================================================================
   9. Story and page body (images never wider than the text)
   ========================================================================== */
.twm-story__main { padding-top: 32px; min-width: 0; }
.twm-page > .twm-wrap--text { padding-top: 32px; }
.twm-story__figure { margin: 0 0 32px; }
.twm-story__img { display: block; width: 100%; height: auto; border-radius: 20px; }
.twm-story__figure figcaption { margin-top: 10px; font-size: 13px; color: var(--twm-soft); }

.twm-entry-content { font-size: 18px; line-height: 1.8; color: var(--twm-text); overflow-wrap: break-word; }
.twm-entry-content > :first-child { margin-top: 0; }
.twm-entry-content :where(p, ul, ol, dl, figure, table, blockquote, pre) { margin: 0 0 1.35em; }
.twm-entry-content :where(h2) { font-size: 28px; margin: 1.8em 0 .6em; scroll-margin-top: 24px; }
.twm-entry-content :where(h3) { font-size: 22px; margin: 1.6em 0 .5em; scroll-margin-top: 24px; }
.twm-entry-content :where(h4) { font-size: 18px; margin: 1.4em 0 .4em; }
.twm-entry-content :where(a) { color: var(--twm-sage); text-decoration: underline; text-decoration-thickness: 1.5px; }
.twm-entry-content :where(a:hover) { color: var(--twm-white); }
.twm-entry-content :where(ul, ol) { padding-left: 1.3em; }
.twm-entry-content :where(li) { margin-bottom: .45em; }
.twm-entry-content :where(li)::marker { color: var(--twm-sage); }
.twm-entry-content :where(strong) { color: var(--twm-white); }
.twm-entry-content :where(blockquote) {
	margin-left: 0; margin-right: 0; padding: 22px 24px 22px 64px; position: relative;
	background: var(--twm-card); border-radius: var(--twm-r); font-size: 19px;
}
.twm-entry-content :where(blockquote)::before {
	content: "\201C"; position: absolute; left: 18px; top: 6px; font-size: 64px; line-height: 1; color: var(--twm-sage); font-weight: 700;
}
.twm-entry-content :where(blockquote p:last-child) { margin-bottom: 0; }
.twm-entry-content :where(blockquote cite) { display: block; margin-top: 8px; font-size: 14px; font-style: normal; color: var(--twm-soft); }
.twm-entry-content :where(code, kbd) { background: var(--twm-card); padding: 2px 6px; border-radius: 6px; font-size: .9em; }
.twm-entry-content :where(pre) { background: var(--twm-deep); padding: 18px; border-radius: var(--twm-r-sm); overflow-x: auto; font-size: 15px; }

/* Media: always the text width, at every size. */
.twm-entry-content img, .twm-entry-content video, .twm-entry-content iframe, .twm-entry-content embed, .twm-entry-content object { max-width: 100%; }
.twm-entry-content img { height: auto; border-radius: 16px; }
.twm-entry-content :where(figure) { max-width: 100%; }
.twm-entry-content figcaption, .twm-entry-content .wp-element-caption { margin-top: 8px; font-size: 13px; line-height: 1.5; color: var(--twm-soft); text-align: left; }
.twm-entry-content .alignwide, .twm-entry-content .alignfull { width: auto; max-width: 100%; margin-left: 0; margin-right: 0; }
.twm-entry-content .alignleft { float: left; margin: .3em 1.4em 1em 0; max-width: 50%; }
.twm-entry-content .alignright { float: right; margin: .3em 0 1em 1.4em; max-width: 50%; }
.twm-entry-content .aligncenter { margin-left: auto; margin-right: auto; }
.twm-entry-content iframe { display: block; width: 100%; border: 0; border-radius: 16px; }
.twm-entry-content .wp-block-embed__wrapper { position: relative; }
.twm-entry-content .wp-has-aspect-ratio .wp-block-embed__wrapper::before { content: none; }
.twm-entry-content .wp-has-aspect-ratio iframe { position: static; height: auto; aspect-ratio: 16 / 9; }
.twm-entry-content .wp-block-gallery { gap: 12px; }
.twm-entry-content .wp-block-table { overflow-x: auto; }
.twm-entry-content table { width: 100%; border-collapse: collapse; font-size: 16px; }
.twm-entry-content :where(th, td) { padding: 10px 12px; border-bottom: 1px solid var(--twm-line); text-align: left; vertical-align: top; }
.twm-entry-content :where(th) { color: var(--twm-white); font-weight: 600; background: var(--twm-card); }
.twm-entry-content .wp-block-table table, .twm-entry-content .wp-block-table th, .twm-entry-content .wp-block-table td { border: 0; border-bottom: 1px solid var(--twm-line); }
.twm-entry-content .wp-block-table thead { border-bottom: 2px solid var(--twm-sage); }
.twm-entry-content .wp-block-table th { background: var(--twm-card); }
.twm-entry-content .wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background: var(--twm-card); }
.twm-entry-content .wp-block-separator { border: 0; border-top: 1px solid var(--twm-line); }
.twm-entry-content::after { content: ""; display: block; clear: both; }
.twm-entry-content .wp-block-button__link { background: var(--twm-sage); color: var(--twm-ink); border-radius: 999px; padding: 11px 20px; text-decoration: none; font-weight: 600; font-size: 15px; }

/* In this guide (contents) */
.twm-guide { background: var(--twm-card); border-radius: var(--twm-r); padding: 18px 22px 12px; margin: 0 0 30px; }
.twm-entry-content .twm-guide { margin: 0 0 1.6em; font-size: 16px; line-height: 1.5; }
.twm-guide__head { display: flex; align-items: baseline; gap: 10px; margin-bottom: 8px; }
.twm-guide__t { margin: 0; font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--twm-text); }
.twm-guide__n { font-size: 13px; color: var(--twm-soft); }
.twm-guide__toggle { display: none; margin-left: auto; border: 1px solid var(--twm-line); background: transparent; color: var(--twm-text); border-radius: 999px; padding: 6px 14px; font-size: 13px; font-weight: 600; cursor: pointer; }
.twm-guide__hide { display: none; }
.twm-guide.is-open .twm-guide__show { display: none; }
.twm-guide.is-open .twm-guide__hide { display: inline; }
.twm-guide__cols { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 28px; }
.twm-guide__i { break-inside: avoid; margin: 0; }
.twm-guide__i a { display: flex; gap: 10px; padding: 8px 0; border-bottom: 1px dashed var(--twm-line); color: var(--twm-text); text-decoration: none; font-size: 15px; line-height: 1.45; }
.twm-guide__i a:hover { color: var(--twm-sage); }
.twm-guide__i i { flex: 0 0 30px; font-style: normal; font-size: 13px; color: var(--twm-soft); padding-top: 1px; }

/* After the story */
.twm-note { display: flex; gap: 12px; align-items: flex-start; margin: 32px 0 0; padding: 16px 18px; border-radius: 16px; background: var(--twm-card); }
.twm-note__ico { color: var(--twm-sage); padding-top: 2px; }
.twm-note p { margin: 0; font-size: 15px; line-height: 1.6; color: var(--twm-soft); }
.twm-note a { font-weight: 600; white-space: nowrap; }
.twm-tags { list-style: none; margin: 28px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.twm-tags a { display: inline-block; padding: 6px 13px; border-radius: 999px; border: 1px solid var(--twm-line); color: var(--twm-text); font-size: 13px; text-decoration: none; }
.twm-tags a::before { content: "#"; color: var(--twm-sage); margin-right: 2px; }
.twm-tags a:hover { border-color: var(--twm-sage); }
.twm-after-post { margin-top: 32px; }

.twm-abox { display: flex; gap: 20px; align-items: flex-start; margin-top: 40px; padding: 24px; border-radius: 24px; background: var(--twm-deep); }
.twm-abox__photo { flex: 0 0 88px; width: 88px; height: 88px; border-radius: 999px; overflow: hidden; }
.twm-abox__img { display: block; width: 100%; height: 100%; object-fit: cover; }
.twm-abox__body { min-width: 0; }
.twm-abox__label { margin: 0 0 2px; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--twm-sage); }
.twm-abox__name { margin: 0 0 8px; font-size: 22px; }
.twm-abox__bio { margin: 0 0 12px; font-size: 15px; line-height: 1.65; color: var(--twm-soft); }
.twm-abox__links { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; font-size: 14px; font-weight: 600; }

.twm-pnav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 24px; }
.twm-pnav__link { display: flex; flex-direction: column; gap: 4px; padding: 18px; border-radius: var(--twm-r); background: var(--twm-card); text-decoration: none; }
.twm-pnav__link--next { text-align: right; grid-column: 2; }
.twm-pnav__dir { font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--twm-soft); }
.twm-pnav__title { font-size: 16px; font-weight: 600; line-height: 1.4; color: var(--twm-white); }
.twm-pnav__link:hover .twm-pnav__title { text-decoration: underline; text-decoration-color: var(--twm-sage); }

.twm-related { padding: 64px 0 24px; }
.twm-related .twm-section__title { margin-bottom: 24px; }

.twm-pagelinks { margin: 24px 0; display: flex; gap: 8px; flex-wrap: wrap; font-weight: 600; }

/* Sidebar layout */
.twm-with-side { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 48px; align-items: start; }
.twm-sidebar-left .twm-with-side { grid-template-columns: 300px minmax(0, 1fr); }
.twm-sidebar-left .twm-with-side > .twm-side { order: -1; }
.twm-story__layout.twm-with-side { padding-top: 0; }
.twm-story__layout.twm-with-side .twm-wrap--text { padding-left: 0; padding-right: 0; margin: 0; }
.twm-side { padding-top: 32px; display: flex; flex-direction: column; gap: 20px; }
.twm-list { padding-top: 40px; padding-bottom: 72px; }
.twm-list.twm-with-side .twm-grid3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.twm-list.twm-with-side .twm-side { padding-top: 0; }

/* ==========================================================================
   10. Widgets
   ========================================================================== */
.twm-widget { background: var(--twm-card); border-radius: 20px; padding: 20px; }
.twm-widget__title { margin: 0 0 14px; font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--twm-text); }
.twm-widget ul, .twm-widget ol { margin: 0; padding-left: 1.2em; }
.twm-foot .twm-widget { background: transparent; padding: 0; }
.twm-widget :where(.twm-season, .twm-stat, .twm-chart) { padding: 0; margin: 0; background: none; }
.twm-w-about { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.twm-w-about__img { width: 72px; height: 72px; border-radius: 999px; object-fit: cover; }
.twm-w-about p { margin: 0; font-size: 15px; color: var(--twm-soft); }
.twm-w-author { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 14px; align-items: center; container-type: inline-size; }
.twm-w-author__photo { width: 72px; height: 72px; flex: 0 0 72px; border-radius: 999px; overflow: hidden; }
.twm-w-author__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.twm-w-author__name { margin: 0; font-weight: 700; color: var(--twm-white); font-size: 17px; line-height: 1.3; }
.twm-w-author__line { margin: 0; font-size: 13px; color: var(--twm-soft); }
.twm-w-author > :not(.twm-w-author__photo):not(.twm-w-author__who) { grid-column: 1 / -1; }
.twm-w-author__bio { margin: 0; font-size: 14px; color: var(--twm-soft); }
.twm-w-author__links { list-style: none; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 14px; font-weight: 600; }
.twm-w-author .twm-btn { justify-self: start; }
@container (max-width: 230px) { .twm-w-author { grid-template-columns: 1fr; } }
.twm-w-list { list-style: none; padding: 0 !important; display: flex; flex-direction: column; gap: 12px; counter-reset: twm; }
.twm-w-list a { color: var(--twm-text); text-decoration: none; font-weight: 600; font-size: 15px; line-height: 1.4; }
.twm-w-list a:hover { color: var(--twm-sage); }
.twm-w-list--num li { display: grid; grid-template-columns: 28px 1fr; counter-increment: twm; }
.twm-w-list--num li::before { content: counter(twm); font-weight: 700; color: var(--twm-text); }
.twm-w-list--thumbs a { display: grid; grid-template-columns: 64px 1fr; gap: 12px; align-items: center; }
.twm-w-thumb { display: block; width: 64px; height: 64px; border-radius: 12px; overflow: hidden; }
.twm-w-thumb img, .twm-w-thumb .twm-scene { width: 100%; height: 100%; object-fit: cover; display: block; }
.twm-w-note p { font-size: 15px; color: var(--twm-soft); }
/* Core widgets and widget blocks */
.twm-widget :where(h2, h3) { margin: 0 0 14px; font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--twm-text); }
.twm-widget :where(ul, ol) { list-style: none; padding-left: 0; display: flex; flex-direction: column; gap: 8px; }
.twm-widget :where(li a) { color: var(--twm-text); text-decoration: none; font-size: 15px; }
.twm-widget :where(li a:hover) { color: var(--twm-sage); text-decoration: underline; }
.twm-widget .wp-block-search__label { display: block; margin-bottom: 8px; font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.twm-widget .wp-block-search__inside-wrapper { display: flex; gap: 6px; background: var(--twm-text); border-radius: 999px; padding: 5px; border: 0; }
.twm-widget .wp-block-search__input { flex: 1; min-width: 0; border: 0; background: transparent; color: var(--twm-ink); padding: 8px 12px; font-size: 15px; outline: none; }
.twm-widget .wp-block-search__button { margin: 0; border: 0; border-radius: 999px; background: var(--twm-bg); color: var(--twm-text); padding: 8px 16px; font-size: 14px; font-weight: 600; cursor: pointer; }
.twm-widget .wp-block-latest-posts__post-date, .twm-widget .post-date { display: block; font-size: 12px; color: var(--twm-soft); }
.twm-w-note p:last-child { margin: 0; }

.twm-social { list-style: none; margin: 0; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 8px; }
.twm-social a { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 999px; border: 1px solid var(--twm-line); color: var(--twm-text); }
.twm-social a:hover { border-color: var(--twm-sage); color: var(--twm-sage); }
.twm-social--sm a { width: 36px; height: 36px; }

/* Search form */
.twm-search { display: flex; align-items: center; gap: 8px; width: 100%; background: var(--twm-text); border-radius: 999px; padding: 6px 6px 6px 20px; }
.twm-search:focus-within { outline: 3px solid var(--twm-sage); outline-offset: 3px; }
.twm-search__input { flex: 1 1 auto; min-width: 0; border: 0; background: transparent; color: var(--twm-ink); font-size: 16px; padding: 8px 0; outline: none; }
.twm-search__input::placeholder { color: #55604F; }
.twm-search__btn { width: 46px; height: 46px; flex: 0 0 auto; border: 0; border-radius: 999px; background: var(--twm-bg); color: var(--twm-text); display: flex; align-items: center; justify-content: center; cursor: pointer; }

/* Pagination */
.twm-pages { margin-top: 40px; }
.twm-pages .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.twm-pages .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 12px; border-radius: 999px; background: var(--twm-card); color: var(--twm-text); text-decoration: none; font-weight: 600; }
.twm-pages .page-numbers.current { background: var(--twm-sage); color: var(--twm-ink); }
.twm-pages .page-numbers.dots { background: transparent; }
.twm-pages a.page-numbers:hover { background: var(--twm-line); }

/* ==========================================================================
   11. Story boxes (shortcodes)
   ========================================================================== */
.twm-box, .twm-facts, .twm-stat, .twm-chart, .twm-season, .twm-sources { margin: 0 0 1.6em; border-radius: var(--twm-r); background: var(--twm-card); padding: 20px 22px; font-size: 16px; line-height: 1.6; }
.twm-box__t, .twm-facts__t, .twm-chart__title, .twm-season__t, .twm-sources__t { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--twm-text); }
.twm-box__t .twm-ico { color: var(--twm-sage); }
.twm-box__c p:last-child { margin-bottom: 0; }
.twm-box--before { background: var(--twm-deep); }
.twm-facts dl { margin: 0; display: grid; gap: 0; }
.twm-facts__row { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 12px; padding: 10px 0; border-top: 1px solid var(--twm-line); }
.twm-facts__row:first-child { border-top: 0; }
.twm-facts dt { display: flex; align-items: center; gap: 8px; color: var(--twm-soft); font-size: 14px; font-weight: 600; }
.twm-facts dt .twm-ico { color: var(--twm-sage); }
.twm-facts dd { margin: 0; color: var(--twm-white); }
.twm-stat__v { margin: 0; font-size: 44px; font-weight: 700; line-height: 1.05; letter-spacing: -0.03em; color: var(--twm-white); }
.twm-stat__l { margin: 6px 0 0; color: var(--twm-text); font-weight: 600; }
.twm-stat__n { margin: 4px 0 0; color: var(--twm-soft); font-size: 14px; }
.twm-src { margin: 10px 0 0; font-size: 13px; color: var(--twm-soft); }
.twm-src a { color: var(--twm-text); }
.twm-chart__rows { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.twm-chart__row { display: grid; grid-template-columns: minmax(70px, 140px) minmax(0, 1fr) auto; align-items: center; gap: 12px; font-size: 14px; }
.twm-chart__track { height: 12px; border-radius: 999px; background: var(--twm-deep); overflow: hidden; }
.twm-chart__bar { display: block; height: 100%; border-radius: 999px; background: var(--twm-slate); }
.twm-chart__row.is-hl .twm-chart__bar, .twm-chart__col.is-hl .twm-chart__bar { background: var(--twm-sage); }
.twm-chart__row.is-muted, .twm-chart__col.is-muted { opacity: .6; }
.twm-chart__v { font-weight: 600; color: var(--twm-white); font-variant-numeric: tabular-nums; font-size: 14px; }
.twm-chart__l { color: var(--twm-soft); font-size: 13px; }
.twm-chart__cols { display: flex; align-items: flex-end; gap: 8px; height: 200px; }
.twm-chart__col { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 6px; height: 100%; min-width: 0; }
.twm-chart__col .twm-chart__bar { width: 100%; max-width: 46px; border-radius: 8px 8px 0 0; height: auto; }
.twm-chart__note { margin: 10px 0 0; font-size: 13px; color: var(--twm-soft); }
.twm-season__months { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4px; }
.twm-season__m { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 8px 2px; border-radius: 10px; border: 1.5px solid var(--twm-slate); text-align: center; }
.twm-season__name { font-size: 13px; font-weight: 600; color: var(--twm-white); }
.twm-season__k { font-size: 10px; letter-spacing: .04em; text-transform: uppercase; color: var(--twm-soft); }
.twm-season__m.is-best { background: var(--twm-sage); border-color: var(--twm-sage); }
.twm-season__m.is-best .twm-season__name, .twm-season__m.is-best .twm-season__k { color: var(--twm-ink); }
.twm-season__m.is-good { border-color: var(--twm-sage); }
.twm-season__m.is-avoid { border-style: dashed; }
.twm-season__m.is-avoid .twm-season__name { color: var(--twm-soft); text-decoration: line-through; text-decoration-color: var(--twm-slate); }
.twm-season__key { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 12px; color: var(--twm-soft); }
.twm-season__key li::before { content: ""; display: inline-block; width: 12px; height: 12px; border-radius: 4px; margin-right: 6px; vertical-align: -2px; border: 1.5px solid var(--twm-slate); }
.twm-season__key .is-best::before { background: var(--twm-sage); border-color: var(--twm-sage); }
.twm-season__key .is-good::before { border-color: var(--twm-sage); }
.twm-season__key .is-avoid::before { border-style: dashed; }
.twm-season__note { margin: 8px 0 0; font-size: 14px; color: var(--twm-soft); }
.twm-season { container-type: inline-size; }
@container (max-width: 560px) { .twm-season__months { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
@container (max-width: 300px) { .twm-season__months { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.twm-sources ol { margin: 0; padding-left: 1.2em; font-size: 14px; }
.twm-sources li { margin-bottom: 4px; }

/* ==========================================================================
   12. Legal pages, 404, comments, misc
   ========================================================================== */
.twm-legal-page__wrap { max-width: calc(var(--twm-text-w) + 300px + 56px + 2 * var(--twm-gutter)); }
.twm-inshort { max-width: var(--twm-text-w); margin-top: 18px; padding: 18px 22px; border-radius: var(--twm-r); background: var(--twm-card); }
.twm-inshort__t { margin: 0 0 4px; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--twm-text); }
.twm-inshort__c { margin: 0; font-size: 16px; color: var(--twm-soft); }
.twm-legal-page__grid { display: grid; grid-template-columns: minmax(0, var(--twm-text-w)) 260px; gap: 56px; justify-content: space-between; padding-top: 40px; padding-bottom: 40px; }
.twm-legal-page__text :where(h2) { padding-top: 22px; border-top: 1px solid var(--twm-line); }
.twm-legal-page__side { position: relative; }
.twm-onpage { position: sticky; top: 24px; }
.admin-bar .twm-onpage { top: 56px; }
.twm-onpage__t { margin: 0 0 10px; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--twm-text); }
.twm-onpage ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.twm-onpage a { display: block; padding: 6px 0 6px 14px; position: relative; font-size: 14px; line-height: 1.4; color: var(--twm-soft); text-decoration: none; }
.twm-onpage a::before { content: ""; position: absolute; left: 0; top: 13px; width: 5px; height: 5px; border-radius: 999px; background: var(--twm-slate); }
.twm-onpage a:hover { color: var(--twm-white); }
.twm-onpage a:hover::before { background: var(--twm-sage); }

.twm-404 { text-align: left; }
.twm-404__ico { color: var(--twm-dot); margin: 0 0 8px; }
.twm-404 .twm-search { max-width: 520px; margin: 8px 0 18px; }
.twm-404 .twm-chips { margin-bottom: 22px; }
.twm-none { padding: 24px 0; display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.twm-none .twm-search { max-width: 520px; }

.twm-comments { margin-top: 48px; }
.twm-comments__list { list-style: none; padding: 0; margin: 20px 0; }
.twm-comments__list .comment-body { padding: 18px; border-radius: var(--twm-r); background: var(--twm-card); margin-bottom: 14px; }
.twm-comments__list .children { list-style: none; padding-left: 24px; }
.twm-comments .comment-author img { border-radius: 999px; vertical-align: middle; margin-right: 8px; }
.twm-comments .comment-metadata a { color: var(--twm-soft); font-size: 13px; text-decoration: none; }
.twm-comments :where(input[type="text"], input[type="email"], input[type="url"], textarea) { width: 100%; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--twm-line); background: var(--twm-deep); color: var(--twm-text); }
.twm-comments label { display: block; font-size: 14px; font-weight: 600; margin-bottom: 4px; }

.twm-home-text { padding-top: 24px; padding-bottom: 48px; }
.sticky, .bypostauthor, .gallery-caption { outline: none; }

/* ==========================================================================
   13. Footer
   ========================================================================== */
.twm-foot { margin-top: 48px; background: var(--twm-deep); border-radius: var(--twm-r-xl) var(--twm-r-xl) 0 0; padding: 56px var(--twm-gutter) 32px; }
.twm-foot__grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr); gap: 40px; max-width: var(--twm-max); margin: 0 auto; }
.twm-foot__grid.has-4 { grid-template-columns: minmax(0, 1.3fr) repeat(3, minmax(0, 1fr)); }
.twm-foot__grid.no-legal-col { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
.twm-foot__brand { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.twm-flogo { margin: 0; line-height: 0; }
.twm-flogo a { display: inline-block; text-decoration: none; }
.twm-flogo__img { display: block; height: var(--twm-foot-logo-h); width: auto; max-width: 100%; }
.twm-flogo__text { font-size: 30px; line-height: 1.1; font-weight: 700; letter-spacing: -0.03em; color: var(--twm-white); }
.twm-foot__mission { margin: 0; max-width: 420px; font-size: 15px; line-height: 1.65; color: var(--twm-soft); }
.twm-foot__t { margin: 0 0 14px; font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--twm-sage); }
.twm-flinks, .twm-legal--list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; font-size: 15px; }
.twm-flinks a, .twm-legal a { color: var(--twm-text); text-decoration: none; }
.twm-flinks a:hover, .twm-legal a:hover { color: var(--twm-sage); text-decoration: underline; }
.twm-foot__sentence, .twm-foot__widgets { max-width: var(--twm-max); margin: 28px auto 0; }
.twm-legal-sentence { margin: 0; font-size: 14px; color: var(--twm-soft); }
.twm-legal-sentence a { color: var(--twm-text); }
.twm-foot__bar { max-width: var(--twm-max); margin: 40px auto 0; padding-top: 18px; border-top: 1px solid var(--twm-line); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 24px; font-size: 13px; color: var(--twm-sage); }
.twm-foot__copy { margin: 0; }
.twm-legal--inline { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 16px; }
.twm-foot__top { color: var(--twm-text); text-decoration: none; font-weight: 600; }
.twm-foot__top:hover { color: var(--twm-sage); }
.twm-foot--centered { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 16px; }
.twm-foot--centered .twm-foot__bar { width: 100%; }
.twm-foot--minimal { padding-top: 8px; }
.twm-foot--minimal .twm-foot__bar { margin-top: 0; border-top: 0; }

/* ==========================================================================
   14. Responsive
   ========================================================================== */
@media (max-width: 1100px) {
	.twm-slider__slide { flex-basis: calc((100% - 40px) / 3); }
	.twm-with-side { grid-template-columns: minmax(0, 1fr) 260px; gap: 32px; }
	.twm-legal-page__grid { grid-template-columns: minmax(0, 1fr) 220px; gap: 36px; }
}
@media (max-width: 1000px) {
	.twm-grid3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.twm-foot__grid, .twm-foot__grid.has-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.twm-foot__brand { grid-column: 1 / -1; }
}
@media (max-width: 860px) {
	:root { --twm-gutter: 20px; }
	/* Rail becomes a bottom tab bar */
	.twm-shell { flex-direction: column; }
	body.twm-header--rail .twm-shell { background: none; }
	.twm-rail {
		order: 2; flex: 0 0 auto; width: 100%; height: auto !important; position: static !important;
		flex-direction: row; justify-content: center; padding: 6px 8px calc(6px + env(safe-area-inset-bottom));
		border-right: 0; border-top: 1px solid var(--twm-line);
	}
	body.twm-rail-sticky .twm-rail { position: fixed !important; left: 0; right: 0; bottom: 0; top: auto; z-index: 90; }
	body.twm-rail-sticky.twm-header--rail { padding-bottom: 72px; }
	.twm-rail__mark, .twm-rail__label { display: none; }
	.twm-rail__list { flex-direction: row; justify-content: space-around; width: 100%; max-width: 480px; gap: 0; }
	.twm-rail__btn { width: 76px; padding: 8px 0; }
	.twm-panel__sheet { left: 0 !important; right: 0; top: auto !important; bottom: 0; width: 100% !important; max-height: 86vh; border-right: 0; border-radius: 24px 24px 0 0; transform: translateY(24px); padding-bottom: calc(28px + env(safe-area-inset-bottom)); }
	.twm-logo__img { height: var(--twm-logo-h-phone); }
	.twm-topbar { padding-top: 16px; padding-bottom: 16px; }
	.twm-topbar__btn { padding: 9px 14px; font-size: 13px; }
	.twm-hero { min-height: 560px; padding: 120px var(--twm-gutter) 40px; border-radius: 0 0 24px 24px; }
	.twm-hero__sub { font-size: 16px; }
	.twm-hero__search { padding-left: 20px; }
	.twm-hero__go { width: 48px; height: 48px; }
	.twm-slider { padding-top: 40px; }
	.twm-slider__ctrl, .twm-slider__dots { display: none !important; }
	.twm-slider__slide { flex-basis: 76%; }
	.twm-slider__viewport { margin-right: calc(-1 * var(--twm-gutter)); scroll-padding-left: 0; }
	.twm-section__title { font-size: 24px; }
	.twm-with-side, .twm-sidebar-left .twm-with-side { grid-template-columns: minmax(0, 1fr); }
	.twm-sidebar-left .twm-with-side > .twm-side { order: 0; }
	.twm-story__layout.twm-with-side .twm-wrap--text { padding-left: 0; padding-right: 0; }
	.twm-band { padding: 28px 0 32px; border-radius: 0 0 24px 24px; }
	.twm-entry-content { font-size: 17px; }
	.twm-entry-content :where(h2) { font-size: 24px; }
	.twm-entry-content :where(h3) { font-size: 20px; }
	.twm-entry-content .alignleft, .twm-entry-content .alignright { float: none; margin: 0 0 1.35em; max-width: 100%; }
	.twm-legal-page__grid { grid-template-columns: minmax(0, 1fr); gap: 0; padding-top: 24px; }
	.twm-legal-page__side { order: -1; margin-bottom: 24px; }
	.twm-onpage { position: static; background: var(--twm-card); border-radius: 16px; padding: 16px 18px; }
	.twm-classic__nav, .twm-classic__btn { display: none; }
	.twm-classic__menu-btn { display: inline-flex; }
	.twm-classic__actions { margin-left: auto; }
	.twm-foot { padding: 40px var(--twm-gutter) 28px; border-radius: 24px 24px 0 0; }
	.twm-facts__row { grid-template-columns: minmax(0, 1fr); gap: 2px; }
	.twm-season__months { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
	.twm-guide__toggle { display: inline-flex; }
	.js .twm-guide:not(.is-open) .twm-guide__cols { display: none; }
	.js .twm-guide:not(.is-open) .twm-guide__head { margin-bottom: 6px; }
	.twm-guide__cols { columns: 1; }
	.twm-pnav { grid-template-columns: minmax(0, 1fr); }
	.twm-pnav__link--next { grid-column: auto; }
}
@media (max-width: 600px) {
	.twm-grid3, .twm-list.twm-with-side .twm-grid3 { grid-template-columns: minmax(0, 1fr); }
	.twm-foot__grid, .twm-foot__grid.has-4, .twm-foot__grid.no-legal-col { grid-template-columns: minmax(0, 1fr); gap: 32px; }
	.twm-abox { flex-direction: column; gap: 14px; }
	.twm-hero__title { font-size: 34px; }
	.twm-band__title { font-size: 30px; }
	.twm-foot__bar { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 360px) {
	.twm-topbar__btn { display: none; }
	.twm-rail__btn { width: 64px; }
}
@media print {
	.twm-rail, .twm-topbar, .twm-panel, .twm-slider__ctrl, .twm-foot, .twm-related, .twm-pnav { display: none !important; }
	body { background: #fff; color: #000; }
}
