/*!
 * UAIA Theme - core styles
 * Design tokens live in :root below. Do NOT edit colours here:
 * use Appearance > Customize > UAIA Colours, which overrides the same
 * variables inline. Editing this file means losing your changes on update.
 */
/* ============================================================================
   1. TOKENS
   ========================================================================== */
:root{
  --font-display:'Bricolage Grotesque','Archivo',system-ui,sans-serif;
  --font-body:'Archivo',system-ui,-apple-system,'Segoe UI',sans-serif;

  --ink:#14100D;
  --ink-2:#1D1815;
  --ink-3:#2A221C;
  --ivory:#F6F0E6;
  --ivory-2:#EDE4D6;
  --dim:rgba(246,240,230,.62);
  --dimmer:rgba(246,240,230,.42);
  --amber:#F2A413;
  --terra:#D2551F;
  --sage:#7E9270;
  --line:rgba(246,240,230,.13);
  --line-dark:rgba(20,16,13,.14);

  --r-sm:10px; --r-md:18px; --r-lg:28px; --r-pill:999px;
  --wrap:1240px;
  --gutter:22px;
  --ease:cubic-bezier(.22,1,.36,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--ink);color:var(--dim);
  font-family:var(--font-body);
  font-size:16.5px;line-height:1.7;font-weight:400;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
body.is-locked{overflow:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit}

h1,h2,h3{
  font-family:var(--font-display);font-weight:600;
  color:var(--ivory);margin:0 0 .42em;line-height:1.03;letter-spacing:-.03em;
}
h1{font-size:clamp(2.85rem,7.6vw,5.4rem);font-weight:700}
h2{font-size:clamp(2.1rem,5.2vw,3.5rem)}
h3{font-size:clamp(1.28rem,3vw,1.62rem);line-height:1.18;letter-spacing:-.02em}
h4{font-family:var(--font-body);font-weight:700;color:var(--ivory);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;margin:0 0 20px}
p{margin:0 0 1.1em}
p:last-child{margin-bottom:0}
strong{font-weight:600;color:var(--ivory)}

/* --- utilities ------------------------------------------------------------ */
.u-wrap{width:100%;max-width:var(--wrap);margin-left:auto;margin-right:auto;padding-inline:var(--gutter);position:relative;z-index:2}
.u-section{position:relative}
.u-eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-size:.68rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;
  color:var(--amber);margin:0 0 18px;line-height:1.4;
}
.u-lead{font-size:clamp(1rem,2.3vw,1.08rem);max-width:58ch;color:var(--dim)}

.u-light{background:var(--ivory);color:rgba(20,16,13,.66)}
.u-light h1,.u-light h2,.u-light h3,.u-light h4{color:var(--ink)}
.u-light .u-lead{color:rgba(20,16,13,.66)}
.u-light .u-eyebrow{color:var(--terra)}
.u-light strong{color:var(--ink)}

.u-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:52px;padding:15px 30px;border-radius:var(--r-pill);
  font-family:var(--font-body);font-weight:600;font-size:.92rem;line-height:1.2;
  border:1.5px solid transparent;cursor:pointer;text-align:center;
  transition:transform .22s var(--ease),background .22s ease,color .22s ease,border-color .22s ease,box-shadow .22s ease;
}
.u-btn:hover{transform:translateY(-2px)}
.u-btn--amber{background:var(--amber);color:var(--ink);box-shadow:0 8px 24px rgba(242,164,19,.22)}
.u-btn--amber:hover{background:#ffb424;box-shadow:0 14px 34px rgba(242,164,19,.3)}
.u-btn--ink{background:var(--ink);color:var(--ivory)}
.u-btn--ink:hover{background:#241d17}
.u-btn--outline{border-color:var(--line);color:var(--ivory)}
.u-btn--outline:hover{border-color:var(--ivory);background:var(--ivory);color:var(--ink)}
.u-btn--outline-dark{border-color:rgba(20,16,13,.24);color:var(--ink)}
.u-btn--outline-dark:hover{border-color:var(--ink);background:var(--ink);color:var(--ivory)}
.u-arrow{line-height:1;transition:transform .22s ease}
.u-btn:hover .u-arrow{transform:translateX(4px)}

/* a shared photo frame so every image behaves the same way */
.u-shot{position:relative;overflow:hidden;background:var(--ink-2)}
.u-shot img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}

:focus-visible{outline:3px solid var(--amber);outline-offset:3px;border-radius:6px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* ============================================================================
   2. HEADER
   ========================================================================== */
.uaia-header{position:absolute;top:0;left:0;right:0;z-index:70}
.uaia-header.is-fixed{position:fixed;background:rgba(20,16,13,.88);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);animation:dropin .35s var(--ease)}
@keyframes dropin{from{transform:translateY(-100%)}to{transform:translateY(0)}}
.uaia-header__inner{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:82px}

.uaia-logo{display:flex;align-items:center;gap:12px;flex:none;color:var(--ivory)}
.uaia-logo__mark{width:42px;height:42px;flex:none;border-radius:12px;background:var(--amber);display:grid;place-items:center;color:var(--ink);font-family:var(--font-display);font-size:.9rem;font-weight:700;letter-spacing:-.03em}
.uaia-logo__txt{font-family:var(--font-display);font-size:1.2rem;font-weight:700;letter-spacing:-.03em;line-height:1.1}
.uaia-logo__txt small{display:block;font-family:var(--font-body);font-size:.55rem;font-weight:600;letter-spacing:.19em;text-transform:uppercase;color:var(--dimmer);margin-top:3px}

.uaia-nav{display:flex;align-items:center;gap:30px}
.uaia-nav a{font-size:.89rem;font-weight:500;color:var(--dim);padding:8px 0;position:relative;transition:color .2s ease}
.uaia-nav a::after{content:"";position:absolute;left:0;bottom:2px;width:0;height:1.5px;background:var(--amber);transition:width .25s var(--ease)}
.uaia-nav a:hover{color:var(--ivory)}
.uaia-nav a:hover::after{width:100%}
.uaia-header__actions{display:flex;align-items:center;gap:12px}
.uaia-header .u-btn{min-height:46px;padding:12px 24px;font-size:.85rem}

.uaia-burger{display:none;width:48px;height:48px;flex:none;border:1px solid var(--line);background:rgba(246,240,230,.06);border-radius:13px;cursor:pointer;padding:0;place-items:center}
.uaia-burger span{display:block;width:19px;height:1.8px;background:var(--ivory);border-radius:2px;position:relative;transition:background .2s ease}
.uaia-burger span::before,.uaia-burger span::after{content:"";position:absolute;left:0;width:19px;height:1.8px;background:var(--ivory);border-radius:2px;transition:transform .28s var(--ease),top .28s var(--ease)}
.uaia-burger span::before{top:-6px}
.uaia-burger span::after{top:6px}
.uaia-burger.is-active span{background:transparent}
.uaia-burger.is-active span::before{top:0;transform:rotate(45deg)}
.uaia-burger.is-active span::after{top:0;transform:rotate(-45deg)}

.uaia-drawer{display:none}
@media(max-width:1100px){
  .uaia-nav,.uaia-header__actions .u-btn--outline{display:none}
  .uaia-burger{display:grid}
  .uaia-drawer{display:block;position:fixed;inset:0;z-index:90;background:rgba(20,16,13,.6);opacity:0;pointer-events:none;transition:opacity .3s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
  .uaia-drawer.is-open{opacity:1;pointer-events:auto}
  .uaia-drawer__panel{position:absolute;top:0;right:0;bottom:0;width:min(340px,86vw);background:var(--ink-2);padding:24px 24px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;overflow-y:auto;transform:translateX(100%);transition:transform .34s var(--ease);border-left:1px solid var(--line)}
  .uaia-drawer.is-open .uaia-drawer__panel{transform:translateX(0)}
  .uaia-drawer__head{display:flex;justify-content:flex-end;margin-bottom:12px}
  .uaia-drawer__close{width:46px;height:46px;border-radius:13px;border:1px solid var(--line);background:transparent;display:grid;place-items:center;font-size:1.35rem;color:var(--ivory);cursor:pointer;line-height:1}
  .uaia-drawer nav{display:flex;flex-direction:column;margin-bottom:24px}
  .uaia-drawer nav a{font-family:var(--font-display);font-size:1.45rem;font-weight:600;letter-spacing:-.02em;color:var(--ivory);padding:14px 2px;border-bottom:1px solid var(--line)}
  .uaia-drawer__cta{display:grid;gap:10px;margin-top:auto}
  .uaia-drawer__cta .u-btn{width:100%}
}
@media(max-width:560px){
  .uaia-header__inner{min-height:72px}
  .uaia-logo__txt{font-size:1.06rem}
  .uaia-logo__mark{width:38px;height:38px;border-radius:11px;font-size:.8rem}
  .uaia-header__actions .u-btn{padding:11px 18px;font-size:.81rem}
}
@media(max-width:400px){
  .uaia-logo__txt small{display:none}
  .uaia-header__actions .u-btn{display:none}
}

/* ============================================================================
   3. HERO, one large photograph
   ELEMENTOR: Container, Min Height 92vh, Background Image + dark overlay,
   Content Position Bottom.
   ========================================================================== */
.uaia-hero{position:relative;min-height:min(92vh,880px);display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;padding-top:110px}
.uaia-hero__media{position:absolute;inset:0;z-index:0}
.uaia-hero__media img{width:100%;height:100%;object-fit:cover;object-position:center 32%}
.uaia-hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,16,13,.74) 0%,rgba(20,16,13,.44) 32%,rgba(20,16,13,.88) 76%,var(--ink) 100%)}
.uaia-hero__inner{padding-bottom:clamp(40px,5vw,72px)}
.uaia-hero__grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(26px,4vw,64px);align-items:end}
.uaia-hero h1{margin-bottom:0;max-width:15ch}
.uaia-hero h1 span{color:var(--amber)}
.uaia-hero__side{padding-bottom:8px}
.uaia-hero__side p{font-size:1.02rem;color:var(--dim);margin-bottom:26px}
.uaia-hero__cta{display:flex;flex-wrap:wrap;gap:12px}
@media(max-width:900px){
  .uaia-hero{min-height:auto;padding-top:120px}
  .uaia-hero__grid{grid-template-columns:1fr;gap:24px;align-items:start}
  .uaia-hero h1{max-width:18ch}
  .uaia-hero__inner{padding-bottom:52px}
}
@media(max-width:560px){
  .uaia-hero{padding-top:100px}
  .uaia-hero__inner{padding-bottom:40px}
  .uaia-hero__cta{gap:10px}
  .uaia-hero__cta .u-btn{flex:1 1 100%}
}

