/*
Theme Name: Kingdom Kids Ministry
Theme URI: https://kingdomkidsministry.com.au
Author: Built for Kingdom Kids Ministry
Description: The Kingdom Kids Ministry site — parchment, royal purple and island hibiscus. Events, programs, community photos and contact details are all editable from the WordPress admin; the front page shows the next upcoming event automatically and files past ones into the archive.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: kingdom-kids
Tags: one-page, custom-colors, custom-logo, featured-images
*/

/* -------------------------------------------------------------
   Fonts, self-hosted. No request leaves the server for these.
   ------------------------------------------------------------- */
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400;font-display:swap;src:url(assets/fonts/cormorant-garamond-400-italic.woff2) format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:600;font-display:swap;src:url(assets/fonts/cormorant-garamond-600-italic.woff2) format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/cormorant-garamond-400.woff2) format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/cormorant-garamond-600.woff2) format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/cormorant-garamond-700.woff2) format('woff2');}
@font-face{font-family:'Nunito';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/nunito-400.woff2) format('woff2');}
@font-face{font-family:'Nunito';font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/nunito-600.woff2) format('woff2');}
@font-face{font-family:'Nunito';font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/nunito-700.woff2) format('woff2');}
@font-face{font-family:'Parisienne';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/parisienne-400.woff2) format('woff2');}

/* =========================================================
   Kingdom Kids
   Royal, soft, faith-filled — watercolour purple, parchment
   cream, and gold used sparingly.
   ========================================================= */

:root{
  /* parchment base */
  --parchment:#F3E9E4;
  --parchment-deep:#EFE3DD;
  --paper:#FBF5F2;

  /* royal purple */
  --royal-900:#2F1840;
  --royal-800:#3B1F4E;
  --royal-700:#4A2A5E;
  --plum-600:#5C3378;
  --plum-500:#6B3FA0;

  /* lavender light */
  --lav-400:#C9A8DD;
  --lav-200:#D8C2E8;
  --lav-100:#EADEF3;

  /* gold — dividers, hairlines, small icons only */
  /* island hibiscus — a crimson that leans cool enough to sit beside royal purple */
  --hib:#C4213F;
  --hib-light:#E4657A;
  --hib-deep:#8B1233;

  --gold:#C9A24B;
  --gold-soft:#D4AF6A;
  --gold-ink:#8F6D22;      /* readable gold for small text on parchment */

  --ink:#3B1F4E;
  --ink-soft:#63536E;
  --ink-mute:#8A7A92;

  --wrap:1140px;
  --r:26px;
  --r-sm:18px;
  --shadow:0 20px 46px -28px rgba(59,31,78,.32);
  --shadow-lg:0 34px 72px -34px rgba(59,31,78,.38);

  --font-script:"Parisienne",cursive;
  --font-serif:"Cormorant Garamond",Georgia,serif;
  --font-body:"Nunito",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
/* decorative florals paint past their boxes — clip sideways, never scroll sideways.
   `clip` rather than `hidden` so the sticky nav keeps working. */
html,body{overflow-x:clip}
body{
  margin:0;
  font-family:var(--font-body);
  font-size:17px;
  line-height:1.85;
  color:var(--ink-soft);
  background:var(--parchment);
}
img,svg{max-width:100%}
h1,h2,h3{margin:0;font-family:var(--font-serif);font-weight:600;line-height:1.2;color:var(--royal-800)}
p{margin:0 0 1.15em}
a{color:var(--plum-500)}

.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:26px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--gold);color:var(--royal-900);padding:10px 16px;z-index:100;border-radius:0 0 10px 0}
.skip:focus{left:0}

/* ---------------------------------------------------------
   Buttons — plum, edged with a gold hairline
   --------------------------------------------------------- */
