/*
Theme Name: WTX Conference (Blocks)
Theme URI: https://the-power-connection.com
Author: The Power Connection
Description: Block theme for the West Texas Data Center Construction Conference (March 2-3, 2027, Bush Convention Center, Midland, TX). The whole page is editable in the WordPress block editor under Appearance > Editor. The Advisory Council and the notify form come from the wtxdcc-council and wtxdcc-notify plugins.
Version: 0.2.0-dev
Requires at least: 6.5
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: wtxdcc
*/

:root {
  --navy: #14305A;
  --navy-deep: #0D2142;
  --cream: #FBF7F0;
  --sand: #F1E6D2;
  --red: #CE1126;
  --red-deep: #A50E1F;
  --amber: #E8A94B;
  --ink: #1D2027;
  --ink-soft: #55504A;
  --on-navy: #D6DCE8;
  --display: "Barlow Condensed", "Arial Narrow", Arial, sans-serif;
  --body: Barlow, "Helvetica Neue", Arial, sans-serif;
  --slab: "Zilla Slab", Georgia, "Times New Roman", serif;
  color-scheme: light;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 84px; overflow-x: clip; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { margin: 0; overflow-x: clip; background: var(--cream); color: var(--ink); font-family: var(--body); font-size: 18px; line-height: 1.55; }
body::after { content: ""; position: fixed; inset: 0; z-index: 90; pointer-events: none; opacity: 0.08; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n' x='0' y='0' width='100%' height='100%'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .25  0 0 0 0 .18  0 0 0 0 .1  0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%' height='100%' filter='url(%23n)'/%3E%3C/svg%3E"); background-size: 240px 240px; }
a { color: var(--navy); }
a:hover { color: var(--red); }
:focus-visible { outline: 3px solid var(--red); outline-offset: 3px; }
h1, h2, h3, p, ul, ol, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
.wrap { width: 100%; max-width: 1240px; margin: 0 auto; padding-inline: max(20px, env(safe-area-inset-left, 0px)); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.setup-note { border: 2px dashed currentColor; padding: 18px; opacity: 0.8; border-radius: 12px; }
.star { display: inline-block; width: 0.8em; height: 0.8em; margin-right: 0.55em; background: currentColor; vertical-align: -0.04em; clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); }
.dot { display: inline-block; width: 0.5em; height: 0.5em; margin: 0 0.5em; background: var(--amber); clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); vertical-align: 0.1em; }
.kicker { font-family: var(--display); font-weight: 600; font-size: 18px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--red); }
.kicker-light { color: var(--cream); }
.giant { text-wrap: balance; font-family: var(--slab); font-weight: 600; font-size: clamp(46px, 7.6vw, 118px); line-height: 0.94; letter-spacing: -0.02em; color: var(--navy); }
.giant em { font-style: normal; color: var(--red); white-space: nowrap; }
.giant-s { font-size: clamp(34px, 5.2vw, 80px); line-height: 1; }
.giant-center { text-align: center; }
#about-title { font-size: clamp(46px, 6.4vw, 104px); }
#about-title { white-space: nowrap; }
.statement-text { font-size: 20px; color: var(--ink-soft); }
.btn { display: inline-block; padding: 16px 34px; border: 0; border-radius: 999px; background: var(--red); color: #fff; font-family: var(--display); font-weight: 600; font-size: 20px; letter-spacing: 0.1em; text-transform: uppercase; text-decoration: none; cursor: pointer; line-height: 1.2; transition: background 0.2s, transform 0.2s; }
.btn:hover { background: var(--red-deep); color: #fff; transform: translateY(-2px); }

/* Header */
.site-header { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 50; background: var(--sand); border-bottom: 2px solid var(--navy); }
.admin-bar .site-header { top: calc(env(safe-area-inset-top, 0px) + 32px); }
@media (max-width: 782px) { .admin-bar .site-header { top: env(safe-area-inset-top, 0px); } }
.site-header .wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-block: 10px; }
.site-header .header-inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-block: 10px; }
.brand { display: flex; align-items: center; gap: 12px; color: var(--navy); }
.brand .brand-logo { width: 52px; height: 52px; flex: none; }
.brand-name { font-family: var(--display); font-weight: 600; font-size: 20px; line-height: 1; text-transform: uppercase; letter-spacing: 0.03em; }
.brand-name p { margin: 0; }
.brand-name a { color: inherit; text-decoration: none; }
.brand-name .b2 { margin-top: 3px; font-size: 14px; letter-spacing: 0.1em; color: var(--ink-soft); }
.wp-block-navigation { font-family: var(--display); font-weight: 600; font-size: 17px; letter-spacing: 0.1em; text-transform: uppercase; }
.wp-block-navigation .wp-block-navigation__container { gap: 4px 24px; }
.wp-block-navigation a.wp-block-navigation-item__content { color: var(--ink); text-decoration: none; padding-block: 6px; }
.wp-block-navigation a.wp-block-navigation-item__content:hover { color: var(--red); }
.wp-block-navigation .nav-cta > a.wp-block-navigation-item__content { background: var(--red); color: #fff; padding: 9px 22px; border-radius: 999px; }
.wp-block-navigation .nav-cta > a.wp-block-navigation-item__content:hover { background: var(--red-deep); color: #fff; }
.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close { color: var(--navy); }
.wp-block-navigation__responsive-container.is-menu-open { background: var(--sand); color: var(--ink); padding: 24px; }

/* Hero: navy type panel beside a warm photo, with the WTX logo sitting on the photo */
.hero { display: flex; flex-wrap: nowrap; gap: 0; min-height: min(88vh, 800px); background: var(--navy); color: #fff; overflow: hidden; }
.hero-copy { position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; justify-content: center; padding: 80px 48px 80px max(20px, calc((100vw - 1240px) / 2 + 20px)); }
.hero-copy::before { content: ""; position: absolute; z-index: -1; left: -14%; bottom: -26%; width: min(70vh, 640px); aspect-ratio: 1; background: rgba(255, 255, 255, 0.045); clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); pointer-events: none; }
.hero .kicker { color: var(--amber); margin-bottom: 14px; }
.hero h1 { font-family: var(--slab); font-weight: 600; line-height: 1; }
.h1-big { display: block; font-size: clamp(60px, 9.6vw, 150px); line-height: 0.86; letter-spacing: -0.025em; text-transform: uppercase; }
.h1-small { display: block; margin-top: 18px; font-family: var(--display); font-weight: 500; font-size: clamp(22px, 2.5vw, 38px); letter-spacing: 0.12em; text-transform: uppercase; color: var(--on-navy); }
.hero-when { display: flex; align-items: center; flex-wrap: wrap; margin-top: 30px; font-family: var(--display); font-weight: 600; font-size: clamp(24px, 2.6vw, 36px); letter-spacing: 0.08em; text-transform: uppercase; }
.hero-when p { margin: 0; }
.hero-when .hero-city::before { content: ""; display: inline-block; width: 0.5em; height: 0.5em; margin: 0 0.5em; background: var(--amber); clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); vertical-align: 0.1em; }
.kicker.has-star::before { content: ""; display: inline-block; width: 0.8em; height: 0.8em; margin-right: 0.55em; background: currentColor; vertical-align: -0.04em; clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); }
.hero-where { margin-top: 2px; color: var(--on-navy); font-size: 17px; }
.hero-pitch { margin-top: 24px; font-size: clamp(19px, 1.7vw, 23px); line-height: 1.4; }
.hero-art { position: relative; min-height: 420px; background: #EBCB8E; }
.hero-photo, .hero-photo img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.hero-photo img { object-fit: cover; object-position: 66% 58%; filter: grayscale(1) contrast(1.1) brightness(1.08); mix-blend-mode: multiply; }
.hero-art::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(20, 48, 90, 0.35) 0%, rgba(20, 48, 90, 0) 28%); }
.hero-logo { position: absolute; z-index: 2; top: 50%; left: 50%; width: min(32vw, 430px); transform: translate(-50%, -50%); filter: drop-shadow(0 14px 30px rgba(20, 48, 90, 0.35)); }