/* ============================================================================
   4. MARQUEE, a continuous band of chapter photographs
   ELEMENTOR: Image Carousel widget. Slides to Show 6, Autoplay Yes,
   Autoplay Speed 2000, Infinite Loop Yes, Arrows and Dots Off, Pause on Hover Yes.
   ========================================================================== */
.uaia-marquee{border-block:1px solid var(--line);overflow:hidden;background:var(--ink)}
.uaia-marquee__track{display:flex;width:max-content;animation:slide 46s linear infinite}
.uaia-marquee:hover .uaia-marquee__track{animation-play-state:paused}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.uaia-marquee__item{width:clamp(150px,17vw,236px);aspect-ratio:4/3;flex:none;border-right:1px solid var(--line)}
.uaia-marquee__item img{filter:saturate(.82) brightness(.82);transition:filter .4s ease}
.uaia-marquee__item:hover img{filter:saturate(1) brightness(1)}

/* ============================================================================
   5. STAT STRIP
   ========================================================================== */
.uaia-strip{border-bottom:1px solid var(--line);background:var(--ink)}
.uaia-strip__inner{display:grid;grid-template-columns:repeat(4,1fr)}
.uaia-strip__item{padding:24px 22px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:3px}
.uaia-strip__item:last-child{border-right:0}
.uaia-strip__item b{font-family:var(--font-display);font-size:clamp(1.5rem,3.4vw,2.05rem);font-weight:700;color:var(--ivory);letter-spacing:-.03em;line-height:1.1}
.uaia-strip__item b i{font-style:normal;color:var(--amber)}
.uaia-strip__item small{font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--dimmer);line-height:1.4}
@media(max-width:900px){
  .uaia-strip__inner{grid-template-columns:1fr 1fr}
  .uaia-strip__item:nth-child(2n){border-right:0}
  .uaia-strip__item:nth-child(-n+2){border-bottom:1px solid var(--line)}
}
@media(max-width:560px){.uaia-strip__item{padding:18px 16px}}

/* ============================================================================
   6. STAGES, three tall photo panels
   ELEMENTOR: Container, 3 columns, each column Min Height 520px with a
   Background Image + gradient overlay, Content Position Bottom.
   ========================================================================== */
.uaia-stages{background:var(--ink)}
.uaia-stages__head{max-width:640px;margin-bottom:clamp(34px,4vw,52px)}
.uaia-stages__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.uaia-stage{
  position:relative;overflow:hidden;border-radius:var(--r-md);
  min-height:520px;display:flex;flex-direction:column;justify-content:flex-end;
  padding:30px 28px 32px;isolation:isolate;
}
.uaia-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .9s var(--ease)}
.uaia-stage:hover img{transform:scale(1.06)}
.uaia-stage::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(20,16,13,.2) 0%,rgba(20,16,13,.55) 46%,rgba(20,16,13,.94) 100%);
}
.uaia-stage__num{
  position:absolute;top:26px;left:28px;right:28px;z-index:1;
  font-family:var(--font-display);font-size:.76rem;font-weight:700;
  letter-spacing:.13em;color:var(--amber);display:flex;align-items:center;gap:10px;
}
.uaia-stage__num::after{content:"";flex:1;height:1px;background:rgba(242,164,19,.35)}
.uaia-stage h3{margin-bottom:10px}
.uaia-stage p{font-size:.92rem;margin-bottom:20px;line-height:1.6;color:rgba(246,240,230,.76)}
.uaia-stage__link{display:inline-flex;align-items:center;gap:9px;font-size:.74rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ivory)}
.uaia-stage:hover .u-arrow{transform:translateX(5px)}
@media(max-width:900px){
  .uaia-stages__grid{grid-template-columns:1fr}
  .uaia-stage{min-height:400px}
}
@media(max-width:560px){.uaia-stage{min-height:340px;padding:26px 22px 28px}}

/* ============================================================================
   7. VALUE, four photo-topped cards
   ========================================================================== */
.uaia-value{background:var(--ink-2)}
.uaia-value__head{max-width:640px;margin-bottom:clamp(34px,4vw,52px)}
.uaia-value__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.uaia-item{
  background:var(--ink);border:1px solid var(--line);border-radius:var(--r-md);
  overflow:hidden;transition:border-color .3s ease,transform .3s var(--ease);
  display:flex;flex-direction:column;
}
.uaia-item:hover{border-color:rgba(242,164,19,.42);transform:translateY(-5px)}
.uaia-item__shot{aspect-ratio:4/3}
.uaia-item:hover .uaia-item__shot img{transform:scale(1.06)}
.uaia-item__body{padding:24px 22px 26px}
.uaia-item h3{font-size:1.14rem;margin-bottom:8px}
.uaia-item p{font-size:.88rem;margin:0;line-height:1.6}
@media(max-width:1100px){.uaia-value__grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){
  .uaia-value__grid{grid-template-columns:1fr;gap:12px}
  .uaia-item{flex-direction:row;align-items:stretch}
  .uaia-item__shot{aspect-ratio:1;width:112px;flex:none}
  .uaia-item__body{padding:18px 18px 18px 16px}
  .uaia-item h3{font-size:1.05rem}
  .uaia-item p{font-size:.83rem}
}

/* ============================================================================
   8. SOFT LANDING, checklist beside a 2x2 photo grid
   ========================================================================== */