.btn{
  display:inline-block;
  background:linear-gradient(140deg,var(--plum-500),var(--plum-600));
  color:#FBF5F2;
  font-family:var(--font-body);
  font-weight:600;
  font-size:.95rem;
  letter-spacing:.02em;
  text-decoration:none;
  padding:14px 32px;
  border:1px solid rgba(201,162,75,.55);
  border-radius:999px;
  cursor:pointer;
  box-shadow:0 14px 30px -18px rgba(59,31,78,.75);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.btn:hover{transform:translateY(-2px);box-shadow:0 20px 38px -18px rgba(59,31,78,.8);border-color:var(--gold-soft)}
.btn-ghost{
  background:transparent;color:#F6EDE6;
  border:1px solid rgba(212,175,106,.65);box-shadow:none;
}
.btn-ghost:hover{background:rgba(212,175,106,.14);box-shadow:none}
.btn-sm{padding:9px 22px;font-size:.86rem}

.link{
  color:var(--plum-500);font-weight:600;text-decoration:none;
  border-bottom:1px solid var(--gold);padding-bottom:2px;
}
.link:hover{color:var(--royal-800);border-bottom-color:var(--gold-soft)}

/* ---------------------------------------------------------
   Navigation
   --------------------------------------------------------- */
.nav{
  position:sticky;top:0;z-index:50;
  background:rgba(47,24,64,.94);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(201,162,75,.30);
}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:14px}
.brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:#F6EDE6}
.brand-mark{width:32px;height:32px;display:grid;place-items:center;color:var(--gold-soft)}
.brand-text{font-family:var(--font-serif);font-weight:600;font-size:1.3rem;letter-spacing:.01em}
.brand-text span{color:var(--gold-soft)}
.nav-links{display:flex;align-items:center;gap:28px}
.nav-links a{color:rgba(246,237,230,.82);text-decoration:none;font-size:.93rem;font-weight:500}
.nav-links a:hover{color:var(--gold-soft)}
.nav-links a.btn{color:#FBF5F2}
.nav-toggle{display:none;background:none;border:0;padding:10px;cursor:pointer}
.nav-toggle span{display:block;width:24px;height:2px;background:#F6EDE6;margin:5px 0;transition:.25s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------------------------------------------------------
   Hero
   --------------------------------------------------------- */
.hero{position:relative;color:#F6EDE6;overflow:hidden;padding:clamp(76px,12vw,140px) 0 clamp(120px,15vw,180px)}
.hero-bg{
  position:absolute;inset:0;
  background:
    radial-gradient(760px 460px at 50% 26%, rgba(201,168,221,.32), transparent 66%),
    radial-gradient(680px 460px at 84% 10%, rgba(212,175,106,.16), transparent 64%),
    radial-gradient(620px 460px at 12% 88%, rgba(201,168,221,.22), transparent 66%),
    linear-gradient(163deg,var(--royal-900) 0%,var(--royal-700) 48%,var(--plum-600) 100%);
}
.hero-inner{position:relative;z-index:2;text-align:center;max-width:880px}
.hero h1{
  font-family:var(--font-script);
  font-weight:400;
  font-size:clamp(3.6rem,10vw,6.6rem);
  line-height:1.06;
  color:#FBF5F2;
  margin-bottom:26px;
  padding-bottom:.12em;
  text-shadow:0 8px 42px rgba(201,168,221,.45);
}
.eyebrow{
  text-transform:uppercase;letter-spacing:.26em;font-size:.72rem;
  font-weight:700;color:var(--gold-soft);margin-bottom:20px;
}
.eyebrow.gold{color:var(--gold-ink)}
.lede{
  font-size:clamp(1.02rem,2vw,1.22rem);
  color:rgba(246,237,230,.86);max-width:620px;margin-inline:auto;
}
.hero-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:38px}
.hero-wave{position:absolute;bottom:-1px;left:0;width:100%;line-height:0;z-index:2}
.hero-wave svg{width:100%;height:96px;display:block}
.hero-wave path{fill:var(--parchment)}

/* ---------------------------------------------------------
   Scripture
   --------------------------------------------------------- */
.scripture{margin:0;text-align:center}
.scripture blockquote{
  margin:0;font-family:var(--font-serif);font-style:italic;font-weight:400;
  font-size:clamp(1.2rem,2.5vw,1.62rem);line-height:1.6;
}
.scripture figcaption{
  margin-top:16px;text-transform:uppercase;letter-spacing:.24em;
  font-size:.7rem;font-weight:700;color:var(--gold-soft);font-family:var(--font-body);
}
.sc{font-variant:small-caps;letter-spacing:.03em}
.hero-scripture{
  margin:58px auto 0;max-width:700px;padding-top:36px;
  border-top:1px solid rgba(212,175,106,.35);
}
.hero-scripture blockquote{color:rgba(246,237,230,.94)}

/* ---------------------------------------------------------
   Sections & panels
   --------------------------------------------------------- */
.section{padding:clamp(76px,10vw,124px) 0}
.section-head{max-width:700px;margin-bottom:56px;position:relative}
.section-head.center{margin-inline:auto;text-align:center}
.section-head h2{
  position:relative;z-index:1;
  font-size:clamp(2.1rem,4.6vw,3.2rem);
  color:var(--royal-800);
}
/* soft backlight behind headings */
.section-head h2::before{
  content:"";position:absolute;z-index:-1;
  left:50%;top:50%;transform:translate(-50%,-50%);
  width:118%;height:230%;
  background:radial-gradient(closest-side,rgba(201,168,221,.34),transparent 72%);
  pointer-events:none;
}
.section-head:not(.center) h2::before{left:34%}
.section-sub{margin-top:20px;color:var(--ink-soft);font-size:1.04rem}

/* panelled sections read as polished cards on the parchment */
.panelled > .wrap{
  background:linear-gradient(160deg,rgba(251,245,242,.86),rgba(243,233,228,.62));
  border:1px solid rgba(201,162,75,.34);
  border-radius:var(--r);
  padding:clamp(40px,6vw,72px) clamp(26px,4vw,58px);
  box-shadow:var(--shadow);
}

/* gold divider with a crown or flourish */
.gold-rule{display:flex;align-items:center;gap:16px;margin-bottom:22px}
.gold-rule.center{justify-content:center}
.gold-rule i{
  display:block;height:1px;width:min(104px,20vw);
  background:linear-gradient(90deg,var(--gold),transparent);
}
.gold-rule.center i:first-child{background:linear-gradient(90deg,transparent,var(--gold))}
.gold-rule.light i{background:linear-gradient(90deg,var(--gold-soft),transparent)}
.gold-rule.center.light i:first-child{background:linear-gradient(90deg,transparent,var(--gold-soft))}
.crown-rule{width:30px;height:24px;flex:none;overflow:visible}
.crown-rule use{filter:drop-shadow(0 3px 8px rgba(201,162,75,.35))}
.fl{display:block;width:100%;height:auto;max-width:none}
.fl-sm{width:38px;height:38px}

/* ---------------------------------------------------------
   The vision
   --------------------------------------------------------- */
.vision{background:linear-gradient(180deg,var(--parchment),var(--parchment-deep))}
.vision-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(34px,5vw,72px);align-items:start}
.vision-story p{color:var(--ink-soft);font-size:1.04rem}
.vision-story .first{font-size:1.16rem;color:var(--ink)}
.vision-story .first::first-letter{
  float:left;font-family:var(--font-script);font-size:4.4rem;line-height:.78;
  padding:14px 14px 0 0;color:var(--plum-500);
}
.vision-story strong{color:var(--royal-800);font-weight:700}
.vision-story em{color:var(--plum-500);font-style:italic}
.byline{
  margin-top:30px;font-family:var(--font-script);font-size:1.5rem;
  color:var(--plum-500);line-height:1.5;
}

.vision-aside{position:sticky;top:98px}

.vision-art{
  margin:0;background:var(--royal-900);
  border:1px solid rgba(201,162,75,.4);
  border-radius:var(--r);padding:15px;box-shadow:var(--shadow-lg);
}
.vision-art img{
  display:block;width:100%;height:auto;border-radius:var(--r-sm);
}
.vision-art figcaption{
  color:var(--lav-200);font-family:var(--font-serif);font-style:italic;
  font-size:1.02rem;line-height:1.55;padding:18px 14px 8px;text-align:center;
}

.pull{
  margin:clamp(60px,8vw,92px) auto 0;max-width:820px;text-align:center;
  padding:clamp(40px,5vw,58px) clamp(28px,5vw,54px);
  border-radius:var(--r);position:relative;overflow:visible;
  background:linear-gradient(150deg,var(--royal-800) 0%,var(--plum-600) 62%,var(--plum-500) 100%);
  border:1px solid rgba(201,162,75,.42);
  box-shadow:var(--shadow-lg);
}
.pull p{
  margin:0;font-family:var(--font-serif);font-style:italic;
  font-size:clamp(1.34rem,3vw,1.94rem);color:#FBF5F2;line-height:1.45;
}
.pull-flower{
  position:absolute;top:-46px;left:50%;transform:translateX(-50%);
  width:96px;
  filter:drop-shadow(0 8px 20px rgba(47,24,64,.5));
}

/* ---------------------------------------------------------
   Cards — meaning, programs, get involved
   --------------------------------------------------------- */
.meaning{background:var(--parchment-deep)}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}
.card{
  background:linear-gradient(165deg,rgba(251,245,242,.96),rgba(234,222,243,.5));
  border:1px solid rgba(201,162,75,.36);
  border-radius:var(--r);padding:36px 30px;
  box-shadow:var(--shadow);
  transition:transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--gold-soft)}