/* From dirt to data center: statement and the project map */
.statement { background: var(--sand); padding-block: clamp(80px, 11vw, 150px); }
.statement-grid { display: flex; flex-wrap: nowrap; gap: clamp(32px, 5vw, 80px); align-items: center; }
.statement-copy { display: flex; flex-direction: column; gap: 28px; }
.fact { display: flex; align-items: center; gap: 22px; padding-top: 24px; border-top: 3px solid var(--navy); }
.fact .fact-number { font-family: var(--slab); font-weight: 600; font-size: clamp(60px, 7vw, 96px); line-height: 0.9; color: var(--red); }
.fact .fact-text { max-width: 28ch; font-size: 16px; color: var(--ink-soft); line-height: 1.35; }
.txmap { padding-right: 24px; }
.txmap-svg { display: block; width: 100%; height: auto; overflow: visible; }
.txmap figcaption { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 22px; margin-top: 14px; font-family: var(--display); font-weight: 600; font-size: 15px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--navy); }
.key { display: inline-block; width: 12px; height: 12px; margin-right: 8px; vertical-align: -1px; }
.key-dot { border-radius: 50%; background: var(--red); }
.key-star { width: 15px; height: 15px; background: var(--navy); clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); }
.map-shape { fill: rgba(20, 48, 90, 0.1); stroke: var(--navy); stroke-width: 3.5; stroke-linejoin: round; }
.map-ring { fill: none; stroke: var(--red); stroke-opacity: 0.4; stroke-width: 2; }
.map-ring-2 { stroke-opacity: 0.2; }
.map-route { fill: none; stroke: var(--red); stroke-width: 2.6; stroke-dasharray: 2 8; stroke-linecap: round; }
.map-dot { fill: var(--red); stroke: var(--sand); stroke-width: 3; }
.map-host { fill: var(--navy); stroke: var(--sand); stroke-width: 2; }
.map-label { font-family: var(--display); font-weight: 600; font-size: 26px; letter-spacing: 0.1em; text-transform: uppercase; fill: var(--navy); paint-order: stroke; stroke: var(--sand); stroke-width: 6px; stroke-linejoin: round; }
.map-label-host { font-size: 32px; fill: var(--red); }