.uaia-soft{background:var(--ink)}
.uaia-soft__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4vw,64px);align-items:center}
.uaia-soft__list{list-style:none;padding:0;margin:26px 0 32px;display:grid;gap:0}
.uaia-soft__list li{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start;padding:15px 0;border-bottom:1px solid var(--line);font-size:.94rem;line-height:1.6}
.uaia-soft__list li:first-child{border-top:1px solid var(--line)}
.uaia-soft__list i{font-style:normal;font-family:var(--font-display);font-weight:700;font-size:.8rem;color:var(--amber);letter-spacing:.08em;padding-top:3px}
.uaia-soft__mosaic{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.uaia-soft__mosaic .u-shot{border-radius:var(--r-md);aspect-ratio:1}
.uaia-soft__mosaic .u-shot:nth-child(1){aspect-ratio:1/1.24;align-self:end}
.uaia-soft__mosaic .u-shot:nth-child(4){aspect-ratio:1/1.24}
.uaia-soft__mosaic .u-shot:hover img{transform:scale(1.06)}
.uaia-soft .u-btn{align-self:flex-start}
@media(max-width:900px){
  .uaia-soft__grid{grid-template-columns:1fr;gap:36px}
  .uaia-soft__mosaic{order:-1}
}
@media(max-width:560px){
  .uaia-soft__mosaic{gap:9px}
  .uaia-soft .u-btn{width:100%}
}

/* ============================================================================
   9. CHAPTERS, departures board, thumbnail on every row
   ELEMENTOR: Loop Grid, 1 column, one row template. Featured image = thumbnail.
   ========================================================================== */
.uaia-board{background:var(--ink)}
.uaia-board__head{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;flex-wrap:wrap;margin-bottom:32px}
.uaia-board__head>div{max-width:600px}
.uaia-board__head p{margin:0}

.uaia-board__legend{
  display:grid;grid-template-columns:88px 118px minmax(150px,1fr) 1.7fr minmax(155px,auto) 34px;
  gap:20px;align-items:center;padding:0 18px 12px;
  font-size:.65rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--dimmer);
  border-bottom:1px solid var(--line);
}
.uaia-row{
  display:grid;grid-template-columns:88px 118px minmax(150px,1fr) 1.7fr minmax(155px,auto) 34px;
  gap:20px;align-items:center;padding:14px 18px;
  border-bottom:1px solid var(--line);position:relative;
  transition:background .25s ease,padding-left .25s var(--ease);
}
.uaia-row:hover{background:var(--ink-2);padding-left:26px}
.uaia-row::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--amber);transform:scaleY(0);transition:transform .25s var(--ease)}
.uaia-row:hover::before{transform:scaleY(1)}
.uaia-row__shot{width:88px;aspect-ratio:4/3;border-radius:var(--r-sm);flex:none}
.uaia-row__shot img{filter:saturate(.8) brightness(.85);transition:transform .7s var(--ease),filter .3s ease}
.uaia-row:hover .uaia-row__shot img{transform:scale(1.07);filter:saturate(1) brightness(1)}
.uaia-row__city{font-family:var(--font-display);font-size:1.28rem;font-weight:600;color:var(--ivory);letter-spacing:-.02em;line-height:1.15}
.uaia-row__served{font-size:.84rem;color:var(--dim);line-height:1.5}
.uaia-row__url{font-size:.81rem;color:var(--dimmer);word-break:break-all}
.uaia-row:hover .uaia-row__url{color:var(--amber)}
.uaia-row__go{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:var(--ivory);font-size:.85rem;flex:none;transition:background .25s ease,border-color .25s ease,color .25s ease}
.uaia-row:hover .uaia-row__go{background:var(--amber);border-color:var(--amber);color:var(--ink)}

.uaia-status{display:inline-flex;align-items:center;gap:8px;font-size:.66rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;padding:6px 12px;border-radius:var(--r-pill);border:1px solid currentColor;white-space:nowrap}
.uaia-status::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.uaia-status--live{color:var(--sage)}
.uaia-status--forming{color:var(--amber)}
.uaia-status--soon{color:var(--dimmer)}
.uaia-flag{
  display:inline-block;vertical-align:middle;margin-left:9px;
  font-family:var(--font-body);font-size:.56rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink);background:var(--amber);padding:4px 7px;border-radius:4px;
}
.uaia-board__foot{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding:26px 18px 0}
.uaia-board__foot p{margin:0;font-size:.9rem;max-width:46ch}

@media(max-width:1100px){
  .uaia-board__legend,.uaia-row{grid-template-columns:78px 112px minmax(130px,1fr) 1.4fr 34px;gap:16px}
  .uaia-row__url,.uaia-board__legend span:nth-child(5){display:none}
  .uaia-row__shot{width:78px}
}
@media(max-width:900px){
  .uaia-board__legend{display:none}
  .uaia-row{grid-template-columns:84px 1fr auto;gap:8px 16px;padding:14px 16px;align-items:center}
  .uaia-row:hover{padding-left:20px}
  .uaia-row__shot{width:84px;grid-column:1;grid-row:1/span 2}
  .uaia-row__city{grid-column:2;grid-row:1;font-size:1.14rem}
  .uaia-row__status{grid-column:3;grid-row:1;justify-self:end}
  .uaia-row__served{grid-column:2/-1;grid-row:2;font-size:.79rem}
  .uaia-row__go{display:none}
}
@media(max-width:560px){
  .uaia-board__head .u-btn,.uaia-board__foot .u-btn{width:100%}
  .uaia-row{grid-template-columns:68px 1fr;padding:12px 14px}
  .uaia-row__shot{width:68px}
  .uaia-row__city{grid-column:2;grid-row:1}
  .uaia-row__status{grid-column:2;grid-row:3;justify-self:start;margin-top:6px}
  .uaia-row__served{grid-column:2;grid-row:2}
  .uaia-row--flagship .uaia-flag{display:block;margin:7px 0 0;width:fit-content}
}

/* ============================================================================
   10. GALLERY, the centrepiece mosaic
   ELEMENTOR: Gallery widget (Masonry, 4 columns) or a Container with 9 Images
   and the spans below applied per image via Advanced > Custom CSS classes.
   ========================================================================== */
.uaia-gallery{background:var(--ink-2);overflow:hidden}
.uaia-gallery__head{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;flex-wrap:wrap;margin-bottom:34px}
.uaia-gallery__head>div{max-width:560px}
.uaia-gallery__head p{margin:0}
.uaia-gallery__grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(130px,15vw,190px);gap:12px}
.uaia-gallery__grid .u-shot{border-radius:var(--r-md)}
.uaia-gallery__grid .u-shot::after{
  content:"";position:absolute;inset:0;background:rgba(20,16,13,.22);transition:background .35s ease;
}
.uaia-gallery__grid .u-shot:hover::after{background:rgba(20,16,13,0)}
.uaia-gallery__grid .u-shot:hover img{transform:scale(1.05)}
.g-a{grid-column:span 2;grid-row:span 2}
.g-b{grid-column:span 1;grid-row:span 1}
.g-c{grid-column:span 1;grid-row:span 2}
.g-d{grid-column:span 2;grid-row:span 1}
.uaia-gallery__cap{
  display:flex;align-items:center;gap:12px;margin-top:22px;
  font-size:.78rem;color:var(--dimmer);letter-spacing:.04em;
}

@media(max-width:900px){
  .uaia-gallery__grid{grid-template-columns:repeat(3,1fr);grid-auto-rows:clamp(120px,20vw,160px)}
  .g-c{grid-row:span 1}
}
@media(max-width:560px){
  .uaia-gallery__grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:120px;gap:9px}
  .g-a{grid-column:span 2;grid-row:span 2}
  .g-d{grid-column:span 2;grid-row:span 1}
  .uaia-gallery__head .u-btn{width:100%}
}

/* ============================================================================
   11. FOUNDER, light break, portrait plus three supporting shots
   ========================================================================== */
.uaia-founder__grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(32px,5vw,72px);align-items:center}
.uaia-founder__main{border-radius:var(--r-lg);overflow:hidden;width:100%;aspect-ratio:3/4.1}
.uaia-founder__main img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.uaia-founder__main{grid-row:span 3;aspect-ratio:3/4.1}
.uaia-founder__main:hover img{transform:scale(1.04)}
.uaia-founder blockquote{
  margin:0 0 26px;padding:0;
  font-family:var(--font-display);font-weight:500;
  font-size:clamp(1.4rem,3.6vw,2rem);line-height:1.28;letter-spacing:-.025em;color:var(--ink);
}
.uaia-founder blockquote::before{content:"“";color:var(--terra)}
.uaia-founder blockquote::after{content:"”";color:var(--terra)}
.uaia-founder__sig{display:flex;align-items:center;gap:15px;padding-top:24px;border-top:1px solid var(--line-dark);margin-top:26px}
.uaia-founder__sig img{width:54px;height:54px;border-radius:50%;object-fit:cover;flex:none}
.uaia-founder__sig b{display:block;font-family:var(--font-display);font-size:1.05rem;font-weight:700;color:var(--ink);letter-spacing:-.02em}
.uaia-founder__sig small{font-size:.8rem;line-height:1.45}
@media(max-width:900px){
  .uaia-founder__grid{grid-template-columns:1fr;gap:34px}
  .uaia-founder__main{max-width:520px;margin-inline:auto}
  .uaia-founder__main{aspect-ratio:3/3.6}
}

/* ============================================================================
   12. HUB, three photo cards
   ========================================================================== */