.card-ico{
  width:54px;height:54px;border-radius:50%;display:grid;place-items:center;margin-bottom:22px;
  background:linear-gradient(145deg,var(--royal-800),var(--plum-500));
  border:1px solid rgba(212,175,106,.55);
  box-shadow:0 10px 22px -14px rgba(59,31,78,.8);
}
.card-ico svg{width:28px;height:28px;fill:none;stroke:var(--gold-soft);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.card h3{font-size:1.42rem;margin-bottom:12px}
.card p{color:var(--ink-soft);font-size:.98rem;margin:0}
.card em{color:var(--plum-500)}

/* ---------------------------------------------------------
   What we do
   --------------------------------------------------------- */
.mission{background:linear-gradient(180deg,var(--parchment-deep),var(--parchment))}
.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}
.pillar{
  padding:38px 30px;border-radius:var(--r);position:relative;overflow:hidden;
  background:linear-gradient(165deg,rgba(251,245,242,.94),rgba(243,233,228,.6));
  border:1px solid rgba(201,162,75,.34);box-shadow:var(--shadow);
}
.pillar::after{
  content:"";position:absolute;top:0;left:14%;right:14%;height:1px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
}
.pillar-num{
  font-family:var(--font-serif);font-size:2.3rem;font-weight:600;
  color:var(--lav-400);display:block;line-height:1;
}
.pillar h3{font-size:1.34rem;margin:10px 0 12px}
.pillar p{color:var(--ink-soft);margin:0;font-size:.98rem}