/* Who should be there: a rodeo-poster lineup on red, every name led by a star */
.lineup { position: relative; background: var(--red); color: var(--cream); padding-block: clamp(90px, 11vw, 150px); }
.lineup .kicker { margin-bottom: 30px; }
.lineup-big, .lineup-small { display: flex; flex-wrap: wrap; align-items: baseline; font-family: var(--display); font-weight: 600; text-transform: uppercase; }
.lineup-big { gap: 0 0.5em; font-size: clamp(40px, 7.4vw, 116px); line-height: 1; letter-spacing: 0.005em; }
.lineup-small { gap: 0 0.9em; font-size: clamp(22px, 3.1vw, 46px); line-height: 1.28; letter-spacing: 0.02em; }
.lineup-big li, .lineup-small li { white-space: nowrap; }
.lineup-big li::before, .lineup-small li::before { content: ""; display: inline-block; width: 0.42em; height: 0.42em; margin-right: 0.3em; background: var(--navy); clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); vertical-align: 0.1em; }
.lineup-mid { margin-block: 38px 24px; font-family: var(--slab); font-weight: 500; font-size: clamp(22px, 2.8vw, 38px); color: var(--cream); }

/* Why attend: three giant lines */
.why { background: var(--cream); padding-block: clamp(70px, 9vw, 120px); }
.why .kicker { margin-bottom: 32px; }
.why-line { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 0.9fr); gap: 40px; align-items: baseline; padding-block: 40px; border-top: 3px solid var(--navy); }
.why-line:last-child { border-bottom: 3px solid var(--navy); }
.why-line p { color: var(--ink-soft); font-size: 19px; }