.uaia-hub{background:var(--ivory-2)}
.uaia-hub__head{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;flex-wrap:wrap;margin-bottom:38px}
.uaia-hub__head>div{max-width:560px}
.uaia-hub__head p{margin:0}
.uaia-hub__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.uaia-post{background:var(--ivory);border-radius:var(--r-md);overflow:hidden;display:flex;flex-direction:column;transition:transform .3s var(--ease),box-shadow .3s ease}
.uaia-post:hover{transform:translateY(-6px);box-shadow:0 20px 44px rgba(20,16,13,.14)}
.uaia-post__img{aspect-ratio:16/10}
.uaia-post:hover .uaia-post__img img{transform:scale(1.05)}
.uaia-post__tag{position:absolute;left:14px;top:14px;z-index:2;background:var(--ink);color:var(--amber);font-size:.61rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:6px 12px;border-radius:var(--r-pill)}
.uaia-post__body{padding:24px 24px 26px;display:flex;flex-direction:column;flex:1}
.uaia-post h3{font-size:1.16rem;margin-bottom:10px}
.uaia-post p{font-size:.88rem;margin-bottom:18px;line-height:1.62;color:rgba(20,16,13,.64)}
.uaia-post__meta{margin-top:auto;padding-top:16px;border-top:1px solid var(--line-dark);font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--terra);display:flex;align-items:center;gap:8px}
.uaia-post:hover .u-arrow{transform:translateX(4px)}
@media(max-width:900px){.uaia-hub__grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){
  .uaia-hub__grid{grid-template-columns:1fr}
  .uaia-hub__head .u-btn{width:100%}
}

/* ============================================================================
   13. VOICES, portrait beside each quote
   ========================================================================== */
.uaia-voices{background:var(--ink)}
.uaia-voices__head{max-width:600px;margin-bottom:clamp(32px,4vw,48px)}
.uaia-voices__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.uaia-quote{
  background:var(--ink-2);border:1px solid var(--line);border-radius:var(--r-md);
  overflow:hidden;margin:0;display:flex;flex-direction:column;
  transition:border-color .3s ease;
}
.uaia-quote:hover{border-color:rgba(242,164,19,.35)}
.uaia-quote__shot{aspect-ratio:4/3}
.uaia-quote:hover .uaia-quote__shot img{transform:scale(1.05)}
.uaia-quote__body{padding:26px 26px 24px;display:flex;flex-direction:column;flex:1}
.uaia-quote p{font-family:var(--font-display);font-weight:500;font-size:1.02rem;line-height:1.42;letter-spacing:-.015em;color:var(--ivory);margin-bottom:22px}
.uaia-quote__who{margin-top:auto;padding-top:18px;border-top:1px solid var(--line)}
.uaia-quote__who b{display:block;color:var(--ivory);font-size:.89rem;font-weight:600}
.uaia-quote__who small{font-size:.76rem;color:var(--dimmer);line-height:1.45}
@media(max-width:900px){.uaia-voices__grid{grid-template-columns:1fr;max-width:560px}}

/* ============================================================================
   14. CTA, photograph behind an amber wash
   ELEMENTOR: Container with Background Image + Background Overlay set to
   #F2A413 at 88%, Blend Mode Normal.
   ========================================================================== */
.uaia-cta{position:relative;overflow:hidden;padding:clamp(64px,8vw,124px) 0;color:rgba(20,16,13,.78)}
.uaia-cta__media{position:absolute;inset:0;z-index:0}
.uaia-cta__media img{width:100%;height:100%;object-fit:cover}
.uaia-cta__media::after{content:"";position:absolute;inset:0;background:var(--amber);opacity:.9;mix-blend-mode:normal}
.uaia-cta__inner{text-align:center;max-width:720px;margin-inline:auto}
.uaia-cta h2{color:var(--ink);max-width:17ch;margin-inline:auto}
.uaia-cta .u-eyebrow{color:rgba(20,16,13,.62);justify-content:center}
.uaia-cta p{max-width:50ch;margin:0 auto 28px;font-size:clamp(.98rem,2.3vw,1.06rem)}
.uaia-cta__btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
@media(max-width:560px){.uaia-cta__btns .u-btn{width:100%}}

/* ============================================================================
   15. FOOTER
   ========================================================================== */
.uaia-footer{background:var(--ink);padding:clamp(52px,6vw,86px) 0 0}
.uaia-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.uaia-footer a{font-size:.89rem;display:inline-block;padding:2px 0;transition:color .2s ease}
.uaia-footer a:hover{color:var(--amber)}
.uaia-footer__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.35fr;gap:40px;padding-bottom:46px}
.uaia-footer__brand p{font-size:.89rem;max-width:34ch;margin-top:16px}
.uaia-footer__social{display:flex;gap:9px;margin-top:20px}
.uaia-footer__social a{width:46px;height:46px;border-radius:13px;border:1px solid var(--line);display:grid;place-items:center;font-size:.77rem;font-weight:700;color:var(--ivory);padding:0;transition:background .25s ease,border-color .25s ease,color .25s ease,transform .25s ease}
.uaia-footer__social a:hover{background:var(--amber);border-color:var(--amber);color:var(--ink);transform:translateY(-3px)}
.uaia-footer__news p{font-size:.88rem;margin-bottom:16px}
.uaia-footer__form{display:flex;gap:8px;flex-wrap:wrap}
.uaia-footer__form input{flex:1 1 160px;min-width:0;padding:14px 19px;border-radius:var(--r-pill);border:1px solid var(--line);background:rgba(246,240,230,.05);color:var(--ivory);font-family:var(--font-body);font-size:16px;min-height:52px}
.uaia-footer__form input::placeholder{color:var(--dimmer)}
.uaia-footer__form button{padding:14px 24px;font-size:.85rem;flex:0 0 auto}
.uaia-footer__bar{border-top:1px solid var(--line);padding:22px 0 calc(22px + env(safe-area-inset-bottom));display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;font-size:.81rem;color:var(--dimmer)}
.uaia-footer__bar .flagship{color:var(--amber);font-weight:500}
.uaia-footer__bar nav{display:flex;gap:20px;flex-wrap:wrap}
@media(max-width:900px){.uaia-footer__grid{grid-template-columns:1fr 1fr;gap:34px}}
@media(max-width:560px){
  .uaia-footer__grid{grid-template-columns:1fr;gap:32px;padding-bottom:36px}
  .uaia-footer__form button{width:100%}
  .uaia-footer__bar{flex-direction:column;align-items:flex-start;gap:12px}
}

/* ============================================================================
   THEME ADDITIONS, WordPress + Elementor integration
   These rules do not exist in the static mockup. They make the design behave
   correctly inside the Elementor editor and with WordPress-generated markup.
   ========================================================================== */

/* Elementor wraps every widget in .elementor-widget-container. Our sections
   assume they own their full width, so neutralise the wrapper. */
.elementor-widget-container > .uaia-block{width:100%}

/* ---------------------------------------------------------------------------
   HOW WIDTH WORKS NOW

   Widgets no longer try to break out of Elementor. Each widget's root is a
   .uaia-block that simply fills whatever Elementor gives it. Width, background
   and outer padding are set on the Elementor container, where the client can
   see and change them.

   The only job left for CSS is to stop Elementor's six nested wrappers from
   shrinking or off-centring the widget on the way down.
   --------------------------------------------------------------------------- */

/* The widget root fills its parent. It sets no width of its own. */
.uaia-block{width:100%;max-width:100%;position:relative}

/* Elementor's wrappers pass their full width through to the widget. */
[data-widget_type^="uaia_"],
[data-widget_type^="uaia_"] > .elementor-widget-container{width:100%;max-width:100%}

/* Any Elementor row, column or container holding a UAIA widget stays centred
   and drops the side padding that would otherwise shift the block sideways. */
.elementor-section:has([data-widget_type^="uaia_"]) > .elementor-container{
	max-width:100%;
	margin-left:auto;
	margin-right:auto;
}
.elementor-column:has([data-widget_type^="uaia_"]) > .elementor-widget-wrap{padding-inline:0}
.e-con:has([data-widget_type^="uaia_"]){--padding-inline-start:0px;--padding-inline-end:0px;max-width:100%}

/* ---------------------------------------------------------------------------
   FULL-WIDTH ENFORCEMENT

   Something above <main> is capping content at roughly 1200px while the
   absolutely-positioned header escapes it. Rather than guess which of
   Elementor's wrappers is responsible, every one of them is forced to fill
   its parent. The design is full-width throughout, so nothing is lost.

   Turn this off in Appearance > Customize > UAIA Layout if you want boxed
   Elementor sections back.
   --------------------------------------------------------------------------- */
html,body{width:100%;max-width:100%}
#uaia-main{width:100%;max-width:100%}

body.uaia-force-full #uaia-main .elementor,
body.uaia-force-full #uaia-main .elementor-section,
body.uaia-force-full #uaia-main .elementor-container,
body.uaia-force-full #uaia-main .elementor-column,
body.uaia-force-full #uaia-main .elementor-widget-wrap,
body.uaia-force-full #uaia-main .elementor-widget,
body.uaia-force-full #uaia-main .e-con,
body.uaia-force-full #uaia-main .e-con-inner{
	width:100%!important;
	max-width:100%!important;
	margin-left:auto!important;
	margin-right:auto!important;
	float:none!important;
}
body.uaia-force-full #uaia-main .elementor-column{flex:1 1 100%!important}
body.uaia-force-full #uaia-main .elementor-widget-wrap,
body.uaia-force-full #uaia-main .elementor-container{padding-inline:0!important}

