/* ==========================================================================
   WINNIE MORAA — SITE KIT
   The whole site's design system. Loaded once by the Winnie Moraa Site Kit
   plugin, so every page block stays short.

   Everything is scoped under .wm, which keeps the theme out of our work and
   our work out of the theme. Base rules sit inside :where() so they carry no
   specificity weight and components below always win.

   Change colours and fonts in section 1 only.
   ========================================================================== */

/* ==========================================================================
   0. THE PAGE ITSELF

   These few rules live in the plugin rather than the theme on purpose. The
   theme's stylesheet can be switched off or fail to load; this one always
   loads, so the site can never be left showing white behind the design.
   ========================================================================== */
html,
body{background:#140729;}

/* Our sections paint their own full-width backgrounds, so they must not be
   trapped inside Elementor's boxed container. This releases whichever
   container is actually holding one of our blocks, in both the old section
   markup and the newer flex containers, without touching anything else. */
.wm-main .e-con,
.e-con:has(.wm){--width:100%;--content-width:100%;max-width:100%;padding-inline:0;}
.wm-main .e-con-inner,
.e-con-inner:has(.wm){--content-width:100%;max-width:100%;padding-inline:0;}
.wm-main .elementor-section-boxed > .elementor-container,
.elementor-container:has(.wm){max-width:100%;}
.wm-main .elementor-widget-html,
.elementor-widget-html:has(.wm),
.elementor-widget-container:has(> .wm){width:100%;max-width:100%;}

/* ==========================================================================
   1. TOKENS

   Two hosts, because the header and the drawer cannot live inside .wm:
   .wm clips horizontal overflow, which would stop a sticky header sticking,
   and its backdrop blur would trap a fixed drawer. So page content uses .wm
   and the site chrome uses .wm-chrome. Both read the same tokens.
   ========================================================================== */
.wm,.wm-chrome{
  /* --- type. Set any of these to `inherit` to use the theme's own font --- */
  --f-display:"Cinzel", Georgia, serif;
  --f-body:"Outfit", system-ui, -apple-system, sans-serif;
  --f-script:"Italianno", cursive;

  /* --- colour --- */
  --ink:#140729;        /* page base              */
  --ink-deep:#0D0320;   /* footer, deepest areas  */
  --stone:#1E0E3D;      /* raised box             */
  --stone-up:#26134C;   /* lifted box             */
  --royal:#4A1D96;
  --violet:#7C50D9;
  --lilac:#B79CF0;
  --gold:#C9983A;
  --gold-lit:#F3DFA2;
  --gold-deep:#8A6420;
  --chalk:#EFE9FB;      /* primary text           */
  --dust:#AE9FCE;       /* secondary text         */
  --wa:#1FA855;         /* WhatsApp green         */
  --wa-dark:#19934A;

  --line:rgba(201,152,58,.30);
  --line-soft:rgba(201,152,58,.14);

  --radius:3px;
  --gutter:clamp(14px,3vw,28px);
  --bay:clamp(60px,8.5vw,124px);
  --shell:1180px;
}

/* ==========================================================================
   2. FOUNDATION
   ========================================================================== */
.wm{
  position:relative; isolation:isolate;
  font-family:var(--f-body); color:var(--chalk); background:var(--ink);
  font-size:17px; line-height:1.75; font-weight:300;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:clip;
}
/* the chrome: same type and colour, but no clipping, no grain, no background */
.wm-chrome{
  font-family:var(--f-body);color:var(--chalk);
  font-size:16px;line-height:1.6;font-weight:300;
  -webkit-font-smoothing:antialiased;
}
.wm-chrome *,.wm-chrome *::before,.wm-chrome *::after{box-sizing:border-box;}
.wm-chrome :where(a){color:var(--chalk);text-decoration:none;}
.wm-chrome :where(ul,ol){margin:0;padding:0;list-style:none;}
.wm-chrome :where(img){display:block;max-width:100%;height:auto;}
.wm-chrome [hidden]{display:none !important;}
.wm-chrome :focus-visible{outline:2px solid var(--gold-lit);outline-offset:3px;border-radius:2px;}

.wm *,.wm *::before,.wm *::after{box-sizing:border-box;}
.wm :where(img){display:block;max-width:100%;height:auto;}
.wm :where(p){margin:0 0 1.1em;max-width:62ch;}
.wm :where(h1,h2,h3,h4){
  font-family:var(--f-display);font-weight:600;line-height:1.14;
  margin:0 0 .6em;color:var(--gold-lit);letter-spacing:.01em;
}
.wm :where(a){color:var(--gold-lit);text-decoration:none;}
.wm :where(a):hover{color:var(--gold);}
.wm :where(ul,ol){margin:0;padding:0;list-style:none;}
.wm :where(figure){margin:0;}
.wm [hidden]{display:none !important;}
.wm :focus-visible{outline:2px solid var(--gold-lit);outline-offset:3px;border-radius:2px;}
.wm-sr{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;}

/* grain — stops dark gradients banding and gives the page a printed depth */
.wm::after{
  content:"";position:absolute;inset:0;z-index:40;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.wm-shell{width:100%;max-width:var(--shell);margin:0 auto;padding:0 var(--gutter);}
.wm-shell--narrow{max-width:900px;}
.wm-bay{padding:var(--bay) 0;position:relative;z-index:2;}
.wm-bay--tight{padding:calc(var(--bay) * .62) 0;}
.wm-bay--lift{background:linear-gradient(180deg,var(--ink),#1B0B38 50%,var(--ink));}
.wm-bay--glow{background:radial-gradient(72% 130% at 50% 50%,rgba(74,29,150,.5),transparent 72%),var(--ink);}

/* ==========================================================================
   3. SHARED PIECES
   ========================================================================== */

/* the diamond rule, taken from the ministry's own poster ornament */
.wm-rule{display:flex;align-items:center;gap:14px;justify-content:center;margin:0 0 18px;}
.wm-rule::before,.wm-rule::after{content:"";height:1px;width:clamp(40px,12vw,120px);background:linear-gradient(90deg,transparent,var(--gold));}
.wm-rule::after{background:linear-gradient(270deg,transparent,var(--gold));}
.wm-rule i{width:7px;height:7px;background:var(--gold);transform:rotate(45deg);flex:none;}

.wm-h2{font-size:clamp(30px,4.6vw,54px);text-align:center;margin:0 0 .35em;letter-spacing:.03em;}
.wm-h2--left{text-align:left;}
.wm-intro{text-align:center;color:var(--dust);max-width:58ch;margin:0 auto calc(var(--bay) * .5);font-size:clamp(16px,1.7vw,18.5px);text-wrap:pretty;}
.wm-intro--left{text-align:left;margin-left:0;}
.wm-lede{font-size:clamp(18px,2.2vw,23px);line-height:1.6;color:var(--chalk);font-weight:300;}

.wm-foil{
  background:linear-gradient(104deg,var(--gold-deep) 0%,var(--gold) 22%,var(--gold-lit) 38%,#FFF8E2 46%,var(--gold-lit) 54%,var(--gold) 70%,var(--gold-deep) 100%);
  background-size:280% 100%;background-position:78% 0;
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.wm-violetfoil{
  background:linear-gradient(176deg,#D9C7FF 0%,var(--violet) 46%,#3E1A86 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.wm-script{font-family:var(--f-script);font-size:clamp(28px,4vw,44px);line-height:1;color:var(--gold-lit);}

/* --- boxes: the masonry unit --------------------------------------------- */
.wm-box{
  background:linear-gradient(158deg,rgba(124,80,217,.12),transparent 56%),var(--stone);
  border:1px solid var(--line-soft);border-radius:var(--radius);
  padding:clamp(24px,3.2vw,40px);position:relative;
}
.wm-box--lit{background:linear-gradient(158deg,rgba(124,80,217,.2),transparent 60%),var(--stone-up);border-color:var(--line);}
.wm-box--flush{padding:0;overflow:hidden;}

/* mortared group: boxes joined by hairlines, like a course of stone */
.wm-course{display:grid;gap:1px;background:var(--line-soft);border:1px solid var(--line-soft);border-radius:var(--radius);overflow:hidden;}
.wm-course > *{background:var(--stone);margin:0;border:0;border-radius:0;}
.wm-course--2{grid-template-columns:repeat(2,1fr);}
.wm-course--3{grid-template-columns:repeat(3,1fr);}
.wm-course--4{grid-template-columns:repeat(4,1fr);}

/* spaced grid */
.wm-grid{display:grid;gap:var(--gutter);}
.wm-grid--2{grid-template-columns:repeat(2,1fr);}
.wm-grid--3{grid-template-columns:repeat(3,1fr);}
.wm-grid--4{grid-template-columns:repeat(4,1fr);}
.wm-grid--split{grid-template-columns:1.1fr .9fr;gap:clamp(26px,3.8vw,56px);align-items:center;}
.wm-grid--split-rev{grid-template-columns:.9fr 1.1fr;gap:clamp(26px,3.8vw,56px);align-items:center;}
.wm-stack{display:flex;flex-direction:column;gap:var(--gutter);}

/* --- buttons -------------------------------------------------------------- */
.wm-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:var(--f-body);font-size:14.5px;font-weight:600;letter-spacing:.07em;
  text-transform:uppercase;padding:15px 30px;border-radius:var(--radius);
  border:1px solid transparent;cursor:pointer;text-align:center;
  transition:background-color .25s,color .25s,border-color .25s,transform .15s;
}
.wm-btn:active{transform:translateY(1px);}
.wm-btn--gold{background:linear-gradient(180deg,var(--gold-lit),var(--gold));color:#1A0B33;box-shadow:0 1px 0 rgba(255,255,255,.4) inset,0 10px 30px -12px rgba(201,152,58,.7);}
.wm-btn--gold:hover{background:linear-gradient(180deg,#FFF3D2,var(--gold-lit));color:#1A0B33;}
.wm-btn--line{border-color:var(--line);color:var(--gold-lit);background:rgba(201,152,58,.05);}
.wm-btn--line:hover{border-color:var(--gold);background:rgba(201,152,58,.12);color:var(--gold-lit);}
.wm-btn--wa{background:var(--wa);color:#fff;box-shadow:0 10px 30px -14px rgba(31,168,85,.9);}
.wm-btn--wa:hover{background:var(--wa-dark);color:#fff;}
.wm-btn--wide{width:100%;}
.wm-btn[disabled]{opacity:.55;cursor:not-allowed;}
.wm-btn svg{width:17px;height:17px;flex:none;fill:currentColor;}
.wm-acts{display:flex;gap:12px;flex-wrap:wrap;}
.wm-acts--mid{justify-content:center;}

/* --- small labelled fact -------------------------------------------------- */
.wm-fact{padding:clamp(18px,2.2vw,26px);text-align:center;}
.wm-fact__k{font-size:11.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--dust);margin:0 0 7px;max-width:none;}
.wm-fact__v{font-family:var(--f-display);font-size:clamp(16px,1.9vw,21px);color:var(--gold-lit);margin:0;max-width:none;font-weight:600;line-height:1.3;}

/* --- pill / tag ----------------------------------------------------------- */
.wm-tag{display:inline-block;font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--lilac);border:1px solid var(--line-soft);padding:6px 14px;border-radius:999px;}

/* ==========================================================================
   4. HERO + PAGE CROWN
   ========================================================================== */
.wm-hero{
  position:relative;z-index:2;text-align:center;
  padding:clamp(70px,11vw,132px) 0 clamp(120px,15vw,186px);
  background:
    radial-gradient(118% 76% at 50% -8%,rgba(243,223,162,.20),transparent 58%),
    radial-gradient(90% 58% at 50% 108%,rgba(124,80,217,.42),transparent 70%),
    linear-gradient(180deg,#24114C 0%,var(--ink) 74%);
  overflow:hidden;
}
.wm-hero::before{
  content:"";position:absolute;top:-14%;left:50%;width:min(760px,92vw);height:78%;
  transform:translateX(-50%);pointer-events:none;filter:blur(5px);
  background:conic-gradient(from 178deg at 50% 0,transparent 0deg,rgba(243,223,162,.14) 6deg,transparent 13deg,rgba(243,223,162,.09) 20deg,transparent 27deg);
}
.wm-hero__in{position:relative;z-index:2;}
.wm-eyebrow{font-size:12.5px;letter-spacing:.42em;text-transform:uppercase;color:var(--lilac);margin:0 0 clamp(20px,3vw,32px);max-width:none;}

/* the big name lockup */
.wm-mark{margin:0 auto;line-height:.88;font-weight:700;display:block;max-width:none;}
.wm-mark span{display:block;font-family:var(--f-display);}
.wm-mark .sm{font-size:clamp(17px,2.7vw,30px);letter-spacing:.46em;text-indent:.46em;margin-bottom:.18em;}
.wm-mark .lg{font-size:clamp(50px,11.5vw,132px);letter-spacing:.015em;}
.wm-mark .md{font-size:clamp(36px,8.4vw,96px);letter-spacing:.05em;margin-top:-.04em;}

.wm-cry{
  margin:clamp(24px,3.4vw,38px) 0 clamp(28px,3.8vw,42px);
  font-family:var(--f-display);font-weight:500;
  font-size:clamp(15px,2.2vw,24px);letter-spacing:.3em;text-transform:uppercase;
  color:var(--chalk);max-width:none;text-wrap:balance;
}
.wm-cry span{color:var(--gold);padding:0 .35em;}

/* compact header for inner pages */
.wm-crown{
  position:relative;z-index:2;text-align:center;overflow:hidden;
  padding:clamp(60px,8vw,104px) 0 clamp(48px,6vw,80px);
  background:
    radial-gradient(110% 80% at 50% -14%,rgba(243,223,162,.16),transparent 60%),
    linear-gradient(180deg,#22104A 0%,var(--ink) 86%);
}
.wm-crown h1{font-size:clamp(36px,6.6vw,74px);letter-spacing:.02em;margin:0 0 .22em;}
.wm-crown__sub{color:var(--dust);max-width:56ch;margin:0 auto;font-size:clamp(16px,1.8vw,19px);text-wrap:pretty;}
.wm-crumb{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--dust);margin:0 0 clamp(16px,2.4vw,26px);max-width:none;}
.wm-crumb a{color:var(--dust);}
.wm-crumb a:hover{color:var(--gold);}
.wm-crumb i{font-style:normal;padding:0 .6em;color:var(--gold);}

/* the ledge: a course of stones bridging a hero and the bay beneath it */
.wm-ledge{position:relative;z-index:6;margin-top:clamp(-96px,-11vw,-74px);}
.wm-ledge .wm-course > *{background:linear-gradient(180deg,#271350,#1C0C3A);}
.wm-ledge .wm-course{box-shadow:0 34px 70px -34px rgba(0,0,0,.92);border-color:var(--line);background:var(--line);}

/* ==========================================================================
   5. PLAQUE — the declaration / big quote
   ========================================================================== */
.wm-plaque{
  max-width:980px;margin:0 auto;text-align:center;position:relative;
  padding:clamp(38px,5.6vw,70px) clamp(26px,5vw,76px);
  border:1px solid var(--gold);border-radius:var(--radius);
  background:linear-gradient(170deg,rgba(201,152,58,.09),rgba(20,7,41,.5) 58%);
  box-shadow:inset 0 0 0 1px rgba(20,7,41,.9),inset 0 0 0 5px rgba(201,152,58,.28),0 40px 90px -46px #000;
}
.wm-plaque__c{position:absolute;width:9px;height:9px;background:var(--gold);transform:rotate(45deg);}
.wm-plaque__c.tl{top:-5px;left:-5px;} .wm-plaque__c.tr{top:-5px;right:-5px;}
.wm-plaque__c.bl{bottom:-5px;left:-5px;} .wm-plaque__c.br{bottom:-5px;right:-5px;}
.wm-plaque__k{font-size:12px;letter-spacing:.42em;text-transform:uppercase;color:var(--lilac);margin:0 0 clamp(16px,2.2vw,24px);max-width:none;}
.wm-plaque blockquote{margin:0;font-family:var(--f-display);font-weight:600;font-size:clamp(19px,3.1vw,38px);line-height:1.42;letter-spacing:.015em;}
.wm-plaque cite{display:block;margin-top:clamp(16px,2.2vw,24px);font-style:normal;}

/* ==========================================================================
   6. PILLARS — numbered stones
   ========================================================================== */
.wm-pillar{display:flex;gap:clamp(16px,2vw,24px);align-items:flex-start;}
.wm-pillar::before{content:"";position:absolute;left:0;top:14%;bottom:14%;width:2px;background:linear-gradient(180deg,transparent,var(--gold),transparent);}
.wm-pillar__n{font-family:var(--f-display);font-weight:500;font-size:clamp(22px,2.6vw,30px);line-height:1;color:var(--gold);flex:none;min-width:1.6em;padding-top:.1em;letter-spacing:.04em;}
.wm-pillar h3{font-size:clamp(17.5px,2vw,21px);letter-spacing:.05em;margin:0 0 .5em;color:var(--chalk);}
.wm-pillar p{margin:0;color:var(--dust);font-size:15.5px;line-height:1.72;}

/* a simpler marked item, for lists of ways to help */
.wm-way{padding:clamp(17px,2.1vw,22px) clamp(18px,2.2vw,24px);display:flex;gap:16px;align-items:baseline;}
.wm-way__d{width:6px;height:6px;background:var(--gold);transform:rotate(45deg);flex:none;position:relative;top:-2px;}
.wm-way h3{font-size:16.5px;letter-spacing:.04em;margin:0 0 4px;color:var(--chalk);}
.wm-way p{margin:0;font-size:14.8px;color:var(--dust);line-height:1.65;}

/* ==========================================================================
   7. COUNTDOWN
   ========================================================================== */
.wm-clock{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-soft);border:1px solid var(--line-soft);border-radius:var(--radius);overflow:hidden;margin:0 auto var(--gutter);max-width:640px;}
.wm-clock__u{background:linear-gradient(180deg,#26124C,#1A0A37);padding:clamp(14px,1.9vw,20px) 6px;text-align:center;}
.wm-clock__n{font-family:var(--f-display);font-size:clamp(25px,3.4vw,38px);font-weight:600;color:var(--gold-lit);line-height:1;display:block;font-variant-numeric:tabular-nums;}
.wm-clock__l{font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--dust);margin-top:8px;display:block;}
.wm-clock__say{text-align:center;font-family:var(--f-display);font-size:clamp(17px,2.2vw,23px);color:var(--gold-lit);border:1px dashed var(--line);border-radius:var(--radius);padding:20px;margin:0 auto var(--gutter);display:none;max-width:640px;}

/* ==========================================================================
   8. VIDEO — click-to-play facade
   YouTube's iframe is heavy and sets cookies. We show the thumbnail and only
   load the real player when someone chooses to watch.
   ========================================================================== */
.wm-videos{display:grid;gap:var(--gutter);grid-template-columns:repeat(3,1fr);}
.wm-video{position:relative;border:1px solid var(--line-soft);border-radius:var(--radius);overflow:hidden;background:#000;}
.wm-video--lead{grid-column:span 3;}
.wm-video__frame{position:relative;aspect-ratio:16/9;width:100%;background:#120625;cursor:pointer;border:0;padding:0;display:block;}
.wm-video__frame img{width:100%;height:100%;object-fit:cover;opacity:.82;transition:opacity .3s,transform .5s;}
.wm-video__frame:hover img{opacity:1;transform:scale(1.03);}
.wm-video__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.wm-video__play{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;
}
.wm-video__play span{
  width:clamp(52px,6vw,74px);height:clamp(52px,6vw,74px);border-radius:50%;
  background:linear-gradient(180deg,var(--gold-lit),var(--gold));
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 14px 40px -10px rgba(0,0,0,.85);transition:transform .25s;
}
.wm-video__frame:hover .wm-video__play span{transform:scale(1.08);}
.wm-video__play svg{width:38%;height:38%;fill:#1A0B33;margin-left:8%;}
.wm-video__meta{padding:clamp(15px,1.9vw,20px);background:var(--stone);}
.wm-video__meta h3{font-family:var(--f-body);font-size:15.5px;font-weight:500;line-height:1.45;color:var(--chalk);margin:0 0 5px;text-transform:none;letter-spacing:0;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.wm-video__when{font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dust);margin:0;max-width:none;}
.wm-videos__empty{text-align:center;color:var(--dust);border:1px dashed var(--line);border-radius:var(--radius);padding:clamp(28px,4vw,48px);}

/* ==========================================================================
   9. MUSIC — a frame around the platforms' own players
   ========================================================================== */
.wm-player{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:linear-gradient(170deg,rgba(201,152,58,.08),var(--stone) 60%);}
.wm-player__bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px clamp(16px,2vw,22px);border-bottom:1px solid var(--line-soft);flex-wrap:wrap;}
.wm-player__who{display:flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--lilac);margin:0;max-width:none;}
.wm-player__who svg{width:16px;height:16px;fill:var(--gold);}
.wm-player__body{padding:clamp(14px,1.8vw,20px);}
.wm-player__body iframe{display:block;width:100%;border:0;border-radius:2px;}

.wm-platforms{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line-soft);border:1px solid var(--line-soft);border-radius:var(--radius);overflow:hidden;}
.wm-platform{background:var(--stone);padding:clamp(18px,2.2vw,24px);text-align:center;transition:background-color .25s;display:block;}
.wm-platform:hover{background:var(--stone-up);}
.wm-platform b{display:block;font-family:var(--f-display);font-size:17px;color:var(--gold-lit);font-weight:600;}
.wm-platform span{display:block;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--dust);margin-top:5px;}

/* a release */
.wm-release{display:grid;grid-template-columns:minmax(0,260px) 1fr;gap:clamp(20px,3vw,38px);align-items:start;}
.wm-release__art{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--stone);aspect-ratio:1;}
.wm-release__art img{width:100%;height:100%;object-fit:cover;}
.wm-release h3{font-size:clamp(23px,2.9vw,33px);letter-spacing:.03em;margin:0 0 .2em;}
.wm-release__k{font-size:12px;letter-spacing:.26em;text-transform:uppercase;color:var(--lilac);margin:0 0 1em;max-width:none;}

/* ==========================================================================
   10. GALLERY
   ========================================================================== */
.wm-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gutter);}
.wm-gallery--3{grid-template-columns:repeat(3,1fr);}
.wm-shot{
  display:block;position:relative;overflow:hidden;cursor:zoom-in;background:var(--stone);
  border:1px solid var(--line-soft);border-radius:var(--radius);aspect-ratio:1;
}
.wm-shot--tall{aspect-ratio:3/4;}
.wm-shot--wide{aspect-ratio:3/2;}
.wm-shot img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.3,1);}
.wm-shot:hover img{transform:scale(1.05);}
.wm-shot::after{
  content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(20,7,41,.5));
  opacity:0;transition:opacity .3s;
}
.wm-shot:hover::after{opacity:1;}

/* ==========================================================================
   11. FORMS
   ========================================================================== */
.wm-form{padding:clamp(24px,3.2vw,40px);}
.wm-form h3{font-size:clamp(20px,2.3vw,26px);letter-spacing:.03em;margin:0 0 .4em;}
.wm-form__sub{color:var(--dust);font-size:15px;margin:0 0 clamp(20px,2.6vw,28px);}
.wm-field{margin:0 0 17px;}
.wm-pair{display:grid;grid-template-columns:1fr 1fr;gap:17px;}
.wm-field label{display:block;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--dust);margin:0 0 8px;}
.wm-field label b{color:var(--gold);font-weight:400;}
.wm-field input,.wm-field select,.wm-field textarea{
  width:100%;padding:13px 15px;font:inherit;font-size:16px;font-weight:300;
  color:var(--chalk);background:rgba(10,3,22,.55);
  border:1px solid var(--line-soft);border-radius:var(--radius);
  transition:border-color .2s,box-shadow .2s,background-color .2s;
}
.wm-field input::placeholder,.wm-field textarea::placeholder{color:#6F5F93;}
.wm-field input:focus,.wm-field select:focus,.wm-field textarea:focus{
  outline:none;border-color:var(--gold);background:rgba(10,3,22,.8);box-shadow:0 0 0 3px rgba(201,152,58,.16);
}
.wm-field select{
  appearance:none;cursor:pointer;padding-right:40px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%23C9983A' d='M6 8 0 0h12z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 15px center;background-size:11px;
}
.wm-field select option{background:#1E0E3D;color:var(--chalk);}
.wm-field textarea{min-height:122px;resize:vertical;line-height:1.65;}
.wm .wm-agree{display:flex;gap:12px;align-items:flex-start;cursor:pointer;font-size:14.5px;line-height:1.6;color:var(--dust);text-transform:none;letter-spacing:normal;margin:0;}
.wm .wm-agree input{width:18px;height:18px;flex:none;margin:2px 0 0;accent-color:var(--gold);cursor:pointer;}
.wm-trap{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important;}
.wm-form .wm-btn{width:100%;margin-top:6px;}
.wm-note{font-size:13px;color:var(--dust);margin:14px 0 0;text-align:center;}
.wm-say{margin:16px 0 0;padding:14px 16px;border-radius:var(--radius);font-size:15px;display:none;line-height:1.6;}
.wm-say--ok{display:block;background:rgba(31,168,85,.12);border:1px solid rgba(31,168,85,.45);color:#B7EFCC;}
.wm-say--no{display:block;background:rgba(214,72,72,.12);border:1px solid rgba(214,72,72,.45);color:#F7C9C9;}

/* ==========================================================================
   12. SHOP — WhatsApp ordering
   ========================================================================== */
.wm-shop{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gutter);}
.wm-item{display:flex;flex-direction:column;padding:0;overflow:hidden;}
.wm-item__shot{background:#EDE7F6;aspect-ratio:1;overflow:hidden;}
.wm-item__shot img{width:100%;height:100%;object-fit:cover;}
.wm-item__body{padding:clamp(17px,2.1vw,22px);display:flex;flex-direction:column;flex:1;}
.wm-item h3{font-size:17px;letter-spacing:.03em;margin:0 0 6px;color:var(--chalk);min-height:2.4em;}
.wm-qty{display:flex;align-items:center;gap:0;margin:0 0 16px;border:1px solid var(--line-soft);border-radius:var(--radius);overflow:hidden;width:fit-content;}
.wm-qty button{
  width:38px;height:38px;flex:none;background:rgba(201,152,58,.06);border:0;cursor:pointer;
  color:var(--gold-lit);font-family:var(--f-body);font-size:18px;line-height:1;
  transition:background-color .2s,color .2s;
}
.wm-qty button:hover{background:rgba(201,152,58,.18);}
.wm-qty button:disabled{opacity:.35;cursor:not-allowed;}
.wm-qty input{
  width:52px;height:38px;flex:none;text-align:center;border:0;border-left:1px solid var(--line-soft);
  border-right:1px solid var(--line-soft);background:rgba(10,3,22,.5);color:var(--chalk);
  font:inherit;font-size:15px;font-variant-numeric:tabular-nums;-moz-appearance:textfield;
}
.wm-qty input::-webkit-outer-spin-button,.wm-qty input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.wm-qty input:focus{outline:none;background:rgba(10,3,22,.8);}
.wm-qty__l{font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--dust);margin:0 0 7px;max-width:none;}
.wm-item .wm-btn{margin-top:auto;width:100%;padding:12px 16px;font-size:13px;}

/* ==========================================================================
   13. GIVING
   ========================================================================== */
.wm-give{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gutter);}
.wm-give__h{font-size:clamp(18.5px,2.1vw,23px);letter-spacing:.03em;margin:0 0 1em;}
.wm-detail{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px dashed var(--line-soft);font-size:15.5px;}
.wm-detail:last-child{border-bottom:0;}
.wm-detail dt{color:var(--dust);letter-spacing:.04em;}
.wm-detail dd{margin:0;color:var(--gold-lit);font-weight:600;font-variant-numeric:tabular-nums;text-align:right;}
.wm-copy{background:none;border:1px solid var(--line-soft);color:var(--dust);border-radius:2px;font:inherit;font-size:11px;letter-spacing:.16em;text-transform:uppercase;padding:4px 9px;cursor:pointer;margin-left:10px;transition:border-color .2s,color .2s;}
.wm-copy:hover{border-color:var(--gold);color:var(--gold-lit);}

/* ==========================================================================
   13b. HEADER AND PRIMARY MENU
   Used by the Winnie Moraa child theme's header.php. The header is coded,
   not an Elementor template, so it is the same on every page and costs
   nothing to render.
   ========================================================================== */
.wm-skip{
  position:absolute;left:-9999px;top:0;z-index:100000;
  background:var(--gold);color:#1A0B33;padding:12px 20px;font-weight:600;
  border-radius:0 0 var(--radius) 0;
}
.wm-skip:focus{left:0;color:#1A0B33;}

.wm-head{
  position:sticky;top:0;z-index:9000;
  background:rgba(20,7,41,.86);
  backdrop-filter:saturate(1.4) blur(14px);
  -webkit-backdrop-filter:saturate(1.4) blur(14px);
  border-bottom:1px solid var(--line-soft);
  transition:background-color .3s,border-color .3s,box-shadow .3s;
}
.wm-head.is-stuck{background:rgba(13,3,32,.96);border-bottom-color:var(--line);box-shadow:0 18px 40px -30px #000;}
/* when the admin bar is showing, sit under it */
.admin-bar .wm-head{top:32px;}
@media screen and (max-width:782px){.admin-bar .wm-head{top:46px;}}

.wm-head__in{
  display:flex;align-items:center;justify-content:space-between;gap:clamp(16px,3vw,40px);
  min-height:76px;transition:min-height .3s;
}
.wm-head.is-stuck .wm-head__in{min-height:62px;}

/* wordmark */
.wm-brand{display:flex;align-items:baseline;gap:10px;flex:none;line-height:1;}
.wm-brand__name{
  font-family:var(--f-display);font-weight:700;
  font-size:clamp(16px,1.9vw,20px);letter-spacing:.09em;white-space:nowrap;
}
.wm-brand__sub{font-family:var(--f-script);font-size:clamp(17px,2vw,22px);color:var(--gold-lit);white-space:nowrap;}
.wm-brand img{max-height:46px;width:auto;transition:max-height .3s;}
.wm-head.is-stuck .wm-brand img{max-height:38px;}

/* desktop menu */
.wm-nav{flex:1;display:flex;justify-content:center;}
.wm-nav ul{display:flex;align-items:center;gap:clamp(14px,2vw,30px);margin:0;padding:0;list-style:none;}
.wm-nav li{position:relative;}
.wm-nav a{
  display:block;font-size:12.5px;font-weight:500;letter-spacing:.17em;text-transform:uppercase;
  color:var(--chalk);padding:10px 0;position:relative;white-space:nowrap;
}
.wm-nav a::after{
  content:"";position:absolute;left:0;right:100%;bottom:4px;height:1px;
  background:var(--gold);transition:right .3s cubic-bezier(.2,.7,.3,1);
}
.wm-nav a:hover{color:var(--gold-lit);}
.wm-nav a:hover::after,
.wm-nav .current-menu-item > a::after,
.wm-nav .current-menu-ancestor > a::after,
.wm-nav .current_page_item > a::after{right:0;}
.wm-nav .current-menu-item > a,
.wm-nav .current-menu-ancestor > a,
.wm-nav .current_page_item > a{color:var(--gold-lit);}

/* an item with children gets a small marker */
.wm-nav .menu-item-has-children > a{padding-right:15px;}
.wm-nav .menu-item-has-children > a::before{
  content:"";position:absolute;right:0;top:50%;margin-top:-1px;
  border:3.5px solid transparent;border-top-color:var(--gold);
}

/* dropdown */
.wm-nav .sub-menu{
  position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(8px);
  display:block;flex-direction:column;align-items:stretch;gap:0;
  min-width:256px;padding:8px 0;
  background:linear-gradient(170deg,#241148,#190A36);
  border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:0 26px 60px -28px #000;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .22s,transform .22s,visibility .22s;
}
.wm-nav li:hover > .sub-menu,
.wm-nav li:focus-within > .sub-menu{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0);}
.wm-nav .sub-menu li{width:100%;}
.wm-nav .sub-menu a{
  padding:11px 20px;font-size:12px;letter-spacing:.14em;color:var(--dust);white-space:normal;
}
.wm-nav .sub-menu a::after{display:none;}
.wm-nav .sub-menu a:hover{color:var(--gold-lit);background:rgba(201,152,58,.09);}

/* header actions */
.wm-head__acts{display:flex;align-items:center;gap:12px;flex:none;}
.wm-head__acts .wm-btn{padding:11px 20px;font-size:12px;letter-spacing:.1em;}

/* hamburger */
.wm-burger{
  display:none;width:44px;height:44px;flex:none;align-items:center;justify-content:center;
  background:none;border:1px solid var(--line-soft);border-radius:var(--radius);cursor:pointer;
}
.wm-burger span{display:block;width:19px;height:1.5px;background:var(--gold-lit);position:relative;transition:background-color .2s;}
.wm-burger span::before,.wm-burger span::after{
  content:"";position:absolute;left:0;width:19px;height:1.5px;background:var(--gold-lit);
  transition:transform .28s cubic-bezier(.2,.7,.3,1);
}
.wm-burger span::before{top:-6px;} .wm-burger span::after{top:6px;}
.wm-burger[aria-expanded="true"] span{background:transparent;}
.wm-burger[aria-expanded="true"] span::before{transform:translateY(6px) rotate(45deg);}
.wm-burger[aria-expanded="true"] span::after{transform:translateY(-6px) rotate(-45deg);}

/* mobile drawer */
.wm-drawer{
  position:fixed;inset:0;z-index:8900;display:flex;flex-direction:column;
  padding:calc(76px + 6vh) var(--gutter) 6vh;
  background:linear-gradient(180deg,#1E0E3D 0%,var(--ink) 70%);
  overflow-y:auto;opacity:0;visibility:hidden;transform:translateY(-10px);
  transition:opacity .3s,transform .3s,visibility .3s;
}
.wm-drawer.is-open{opacity:1;visibility:visible;transform:none;}
.wm-drawer ul{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;}
.wm-drawer > ul > li{border-bottom:1px solid var(--line-soft);}
.wm-drawer a{
  display:block;font-family:var(--f-display);font-size:clamp(19px,5vw,25px);
  text-transform:uppercase;letter-spacing:.08em;color:var(--chalk);padding:16px 0;
}
.wm-drawer a:hover,.wm-drawer .current-menu-item > a{color:var(--gold-lit);}
.wm-drawer .sub-menu{padding:0 0 14px 2px;}
.wm-drawer .sub-menu a{
  font-family:var(--f-body);font-size:14.5px;letter-spacing:.14em;color:var(--dust);
  padding:9px 0 9px 18px;border-left:1px solid var(--line-soft);
}
.wm-drawer__acts{margin-top:auto;padding-top:34px;display:flex;flex-direction:column;gap:12px;}
body.wm-locked{overflow:hidden;}

@media (max-width:1024px){
  .wm-nav{display:none;}
  .wm-burger{display:flex;}
  .wm-head__acts .wm-btn{display:none;}
}
@media (max-width:420px){
  .wm-brand__sub{display:none;}
}

/* ==========================================================================
   14. FOOTER
   ========================================================================== */
.wm-foot{border-top:1px solid var(--line-soft);background:var(--ink-deep);text-align:center;padding:clamp(46px,6vw,72px) 0 clamp(34px,4vw,50px);position:relative;z-index:2;}
.wm-foot__mark{font-family:var(--f-display);font-size:clamp(21px,2.6vw,29px);font-weight:700;letter-spacing:.06em;margin:0 0 .1em;}
.wm-foot .wm-script{display:block;margin-bottom:clamp(20px,3vw,28px);font-size:clamp(24px,3vw,32px);}
.wm-foot__nav{display:flex;gap:clamp(14px,2.6vw,30px);justify-content:center;flex-wrap:wrap;margin:0 0 clamp(18px,2.4vw,26px);}
.wm-foot__nav a{font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--dust);}
.wm-foot__nav a:hover{color:var(--gold);}
.wm-foot small{color:#7B6BA0;font-size:12.5px;letter-spacing:.04em;}
.wm-social{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin:0 0 clamp(20px,2.6vw,28px);}
.wm-social a{width:40px;height:40px;border:1px solid var(--line-soft);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:border-color .25s,background-color .25s;}
.wm-social a:hover{border-color:var(--gold);background:rgba(201,152,58,.1);}
.wm-social svg{width:17px;height:17px;fill:var(--dust);transition:fill .25s;}
.wm-social a:hover svg{fill:var(--gold-lit);}

/* ==========================================================================
   15. LIGHTBOX
   ========================================================================== */
.wm-lb{position:fixed;inset:0;z-index:999999;display:none;align-items:center;justify-content:center;padding:4vmin;background:rgba(9,2,20,.95);cursor:zoom-out;}
.wm-lb.is-on{display:flex;}
.wm-lb img{max-width:100%;max-height:92vh;border-radius:var(--radius);box-shadow:0 40px 100px -30px #000;}
.wm-lb__x{position:absolute;top:18px;right:20px;background:none;border:1px solid var(--line);color:var(--gold-lit);width:42px;height:42px;border-radius:50%;font-size:22px;line-height:1;cursor:pointer;}
.wm-lb__nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(20,7,41,.7);border:1px solid var(--line);color:var(--gold-lit);width:46px;height:46px;border-radius:50%;font-size:20px;line-height:1;cursor:pointer;}
.wm-lb__nav--prev{left:16px;} .wm-lb__nav--next{right:16px;}

/* ==========================================================================
   16. MOTION — one orchestrated moment, then stillness
   ========================================================================== */
@keyframes wm-sweep{from{background-position:140% 0;}to{background-position:-40% 0;}}
@keyframes wm-rise{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
.wm-mark span{opacity:0;animation:wm-rise .9s cubic-bezier(.22,.8,.3,1) forwards;}
.wm-mark .sm{animation-delay:.05s;}
.wm-mark .lg{animation-delay:.16s;}
.wm-mark .md{animation-delay:.27s;}
.wm-mark .lg.wm-foil{animation:wm-rise .9s cubic-bezier(.22,.8,.3,1) .16s forwards, wm-sweep 2.1s ease-in-out .95s 1;}
.wm-plaque.is-seen .wm-foil{animation:wm-sweep 2.3s ease-in-out .15s 1;}

@media (prefers-reduced-motion:reduce){
  .wm *,.wm *::before,.wm *::after{animation:none!important;transition:none!important;}
  .wm-mark span{opacity:1;}
}

/* ==========================================================================
   17. RESPONSIVE
   ========================================================================== */
@media (max-width:1000px){
  .wm-grid--4,.wm-shop,.wm-gallery{grid-template-columns:repeat(2,1fr);}
  .wm-videos{grid-template-columns:repeat(2,1fr);}
  .wm-video--lead{grid-column:span 2;}
  .wm-grid--3,.wm-course--4{grid-template-columns:repeat(2,1fr);}
  .wm-grid--split,.wm-grid--split-rev{grid-template-columns:1fr;}
  .wm-give{grid-template-columns:1fr;}
}
@media (max-width:820px){
  .wm-grid--2,.wm-course--2,.wm-course--3{grid-template-columns:1fr;}
  .wm-release{grid-template-columns:1fr;}
  .wm-release__art{max-width:300px;}
}
@media (max-width:620px){
  .wm{font-size:16px;}
  .wm-ledge{margin-top:-58px;}
  .wm-course--4,.wm-grid--3{grid-template-columns:1fr;}
  .wm-videos{grid-template-columns:1fr;}
  .wm-video--lead{grid-column:span 1;}
  .wm-pair{grid-template-columns:1fr;}
  .wm-shop,.wm-grid--4{grid-template-columns:1fr;}
  .wm-gallery,.wm-gallery--3{grid-template-columns:repeat(2,1fr);}
  .wm-item__shot{aspect-ratio:4/3;}
  .wm-acts .wm-btn{width:100%;}
  .wm-cry{letter-spacing:.14em;line-height:1.9;}
  .wm-cry span{padding:0 .15em;}
  .wm-eyebrow{letter-spacing:.26em;}
  .wm-mark .sm{letter-spacing:.34em;text-indent:.34em;}
  .wm-detail{flex-direction:column;gap:4px;}
  .wm-detail dd{text-align:left;}
}
