/**
 * Home 4 inner pages: event detail, news detail, community, and every plugin
 * page (Ultimate Member, WooCommerce, The Events Calendar).
 *
 * Loaded after home4.css, so the masthead, footer, cards (.event-card,
 * .story-card) and buttons all come from there. This file adds the page bodies.
 */

/* The masthead is absolutely positioned, so the page starts below it.
   --h4-offset is its height at the current width, set in home4.css. */
.inner-main{padding-top:var(--h4-offset,111px);background:#fbfcff}

.placeholder-note{background:#fff7e0;border-bottom:1px solid #f0dca4;color:#5f4a0e;font-size:.8rem}
.placeholder-note .shell{display:flex;align-items:center;gap:12px;padding:9px 0}
.placeholder-note b{flex:none;padding:3px 8px;background:#5f4a0e;color:#fff7e0;font-size:.6rem;letter-spacing:.12em;text-transform:uppercase}

.shell.narrow{width:min(820px,calc(100% - 48px))}
@media(max-width:760px){.shell.narrow{width:calc(100% - 32px)}}

.crumbs{display:flex;flex-wrap:wrap;gap:8px;margin:0;font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.crumbs a:hover{color:var(--blue)}
.crumbs span[aria-hidden]{color:#b5bcc8}

.badge{display:inline-block;padding:6px 10px;background:var(--red);color:#fff;font-size:.62rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.badge.outline{background:transparent;color:var(--blue);box-shadow:inset 0 0 0 1px #bcd0ea}

.share-row{display:flex;align-items:center;gap:8px}
.share-row>span{margin-right:4px;font-size:.66rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.share-row a{width:36px;height:36px;display:grid;place-content:center;border:1px solid #cfd8e5;border-radius:50%;font-size:.62rem;font-weight:800;color:var(--ink)}
.share-row a:hover{background:var(--blue);border-color:var(--blue);color:#fff}

.page-block+.page-block{margin-top:56px;padding-top:48px;border-top:1px solid var(--line)}
.page-block>.overline{color:var(--red)}
.page-block h2{margin:8px 0 18px;font:800 clamp(1.7rem,2.6vw,2.3rem)/1.05 var(--km-display);letter-spacing:-.04em;color:var(--ink)}
.page-block>p{margin:0 0 16px;font-size:1.02rem;line-height:1.75;color:#3e4654}

.related{padding:80px 0;background:#f4f8fd}
.related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
@media(max-width:980px){.related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.related-grid>:nth-child(3){display:none}}
@media(max-width:600px){.related-grid{grid-template-columns:1fr}.related-grid>:nth-child(3){display:block}}

/* ---------- Event detail ---------- */

.ev-hero{padding:44px 0 72px;background:linear-gradient(135deg,#fff 0%,#eef5ff 60%,#fff1f2 100%);border-bottom:1px solid #dce8f6}
.ev-hero-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:72px;align-items:center}
.ev-badges{display:flex;flex-wrap:wrap;gap:8px;margin:28px 0 16px}
.ev-hero h1{margin:0 0 18px;font:800 clamp(2.8rem,5.4vw,5rem)/.94 var(--km-display);letter-spacing:-.055em;color:var(--blue)}
.ev-hero h1 em{display:block;font-style:normal;color:var(--red)}
.ev-lede{max-width:600px;margin:0 0 30px;font-size:1.1rem;line-height:1.7;color:#3e4654}
.ev-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px;max-width:640px;margin:0 0 32px;border-top:1px solid #cfdcee}
.ev-facts div{padding:14px 0;border-bottom:1px solid #cfdcee}
.ev-facts dt{font-size:.62rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}
.ev-facts dd{margin:4px 0 0;font:700 1.02rem/1.35 var(--km-display);color:var(--ink)}
.ev-hero .hero-actions .button.ghost{border-color:#9fb6d6;color:var(--blue)}
.ev-hero .hero-actions .button.ghost:hover{background:var(--blue);border-color:var(--blue);color:#fff}
.ev-poster{position:relative;isolation:isolate;margin-right:18px}
.ev-poster:before{content:'';position:absolute;inset:18px -18px -18px 18px;z-index:-1;border:3px solid var(--red)}
.ev-poster img{aspect-ratio:724/1024;object-fit:cover;box-shadow:0 30px 60px rgba(0,71,160,.22)}

.ev-body{padding:72px 0 90px}
.ev-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:64px;align-items:start}

.ev-highlights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:26px 0 0;padding:0;list-style:none}
.ev-highlights li{padding:22px;background:#fff;border:1px solid var(--line);border-top:4px solid var(--blue)}
.ev-highlights b{display:block;margin-bottom:6px;font:800 1.02rem/1.25 var(--km-display)}
.ev-highlights span{font-size:.9rem;line-height:1.55;color:var(--muted)}

.table-wrap{overflow-x:auto}
.ev-schedule{width:100%;min-width:520px;border-collapse:collapse;background:#fff;border:1px solid var(--line)}
.ev-schedule th{padding:12px 18px;background:#f4f8fd;text-align:left;font-size:.62rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}
.ev-schedule td{padding:16px 18px;border-top:1px solid var(--line);font-size:.95rem}
.ev-schedule td:first-child{font:800 1rem var(--km-display)}
.ev-schedule .badge{background:#eef2f7;color:#4a5261}

.ev-venue{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:#fff;border:1px solid var(--line)}
.ev-venue-map{position:relative;min-height:260px;background:#e8eef6}
.ev-venue-map img{position:absolute;inset:0;height:100%;object-fit:cover;filter:saturate(.85)}
.ev-venue-map span{position:absolute;left:16px;bottom:16px;padding:6px 10px;background:#fff;font-size:.62rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;box-shadow:0 6px 18px rgba(4,16,35,.18)}
.ev-venue-copy{padding:28px}
.ev-venue-copy h3{margin:0 0 8px;font:800 1.3rem/1.2 var(--km-display)}
.ev-venue-copy p{margin:0 0 14px;color:var(--muted)}
.ev-venue-copy ul{margin:0;padding:0;list-style:none;display:grid;gap:8px;font-size:.92rem}
.ev-venue-copy li b{display:inline-block;min-width:90px;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}

.ev-gallery{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}
.ev-gallery img{height:260px;object-fit:cover;object-position:center 28%}

.ticket-card{position:sticky;top:104px;padding:28px;background:#fff;border:1px solid var(--line);border-top:5px solid var(--red);box-shadow:0 20px 50px rgba(0,71,160,.1)}
body.admin-bar .ticket-card{top:136px}
.ticket-card h2{margin:6px 0 4px;font:800 1.5rem/1.1 var(--km-display);letter-spacing:-.03em}
.ticket-card>.overline{color:var(--red)}
.ticket-price{margin:0 0 18px;font-size:.92rem;color:var(--muted)}
.ticket-price b{font:800 1.9rem/1 var(--km-display);color:var(--ink)}
.ticket-meta{margin:0 0 22px;padding:0;list-style:none;border-top:1px solid var(--line)}
.ticket-meta li{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line);font-size:.9rem}
.ticket-meta li span{color:var(--muted)}
.ticket-meta li b{text-align:right}
.ticket-card .button{width:100%;border:0;cursor:pointer}
.ticket-card .button+.button{margin-top:10px}
.button.outline{background:#fff;color:var(--blue);box-shadow:inset 0 0 0 1px #bcd0ea}
.button.outline:disabled{opacity:.55;cursor:not-allowed}
.ticket-note{margin:16px 0 18px;font-size:.78rem;line-height:1.5;color:var(--muted)}
.ticket-card .share-row{padding-top:16px;border-top:1px solid var(--line)}

@media(max-width:980px){
	.ev-hero-grid{grid-template-columns:minmax(0,1fr) 260px;gap:40px}
	.ev-layout{grid-template-columns:1fr;gap:48px}
	.ticket-card{position:static}
}
@media(max-width:760px){
	.ev-hero{padding:32px 0 52px}
	.ev-hero-grid{grid-template-columns:1fr}
	.ev-poster{order:-1;width:min(260px,70%)}
	.ev-highlights{grid-template-columns:1fr}
	.ev-venue{grid-template-columns:1fr}
	.ev-gallery{grid-template-columns:1fr 1fr}
	.ev-gallery img:first-child{grid-column:1/-1}
	.ev-gallery img{height:200px}
}
@media(max-width:520px){.ev-facts{grid-template-columns:1fr}}

/* ---------- News detail ---------- */

.art-head{padding:52px 0 36px;background:#fff}
.art-head .badge{margin-top:26px}
.art-head h1{margin:16px 0 18px;font:800 clamp(2.4rem,5vw,4.1rem)/1 var(--km-display);letter-spacing:-.05em;color:var(--ink)}
.art-dek{margin:0;font-size:1.2rem;line-height:1.6;color:#3e4654}
.art-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-top:30px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.art-author{display:flex;align-items:center;gap:12px;font-size:.88rem}
.art-author i{width:42px;height:42px;display:grid;place-content:center;border-radius:50%;background:var(--blue);color:#fff;font:800 1rem var(--km-display);font-style:normal}
.art-author b{display:block}
.art-author small{color:var(--muted)}

.art-figure{width:min(1240px,calc(100% - 48px));margin:0 auto}
.art-figure img{aspect-ratio:21/9;object-fit:cover}
.art-figure figcaption,.art-body figcaption{margin-top:10px;font-size:.8rem;color:var(--muted)}

.art-body{padding:48px 0 72px;background:#fff}
.art-body p{margin:0 0 22px;font-size:1.12rem;line-height:1.85;color:#2c3340}
.art-body>.shell>p:first-child::first-letter{float:left;margin:8px 12px 0 0;font:800 4.6rem/.8 var(--km-display);color:var(--red)}
.art-body h2{margin:44px 0 14px;font:800 1.85rem/1.15 var(--km-display);letter-spacing:-.035em;color:var(--blue)}
.art-body blockquote{margin:40px 0;padding:4px 0 4px 26px;border-left:5px solid var(--red);font:700 1.55rem/1.35 var(--km-display);letter-spacing:-.02em;color:var(--ink)}
.art-body blockquote cite{display:block;margin-top:12px;font:600 .8rem var(--body);font-style:normal;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.art-body figure{margin:36px 0}
.art-body figure img{aspect-ratio:16/9;object-fit:cover}
.art-body ul{margin:0 0 22px;padding:0;list-style:none;display:grid;gap:10px}
.art-body ul li{position:relative;padding-left:26px;font-size:1.06rem;line-height:1.7;color:#2c3340}
.art-body ul li:before{content:'';position:absolute;left:0;top:.7em;width:12px;height:3px;background:var(--red)}
.art-tags{display:flex;flex-wrap:wrap;gap:8px;margin:40px 0 0;padding-top:24px;border-top:1px solid var(--line)}
.art-tags a{padding:7px 12px;background:#f1f5fb;font-size:.74rem;font-weight:700;color:var(--blue)}
.art-bio{display:grid;grid-template-columns:64px 1fr;gap:18px;margin-top:32px;padding:24px;background:#f4f8fd}
.art-bio i{width:64px;height:64px;display:grid;place-content:center;background:var(--blue);color:#fff;font:800 1.5rem var(--km-display);font-style:normal}
.art-bio b{font:800 1.05rem var(--km-display)}
.art-bio p{margin:4px 0 0;font-size:.92rem;line-height:1.6;color:var(--muted)}

@media(max-width:760px){
	.art-head{padding:32px 0 28px}
	.art-dek{font-size:1.05rem}
	.art-figure{width:100%}
	.art-figure img{aspect-ratio:4/3}
	.art-figure figcaption{padding:0 16px}
	.art-body p{font-size:1.04rem}
	.art-body blockquote{font-size:1.3rem}
}

/* ---------- Community ---------- */

.cm-hero{position:relative;isolation:isolate;overflow:hidden;padding:84px 0 150px;color:#fff}
.cm-hero>img{position:absolute;inset:0;z-index:-2;height:100%;object-fit:cover}
.cm-hero:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(0,71,160,.94) 0%,rgba(0,71,160,.72) 55%,rgba(205,46,58,.45))}
.cm-hero .crumbs{color:#cfe0f5}
.cm-hero .kicker{margin-top:34px}
.cm-hero h1{max-width:820px;margin:18px 0;font:800 clamp(3rem,6.2vw,5.6rem)/.92 var(--km-display);letter-spacing:-.06em}
.cm-hero p{max-width:600px;margin:0 0 32px;font-size:1.12rem;color:#e6eef9}

.cm-stats{position:relative;z-index:2;display:grid;grid-template-columns:repeat(var(--stat-cols,4),minmax(0,1fr));margin-top:-70px;background:#fff;box-shadow:0 24px 60px rgba(0,71,160,.14)}
.cm-stats div{padding:28px 30px;border-right:1px solid var(--line)}
.cm-stats div:last-child{border-right:0}
.cm-stats b{display:block;font:800 2.2rem/1 var(--km-display);color:var(--red)}
.cm-stats span{display:block;margin-top:8px;font-size:.7rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--blue)}

.cm-ways{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.way-card{display:flex;flex-direction:column;align-items:flex-start;padding:30px 26px;background:#fff;border:1px solid var(--line);border-top:4px solid var(--blue);transition:.2s}
.way-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(0,71,160,.12)}
.way-card:nth-child(even){border-top-color:var(--red)}
.way-card i{font:800 2.4rem/1 var(--km-display);font-style:normal;color:#dbe6f4}
.way-card h3{margin:18px 0 8px;font:800 1.25rem/1.2 var(--km-display)}
.way-card p{margin:0 0 18px;font-size:.92rem;line-height:1.6;color:var(--muted)}
.way-card .inline-link{margin-top:auto}

.cm-meetups{margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}
.meetup{display:grid;grid-template-columns:78px minmax(0,1fr) auto;align-items:center;gap:26px;padding:22px 0;border-bottom:1px solid var(--line)}
.meetup .date{width:78px;height:78px;background:#fff}
.meetup .date b{font-size:1.5rem}
.meetup small{font-size:.62rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}
.meetup h3{margin:4px 0;font:800 1.2rem/1.2 var(--km-display)}
.meetup p{margin:0;font-size:.9rem;color:var(--muted)}
.meetup .button{min-height:44px;border:0;cursor:pointer}

.cm-voices{padding:88px 0;background:var(--blue);color:#fff}
.cm-voices .section-head .overline{color:#b8d5f6}
.voice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.voice-grid figure{margin:0;padding:30px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18)}
.voice-grid blockquote{margin:0 0 20px;font:600 1.15rem/1.5 var(--km-display)}
.voice-grid blockquote:before{content:'\201C';display:block;height:36px;font:800 4rem/1 var(--km-display);color:var(--red)}
.voice-grid figcaption{font-size:.78rem;color:#b8d5f6}

.cm-wall{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:220px;gap:12px}
.cm-wall img{height:100%;object-fit:cover}
.cm-wall img:first-child{grid-column:span 2;grid-row:span 2}

@media(max-width:980px){
	.cm-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
	.cm-stats div:nth-child(2){border-right:0}
	.cm-stats div:nth-child(-n+2){border-bottom:1px solid var(--line)}
	.cm-ways{grid-template-columns:repeat(2,minmax(0,1fr))}
	.voice-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
	.cm-hero{padding:48px 0 120px}
	.cm-stats div{padding:20px}
	.cm-stats b{font-size:1.7rem}
	.meetup{grid-template-columns:64px minmax(0,1fr);gap:16px}
	.meetup .date{width:64px;height:64px}
	.meetup .button{grid-column:2;justify-self:start}
	.cm-wall{grid-template-columns:1fr 1fr;grid-auto-rows:150px}
}
@media(max-width:520px){.cm-ways{grid-template-columns:1fr}}

/* ---------- Plugin pages ----------
   page.php and woocommerce.php wrap Ultimate Member, WooCommerce and The Events
   Calendar output in a title band and a content shell. The rules below only
   bring the plugins' controls onto the site palette; their layouts are their
   own. */

.page-hero{padding:40px 0 38px;background:linear-gradient(135deg,#fff 0%,#eef5ff 60%,#fff1f2 100%);border-bottom:1px solid #dce8f6}
.page-hero h1{margin:14px 0 0;font:800 clamp(2.2rem,4.4vw,3.8rem)/1 var(--km-display);letter-spacing:-.05em;color:var(--blue)}
.page-content{padding:56px 0 96px}
.page-content p a,.page-content li a:not(.button){color:var(--blue)}

/* home4.css sets img{width:100%} for its cards; plugin avatars and thumbnails
   carry their own sizes. */
.page-content .um img,.page-content .woocommerce-product-gallery img,.page-content .tribe-common img{width:auto;max-width:100%}

/* Ultimate Member */
.page-content .um input[type=submit].um-button,.page-content .um a.um-button{background:var(--red);border-radius:8px}
.page-content .um input[type=submit].um-button:hover,.page-content .um a.um-button:hover{background:#e53b48}
.page-content .um a.um-button.um-alt,.page-content .um input[type=submit].um-button.um-alt{background:#eef2f7;color:var(--ink)}
.page-content .um .um-field-label label{color:var(--blue)}

/* WooCommerce: its .button would otherwise pick up the Home 4 hero button. */
.page-content .woocommerce .button,.page-content .woocommerce button.button,.page-content .woocommerce a.button{display:inline-block;min-height:0;padding:12px 20px;border-radius:8px;background:var(--red);color:#fff;letter-spacing:.04em}
.page-content .woocommerce .button:hover{background:#e53b48;color:#fff}
.page-content .woocommerce-MyAccount-navigation ul{margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}
.page-content .woocommerce-MyAccount-navigation li a{display:block;padding:12px 0;border-bottom:1px solid var(--line);font-weight:700;color:var(--ink)}
.page-content .woocommerce-MyAccount-navigation li.is-active a{color:var(--red)}

/* ---------- Shared: lede, chips, post cards, pagination ---------- */

.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.page-lede{max-width:660px;margin:14px 0 0;font-size:1.08rem;line-height:1.7;color:#3e4654}

.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}
.chip{padding:8px 15px;border:1px solid #cfd8e5;border-radius:999px;background:#fff;font-size:.8rem;font-weight:700;color:var(--ink);transition:.15s}
.chip:hover{border-color:var(--blue);color:var(--blue)}
.chip.is-active{background:var(--blue);border-color:var(--blue);color:#fff}

.post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:44px 20px}
.post-card>a>div:first-child{height:240px;background:#0b1b33}
.post-card h3{transition:color .15s}
.post-card a:hover h3{color:var(--blue)}

.post-index{padding:56px 0 88px}
.news-lead{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);margin-bottom:60px;background:#fff;border:1px solid var(--line)}
.news-lead-image{position:relative;min-height:400px;overflow:hidden;background:#0b1b33}
.news-lead-image img{position:absolute;inset:0;height:100%;object-fit:cover;transition:transform .5s}
.news-lead:hover .news-lead-image img{transform:scale(1.03)}
.news-lead-image .badge{position:absolute;left:18px;top:18px}
.news-lead-copy{display:flex;flex-direction:column;align-items:flex-start;padding:46px 42px}
.news-lead-copy small{font-size:.66rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}
.news-lead-copy h2{margin:12px 0 14px;font:800 clamp(1.8rem,3vw,2.6rem)/1.08 var(--km-display);letter-spacing:-.04em}
.news-lead-copy h2 a:hover{color:var(--blue)}
.news-lead-copy p{margin:0 0 26px;font-size:1.02rem;line-height:1.7;color:var(--muted)}

.h4-pagination .nav-links{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:60px}
.h4-pagination .page-numbers{min-width:44px;height:44px;display:grid;place-content:center;padding:0 14px;background:#fff;border:1px solid var(--line);font-weight:700}
.h4-pagination a.page-numbers:hover{border-color:var(--blue);color:var(--blue)}
.h4-pagination .page-numbers.current{background:var(--blue);border-color:var(--blue);color:#fff}

.empty-note{margin:0;padding:40px;background:#fff;border:1px dashed #cfd8e5;text-align:center;color:var(--muted)}
.art-head a.badge{margin-top:26px}

@media(max-width:980px){
	.post-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
	.news-lead{grid-template-columns:1fr}
	.news-lead-image{min-height:320px}
}
@media(max-width:600px){
	.post-grid{grid-template-columns:1fr;gap:36px}
	.news-lead-image{min-height:240px}
	.news-lead-copy{padding:26px 22px}
	.post-index{padding:36px 0 64px}
}

/* ---------- About ---------- */

.ab-hero{padding:44px 0 84px;background:linear-gradient(135deg,#fff 0%,#eef5ff 60%,#fff1f2 100%);border-bottom:1px solid #dce8f6}
.ab-hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:72px;align-items:center}
.ab-hero .overline{display:block;margin-top:28px;color:var(--red)}
.ab-hero h1{margin:14px 0 4px;font:800 clamp(2.6rem,5vw,4.6rem)/.96 var(--km-display);letter-spacing:-.055em;color:var(--blue)}
.ab-hero .hero-actions{margin-top:30px}
.ab-hero .hero-actions .button.ghost{border-color:#9fb6d6;color:var(--blue)}
.ab-hero .hero-actions .button.ghost:hover{background:var(--blue);border-color:var(--blue);color:#fff}
.ab-collage{position:relative;padding:0 0 64px 64px}
.ab-collage img:first-child{aspect-ratio:4/3;object-fit:cover;box-shadow:0 30px 60px rgba(0,71,160,.2)}
.ab-collage img+img{position:absolute;left:0;bottom:0;width:46%;aspect-ratio:1;object-fit:cover;border:8px solid #fff;box-shadow:0 20px 40px rgba(4,16,35,.2)}

.ab-meaning{padding:92px 0;background:var(--blue);color:#fff;overflow:hidden}
.ab-meaning-grid{display:grid;grid-template-columns:auto minmax(0,1fr);gap:72px;align-items:center}
.ab-meaning b{font:800 clamp(6rem,15vw,12rem)/.9 var(--km-display);letter-spacing:-.02em;color:#fff}
.ab-meaning .overline{color:#b8d5f6}
.ab-meaning h2{margin:12px 0 18px;font:800 clamp(2rem,3.6vw,3.2rem)/1.05 var(--km-display);letter-spacing:-.045em}
.ab-meaning p{max-width:640px;margin:0;font-size:1.1rem;line-height:1.75;color:#dbe9fa}

.pillar-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.pillar-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);transition:.2s}
.pillar-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(0,71,160,.12)}
.pillar-card img{aspect-ratio:4/3;object-fit:cover}
.pillar-card>div{flex:1;display:flex;flex-direction:column;align-items:flex-start;padding:24px}
.pillar-card h3{margin:0 0 8px;font:800 1.25rem/1.2 var(--km-display)}
.pillar-card p{margin:0 0 20px;font-size:.92rem;line-height:1.6;color:var(--muted)}

.ab-timeline{display:grid;grid-template-columns:repeat(var(--tl-cols,6),minmax(0,1fr));margin:0;padding:0;list-style:none;border-top:3px solid var(--blue)}
.ab-timeline li{position:relative;padding:34px 18px 0 0}
.ab-timeline li:before{content:'';position:absolute;left:0;top:-10px;width:17px;height:17px;border-radius:50%;background:var(--red);box-shadow:0 0 0 4px #f4f8fd}
.ab-timeline li.is-next:before{background:#fff;border:3px solid var(--red)}
.ab-timeline b{font:800 1.9rem/1 var(--km-display);color:var(--red)}
.ab-timeline h3{margin:10px 0 6px;font:800 1.05rem/1.25 var(--km-display)}
.ab-timeline p{margin:0;font-size:.88rem;line-height:1.55;color:var(--muted)}

.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.team-card{padding:34px 26px;background:#fff;border:1px solid var(--line);text-align:center}
.team-card i{width:92px;height:92px;display:grid;place-content:center;margin:0 auto 18px;border-radius:50%;background:linear-gradient(135deg,var(--blue),#2c6fc4);color:#fff;font:800 1.5rem var(--km-display);font-style:normal}
.team-card h3{margin:0 0 4px;font:800 1.15rem var(--km-display)}
.team-card p{margin:0;font-size:.9rem;color:var(--muted)}
.team-card>img{width:92px;height:92px;margin:0 auto 18px;border-radius:50%;object-fit:cover}
.team-socials{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px}
.team-socials a{width:36px;height:36px;display:grid;place-content:center;border:1px solid var(--line);border-radius:50%;color:var(--blue);background:#fff;transition:background-color .2s,border-color .2s,color .2s}
.team-socials a:hover{background:var(--blue);border-color:var(--blue);color:#fff}
.team-socials svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.team-socials :is(.social-dot,.social-solid,path){fill:currentColor;stroke:none}
.team-socials .social-knockout{fill:#fff}
.team-socials a:hover .social-knockout{fill:var(--blue)}
.partners{margin-top:64px}
.partners .overline{color:var(--blue)}
.partner-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:18px}
.partner-row>*{height:92px;display:grid;place-content:center;background:#fff;border:1px dashed #cfd8e5;font-size:.7rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#9aa4b2}
.partner-row>.has-logo{padding:14px 22px;border-style:solid;border-color:var(--line)}
.partner-row img{width:auto;max-width:100%;max-height:60px;object-fit:contain}

@media(max-width:980px){
	.ab-hero-grid{grid-template-columns:1fr;gap:48px}
	.ab-collage{max-width:620px}
	.pillar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
	.ab-timeline{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:34px;border-top:0}
	.ab-timeline li{border-top:3px solid var(--blue)}
	.partner-row{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
	.ab-meaning{padding:64px 0}
	.ab-meaning-grid{grid-template-columns:1fr;gap:18px}
	.ab-meaning b{font-size:6rem}
	.team-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
	.ab-hero{padding:32px 0 56px}
	.ab-collage{padding:0 0 40px 34px}
	.pillar-grid{grid-template-columns:1fr}
	.ab-timeline{grid-template-columns:1fr;row-gap:0;padding-left:22px;border-left:3px solid var(--blue)}
	.ab-timeline li{padding:0 0 28px;border-top:0}
	.ab-timeline li:before{left:-32px;top:6px}
	.partner-row{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ---------- Contact ---------- */

.ct-body{padding:64px 0 92px}
.ct-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:48px;align-items:start}
.ct-cards{display:grid;gap:14px}
.ct-card{display:grid;grid-template-columns:50px minmax(0,1fr);gap:16px;padding:22px;background:#fff;border:1px solid var(--line)}
.ct-card>i,.ct-card__icon{width:50px;height:50px;display:grid;place-content:center;background:#eef4fc;color:var(--blue);font:800 1.05rem var(--km-display);font-style:normal}
/* An icon from Elementor's Icon Library (Contact Cards widget): Font Awesome <i> or inline SVG. */
.ct-card__icon>i{font-size:1.25rem;line-height:1}
.ct-card__icon>svg{width:1.25rem;height:1.25rem;fill:currentColor}
.ct-card small{display:block;font-size:.62rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.ct-card a,.ct-card b{display:inline-block;margin-top:4px;font:800 1.1rem/1.3 var(--km-display);color:var(--ink);word-break:break-word}
.ct-card a:hover{color:var(--blue)}
.ct-card p{margin:4px 0 0;font-size:.88rem;color:var(--muted)}

.ct-form{padding:38px;background:#fff;border-top:5px solid var(--red);border-radius:0 0 16px 16px;box-shadow:0 30px 70px rgba(4,16,35,.12)}
.ct-form h2{margin:0 0 6px;font:800 1.7rem/1.1 var(--km-display);letter-spacing:-.03em}
.ct-form>p{margin:0 0 24px;font-size:.9rem;color:var(--muted)}

/* Contact Form 7 fields on the site's form style. */
.wpcf7-form p{margin:0 0 16px}
.wpcf7-form label{display:block;font-size:.64rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}
.wpcf7-form-control-wrap{display:block;margin-top:6px}
.wpcf7-form input:not([type=submit]),.wpcf7-form select,.wpcf7-form textarea{width:100%;padding:12px 13px;border:1px solid #dde3ec;border-radius:8px;background:#f8fafd;color:var(--ink);font:400 .96rem var(--body);letter-spacing:0;text-transform:none;outline:0;transition:border-color .15s,box-shadow .15s,background-color .15s}
.wpcf7-form input:not([type=submit]):focus,.wpcf7-form select:focus,.wpcf7-form textarea:focus{background:#fff;border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,71,160,.13)}
.wpcf7-form textarea{min-height:150px;resize:vertical}
.wpcf7-form input[type=submit]{width:100%;min-height:52px;margin-top:4px;border:0;border-radius:8px;background:var(--red);color:#fff;font:800 .84rem var(--body);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .15s}
.wpcf7-form input[type=submit]:hover{background:#e53b48}
.wpcf7-form .wpcf7-not-valid{border-color:var(--red);background:#fff7f8}
.wpcf7-not-valid-tip{margin-top:5px;font-size:.8rem;font-weight:600;letter-spacing:0;text-transform:none;color:var(--red)}
.wpcf7 form .wpcf7-response-output{margin:14px 0 0;padding:12px 14px;border-radius:8px;font-size:.9rem}
.wpcf7-spinner{display:block;margin:12px auto 0}

.ct-topics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.ct-faq-grid{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:48px;align-items:start}
.ct-faq{border-top:1px solid var(--line)}
.ct-faq details{border-bottom:1px solid var(--line)}
.ct-faq summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;font:800 1.12rem/1.3 var(--km-display);cursor:pointer;list-style:none}
.ct-faq summary::-webkit-details-marker{display:none}
.ct-faq summary:after{content:'+';flex:none;font:500 1.6rem/1 var(--body);color:var(--red)}
.ct-faq details[open] summary:after{content:'\2013'}
.ct-faq summary:hover{color:var(--blue)}
.ct-faq details p{max-width:720px;margin:0 0 22px;line-height:1.7;color:#3e4654}

.ct-map{position:relative;height:340px;overflow:hidden;background:#e8eef6}
.ct-map img{position:absolute;inset:0;height:100%;object-fit:cover;filter:saturate(.85)}
.ct-map .shell{position:relative;height:100%;display:flex;align-items:flex-end;padding-bottom:28px}
.ct-map span{padding:10px 14px;background:#fff;font-size:.7rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;box-shadow:0 10px 24px rgba(4,16,35,.18)}

@media(max-width:980px){
	.ct-grid{grid-template-columns:1fr}
	.ct-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
	.ct-topics{grid-template-columns:repeat(2,minmax(0,1fr))}
	.ct-faq-grid{grid-template-columns:1fr;gap:12px}
}
@media(max-width:600px){
	.ct-body{padding:36px 0 64px}
	.ct-cards,.ct-topics{grid-template-columns:1fr}
	.ct-form{padding:26px 20px}
	.ct-map{height:240px}
}

/* ---------- K-Culture ---------- */

.kc-hero{position:relative;isolation:isolate;overflow:hidden;padding:84px 0 110px;color:#fff}
.kc-hero>img{position:absolute;inset:0;z-index:-2;height:100%;object-fit:cover}
.kc-hero:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(0,40,92,.94) 0%,rgba(0,71,160,.74) 52%,rgba(205,46,58,.35))}
.kc-hero .crumbs{color:#cfe0f5}
.kc-hero .kicker{margin-top:34px}
.kc-hero h1{max-width:820px;margin:18px 0;font:800 clamp(3rem,6.2vw,5.6rem)/.92 var(--km-display);letter-spacing:-.06em;text-wrap:balance}
.kc-hero p{max-width:580px;margin:0 0 32px;font-size:1.12rem;color:#e6eef9}

.kc-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.kc-tile{height:400px;min-height:0}
.kc-tile h3{font-size:clamp(1.6rem,2.2vw,2.2rem)}
.kc-tile>div{left:24px;right:24px;bottom:24px}

.word-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.word-tile{padding:32px 28px;background:#fff;border:1px solid var(--line);border-top:4px solid var(--red)}
.word-tile:nth-child(2){border-top-color:var(--blue)}
.word-tile b{display:block;font:800 3.6rem/1 var(--km-display);color:var(--blue)}
.word-tile small{display:block;margin-top:12px;font-size:.7rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.word-tile h3{margin:6px 0 8px;font:800 1.3rem/1.2 var(--km-display)}
.word-tile p{margin:0;font-size:.94rem;line-height:1.6;color:var(--muted)}

@media(max-width:980px){
	.kc-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
	.kc-tile{height:320px}
	.word-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
	.kc-hero{padding:48px 0 72px}
	.kc-tiles{grid-template-columns:1fr}
	.kc-tile{height:260px}
}

/* ---------- 404 ---------- */

.err-page{padding:90px 0 110px;text-align:center;background:linear-gradient(135deg,#fff 0%,#eef5ff 60%,#fff1f2 100%)}
.err-page b{display:block;font:800 clamp(7rem,20vw,13rem)/.85 var(--km-display);letter-spacing:-.06em;color:var(--blue)}
.err-page h1{margin:22px 0 12px;font:800 clamp(2rem,4vw,3rem)/1.05 var(--km-display);letter-spacing:-.04em}
.err-page p{max-width:520px;margin:0 auto 30px;font-size:1.05rem;color:#3e4654}
.err-page .hero-actions{justify-content:center}

/* ---------- Member pages: register, log in, password reset ----------
   template-parts/home4/auth.php: a photograph panel with the membership pitch
   beside a form card. The form is Ultimate Member's own output; the rules
   under "Ultimate Member form" only restyle its fields and buttons, so they use
   !important where the plugin's stylesheet does. */

.auth-main{background:#f4f8fd}
/* Where the pinned panel sits: flush under the header as it is once the page
   scrolls. On desktop that header loses its 32px top line and is 79px (78px row +
   1px rule), not the 111px it is at the top of the page - pinning at 111px left a
   32px strip of page showing above the photograph. The compact header (1100px and
   below) has no top line, so it is the same height either way. The WordPress admin
   bar pushes the fixed header down by its own height. */
:root{--h4-pinned:79px}
@media(max-width:1100px){:root{--h4-pinned:var(--h4-offset)}}
body.admin-bar{--h4-pinned:111px}
@media(max-width:1100px){body.admin-bar{--h4-pinned:calc(var(--h4-offset) + 32px)}}

/* The panel is pinned to the viewport beside the form, so a long register form scrolls past it instead of stretching the photograph. */
.auth{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;min-height:calc(100vh - var(--h4-offset,111px))}

.auth-panel{position:sticky;top:var(--h4-pinned);height:calc(100vh - var(--h4-pinned));overflow:hidden;display:flex;align-items:flex-end;min-height:560px;padding:64px clamp(28px,5vw,72px) 64px max(28px,calc((100vw - 1240px) / 2));color:#fff}
.auth-panel>img{position:absolute;inset:0;height:100%;object-fit:cover;object-position:center 30%}
.auth-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,16,35,.12) 0%,rgba(4,16,35,.5) 38%,rgba(4,16,35,.93) 100%),linear-gradient(140deg,rgba(0,71,160,.5) 0%,rgba(0,71,160,.05) 55%,rgba(205,46,58,.28) 100%)}
.auth-panel-body{position:relative;z-index:1;max-width:540px}
.auth-panel .kicker{text-shadow:0 1px 8px rgba(4,16,35,.6)}
.auth-panel h1{margin:16px 0 14px;font:800 clamp(2.4rem,4.2vw,4rem)/.95 var(--km-display);letter-spacing:-.055em;text-shadow:0 2px 18px rgba(4,16,35,.45)}
.auth-panel p{max-width:470px;margin:0;font-size:1.06rem;line-height:1.65;color:#e6eef9}
.auth-points{display:grid;gap:12px;margin:28px 0 0;padding:0;list-style:none}
.auth-points li{position:relative;padding-left:34px;font-size:.98rem;line-height:1.45;color:#f2f6fb}
.auth-points li:before{content:'';position:absolute;left:0;top:0;width:22px;height:22px;border-radius:50%;background:#16A34A;box-shadow:0 3px 10px rgba(22,163,74,.4)}
.auth-points li:after{content:'';position:absolute;left:7px;top:7px;width:8px;height:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg)}

.auth-side{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - var(--h4-offset,111px));padding:56px clamp(20px,4vw,64px)}
.auth-card{width:min(520px,100%);padding:36px 40px 28px;background:#fff;border-radius:16px;box-shadow:0 30px 80px rgba(4,16,35,.12)}
.auth-card h2{margin:14px 0 6px;font:800 1.9rem/1.1 var(--km-display);letter-spacing:-.035em;color:var(--ink)}
.auth-lead{margin:0 0 6px;font-size:.95rem;color:var(--muted)}
.auth-lead a{font-weight:700;color:var(--red)}
.auth-lead a:hover{text-decoration:underline}
.auth-trust{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;margin:20px 0 0;padding:18px 0 0;border-top:1px solid #eef1f6;list-style:none;font-size:.78rem;color:var(--muted)}
.auth-trust li:before{content:'\2713';margin-right:6px;font-weight:800;color:#16A34A}

/* Ultimate Member form */
.auth-form .um{max-width:none!important;margin:0!important;padding:0!important}
.auth-form .um .um-form{margin:0}
.auth-form .um .um-field{padding-top:14px!important}
.auth-form .um .um-field-label{margin:0 0 6px!important}
.auth-form .um .um-field-label label{font-size:.66rem!important;font-weight:800!important;line-height:1.4!important;letter-spacing:.12em;text-transform:uppercase;color:var(--blue)!important}
.auth-form .um .um-form input:not([type=submit]):not([type=checkbox]):not([type=radio]),.auth-form .um .um-form textarea{height:48px!important;padding:0 14px!important;border:1px solid #dde3ec!important;border-radius:8px!important;background:#f8fafd!important;box-shadow:none!important;color:var(--ink)!important;font:400 .96rem var(--body)!important;transition:border-color .15s,box-shadow .15s,background-color .15s}
.auth-form .um .um-form input:not([type=submit]):not([type=checkbox]):not([type=radio]):hover{border-color:#c3cfde!important}
.auth-form .um .um-form input:not([type=submit]):not([type=checkbox]):not([type=radio]):focus,.auth-form .um .um-form textarea:focus{background:#fff!important;border-color:var(--blue)!important;box-shadow:0 0 0 3px rgba(0,71,160,.13)!important}
.auth-form .um .um-form input::placeholder{color:#9aa4b2!important}

/* Country select. Ultimate Member styles it through .um-field .select2.select2-container
   .select2-selection with !important, so these go one level deeper to win whatever the
   stylesheet order. */
.auth-form .um .um-field .select2.select2-container .select2-selection{height:48px!important;padding:0 40px 0 14px!important;border:1px solid #dde3ec!important;border-radius:8px!important;background:#f8fafd!important;line-height:46px!important;color:var(--ink)!important;font:400 .96rem var(--body)!important}
.auth-form .um .um-field .select2.select2-container .select2-selection:hover{border-color:#c3cfde!important}
.auth-form .um .um-field .select2.select2-container--open .select2-selection,.auth-form .um .um-field .select2.select2-container--focus .select2-selection{background:#fff!important;border-color:var(--blue)!important;box-shadow:0 0 0 3px rgba(0,71,160,.13)!important}
.auth-form .um .um-field .select2-container--default .select2-selection--single .select2-selection__rendered{padding:0!important;line-height:46px!important;color:var(--ink)!important}
.auth-form .um .um-field .select2-container--default .select2-selection--single .select2-selection__placeholder{color:#9aa4b2!important}
.auth-form .um .um-field .select2.select2-container .select2-selection .select2-selection__arrow{right:4px!important;background:none!important}
.auth-form .um .um-field .select2.select2-container .select2-selection .select2-selection__arrow:before{color:var(--blue)!important;font-size:22px!important;line-height:46px!important}

.auth-form .um .um-field-error{margin-top:8px!important;padding:8px 12px!important;border-radius:6px!important;background:#fff1f2!important;color:#b4232f!important;font-size:.84rem!important}
.auth-form .um .um-field-error .um-field-arrow{color:#fff1f2!important}
.auth-form .um .um-notice{border-radius:8px!important}

.auth-form .um .um-col-alt{margin-top:22px!important}
.auth-form .um input[type=submit].um-button,.auth-form .um a.um-button{min-height:50px;padding:15px 18px!important;border-radius:8px!important;background:var(--red)!important;box-shadow:0 10px 22px rgba(205,46,58,.22)!important;color:#fff!important;font:800 .84rem/1.2 var(--body)!important;letter-spacing:.06em;text-transform:uppercase}
.auth-form .um input[type=submit].um-button:hover,.auth-form .um a.um-button:hover{background:#e53b48!important}
.auth-form .um .um-button.um-alt,.auth-form .um input[type=submit].um-button.um-alt{background:#fff!important;box-shadow:inset 0 0 0 1px #bcd0ea!important;color:var(--blue)!important}
.auth-form .um .um-button.um-alt:hover,.auth-form .um input[type=submit].um-button.um-alt:hover{background:#eef4fc!important}
.auth-form .um .um-col-alt-b{padding-top:16px!important}
.auth-form .um .um-link-alt{font-size:.88rem!important;font-weight:700!important;color:var(--blue)!important}
.auth-form .um .um-field-checkbox-option{font-size:.9rem!important;color:var(--ink)!important}
.auth-form .um .um-field-checkbox-state i{color:var(--blue)!important}

@media(max-width:980px){
	.auth{grid-template-columns:1fr;min-height:0}
	.auth-panel{position:relative;top:auto;height:auto;min-height:0;padding:44px 24px 72px}
	.auth-points{grid-template-columns:1fr 1fr;gap:10px 18px}
	.auth-side{position:relative;z-index:2;min-height:0;margin-top:-44px;padding:0 16px 72px}
}
@media(max-width:600px){
	.auth-panel{padding:36px 16px 64px}
	.auth-panel h1{font-size:2.2rem}
	.auth-points{display:none}
	.auth-card{padding:26px 20px 22px}
	.auth-card h2{font-size:1.55rem}
}

/* ---------- Member pages: approval states ----------
   "Application received" after a sign-up that needs admin approval, and the
   notice on the login page for a member who is not approved yet. Amber, not red:
   nothing has gone wrong, the member is waiting. */

.auth-status-icon{position:relative;display:block;width:68px;height:68px;margin:22px 0 20px;border-radius:50%;background:#fff4e0;box-shadow:0 0 0 8px #fffaf0}
.auth-status-icon:before{content:'';position:absolute;left:18px;top:18px;width:26px;height:26px;border:3px solid #d97706;border-radius:50%}
.auth-status-icon:after{content:'';position:absolute;left:33px;top:25px;width:7px;height:10px;border-left:3px solid #d97706;border-bottom:3px solid #d97706}
.auth-status .overline{color:#b45309}
.auth-status h2{margin:8px 0 10px;font:800 2.2rem/1.05 var(--km-display);letter-spacing:-.045em;color:var(--ink)}
.auth-status-lead{margin:0 0 26px;font-size:1.02rem;line-height:1.65;color:#3e4654}

.auth-steps{margin:0 0 28px;padding:20px 22px;list-style:none;counter-reset:step;background:#f8fafd;border:1px solid #e6ebf2;border-radius:12px}
.auth-steps li{position:relative;padding:0 0 18px 44px;counter-increment:step}
.auth-steps li:last-child{padding-bottom:0}
.auth-steps li:before{content:counter(step);position:absolute;left:0;top:0;z-index:1;width:28px;height:28px;display:grid;place-content:center;border-radius:50%;background:#e8edf4;color:var(--muted);font:800 .8rem var(--km-display)}
.auth-steps li:after{content:'';position:absolute;left:13px;top:28px;bottom:0;width:2px;background:#dfe5ee}
.auth-steps li:last-child:after{display:none}
.auth-steps li.is-done:before{content:'\2713';background:#16A34A;color:#fff}
.auth-steps li.is-done:after{background:#16A34A}
.auth-steps li.is-current:before{background:#fff4e0;color:#b45309;box-shadow:0 0 0 2px #f59e0b}
.auth-steps b{display:block;padding-top:3px;font:800 .98rem/1.3 var(--km-display);color:var(--ink)}
.auth-steps li.is-current b{color:#b45309}
.auth-steps span{display:block;margin-top:2px;font-size:.87rem;line-height:1.5;color:var(--muted)}

.auth-status-actions{display:flex;flex-wrap:wrap;gap:10px}
.auth-status-actions .button{flex:1 1 180px;min-height:50px;border-radius:8px}
.auth-status-note{margin:18px 0 0;font-size:.86rem;color:var(--muted)}
.auth-status-note a{font-weight:700;color:var(--blue)}

.auth-alert{display:grid;grid-template-columns:40px minmax(0,1fr);gap:14px;margin:20px 0 4px;padding:16px 18px;background:#fffaf0;border:1px solid #f5d08a;border-left:4px solid #f59e0b;border-radius:10px}
.auth-alert-icon{position:relative;width:40px;height:40px;border-radius:50%;background:#fff0d4}
.auth-alert-icon:before{content:'!';position:absolute;inset:0;display:grid;place-content:center;font:800 1.25rem/1 var(--km-display);color:#b45309}
.auth-alert b{display:block;font:800 1.02rem/1.3 var(--km-display);color:#7c4a03}
.auth-alert p{margin:4px 0 0;font-size:.88rem;line-height:1.55;color:#7c5a1f}
/* The notice above says it better than the plugin's one-line error. */
.auth--awaiting .auth-form .um-notice,.auth--awaiting .auth-form .um-field-error{display:none!important}

@media(max-width:600px){
	.auth-status h2{font-size:1.8rem}
	.auth-steps{padding:16px}
}

/* Icon beside the "Application received / You're almost in." heading, one row
   instead of three, so the steps and actions sit higher in the card. */
.auth-status-head{display:flex;align-items:center;gap:20px;margin:22px 0 16px}
.auth-status-head .auth-status-icon{flex:none;margin:0 6px 0 0}
.auth-status-head .overline{display:block}
.auth-status-head h2{margin:4px 0 0;font-size:2rem}
@media(max-width:600px){
	.auth-status-head{gap:14px}
	.auth-status-head .auth-status-icon{width:56px;height:56px;box-shadow:0 0 0 6px #fffaf0}
	.auth-status-head .auth-status-icon:before{left:13px;top:13px}
	.auth-status-head .auth-status-icon:after{left:28px;top:20px}
	.auth-status-head h2{font-size:1.6rem}
}

/* Short desktop windows: the panel's 560px minimum was taller than the space
   under the pinned header (a 600px window leaves 521px), so its foot ran off
   the screen. Let it fit the window and drop the benefit list there. */
@media(min-width:981px) and (max-height:700px){
	.auth-panel{min-height:0;padding-top:32px;padding-bottom:32px}
	.auth-points{display:none}
}

/* WooCommerce shop and product views: the .woocommerce class is on <body> there,
   not on a wrapper inside the page, so the earlier .page-content .woocommerce
   rules never matched and the buttons fell back to WooCommerce's grey. */
.woocommerce .page-content a.button,.woocommerce .page-content button.button,.woocommerce .page-content .button{display:inline-block;min-height:0;padding:12px 20px;border:0;border-radius:8px;background:var(--red);color:#fff;font:800 .78rem/1.2 var(--body);letter-spacing:.06em;text-transform:uppercase}
.woocommerce .page-content a.button:hover,.woocommerce .page-content button.button:hover{background:#e53b48;color:#fff}
.woocommerce .page-content .price{color:var(--ink);font-weight:700}
.woocommerce .page-content ul.products li.product .woocommerce-loop-product__title{color:var(--ink)}
.woocommerce .page-content ul.products li.product a:hover .woocommerce-loop-product__title{color:var(--blue)}

/* Single event: the poster is a portrait; at full width it ran past 1,000px. */
.tribe-events-single .tribe-events-event-image{max-width:520px;margin:0 0 32px}
.tribe-events-single .tribe-events-event-image img{width:100%;height:auto;box-shadow:0 24px 50px rgba(4,16,35,.18)}

/* WooCommerce colours prices with .woocommerce ul.products li.product .price
   (and .woocommerce div.product p.price on a product page); match its depth. */
.woocommerce .page-content ul.products li.product .price,.woocommerce .page-content div.product p.price,.woocommerce .page-content div.product span.price{color:var(--ink);font-weight:700}

/* About hero: the Baek Z Young poster is portrait, so it is shown whole at its
   own proportions (not cropped to 4:3) and sits to the right of the food photo. */
.ab-collage{display:flex;justify-content:flex-end}
.ab-collage img.ab-collage__poster{width:min(100%,380px);height:auto;aspect-ratio:600/913;object-fit:cover;border-radius:4px}
@media(max-width:980px){.ab-collage{justify-content:flex-start;padding-left:120px}}
@media(max-width:600px){.ab-collage{padding-left:60px}.ab-collage img.ab-collage__poster{width:100%}}

/* About hero (revised): the poster is shown as a short landscape crop of its
   portrait photo rather than at full height, so the hero stays compact. */
.ab-collage img.ab-collage__poster{width:100%;max-width:520px;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:50% 20%}
@media(max-width:980px){.ab-collage img.ab-collage__poster{max-width:560px}}

/* Contact: Seattle and Vancouver maps (Google Maps embeds, no API key). */
.ct-maps{padding:72px 0 88px;background:#f4f8fd}
.ct-maps-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.ct-map-card{overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:16px;transition:transform .25s,box-shadow .25s}
.ct-map-card:hover{transform:translateY(-4px);box-shadow:0 20px 44px rgba(0,71,160,.12)}
.ct-map-card iframe{display:block;width:100%;height:340px;border:0;filter:saturate(.9)}
.ct-map-card__body{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px}
.ct-map-card__body small{display:block;font-size:.64rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.ct-map-card__body b{display:block;margin-top:2px;font:800 1.2rem var(--km-display);color:var(--ink)}
.ct-map-card__body a{font-size:.8rem;font-weight:800;color:var(--blue);white-space:nowrap}
@media(max-width:760px){.ct-maps{padding:48px 0 64px}.ct-maps-grid{grid-template-columns:1fr}.ct-map-card iframe{height:260px}}

/* ---------- Search results (search.php) ---------- */
.srch-form{display:flex;gap:10px;max-width:640px;margin-top:22px}
.srch-form input{flex:1;min-width:0;height:52px;padding:0 16px;border:1px solid #cfdcee;border-radius:10px;background:#fff;font:400 1rem var(--body);color:var(--ink);outline:0}
.srch-form input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,71,160,.13)}
.srch-form .button{min-height:52px;border:0;border-radius:10px;cursor:pointer}
.srch-group{margin-bottom:40px}
.srch-group__title{display:flex;align-items:center;gap:10px;margin:0 0 14px;font:800 1.4rem var(--km-display)}
.srch-group__title span{padding:3px 10px;border-radius:999px;background:#eef4fc;font-size:.8rem;color:var(--blue)}
.srch-list{display:grid;gap:10px}
.srch-item{display:grid;grid-template-columns:84px minmax(0,1fr) auto;gap:18px;align-items:center;padding:12px;background:#fff;border:1px solid var(--line);border-radius:12px;transition:transform .2s,box-shadow .2s,border-color .2s}
.srch-item:hover{transform:translateY(-2px);border-color:#bcd0ea;box-shadow:0 14px 32px rgba(0,71,160,.1)}
.srch-item__img{display:grid;place-items:center;width:84px;height:84px;overflow:hidden;border-radius:8px;background:linear-gradient(135deg,#0047A0,#0a1a33);color:#fff;font:800 1.6rem var(--km-display)}
.srch-item__img img{width:100%;height:100%;object-fit:cover;object-position:top}
.srch-item__body small{display:block;font-size:.66rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--red)}
.srch-item__body b{display:block;margin:4px 0 2px;font:800 1.08rem/1.3 var(--km-display);color:var(--ink)}
.srch-item__body>span{font-size:.88rem;color:var(--muted)}
.srch-item__go{padding-right:10px;font-size:1.2rem;color:var(--blue);transition:transform .2s}
.srch-item:hover .srch-item__go{transform:translateX(4px)}
.srch-empty b{display:block;font:800 1.2rem var(--km-display);color:var(--ink)}
.srch-empty .hero-actions{justify-content:center;margin-top:18px}
@media(max-width:600px){
	.srch-form{flex-direction:column}
	.srch-item{grid-template-columns:64px minmax(0,1fr)}
	.srch-item__img{width:64px;height:64px}
	.srch-item__go{display:none}
}