/* Inner content stays readable: it centres inside the block rather than
   running to the screen edges. This is the only max-width the theme sets, and
   it is inside the widget, so nothing has to be escaped. */
.uaia-block > .u-wrap{max-width:var(--wrap);margin-left:auto;margin-right:auto}

/* Vertical rhythm now lives on the widget, so it can be overridden from
   Elementor's Advanced tab like any other widget. */
.uaia-block{padding-block:clamp(62px,8.4vw,124px)}
.uaia-hero,.uaia-marquee,.uaia-strip{padding-block:0}

/* In the editor, empty repeaters would collapse to nothing and become
   un-clickable. Give them a visible minimum. */
.elementor-editor-active .uaia-empty{
	min-height:160px;display:grid;place-items:center;text-align:center;
	border:1px dashed var(--line);border-radius:var(--r-md);padding:26px;
	color:var(--dimmer);font-size:.88rem;
}
.elementor-editor-active .u-light .uaia-empty{border-color:var(--line-dark);color:rgba(20,16,13,.5)}

/* WordPress core alignment + caption classes */
.alignleft{float:left;margin:0 1.5em 1em 0}
.alignright{float:right;margin:0 0 1em 1.5em}
.aligncenter{margin-inline:auto}
.wp-caption-text,.wp-element-caption{font-size:.82rem;color:var(--dimmer);margin-top:8px}
.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{
	position:fixed;top:12px;left:12px;z-index:9999;background:var(--amber);color:var(--ink);
	padding:12px 20px;border-radius:var(--r-pill);font-weight:700;clip:auto;clip-path:none;
	width:auto;height:auto;margin:0;
}

/* Admin bar offset for the sticky header */
.admin-bar .uaia-header.is-fixed{top:32px}
@media(max-width:782px){.admin-bar .uaia-header.is-fixed{top:46px}}

/* Inner pages: the header is absolute over the hero on the homepage, but on a
   normal page it needs a solid ground to sit on. */
.uaia-header--solid{position:relative;background:var(--ink);border-bottom:1px solid var(--line)}

/* Generic page + post content */
.uaia-page{padding:clamp(48px,7vw,104px) 0}
.uaia-page__head{max-width:760px;margin-bottom:clamp(28px,4vw,48px)}
.uaia-entry{max-width:760px}
/* A reading-width wrapper must never cage a builder layout. */
.uaia-entry:has(.elementor),
.uaia-entry:has(.uaia-block),
.elementor-page .uaia-entry,
.elementor-page .uaia-page > .u-wrap{max-width:none;width:100%}
.elementor-page .uaia-page{padding:0}
.uaia-entry h2,.uaia-entry h3{margin-top:1.6em}
.uaia-entry a:not(.u-btn){color:var(--amber);border-bottom:1px solid rgba(242,164,19,.4)}
.uaia-entry a:not(.u-btn):hover{border-color:var(--amber)}
.uaia-entry img{border-radius:var(--r-md);margin-block:1.6em}
.uaia-entry blockquote{
	margin:1.8em 0;padding-left:24px;border-left:2px solid var(--amber);
	font-family:var(--font-display);font-size:1.2rem;line-height:1.4;color:var(--ivory);
}
.uaia-entry ul,.uaia-entry ol{padding-left:1.3em}
.uaia-entry li{margin-bottom:.5em}
.uaia-entry code{background:var(--ink-2);padding:2px 7px;border-radius:6px;font-size:.9em}
.uaia-entry pre{background:var(--ink-2);padding:20px;border-radius:var(--r-md);overflow-x:auto}
.uaia-entry table{width:100%;border-collapse:collapse;margin-block:1.6em}
.uaia-entry th,.uaia-entry td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left}
.uaia-entry th{color:var(--ivory);font-weight:600}

/* Archive grid reuses the guide card */
.uaia-archive__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:900px){.uaia-archive__grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.uaia-archive__grid{grid-template-columns:1fr}}

.uaia-pagination{display:flex;gap:8px;flex-wrap:wrap;margin-top:44px}
.uaia-pagination .page-numbers{
	min-width:46px;min-height:46px;display:inline-grid;place-items:center;padding:0 14px;
	border:1px solid var(--line);border-radius:var(--r-pill);font-size:.88rem;color:var(--dim);
}
.uaia-pagination .page-numbers:hover,.uaia-pagination .page-numbers.current{
	background:var(--amber);border-color:var(--amber);color:var(--ink);font-weight:700;
}

/* 404 + search */
.uaia-404{text-align:center;padding:clamp(70px,10vw,150px) 0}
.uaia-404 h1{font-size:clamp(4rem,14vw,9rem);color:var(--amber);margin-bottom:.1em}
.uaia-search{display:flex;gap:8px;max-width:420px;margin:26px auto 0;flex-wrap:wrap}
.uaia-search input[type=search]{
	flex:1 1 180px;min-width:0;min-height:52px;padding:14px 20px;border-radius:var(--r-pill);
	border:1px solid var(--line);background:rgba(246,240,230,.05);color:var(--ivory);
	font-family:var(--font-body);font-size:16px;
}
.uaia-search input[type=search]::placeholder{color:var(--dimmer)}

/* Chapter single template */
.uaia-chapter-hero{position:relative;min-height:clamp(300px,42vw,480px);display:flex;align-items:flex-end;overflow:hidden}
.uaia-chapter-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.uaia-chapter-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(20,16,13,.3),rgba(20,16,13,.95))}
.uaia-chapter-hero__inner{padding-block:clamp(30px,4vw,58px)}
.uaia-chapter-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.uaia-chapter-meta a{color:var(--amber)}

/* ============================================================================
   WIDGET-ONLY CLASSES
   These exist because the Elementor widgets expose options the static mockup
   did not have, flipping the Soft Landing, hiding board thumbnails, and so on.
   ========================================================================== */

/* Soft Landing: photographs on the left instead of the right */
.uaia-soft--flip .uaia-soft__grid > *:first-child{order:2}
.uaia-soft--flip .uaia-soft__mosaic{order:1}
@media(max-width:900px){
	.uaia-soft--flip .uaia-soft__grid > *:first-child{order:2}
	.uaia-soft--flip .uaia-soft__mosaic{order:1}
}

/* Marquee: dimming is optional */
.uaia-marquee__item img{filter:none}
.uaia-marquee.is-dim .uaia-marquee__item img{filter:saturate(.82) brightness(.82);transition:filter .4s ease}
.uaia-marquee.is-dim .uaia-marquee__item:hover img{filter:saturate(1) brightness(1)}

/* Chapter board without photographs */
.uaia-board--nothumbs .uaia-board__legend,
.uaia-board--nothumbs .uaia-row{grid-template-columns:118px minmax(150px,1fr) 1.8fr minmax(155px,auto) 34px}
@media(max-width:1100px){
	.uaia-board--nothumbs .uaia-board__legend,
	.uaia-board--nothumbs .uaia-row{grid-template-columns:112px minmax(130px,1fr) 1.5fr 34px}
}
@media(max-width:900px){
	.uaia-board--nothumbs .uaia-row{grid-template-columns:1fr auto}
	.uaia-board--nothumbs .uaia-row__city{grid-column:1;grid-row:1}
	.uaia-board--nothumbs .uaia-row__status{grid-column:2;grid-row:1}
	.uaia-board--nothumbs .uaia-row__served{grid-column:1/-1;grid-row:2}
}
/* An empty thumbnail cell should not collapse the grid */
.uaia-row__shot:empty{background:var(--ink-3)}

/* Feature card as a link */
a.uaia-item{color:inherit;text-decoration:none}
a.uaia-item:hover h3{color:var(--amber)}

/* Guide cards: titles and images are links now */
.uaia-post h3 a{color:inherit}
.uaia-post:hover h3 a{color:var(--terra)}
.uaia-post__img{display:block}

/* Gallery tiles are links when the lightbox is on */
a.u-shot{display:block}

/* Custom logo image instead of the lettermark */
.uaia-logo--img .uaia-logo__img{max-height:52px;width:auto}

/* Elementor lightbox tuned to the palette */
.elementor-lightbox{--lightbox-ui-color:var(--ivory)}

/* Founder stack needs the main image to span the side column properly even
   when fewer than three side photos are supplied. */