/* Advisory Council */
.council-band { position: relative; overflow: hidden; isolation: isolate; background: var(--navy); color: #fff; padding-block: clamp(70px, 9vw, 120px); }
.council-band::before { content: ""; position: absolute; z-index: -1; right: -9%; top: -30%; width: min(60vh, 560px); aspect-ratio: 1; background: rgba(255, 255, 255, 0.045); clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); pointer-events: none; }
.council-head { display: flex; flex-direction: column; align-items: center; gap: 14px; margin-bottom: 56px; text-align: center; }
.council-band .kicker { color: var(--amber); }
.council-band .giant { color: #fff; }
.council-sub { font-size: 19px; color: var(--on-navy); }
.council { display: flex; flex-wrap: wrap; justify-content: center; gap: 44px 24px; }
.member { width: calc((100% - (var(--per-row, 5) - 1) * 24px) / var(--per-row, 5)); display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px; }
.member-photo { width: min(100%, 150px); aspect-ratio: 1; margin-bottom: 12px; border-radius: 50%; overflow: hidden; background: var(--navy-deep); box-shadow: 0 0 0 3px var(--amber); display: grid; place-items: center; }
.member-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.member-photo .initials { font-family: var(--display); font-weight: 500; font-size: 42px; color: var(--on-navy); letter-spacing: 0.04em; }
.member-name { font-family: var(--display); font-weight: 500; font-size: 22px; line-height: 1.1; letter-spacing: 0.02em; }
.member-title { font-size: 14px; font-style: italic; line-height: 1.3; color: var(--on-navy); }
.member-company { font-size: 15px; font-style: italic; line-height: 1.3; }

/* Agenda */
.agenda { background-color: var(--sand); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 744 706'%3E%3Cpath d='M219.8 32.4 L381.4 32.4 L381.4 152.7 L423.9 174.4 L482.4 179.3 L530.2 193.6 L572.7 201.0 L631.2 194.8 L674.7 209.7 L698.1 215.3 L698.1 248.2 L698.1 312.0 L724.2 362.2 L716.2 410.6 L708.8 454.6 L673.7 466.4 L657.7 478.8 L599.3 522.2 L551.4 553.2 L524.9 596.6 L519.6 633.8 L532.8 685.9 L506.3 682.2 L471.7 677.2 L429.2 658.6 L410.6 621.4 L408.0 584.2 L365.4 540.8 L344.2 491.2 L307.0 450.9 L259.1 444.7 L237.9 454.0 L216.6 497.4 L179.4 478.8 L142.2 454.0 L121.0 404.4 L115.7 392.0 L62.5 348.6 L35.9 326.9 L29.6 311.4 L218.8 311.4 L219.8 32.4Z' fill='%2314305A' fill-opacity='0.05' stroke='%2314305A' stroke-opacity='0.16' stroke-width='3' stroke-linejoin='round'/%3E%3Ccircle cx='270.8' cy='311.4' r='14' fill='none' stroke='%23CE1126' stroke-opacity='0.4' stroke-width='2.5'/%3E%3Ccircle cx='270.8' cy='311.4' r='5' fill='%23CE1126' fill-opacity='0.45'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-size: min(760px, 70%) auto; background-position: right -40px top 40px; padding-block: clamp(80px, 10vw, 140px); }
.agenda-note { margin: 18px 0 56px; color: var(--ink-soft); }
.day-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px 64px; align-items: start; }
.day-title { font-family: var(--slab); font-weight: 600; font-size: clamp(28px, 3vw, 40px); line-height: 1; color: var(--navy); padding-bottom: 14px; border-bottom: 3px solid var(--navy); }
.wp-block-table.day { margin: 0; }
.wp-block-table.day table { width: 100%; table-layout: auto; border-collapse: collapse; border: 0; }
.wp-block-table.day td { vertical-align: top; padding: 14px 0; border: 0; border-bottom: 1px solid rgba(20, 48, 90, 0.22); }
.wp-block-table.day td:first-child { width: 170px; padding-right: 16px; font-family: var(--display); font-weight: 600; font-size: 20px; color: var(--red); white-space: nowrap; font-variant-numeric: tabular-nums; }
.wp-block-table.day td:last-child { width: 130px; padding-left: 12px; font-size: 13px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-soft); }
.setup-line { margin-top: 36px; max-width: 72ch; font-size: 16px; color: var(--ink-soft); }
.setup-line strong { color: var(--navy); font-weight: 600; }
.sessions { margin-top: 40px; border-top: 3px solid var(--navy); }
.sessions summary { display: flex; align-items: center; justify-content: space-between; padding-block: 22px; cursor: pointer; font-family: var(--display); font-weight: 600; font-size: clamp(22px, 2.4vw, 30px); letter-spacing: 0.1em; text-transform: uppercase; color: var(--navy); list-style: none; }
.sessions summary::-webkit-details-marker { display: none; }
@media (min-width: 821px) { .sessions summary { padding-right: 52px; } }
.sessions summary::after { content: ""; flex: none; width: 44px; height: 44px; border-radius: 50%; background: linear-gradient(#fff, #fff) center / 18px 3px no-repeat, linear-gradient(#fff, #fff) center / 3px 18px no-repeat, var(--navy); transition: transform 0.25s; }
.sessions[open] summary::after { transform: rotate(45deg); }
.sessions-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 56px; padding-bottom: 8px; }
.sessions-grid .session { padding: 18px 0 20px; border-top: 1px solid rgba(20, 48, 90, 0.22); }
.sessions-grid h3 { margin-bottom: 6px; font-family: var(--slab); font-weight: 600; font-size: 22px; line-height: 1.15; color: var(--navy); }
.sessions-grid p { font-size: 15.5px; color: var(--ink-soft); }

/* Sponsors */
.sponsor { background: var(--cream); padding-block: clamp(80px, 10vw, 140px); }
.sponsor-copy { display: flex; flex-direction: column; gap: 26px; max-width: 1000px; }
.sponsor-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px; }
.hint { font-size: 15px; color: var(--ink-soft); }