/* values panel with a family silhouette watermark */
.values{
  margin-top:clamp(48px,6vw,72px);padding:44px clamp(26px,4vw,48px) 104px;
  border-radius:var(--r);text-align:center;position:relative;overflow:hidden;
  background:linear-gradient(155deg,rgba(251,245,242,.95),rgba(234,222,243,.55));
  border:1px solid rgba(201,162,75,.36);box-shadow:var(--shadow);
}
.values-family{
  position:absolute;left:50%;bottom:14px;transform:translateX(-50%);
  width:min(400px,80%);height:auto;color:var(--royal-800);opacity:.10;pointer-events:none;
}
.values h3,.values ul{position:relative;z-index:1}
.values h3{
  font-family:var(--font-body);font-size:.74rem;text-transform:uppercase;
  letter-spacing:.26em;font-weight:700;color:var(--gold-ink);margin-bottom:24px;
}
.values ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:12px 14px}
.values li{
  display:flex;align-items:center;gap:9px;
  font-family:var(--font-serif);font-size:1.16rem;color:var(--royal-800);
  background:rgba(251,245,242,.8);border:1px solid rgba(201,162,75,.4);
  padding:8px 20px 8px 15px;border-radius:999px;
}
.values li svg{width:17px;height:17px;color:var(--gold);flex:none}

/* ---------------------------------------------------------
   Programs
   --------------------------------------------------------- */
.programs{background:var(--parchment-deep)}
.prog-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}
.prog{
  position:relative;border-radius:var(--r);padding:46px 30px 34px;
  background:linear-gradient(165deg,rgba(251,245,242,.96),rgba(234,222,243,.5));
  border:1px solid rgba(201,162,75,.36);box-shadow:var(--shadow);
  transition:transform .24s ease, box-shadow .24s ease, border-color .24s ease;
}
.prog:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--gold-soft)}
.prog-bloom{
  position:absolute;top:-32px;left:20px;width:78px;
  filter:drop-shadow(0 10px 18px rgba(139,18,51,.22));
}
.prog-age{
  margin:0 0 6px;text-transform:uppercase;letter-spacing:.2em;
  font-size:.68rem;font-weight:700;color:var(--gold-ink);
}
.prog h3{font-size:1.4rem;margin-bottom:12px}
.prog p{color:var(--ink-soft);font-size:.98rem;margin:0}
.prog-note{margin:48px auto 0;max-width:700px;text-align:center;color:var(--ink-soft);font-size:1.02rem}

/* ---------------------------------------------------------
   Scripture band
   --------------------------------------------------------- */
.verse-break{
  position:relative;overflow:hidden;color:#F6EDE6;
  padding:clamp(72px,9vw,112px) 0;
  background:
    radial-gradient(700px 320px at 24% 22%, rgba(201,168,221,.28), transparent 64%),
    radial-gradient(600px 320px at 80% 82%, rgba(212,175,106,.14), transparent 64%),
    linear-gradient(122deg,var(--royal-800),var(--plum-600));
  border-block:1px solid rgba(201,162,75,.34);
}
.verse-break .scripture blockquote{color:#FBF5F2;max-width:740px;margin-inline:auto}
.verse-florals{position:absolute;inset:0;pointer-events:none}
.verse-florals .fl{position:absolute;filter:drop-shadow(0 12px 26px rgba(30,12,48,.4))}
.verse-florals .v1{width:min(280px,26vw);top:-58px;left:-66px;opacity:.78;transform:rotate(-8deg)}
.verse-florals .v4{width:min(270px,25vw);bottom:-60px;right:-62px;opacity:.74;transform:rotate(174deg)}

/* ---------------------------------------------------------
   Get involved
   --------------------------------------------------------- */
.involved{background:linear-gradient(180deg,var(--parchment),var(--parchment-deep))}
.involve-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}
.involve{
  border-radius:var(--r);padding:34px 30px;
  background:linear-gradient(165deg,rgba(251,245,242,.94),rgba(243,233,228,.6));
  border:1px solid rgba(201,162,75,.34);box-shadow:var(--shadow);
}
.involve h3{font-size:1.4rem;margin-bottom:14px;position:relative;padding-bottom:14px}
.involve h3::after{
  content:"";position:absolute;bottom:0;left:0;width:54px;height:1px;
  background:linear-gradient(90deg,var(--gold),transparent);
}
.involve p{color:var(--ink-soft);font-size:.98rem}