/* Widget sections inside Elementor should not inherit stray margins */
.elementor-widget-uaia_hero .elementor-widget-container,
.elementor-widget-uaia_marquee .elementor-widget-container,
.elementor-widget-uaia_stats .elementor-widget-container,
.elementor-widget-uaia_cta .elementor-widget-container{margin:0;padding:0}

/* Footer widget area */
.uaia-footer__widget{margin-top:6px}
.uaia-footer__widget input[type=email],
.uaia-footer__widget input[type=text]{
	width:100%;padding:14px 19px;border-radius:var(--r-pill);min-height:52px;
	border:1px solid var(--line);background:rgba(246,240,230,.05);
	color:var(--ivory);font-family:var(--font-body);font-size:16px;
}

/* ============================================================================
   CARD SPANS
   Per-card width overrides from the "Card width" control. Grids are declared
   with minmax(0,1fr) so a spanning card cannot blow the row out.
   ========================================================================== */
.uaia-span-2{grid-column:span 2}
.uaia-span-3{grid-column:span 3}
.uaia-span-full{grid-column:1/-1}
@media(max-width:900px){
	.uaia-span-3{grid-column:span 2}
}
@media(max-width:640px){
	.uaia-span-2,.uaia-span-3,.uaia-span-full{grid-column:1/-1}
}

/* Rich-text card bodies. The editor wraps content in <p>, so style the
   wrapper rather than assuming a bare paragraph. */
.uaia-item__text,.uaia-stage__text,.uaia-quote__text{margin:0}
.uaia-item__text > *:last-child,
.uaia-stage__text > *:last-child,
.uaia-quote__text > *:last-child{margin-bottom:0}
.uaia-item__text p{font-size:.88rem;line-height:1.6;margin-bottom:.7em}
.uaia-stage__text p{font-size:.92rem;line-height:1.6;color:rgba(246,240,230,.76);margin-bottom:.7em}
.uaia-quote__text p{font-family:var(--font-display);font-weight:500;font-size:1.02rem;line-height:1.42;letter-spacing:-.015em;color:var(--ivory);margin-bottom:.6em}
.uaia-item__text a,.uaia-stage__text a,.uaia-quote__text a{color:var(--amber);text-decoration:underline}
.uaia-item__text ul,.uaia-stage__text ul{padding-left:1.1em;margin:.4em 0}
.uaia-quote__text{margin-bottom:22px}

/* Grids declare minmax(0,1fr) so a spanning card cannot force an overflow. */
.uaia-value__grid,.uaia-stages__grid,.uaia-voices__grid{grid-auto-flow:dense}

/* ============================================================================
   MOBILE PASS
   Everything below runs last so it wins at equal specificity. Two jobs:
   make every section behave down to 320px, and centre the page on phones.

   Centring is controlled by the body class .uaia-center-mobile, set from
   Appearance > Customize > UAIA Layout. On by default.
   ========================================================================== */

/* ---- 900px and under: tablets and large phones ------------------------- */
@media(max-width:900px){
	.uaia-hero{min-height:auto;padding-top:104px}
	.uaia-hero__inner{padding-bottom:44px}
	.uaia-stage{min-height:360px}
	.uaia-marquee__item{width:clamp(140px,32vw,200px)}
	.uaia-board__foot{padding-inline:0}
	.uaia-gallery__grid{grid-auto-rows:minmax(110px,auto)}
}

/* ---- 640px and under: phones ------------------------------------------- */
@media(max-width:640px){
	:root{--gutter:18px}

	.uaia-hero{padding-top:92px}
	.uaia-hero__inner{padding-bottom:36px}
	.uaia-hero h1{max-width:none}

	.uaia-stage{min-height:300px;padding:24px 20px 26px}
	.uaia-stage__num{top:20px;left:20px;right:20px}

	.uaia-item{padding:20px}
	.uaia-quote__body{padding:22px 20px 20px}
	.uaia-post__body{padding:20px 20px 22px}

	.uaia-strip__item{padding:16px 14px}
	.uaia-founder__main{aspect-ratio:4/5}

	.uaia-soft__mosaic{gap:9px}
	.uaia-soft__list li{padding:13px 0}

	.uaia-gallery__grid{grid-auto-rows:minmax(96px,auto)}
	.uaia-marquee__item{width:clamp(128px,42vw,180px)}

	/* Long subdomains must never widen the page. */
	.uaia-row__url,.uaia-row__served{overflow-wrap:anywhere}
}

/* ---- 420px and under: small phones -------------------------------------- */
@media(max-width:420px){
	:root{--gutter:16px}

	.uaia-hero{padding-top:84px}
	.uaia-stage{min-height:260px;padding:22px 18px 24px}
	.uaia-item{padding:18px}
	.uaia-row{padding:12px 12px}
	.uaia-row__shot{width:58px}
	.uaia-row__city{font-size:1.02rem}
	.uaia-footer__social a{width:42px;height:42px}
	.uaia-gallery__grid{grid-template-columns:1fr;grid-auto-rows:minmax(150px,auto)}
	.uaia-gallery__grid .u-shot{grid-column:auto!important;grid-row:auto!important}
}

/* ---- 340px and under: the floor ----------------------------------------- */
@media(max-width:340px){
	:root{--gutter:13px}
	.uaia-strip__inner{grid-template-columns:1fr}
	.uaia-strip__item{border-right:0;border-bottom:1px solid var(--line)}
	.uaia-soft__mosaic{grid-template-columns:1fr}
}

/* ============================================================================
   CENTRE ON MOBILE
   ========================================================================== */
@media(max-width:900px){
	body.uaia-center-mobile .uaia-block{text-align:center}

	/* The eyebrow is a flex row with a leading rule, so it needs centring
	   as a flex container, not just as text. */
	body.uaia-center-mobile .u-eyebrow{justify-content:center}

	body.uaia-center-mobile .u-lead,
	body.uaia-center-mobile .uaia-hero h1,
	body.uaia-center-mobile .uaia-founder blockquote,
	body.uaia-center-mobile .uaia-board__foot p,
	body.uaia-center-mobile .uaia-gallery__cap,
	body.uaia-center-mobile .uaia-item__text,
	body.uaia-center-mobile .uaia-stage__text,
	body.uaia-center-mobile .uaia-quote__text{margin-left:auto;margin-right:auto}

	/* Blocks that are visually anchored need their anchor moved too. */
	body.uaia-center-mobile .uaia-founder blockquote{border-left:0;padding-left:0;border-top:2px solid var(--amber);padding-top:18px}
	body.uaia-center-mobile .uaia-gallery__cap{justify-content:center}
	body.uaia-center-mobile .uaia-gallery__cap::before{display:none}
	body.uaia-center-mobile .uaia-stage__num::after{display:none}
	body.uaia-center-mobile .uaia-stage__num{justify-content:center}

	/* Rows of buttons and people. */
	body.uaia-center-mobile .uaia-hero__cta,
	body.uaia-center-mobile .uaia-cta__btns,
	body.uaia-center-mobile .uaia-board__head,
	body.uaia-center-mobile .uaia-hub__head,
	body.uaia-center-mobile .uaia-gallery__head,
	body.uaia-center-mobile .uaia-chapters__head,
	body.uaia-center-mobile .uaia-founder__sig,
	body.uaia-center-mobile .uaia-quote__who,
	body.uaia-center-mobile .uaia-footer__social,
	body.uaia-center-mobile .uaia-footer__form{justify-content:center}

	body.uaia-center-mobile .uaia-board__head>div,
	body.uaia-center-mobile .uaia-hub__head>div,
	body.uaia-center-mobile .uaia-gallery__head>div{max-width:none;width:100%}

	body.uaia-center-mobile .uaia-soft__body .u-btn,
	body.uaia-center-mobile .uaia-soft .u-btn{align-self:center}

	/* A numbered checklist reads badly centred, so the row stays left while
	   the group as a whole is centred. */
	body.uaia-center-mobile .uaia-soft__list{text-align:left;max-width:34rem;margin-inline:auto}

	/* Directory rows: the card is centred, the detail lines stay readable. */
	body.uaia-center-mobile .uaia-row{justify-items:center}
	body.uaia-center-mobile .uaia-row__status{justify-self:center}

	body.uaia-center-mobile .uaia-footer__grid{text-align:center}
	body.uaia-center-mobile .uaia-footer__bar{align-items:center;text-align:center}
	body.uaia-center-mobile .uaia-footer__bar nav{justify-content:center}
	body.uaia-center-mobile .uaia-footer__brand .uaia-logo{justify-content:center}
	body.uaia-center-mobile .uaia-footer__brand p{margin-inline:auto}
	body.uaia-center-mobile .uaia-footer ul{justify-items:center}
}

/* The value card flips to a horizontal layout on phones; centring that would
   look wrong, so it opts out. */