/* Notify */
.notify { background-color: var(--navy); background-image: radial-gradient(rgba(255, 255, 255, 0.5) 1px, #0000 1.6px), radial-gradient(rgba(255, 255, 255, 0.3) 1px, #0000 1.6px); background-size: 170px 170px, 260px 260px; background-position: 20px 40px, 130px 110px; color: #fff; padding-block: clamp(80px, 10vw, 130px); }
.notify .giant { color: #fff; }
.notify .giant em { color: var(--amber); }
.notify-grid { display: flex; flex-wrap: nowrap; gap: clamp(32px, 5vw, 72px); align-items: center; }
.notify-form-wrap { display: flex; flex-direction: column; gap: 22px; }
.notify .statement-text { color: var(--on-navy); }
.notify-form { display: flex; flex-direction: column; gap: 14px; }
.notify-form .row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; gap: 12px; align-items: stretch; }
.notify-form .field { display: flex; flex-direction: column; min-width: 0; }
.notify-form input[type="text"], .notify-form input[type="email"] { width: 100%; padding: 15px 22px; border: 2px solid transparent; border-radius: 999px; background: #fff; color: var(--ink); font: inherit; font-size: 16px; }
.notify-form input:focus { border-color: var(--amber); outline: none; }
.notify-form .btn { white-space: nowrap; }
.notify-form .hint { color: var(--on-navy); }
.notify-form .hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.notice { padding: 12px 18px; border-radius: 12px; font-weight: 600; }
.notice-ok { background: #E7F3EA; color: #1D5A2C; }
.notice-error { background: #FDEDEC; color: var(--red-deep); }

/* Footer and plain pages */
footer.wp-block-template-part { background: var(--navy-deep); color: var(--on-navy); padding-block: 40px; font-size: 15px; }
footer .footer-inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; }
footer a { color: #fff; }
footer p { margin: 0; }
.page-content { max-width: 760px; padding-block: 80px; }
.page-content h1 { font-family: var(--slab); font-size: clamp(36px, 5vw, 56px); color: var(--navy); margin-bottom: 24px; }
.page-content p + p { margin-top: 1em; }

/* Sticky notify tab and slide-out form */
.notify-tab { position: fixed; right: 0; top: 50%; z-index: 60; transform: translateY(-50%); writing-mode: vertical-rl; display: flex; align-items: center; gap: 10px; padding: 20px 13px; border: 2px solid var(--cream); border-right: 0; border-radius: 12px 0 0 12px; background: var(--red); color: #fff; font-family: var(--display); font-weight: 600; font-size: 18px; letter-spacing: 0.18em; text-transform: uppercase; cursor: pointer; transition: transform 0.3s ease, background 0.2s, opacity 0.3s; }
.notify-tab .star { margin: 0; width: 1em; height: 1em; background: var(--amber); }
.notify-tab:hover { background: var(--red-deep); transform: translateY(-50%) translateX(-5px); }
.notify-tab.is-hidden { opacity: 0; pointer-events: none; transform: translateY(-50%) translateX(100%); }
.drawer-scrim { position: fixed; inset: 0; z-index: 70; background: rgba(13, 33, 66, 0.55); opacity: 0; visibility: hidden; transition: opacity 0.3s, visibility 0.3s; }
.notify-drawer { position: fixed; top: 0; right: 0; bottom: 0; z-index: 71; width: min(440px, 100%); display: flex; flex-direction: column; gap: 14px; padding: 64px 32px 32px; overflow-y: auto; background: var(--navy); color: #fff; transform: translateX(100%); visibility: hidden; transition: transform 0.4s cubic-bezier(0.2, 0.7, 0.2, 1), visibility 0.4s; }
.is-drawer-open .drawer-scrim { opacity: 1; visibility: visible; }
.is-drawer-open .notify-drawer { transform: none; visibility: visible; }
.notify-drawer .kicker { color: var(--amber); }
.notify-drawer h2 { font-family: var(--slab); font-weight: 600; font-size: 46px; line-height: 1; color: #fff; }
.notify-drawer p { color: var(--on-navy); }
.drawer-close { position: absolute; top: 14px; right: 14px; width: 44px; height: 44px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, 0.4); background: transparent; color: #fff; font-size: 28px; line-height: 1; cursor: pointer; }
.drawer-close:hover { background: rgba(255, 255, 255, 0.12); }
.notify-form-compact .row { grid-template-columns: minmax(0, 1fr); }
.notify-form-compact .btn { width: 100%; text-align: center; }

/* Motion: hero text rises in; blocks ease up as they arrive (only once the observer is confirmed working) */
.hero-copy > * { animation: rise 0.9s cubic-bezier(0.2, 0.7, 0.2, 1) backwards; }
.hero-copy > :nth-child(2) { animation-delay: 0.08s; }
.hero-copy > :nth-child(3) { animation-delay: 0.18s; }
.hero-copy > :nth-child(4) { animation-delay: 0.26s; }
.hero-copy > :nth-child(5) { animation-delay: 0.34s; }
@keyframes rise { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
.rv { transition: opacity 0.8s ease, transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1); transition-delay: calc(var(--i, 0) * 80ms); }
.rv-on .rv:not(.rv-in) { opacity: 0; transform: translateY(30px); }

@media (max-width: 1000px) {
  .hero { flex-wrap: wrap; min-height: 0; }
  .hero > .wp-block-column, .statement-grid > .wp-block-column, .notify-grid > .wp-block-column { flex-basis: 100% !important; }
  .statement-grid, .notify-grid { flex-wrap: wrap; }
  .hero-copy { padding: 56px 20px 48px; }
  .hero-art { min-height: 380px; }
  .hero-logo { width: min(62vw, 300px); }
  .hero-art::after { background: linear-gradient(180deg, rgba(20, 48, 90, 0.35) 0%, rgba(20, 48, 90, 0) 28%); }
  .why-line { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .member { width: calc((100% - 48px) / 3); }
  .day-grid, .sessions-grid { grid-template-columns: minmax(0, 1fr); }
  .agenda { background-size: 110% auto; background-position: center top 160px; }
}
@media (max-width: 820px) {
  .notify-tab { writing-mode: horizontal-tb; top: auto; bottom: 18px; right: 16px; transform: none; border-radius: 999px; padding: 14px 22px; }
  .notify-tab:hover { transform: none; }
  .notify-tab.is-hidden { transform: translateY(24px); }
  .notify-form .row { grid-template-columns: minmax(0, 1fr); }
  .notify-form .btn { width: 100%; text-align: center; }
  .wp-block-table.day td:first-child { width: 110px; white-space: normal; }
  .wp-block-table.day td:last-child { width: 90px; }
}
@media (max-width: 700px) {
  .lineup-big { font-size: 34px; }
  .lineup-big li, .lineup-small li { white-space: normal; padding-left: 0.72em; text-indent: -0.72em; }
  .lineup-small { gap: 0 0.7em; font-size: 22px; }
}
@media (max-width: 640px) {
  .member { width: calc((100% - 16px) / 2); }
  .council { gap: 32px 16px; }
  .hero-when .hero-city::before { margin: 0 0.3em; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-copy > * { animation: none; }
  .rv, .notify-drawer, .notify-tab, .drawer-scrim, .btn { transition: none; }
}

/* ==========================================================================
   Block compatibility: WordPress adds its own margins and layout rules to blocks.
   These keep the blocks looking exactly like the design.
   ========================================================================== */
.wp-site-blocks { padding: 0; }
.wp-site-blocks > * { margin-block-start: 0; }
:where(.wp-block-group, .wp-block-columns, .wp-block-column, .wp-block-buttons, .wp-block-html, figure) { margin: 0; }
:where(.wp-block-columns) { margin-bottom: 0 !important; }
:where(ul.wp-block-list, ol.wp-block-list) { padding: 0; margin: 0; list-style: none; }
:where(.wp-block-heading, .wp-block-paragraph, p) { margin: 0; }
.wp-block-button.btn { display: block; background: none; padding: 0; border-radius: 999px; }
.wp-block-button.btn .wp-block-button__link { display: inline-block; padding: 16px 34px; border-radius: 999px; font-family: var(--display); font-weight: 600; font-size: 20px; letter-spacing: 0.1em; text-transform: uppercase; line-height: 1.2; text-decoration: none; transition: background 0.2s, transform 0.2s; }
.wp-block-button.btn-red .wp-block-button__link { background: var(--red); color: #fff; }
.wp-block-button.btn-red .wp-block-button__link:hover { background: var(--red-deep); color: #fff; transform: translateY(-2px); }
.sponsor-copy .wp-block-buttons { justify-content: flex-start; }
.page-content { max-width: 760px; margin-inline: auto; padding: 80px 20px; }
.page-content .wp-block-post-title { font-family: var(--slab); font-size: clamp(36px, 5vw, 56px); color: var(--navy); margin-bottom: 24px; }
.page-content p + p { margin-top: 1em; }
.wp-block-details summary { list-style: none; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.notify-drawer .wp-block-heading { font-family: var(--slab); font-weight: 600; font-size: 46px; line-height: 1; color: #fff; }
.notify-drawer .wp-block-html { margin: 0; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 56px; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start; gap: 6px; width: 100%; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; }
.wp-block-navigation__responsive-container.is-menu-open a.wp-block-navigation-item__content { font-size: 28px; padding-block: 12px; display: block; }
.wp-block-navigation__responsive-container.is-menu-open .nav-cta { width: auto; margin-top: 10px; }
.wp-block-navigation__responsive-container.is-menu-open .nav-cta > a.wp-block-navigation-item__content { display: inline-block; font-size: 22px; }
.wp-block-navigation__responsive-container.is-menu-open { background-color: var(--sand) !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { justify-content: flex-start !important; align-items: flex-start !important; text-align: left; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { justify-content: flex-start !important; padding-left: 20px; }
.wp-block-navigation__responsive-container.is-menu-open .nav-cta { margin-left: 0 !important; }