/* ---------------------------------------------------------
   Contact
   --------------------------------------------------------- */
.contact{
  color:#F6EDE6;overflow:hidden;
  background:
    radial-gradient(700px 420px at 82% 18%, rgba(201,168,221,.22), transparent 66%),
    linear-gradient(158deg,var(--royal-900),var(--royal-700) 66%,var(--plum-600));
}
.contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:clamp(38px,6vw,80px);align-items:start}
.contact h2{color:#FBF5F2;font-size:clamp(2.1rem,4.6vw,3rem);margin-bottom:20px}
.contact h2::before{background:radial-gradient(closest-side,rgba(201,168,221,.24),transparent 72%)}
.contact .eyebrow.gold{color:var(--gold-soft)}
.contact .floral-rule{color:var(--gold-soft)}
.contact .floral-rule i{background:linear-gradient(90deg,transparent,var(--gold-soft))}
.contact-copy p{color:rgba(246,237,230,.82)}
.contact-list{list-style:none;margin:34px 0 0;padding:0}
.contact-list li{display:flex;gap:18px;padding:15px 0;border-top:1px solid rgba(212,175,106,.28);align-items:baseline}
.contact-list span{
  min-width:84px;text-transform:uppercase;letter-spacing:.18em;
  font-size:.68rem;font-weight:700;color:var(--gold-soft);
}
.contact-list a{color:#FBF5F2;text-decoration:none;border-bottom:1px solid rgba(212,175,106,.5)}
.contact-list a:hover{color:var(--gold-soft)}

.contact-form{
  background:rgba(251,245,242,.07);
  border:1px solid rgba(212,175,106,.34);
  border-radius:var(--r);padding:clamp(26px,4vw,40px);
}
.field{margin-bottom:20px}
.field label{
  display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.18em;
  font-weight:700;color:var(--gold-soft);margin-bottom:9px;
}
.field input,.field select,.field textarea{
  width:100%;padding:13px 16px;border-radius:14px;
  border:1px solid rgba(212,175,106,.3);background:rgba(251,245,242,.08);
  color:#FBF5F2;font:inherit;font-size:.96rem;
}
.field textarea{resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:2px solid var(--gold-soft);outline-offset:1px;border-color:transparent;
}
.field select option{color:#3B1F4E}
.form-note{margin:18px 0 0;font-size:.86rem;color:rgba(246,237,230,.66)}
.form-note a{color:var(--gold-soft)}

.contact-blooms{position:relative;height:250px;margin-top:26px}
.contact-blooms .fl{position:absolute}
.contact-blooms .c1{width:310px;top:-24px;left:-52px;opacity:.8;transform:rotate(-8deg)}

/* ---------------------------------------------------------
   Footer
   --------------------------------------------------------- */
.footer{background:var(--royal-900);color:rgba(246,237,230,.68);padding:58px 0 34px}
.footer-inner{display:grid;gap:28px}
.footer-brand{display:flex;gap:15px;align-items:flex-start}
.footer-brand strong{color:#FBF5F2;font-family:var(--font-serif);font-size:1.22rem;font-weight:600}
.footer-brand p{margin:5px 0 0;font-size:.94rem;max-width:400px}
.footer-links{display:flex;flex-wrap:wrap;gap:24px}
.footer-links a{color:rgba(246,237,230,.68);text-decoration:none;font-size:.92rem}
.footer-links a:hover{color:var(--gold-soft)}
.copyright{
  margin:0;padding-top:24px;border-top:1px solid rgba(212,175,106,.24);
  font-size:.83rem;color:rgba(246,237,230,.48);
}

/* ---------------------------------------------------------
   Painted bouquets — corners only, airy
   --------------------------------------------------------- */
.hero-florals{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.hero-inner{z-index:2}
.hero-florals .fl{position:absolute;filter:drop-shadow(0 14px 30px rgba(30,12,48,.45))}
.hero-florals .f1{width:min(380px,34vw);top:-56px;left:-72px;opacity:.92;transform:rotate(-6deg)}
.hero-florals .f4{width:min(360px,32vw);bottom:-44px;right:-66px;opacity:.9;transform:rotate(178deg)}

/* ---------------------------------------------------------
   Reveal
   --------------------------------------------------------- */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .8s ease,transform .8s ease}
.reveal.in{opacity:1;transform:none}

/* ---------------------------------------------------------
   Responsive
   --------------------------------------------------------- */
@media (max-width:1180px){
  .hero-florals .f3,.hero-florals .f5{display:none}
}
@media (max-width:1040px){
  .cards,.pillars,.prog-grid,.involve-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  .vision-grid{grid-template-columns:1fr}
  .vision-aside{position:static;order:-1}
  .contact-inner{grid-template-columns:1fr}
  .contact-blooms{display:none}
}
@media (max-width:820px){
  .hero-florals .f2,.hero-florals .f6,.verse-florals .v2,.verse-florals .v3{display:none}
  .hero-florals .f1{width:186px;top:-40px;left:-52px}
  .hero-florals .f4{width:176px;right:-48px;bottom:-30px}
  .verse-florals .v1,.verse-florals .v4{width:150px}
  .conf-florals .k1,.conf-florals .k3{width:168px}
  .floral-rule i{width:56px}
}
@media (max-width:760px){
  .nav-toggle{display:block}
  .nav-links{
    position:absolute;top:100%;left:0;right:0;
    flex-direction:column;align-items:flex-start;gap:4px;
    background:var(--royal-900);padding:18px 26px 26px;
    border-bottom:1px solid rgba(201,162,75,.3);display:none;
  }
  .nav-links.open{display:flex}
  .nav-links a{padding:10px 0;width:100%}
  .nav-links a.btn{margin-top:10px;text-align:center}
}
@media (max-width:560px){
  .cards,.pillars,.prog-grid,.involve-grid{grid-template-columns:1fr}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  *{animation-duration:.01ms !important;transition-duration:.01ms !important}
}

/* =========================================================
   Logo
   ========================================================= */
.brand-logo{display:block;height:40px;width:auto}
.hero h1{margin:0 0 8px}
.hero-logo{
  display:block;margin:0 auto;width:min(430px,80%);height:auto;
  filter:drop-shadow(0 16px 40px rgba(47,24,64,.62));
}
.hero-script{
  font-family:var(--font-script);font-size:clamp(1.9rem,4.6vw,3rem);
  color:var(--gold-soft);margin:0 0 26px;line-height:1.2;padding-bottom:.08em;
  text-shadow:0 6px 26px rgba(201,168,221,.4);
}
.footer-logo{height:52px;width:auto;flex:none}
.footer-brand{align-items:center}
.footer-brand p{margin:0}



/* =========================================================
   Conference — the poster's language, in HTML
   ========================================================= */
.conference{
  position:relative;overflow:hidden;color:#F6EDE6;
  background:
    radial-gradient(760px 420px at 50% 6%, rgba(201,168,221,.26), transparent 66%),
    radial-gradient(620px 400px at 12% 92%, rgba(212,175,106,.12), transparent 64%),
    linear-gradient(158deg,var(--royal-900),var(--plum-600) 72%,var(--plum-500));
  border-block:1px solid rgba(201,162,75,.34);
}
.conf-florals{position:absolute;inset:0;pointer-events:none}
.conf-florals .fl{position:absolute;filter:drop-shadow(0 12px 26px rgba(30,12,48,.4))}
.conf-florals .k1{width:min(330px,29vw);top:-66px;right:-74px;opacity:.85;transform:scaleX(-1) rotate(6deg)}
.conf-florals .k3{width:min(310px,27vw);bottom:-62px;left:-70px;opacity:.82;transform:scaleX(-1) rotate(186deg)}

.conference .section-head{max-width:820px}
.conference h2,.conference .section-sub{color:#FBF5F2}
.conference .eyebrow{color:var(--gold-soft)}
.conf-title{
  display:flex;flex-direction:column;align-items:center;
  line-height:1;text-shadow:0 8px 36px rgba(201,168,221,.35);
}
.ct-npa{
  font-family:var(--font-serif);font-weight:700;
  font-size:clamp(2.4rem,6vw,4.2rem);letter-spacing:.06em;
  text-transform:uppercase;color:#FBF5F2;
}
.ct-script{
  font-family:var(--font-script);font-weight:400;
  font-size:clamp(2.8rem,7.4vw,5.2rem);line-height:1.02;
  color:var(--gold-soft);margin-top:-.12em;padding-bottom:.1em;
}
.ct-word{
  font-family:var(--font-serif);font-weight:600;
  font-size:clamp(1.2rem,2.8vw,2rem);letter-spacing:.3em;
  text-transform:uppercase;color:#FBF5F2;
  margin-top:-.1em;padding-left:.3em;
}
.conf-title::before{background:radial-gradient(closest-side,rgba(201,168,221,.26),transparent 72%)}
.conf-theme{
  margin:22px auto 0;max-width:620px;
  font-family:var(--font-serif);font-size:clamp(1.1rem,2.3vw,1.4rem);
  color:#F6EDE6;line-height:1.6;
  background:linear-gradient(100deg,rgba(59,31,78,.75),rgba(107,63,160,.55));
  border:1px solid rgba(212,175,106,.4);
  border-radius:999px;padding:14px 30px;
}
.conf-theme span{
  display:inline-block;text-transform:uppercase;letter-spacing:.2em;
  font-family:var(--font-body);font-size:.66rem;font-weight:700;
  color:var(--gold-soft);margin-right:10px;vertical-align:middle;
}
.conf-theme em{color:var(--gold-soft);font-style:italic;font-weight:600}

.conf-grid{
  display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:clamp(30px,4vw,54px);align-items:start;position:relative;
}
.conf-poster{margin:0}
.conf-poster img{
  display:block;width:100%;height:auto;border-radius:var(--r);
  border:1px solid rgba(212,175,106,.5);
  box-shadow:0 36px 70px -34px rgba(20,8,32,.9);
}
.conf-days{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.day{
  background:linear-gradient(165deg,rgba(251,245,242,.96),rgba(243,233,228,.88));
  border:1px solid rgba(201,162,75,.5);border-radius:var(--r-sm);
  padding:22px 20px 24px;text-align:center;color:var(--ink-soft);
  box-shadow:0 22px 44px -28px rgba(20,8,32,.8);
}
.day-pill{
  display:inline-block;margin:0 0 12px;
  background:linear-gradient(100deg,var(--royal-800),var(--plum-500));
  color:#FBF5F2;font-weight:700;font-size:.76rem;
  letter-spacing:.16em;text-transform:uppercase;
  padding:6px 20px;border-radius:999px;
  border:1px solid rgba(212,175,106,.45);
}
.day-date{
  margin:0;font-family:var(--font-script);font-size:1.42rem;
  color:var(--plum-500);line-height:1.3;
}
.day-place{
  margin:2px 0 0;text-transform:uppercase;letter-spacing:.16em;
  font-size:.78rem;font-weight:700;color:var(--royal-800);
}
.day-rule{
  border:0;height:1px;margin:16px auto;width:70%;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
}
.day h3{font-size:1.18rem;margin-bottom:10px;color:var(--royal-800)}
.day p{margin:0;font-size:.92rem}

.conf-gifts{margin-top:clamp(40px,5vw,60px);text-align:center}
.gifts-head{
  margin:0 0 22px;text-transform:uppercase;letter-spacing:.24em;
  font-size:.74rem;font-weight:700;color:var(--gold-soft);
}
.conf-gifts ul{
  list-style:none;margin:0;padding:0;
  display:flex;flex-wrap:wrap;justify-content:center;gap:14px 34px;
}
.conf-gifts li{
  display:flex;flex-direction:column;align-items:center;gap:10px;
  text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;
  font-weight:700;color:rgba(246,237,230,.86);min-width:104px;
}
.gift-ico{
  width:54px;height:54px;border-radius:50%;display:grid;place-items:center;
  background:rgba(251,245,242,.08);border:1px solid rgba(212,175,106,.5);
}
.gift-ico svg{
  width:26px;height:26px;fill:none;stroke:var(--gold-soft);
  stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;
}
.conf-cta{margin:clamp(38px,5vw,52px) 0 0;text-align:center}

/* =========================================================
   Gallery
   ========================================================= */
.gallery{background:linear-gradient(180deg,var(--parchment-deep),var(--parchment))}
.gal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.gal{
  margin:0;border-radius:var(--r-sm);overflow:hidden;
  border:1px solid rgba(201,162,75,.38);background:var(--paper);
  box-shadow:var(--shadow);
  transition:transform .24s ease, box-shadow .24s ease;
}
.gal:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}
.gal img{display:block;width:100%;height:250px;object-fit:cover}
/* the sunset shot opens the section full width */
.gal-feature{margin:0 0 22px}
.gal-feature img{height:clamp(280px,34vw,420px);object-position:center 58%}
.gal-feature figcaption{font-size:1.06rem}
.gal figcaption{
  padding:14px 18px 16px;font-family:var(--font-serif);font-style:italic;
  font-size:.98rem;color:var(--ink-soft);text-align:center;
  border-top:1px solid rgba(201,162,75,.28);
}

/* =========================================================
   Responsive additions
   ========================================================= */
@media (max-width:1040px){
  .conf-grid{grid-template-columns:1fr}
  .conf-poster{max-width:420px;margin-inline:auto}
  .gal-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:720px){
  .conf-days{grid-template-columns:1fr}
  .gal-grid{grid-template-columns:1fr}
  .brand-logo{height:34px}
  .footer-brand{flex-direction:column;align-items:flex-start;text-align:left}
}


/* =========================================================
   Hibiscus — the island flower, used as accent against the
   lavender so it lifts the page without fighting the purple
   ========================================================= */
.hib .fl, .fl.hib{filter:drop-shadow(0 8px 18px rgba(139,18,51,.26))}

/* hero: two hibiscus among the lavender, held at the edges */
/* on the deep purple ground the crimson needs lifting or it reads as a dark blot */
.hero-florals .hib{
  opacity:.9;
  filter:brightness(1.24) saturate(1.12) drop-shadow(0 10px 24px rgba(139,18,51,.4));
}
.hero-florals .f2.hib{width:132px;height:132px;top:176px;left:10px;transform:rotate(14deg)}
.hero-florals .f6.hib{width:120px;height:120px;top:48px;right:16px;transform:rotate(-16deg)}

/* programme cards alternate hibiscus and lavender */


/* the pattern itself, laid softly behind two sections */
.lei-band{background-image:url("assets/flora-garland.webp");}


/* a lei of hibiscus laid across the page, like a garland between sections */
.lei-band{
  height:150px;
  background-size:contain;
  background-position:center;
  background-repeat:no-repeat;
  opacity:1;
  border-block:1px solid rgba(201,162,75,.28);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent);
}

@media (max-width:820px){

  .lei-band{height:88px}
}


/* -------------------------------------------------------------
   WordPress-specific: admin bar, editor content, event archive
   ------------------------------------------------------------- */
.admin-bar .nav{top:32px}
@media screen and (max-width:782px){.admin-bar .nav{top:46px}}

.entry-content h2{font-size:clamp(1.7rem,3.4vw,2.4rem);margin:1.4em 0 .5em}
.entry-content h3{font-size:1.35rem;margin:1.2em 0 .4em}
.entry-content ul,.entry-content ol{padding-left:1.3em}
.entry-content li{margin-bottom:.4em}
.entry-content img,.wp-block-image img{max-width:100%;height:auto;border-radius:var(--r-sm)}
.entry-content blockquote{
  margin:1.6em 0;padding:1em 1.4em;border-left:3px solid var(--gold);
  font-family:var(--font-serif);font-style:italic;font-size:1.14rem;color:var(--royal-800);
}
.alignright{float:right;margin:0 0 1em 1.5em}
.alignleft{float:left;margin:0 1.5em 1em 0}
.aligncenter{display:block;margin-inline:auto}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* a page or single post, in the site's clothes */
.page-hero{
  position:relative;overflow:hidden;color:#F6EDE6;padding:clamp(70px,10vw,120px) 0 clamp(50px,7vw,80px);
  background:
    radial-gradient(760px 420px at 50% 10%, rgba(201,168,221,.26), transparent 66%),
    linear-gradient(160deg,var(--royal-900),var(--royal-700) 62%,var(--plum-600));
}
.page-hero h1{color:#FBF5F2;font-size:clamp(2.2rem,5vw,3.4rem)}
.page-hero .eyebrow{color:var(--gold-soft)}
.page-body{padding:clamp(56px,8vw,90px) 0}
.page-body .wrap{max-width:820px}

/* past events */
.event-list{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;list-style:none;margin:0;padding:0}
.event-card{
  background:linear-gradient(165deg,rgba(251,245,242,.96),rgba(234,222,243,.5));
  border:1px solid rgba(201,162,75,.36);border-radius:var(--r);
  overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column;
  transition:transform .24s ease,box-shadow .24s ease;
}
.event-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}
.event-card img{display:block;width:100%;height:230px;object-fit:cover}
.event-card-body{padding:24px 24px 28px}
.event-when{
  margin:0 0 8px;text-transform:uppercase;letter-spacing:.16em;
  font-size:.7rem;font-weight:700;color:var(--gold-ink);
}
.event-card h3{font-size:1.28rem;margin-bottom:10px}
.event-card h3 a{color:var(--royal-800);text-decoration:none}
.event-card h3 a:hover{color:var(--plum-500)}
.event-card p{color:var(--ink-soft);font-size:.96rem;margin:0}
.event-empty{text-align:center;color:var(--ink-soft);font-size:1.06rem}
@media (max-width:1040px){.event-list{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.event-list{grid-template-columns:1fr}}

.pagination{margin-top:48px;text-align:center}
.pagination .page-numbers{
  display:inline-block;padding:8px 15px;margin:0 3px;border-radius:999px;
  border:1px solid rgba(201,162,75,.4);color:var(--royal-800);text-decoration:none;font-weight:600;
}
.pagination .current,.pagination a:hover{background:var(--plum-500);color:#FBF5F2;border-color:transparent}

/* event page extras */
.conf-where{
  margin:34px auto 0;max-width:660px;text-align:center;
  color:rgba(246,237,230,.86);font-family:var(--font-serif);
  font-style:italic;font-size:1.12rem;
}
.conf-story{
  margin:44px auto 0;max-width:700px;color:rgba(246,237,230,.88);
}
.conf-story h2,.conf-story h3{color:#FBF5F2}
.conf-story a{color:var(--gold-soft)}
.conference .section-head h2::before,.conference .section-head h1::before{
  background:radial-gradient(closest-side,rgba(201,168,221,.26),transparent 72%);
}
.page-body .section-head{margin-bottom:36px}
.page-body .section-head h2{color:var(--royal-800)}

/* blog post navigation */
.post-nav{
  display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;
  margin-top:52px;padding-top:28px;border-top:1px solid rgba(201,162,75,.34);
}