@media(max-width:560px){
	body.uaia-center-mobile .uaia-item{text-align:left}
	body.uaia-center-mobile .uaia-hero__trust{justify-content:center}
	body.uaia-center-mobile .uaia-hero__trust p{text-align:center}
}

/* ============================================================================
   MOBILE STACKING, MUST WIN
   The hero, Soft Landing and Founder each expose a "split" slider that writes
   grid-template-columns through an Elementor responsive control. Elementor's
   per-element selector outranks a plain theme media query, so without this the
   two-column layout survives on a phone and everything reads as two thin
   columns. These sections are designed to stack, so the stack is enforced.
   ========================================================================== */
/* Stacking follows the widget's "Stack to one column" setting. */
.uaia-stack-always .uaia-hero__grid,
.uaia-stack-always .uaia-soft__grid,
.uaia-stack-always .uaia-founder__grid{grid-template-columns:minmax(0,1fr)!important}

@media(max-width:900px){
	.uaia-stack-tablet .uaia-hero__grid,
	.uaia-stack-tablet .uaia-soft__grid,
	.uaia-stack-tablet .uaia-founder__grid{grid-template-columns:minmax(0,1fr)!important}

	.uaia-soft__grid{gap:32px}
	.uaia-founder__grid{gap:30px}
	.uaia-hero__grid{gap:22px}

	/* Photos read better above the words once stacked. */
	.uaia-stack-tablet .uaia-soft__mosaic{order:-1;max-width:460px;margin-inline:auto}
	.uaia-stack-tablet .uaia-founder__main{order:-1;max-width:420px;margin-inline:auto}
}

@media(max-width:640px){
	.uaia-stack-mobile .uaia-hero__grid,
	.uaia-stack-mobile .uaia-soft__grid,
	.uaia-stack-mobile .uaia-founder__grid{grid-template-columns:minmax(0,1fr)!important}
	.uaia-stack-mobile .uaia-soft__mosaic,
	.uaia-stack-mobile .uaia-founder__main{order:-1;max-width:460px;margin-inline:auto}
}

/* ---- proportion on phones ------------------------------------------------
   The display face is set very large by design. Its clamp() floor was still
   too high for a 360px screen, so the headline swallowed the viewport.
   -------------------------------------------------------------------------- */
@media(max-width:640px){
	h1{font-size:clamp(2rem,8.6vw,2.9rem);line-height:1.06}
	h2{font-size:clamp(1.72rem,7vw,2.3rem);line-height:1.08}
	h3{font-size:clamp(1.16rem,4.6vw,1.4rem)}
	.u-lead{font-size:1rem;line-height:1.62}
	.uaia-founder blockquote{font-size:clamp(1.15rem,5.4vw,1.5rem);line-height:1.32}
	.uaia-hero__side p{font-size:1rem}

	/* Buttons: full width, one per line, text on one line. */
	.uaia-hero__cta,.uaia-cta__btns{flex-direction:column;align-items:stretch;width:100%}
	.uaia-hero__cta .u-btn,.uaia-cta__btns .u-btn{width:100%;white-space:nowrap;padding-inline:20px}

	.uaia-strip__item b{font-size:clamp(1.5rem,6.4vw,1.9rem)}
	.uaia-quote__text p{font-size:.98rem}
}

@media(max-width:420px){
	h1{font-size:clamp(1.82rem,9vw,2.35rem)}
	h2{font-size:clamp(1.55rem,7.4vw,1.95rem)}
	.uaia-founder blockquote{font-size:clamp(1.05rem,5.8vw,1.3rem)}
}

/* Admin-only setup hints. Visitors never see these; they are rendered only
   for logged-in users with the right capability. */
.uaia-admin-hint{
	font-size:.8rem;line-height:1.5;color:var(--dimmer);
	border:1px dashed var(--line);border-radius:var(--r-sm);
	padding:12px 14px;margin:0;
}
.uaia-admin-hint a{color:var(--amber);text-decoration:underline}
.u-light .uaia-admin-hint{border-color:var(--line-dark);color:rgba(20,16,13,.5)}

/* ============================================================================
   NATIONAL CHAPTER MAP
   Geometry comes from inc/map-data.php, projected with albersUsa, which is
   why Alaska and Hawaii sit inset at the bottom left.
   ========================================================================== */
.uaia-map__head{max-width:640px;margin-bottom:26px}

.uaia-map__legend{
	list-style:none;padding:0;margin:0 0 22px;display:flex;flex-wrap:wrap;gap:8px 22px;
	font-size:.78rem;letter-spacing:.04em;color:var(--dim);
}
.uaia-map__legend li{display:flex;align-items:center;gap:9px}
.uaia-map__key{width:11px;height:11px;border-radius:3px;flex:none}
.uaia-map__key--live{background:var(--sage)}
.uaia-map__key--forming{background:var(--amber)}
.uaia-map__key--soon{background:var(--clay)}
.uaia-map__key--open{background:var(--ink-3);border:1px solid var(--line)}

.uaia-map__figure{position:relative;margin:0;width:100%}
.uaia-map__svg{width:100%;height:auto;display:block;overflow:visible}

/* Land */
.uaia-map__state{
	fill:var(--ink-2);stroke:var(--line);stroke-width:.7;
	transition:fill .25s ease,stroke .25s ease;cursor:pointer;
}
.uaia-map__state.is-hovered{stroke:var(--dimmer)}
.uaia-map__state.is-live{fill:rgba(126,146,112,.42)}
.uaia-map__state.is-forming{fill:rgba(242,164,19,.34)}
.uaia-map__state.is-soon{fill:rgba(200,84,31,.28)}
.uaia-map__state.is-live.is-hovered{fill:rgba(126,146,112,.62)}
.uaia-map__state.is-forming.is-hovered{fill:rgba(242,164,19,.52)}
.uaia-map__state.is-soon.is-hovered{fill:rgba(200,84,31,.44)}

/* Pins */
.uaia-map__pin{cursor:pointer}
.uaia-map__dot{fill:var(--ivory);stroke:var(--ink);stroke-width:1.6;transition:r .22s var(--ease)}
.uaia-map__pin.is-live .uaia-map__dot{stroke:var(--sage)}
.uaia-map__pin.is-forming .uaia-map__dot{stroke:var(--amber)}
.uaia-map__pin.is-soon .uaia-map__dot{stroke:var(--clay)}
.uaia-map__pin:hover .uaia-map__dot,
.uaia-map__pin:focus .uaia-map__dot{r:7.5}
.uaia-map__pin:focus{outline:none}
.uaia-map__pin:focus-visible .uaia-map__dot{stroke:var(--ivory);stroke-width:2.6}

.uaia-map__ring{fill:none;stroke:var(--sage);stroke-width:1.4;opacity:0}
.uaia-map.is-pulsing .uaia-map__pin.is-live .uaia-map__ring{
	animation:uaia-pulse 2.8s ease-out infinite;
	animation-delay:calc(var(--i,0) * .32s);
	transform-origin:center;
}
@keyframes uaia-pulse{
	0%{opacity:.75;r:6}
	70%{opacity:0;r:17}
	100%{opacity:0;r:17}
}

/* Tooltip */
.uaia-map__tip{
	position:absolute;z-index:5;transform:translate(-50%,-100%);pointer-events:none;
	background:var(--ink);border:1px solid var(--line);border-radius:var(--r-sm);
	padding:9px 13px;max-width:230px;box-shadow:0 12px 30px rgba(0,0,0,.5);
}
.uaia-map__tip b{display:block;color:var(--ivory);font-size:.88rem;font-weight:600;line-height:1.3}
.uaia-map__tip small{display:block;color:var(--dimmer);font-size:.75rem;line-height:1.4;margin-top:2px}

/* Counts */
.uaia-map__counts{
	display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:30px;
	border-top:1px solid var(--line);padding-top:24px;
}
.uaia-map__counts b{
	display:block;font-family:var(--font-display);font-weight:700;letter-spacing:-.03em;
	color:var(--ivory);font-size:clamp(1.7rem,3.4vw,2.4rem);line-height:1;
}
.uaia-map__counts small{display:block;font-size:.76rem;letter-spacing:.05em;color:var(--dimmer);margin-top:6px}
.uaia-map__cta{margin-top:26px}
.uaia-map__prompt:empty{display:none}

@media(max-width:760px){
	.uaia-map__counts{grid-template-columns:1fr 1fr;gap:22px 14px}
	.uaia-map__legend{gap:6px 16px;font-size:.73rem}
}
@media(max-width:420px){
	.uaia-map__tip{max-width:180px;padding:7px 10px}
}

/* ============================================================================
   SCROLL REVEAL
   Applied by data-uaia-reveal. Anyone with reduced motion turned on gets the
   finished state immediately and never sees a transition.
   ========================================================================== */
[data-uaia-reveal]{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
[data-uaia-reveal].is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
	[data-uaia-reveal]{opacity:1;transform:none;transition:none}
	.uaia-map.is-pulsing .uaia-map__pin .uaia-map__ring{animation:none}
}

/* ============================================================================
   MAP: COLOUR AND LIGHT
   Active states are filled with a gradient rather than a flat tint, a slow
   band of light sweeps across them, and small points of light cluster around
   the pins. All of it stops for reduced motion.
   ========================================================================== */

/* The gradient fill is set as an attribute, so the flat colour is only the
   fallback for states with no chapter. */
.uaia-map__state.is-live,
.uaia-map__state.is-forming,
.uaia-map__state.is-soon{
	stroke:rgba(246,240,230,.22);
	stroke-width:.9;
	animation:uaia-map-in .7s var(--ease) both;
	animation-delay:var(--delay,0s);
}
@keyframes uaia-map-in{
	from{opacity:0;transform:translateY(4px)}
	to{opacity:1;transform:none}
}

.uaia-map__state.is-live.is-hovered,
.uaia-map__state.is-forming.is-hovered,
.uaia-map__state.is-soon.is-hovered{
	stroke:var(--ivory);
	stroke-width:1.5;
	filter:brightness(1.25);
}

/* Sweeping light, layered over the active states only. */
.uaia-map__shine{pointer-events:none;mix-blend-mode:screen}

/* Points of light around each chapter. */
.uaia-map__sparks{pointer-events:none}
.uaia-map__spark{
	fill:var(--amber);
	opacity:0;
	animation:uaia-spark 3.4s ease-in-out infinite;
	animation-delay:var(--d,0s);
}
.uaia-map__spark:nth-child(3n){fill:var(--sage)}
.uaia-map__spark:nth-child(3n+1){fill:var(--ivory)}
@keyframes uaia-spark{
	0%,100%{opacity:0;transform:scale(.6)}
	40%{opacity:.9;transform:scale(1)}
	60%{opacity:.35;transform:scale(.85)}
}

/* Pins sit above the light and pick up the glow filter. */
.uaia-map__pins{pointer-events:auto}
.uaia-map__pin.is-live .uaia-map__ring{stroke:var(--sage)}
.uaia-map__pin.is-forming .uaia-map__ring{stroke:var(--amber)}
.uaia-map__pin.is-soon .uaia-map__ring{stroke:var(--clay)}
.uaia-map.is-pulsing .uaia-map__pin.is-forming .uaia-map__ring{
	animation:uaia-pulse 3.4s ease-out infinite;
	animation-delay:calc(var(--i,0) * .32s + .6s);
}

/* A soft wash behind the whole map so it does not float on flat black. */
.uaia-map__figure::before{
	content:"";position:absolute;inset:-6% -4%;z-index:0;pointer-events:none;
	background:
		radial-gradient(ellipse 42% 55% at 44% 74%, rgba(242,164,19,.13), transparent 68%),
		radial-gradient(ellipse 38% 48% at 74% 40%, rgba(126,146,112,.10), transparent 70%);
	filter:blur(22px);
}
.uaia-map__figure > *{position:relative;z-index:1}

@media (prefers-reduced-motion:reduce){
	.uaia-map__spark{animation:none;opacity:.55}
	.uaia-map__state.is-live,
	.uaia-map__state.is-forming,
	.uaia-map__state.is-soon{animation:none}
	.uaia-map__shine{display:none}
}

/* ============================================================================
   NATIVE CONTAINER TEMPLATES
   The presentational sections are now built from Elementor containers and core
   widgets, so they carry drag handles. These rules make a native section look
   identical to the custom widget it replaced.

   Elementor supplies the layout. The theme supplies the look.
   ========================================================================== */

/* Core widgets inside a UAIA template inherit the theme's type rather than
   Elementor's defaults. */
.uaia-tpl .elementor-widget-heading .elementor-heading-title{
	font-family:var(--font-display);font-weight:700;letter-spacing:-.03em;
	color:inherit;margin:0;
}
.uaia-tpl h1.elementor-heading-title{font-size:clamp(2.6rem,6.6vw,5rem);line-height:1.02}
.uaia-tpl h2.elementor-heading-title{font-size:clamp(2rem,4.2vw,3.2rem);line-height:1.06}
.uaia-tpl h3.elementor-heading-title{font-size:clamp(1.18rem,1.9vw,1.5rem);line-height:1.2}
.uaia-tpl h4.elementor-heading-title{font-size:.94rem;letter-spacing:.02em}

.uaia-tpl .elementor-widget-text-editor{
	font-family:var(--font-body);font-size:.96rem;line-height:1.66;color:var(--dim);
}
.uaia-tpl .elementor-widget-text-editor p:last-child{margin-bottom:0}

/* The eyebrow, as a heading widget with a class rather than custom markup. */
.uaia-tpl .u-eyebrow .elementor-heading-title{
	font-family:var(--font-body);font-size:.72rem;font-weight:700;
	letter-spacing:.2em;text-transform:uppercase;color:var(--amber);
}

/* Buttons pick up the theme's button styling. */
.uaia-tpl .elementor-button{
	font-family:var(--font-body);font-weight:600;font-size:.9rem;letter-spacing:.01em;
	border-radius:var(--r-pill);padding:15px 26px;min-height:52px;
	display:inline-flex;align-items:center;justify-content:center;
	transition:transform .3s var(--ease),background .3s var(--ease);
}
.uaia-tpl .u-btn--amber .elementor-button{background:var(--amber);color:var(--ink)}
.uaia-tpl .u-btn--ink .elementor-button{background:var(--ink);color:var(--ivory)}
.uaia-tpl .u-btn--outline .elementor-button{background:transparent;color:var(--ivory);box-shadow:inset 0 0 0 1px rgba(246,240,230,.4)}
.uaia-tpl .elementor-button:hover{transform:translateY(-2px)}

/* Images inside a template get the theme's frame treatment. */
.uaia-tpl__shot img{
	width:100%;height:100%;object-fit:cover;
	border-radius:var(--r-md);display:block;
}
.uaia-tpl .uaia-founder__main img{border-radius:var(--r-lg);aspect-ratio:3/4.1;object-fit:cover}

/* Cards built as inner containers. */
.uaia-tpl__card{
	background:var(--ink-2);border:1px solid var(--line);border-radius:var(--r-lg);
	padding:24px;transition:border-color .3s var(--ease),transform .3s var(--ease);
}
.uaia-tpl__card:hover{border-color:var(--dimmer);transform:translateY(-3px)}
.uaia-tpl__card .uaia-tpl__shot img{aspect-ratio:4/3;margin-bottom:16px}

/* Hero, on a background image with an overlay set in Elementor. */
.uaia-tpl.uaia-hero{color:var(--ivory)}
.uaia-tpl.uaia-hero .elementor-heading-title{color:var(--ivory)}

/* The CTA is amber, so its type flips to ink. */
.uaia-tpl.uaia-cta,
.uaia-tpl.uaia-cta .elementor-heading-title,
.uaia-tpl.uaia-cta .elementor-widget-text-editor{color:var(--ink)}
.uaia-tpl.uaia-cta .u-eyebrow .elementor-heading-title{color:rgba(20,16,13,.62)}

/* Founder sits on ivory. */
.uaia-tpl.u-light,
.uaia-tpl.u-light .elementor-heading-title{color:var(--ink)}
.uaia-tpl.u-light .elementor-widget-text-editor{color:rgba(20,16,13,.72)}
.uaia-tpl .uaia-founder__quote{
	font-family:var(--font-display);font-size:clamp(1.3rem,2.4vw,1.85rem);
	line-height:1.3;letter-spacing:-.02em;
	border-top:2px solid var(--amber);padding-top:18px;
}

/* The Soft Landing checklist, as an icon list. */
.uaia-tpl .uaia-soft__list .elementor-icon-list-item{
	border-bottom:1px solid var(--line);padding:14px 0;align-items:flex-start;
}
.uaia-tpl .uaia-soft__list .elementor-icon-list-text{
	font-size:.94rem;line-height:1.55;color:var(--dim);
}

/* Stage number. */
.uaia-tpl .uaia-stage__num .elementor-heading-title{
	font-family:var(--font-body);font-size:.74rem;font-weight:700;
	letter-spacing:.16em;text-transform:uppercase;color:var(--amber);
}

/* Native sections stack on their own, since Elementor handles the breakpoint. */
@media(max-width:900px){
	.uaia-tpl .e-con-inner,
	.uaia-tpl .e-con{--flex-direction:column}
}
