/*
Theme Name: MMP Perth Community
Theme URI: https://maharashtramandal.com.au
Author: Maharashtra Mandal Perth
Description: MMP Perth — original design with full block editor support for Maharashtra Mandal Perth (MMP) — ported from the MMP Next.js/Tailwind site design. Editorial, warm, Warli-motif design system with structured content types for Events, Sponsors and Committee, and native WordPress Posts for News.
Version: 4.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: mmp-perth
*/

/* ==========================================================================
   Design tokens — ported 1:1 from tailwind.config.js + globals.css
   ========================================================================== */
:root{
  --saffron-50:#FFF7ED; --saffron-100:#FFEDD5; --saffron-200:#FED7AA; --saffron-300:#FDBA74;
  --saffron-400:#FB923C; --saffron-500:#F97316; --saffron-600:#EA580C; --saffron-700:#C2410C;
  --saffron-800:#9A3412; --saffron-900:#7C2D12;

  --ink-50:#F8FAFC; --ink-100:#F1F5F9; --ink-200:#E2E8F0; --ink-300:#CBD5E1; --ink-400:#94A3B8;
  --ink-500:#64748B; --ink-600:#475569; --ink-700:#334155; --ink-800:#1E293B; --ink-900:#0F172A; --ink-950:#020617;

  --marine-400:#5D8FBC; --marine-500:#3F72A0; --marine-900:#152841;

  --font-body: 'Instrument Sans', ui-sans-serif, system-ui, sans-serif;
  --font-display: 'Instrument Sans', ui-sans-serif, system-ui, sans-serif;
  --font-serif: 'Instrument Serif', ui-serif, Georgia, serif;

  --radius-card: 1rem;
  --ease-smooth: cubic-bezier(0.16, 1, 0.3, 1);
}

@import url('https://fonts.googleapis.com/css2?family=Instrument+Sans:wght@400;500;600;700&family=Instrument+Serif:ital@0;1&display=swap');

*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body{
  margin:0; background:#fff; color:var(--ink-900); font-family: var(--font-body);
  font-size: 16px; line-height: 1.6; font-feature-settings: 'ss01','cv11';
}
h1,h2,h3,h4,h5,h6{ font-family: var(--font-display); color: var(--ink-950); margin:0 0 .5em; font-weight:600; letter-spacing:-0.015em; text-wrap: balance; }
p{ margin:0 0 1em; text-wrap: pretty; }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
ul{ margin:0; padding:0; }
::selection{ background: rgba(249,115,22,.25); }

.italic-serif{ font-family: var(--font-serif); font-style: italic; font-weight:400; }
.text-gradient-saffron{
  background: linear-gradient(135deg,#F97316 0%,#EA580C 100%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}

*:focus-visible{ outline:2px solid var(--saffron-500); outline-offset:3px; border-radius:6px; }
.skip-link{ position:absolute; left:-999px; }
.skip-link:focus{ left:1rem; top:1rem; z-index:200; background:var(--ink-950); color:#fff; padding:.8em 1.4em; border-radius:8px; }

/* ---------- Layout ---------- */
.container-x{ max-width: 80rem; margin-inline:auto; padding-inline: 1.5rem; }
@media (min-width:640px){ .container-x{ padding-inline:2rem; } }
@media (min-width:1024px){ .container-x{ padding-inline:2.5rem; } }
.container-narrow{ max-width:56rem; margin-inline:auto; padding-inline:1.5rem; }
@media (min-width:640px){ .container-narrow{ padding-inline:2rem; } }

.section-y{ padding-block: 5rem; }
@media (min-width:640px){ .section-y{ padding-block:6rem; } }
@media (min-width:1024px){ .section-y{ padding-block:8rem; } }
.section-y-sm{ padding-block:3.5rem; }
@media (min-width:640px){ .section-y-sm{ padding-block:4rem; } }
@media (min-width:1024px){ .section-y-sm{ padding-block:5rem; } }
.bg-tint{ background: rgba(248,250,252,.6); }
.bg-tint-border{ background: rgba(248,250,252,.6); border-top:1px solid var(--ink-100); border-bottom:1px solid var(--ink-100); }
.bg-dark{ background: var(--ink-950); color:#fff; }
.bg-dark h1,.bg-dark h2,.bg-dark h3{ color:#fff; }

/* ---------- Type scale ---------- */
.display-2xl{ font-size: clamp(3rem,6vw,5.5rem); line-height:1; letter-spacing:-.03em; font-weight:600; }
.display-xl{ font-size: clamp(2.5rem,5vw,4.5rem); line-height:1.05; letter-spacing:-.025em; font-weight:600; }
.display-lg{ font-size: clamp(2rem,4vw,3.5rem); line-height:1.1; letter-spacing:-.02em; font-weight:600; }
.display-md{ font-size: clamp(1.75rem,3vw,2.5rem); line-height:1.15; letter-spacing:-.015em; font-weight:600; }
.display-sm{ font-size: clamp(1.5rem,2.5vw,2rem); line-height:1.2; font-weight:600; }

/* ---------- Eyebrow ---------- */
.eyebrow{ display:inline-flex; align-items:center; gap:.5em; font-size:.8125rem; font-weight:500; text-transform:uppercase; letter-spacing:.14em; color:var(--saffron-700); }
.eyebrow::before{ content:''; display:block; height:1px; width:2rem; background:var(--saffron-500); }
.eyebrow.on-dark{ color: var(--saffron-400); }
.eyebrow.on-dark::before{ background: var(--saffron-500); }
.eyebrow.center{ justify-content:center; }

/* ---------- Buttons ---------- */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.5em; border-radius:999px; font-weight:500; font-size:.9rem; padding:.85em 1.5em; white-space:nowrap; transition:all .3s var(--ease-smooth); border:1px solid transparent; cursor:pointer; }
.btn svg,.btn .ico{ width:1em; height:1em; }
.btn-primary{ background:var(--ink-950); color:#fff; }
.btn-primary:hover{ background:var(--ink-800); transform:translateY(-1px); box-shadow:0 8px 20px rgba(15,23,42,.15); }
.btn-secondary{ background:#fff; color:var(--ink-900); border-color:var(--ink-200); }
.btn-secondary:hover{ border-color:var(--ink-300); background:var(--ink-50); }
.btn-accent{ background:var(--saffron-500); color:var(--ink-950); }
.btn-accent:hover{ background:var(--saffron-600); transform:translateY(-1px); box-shadow:0 8px 20px rgba(249,115,22,.25); }
.btn-ghost{ background:transparent; color:var(--ink-700); padding:.6em 1em; }
.btn-ghost:hover{ color:var(--ink-950); background:var(--ink-50); }
.btn-lg{ padding:1.05em 2em; font-size:1rem; }
.btn-on-dark{ color:#fff; border-color: rgba(255,255,255,.2); }
.btn-on-dark:hover{ background: rgba(255,255,255,.1); }
.btn-block{ width:100%; }

.link-underline{ position:relative; display:inline-flex; align-items:center; gap:.35em; font-weight:500; color:var(--ink-900); }
.link-underline::after{ content:''; position:absolute; left:0; bottom:0; height:1px; width:100%; background:currentColor; }

.chip{ display:inline-flex; align-items:center; gap:.4em; border-radius:999px; border:1px solid var(--ink-200); background:#fff; padding:.3em .8em; font-size:.75rem; font-weight:500; color:var(--ink-700); }

/* ---------- Cards ---------- */
.card-base{ position:relative; border-radius:1.25rem; background:#fff; border:1px solid var(--ink-100); transition:all .4s ease; box-shadow:0 1px 2px rgba(15,23,42,.04), 0 4px 12px rgba(15,23,42,.02); }
.card-base:hover{ border-color:var(--ink-200); box-shadow:0 4px 20px rgba(15,23,42,.06),0 20px 40px rgba(15,23,42,.04); transform:translateY(-2px); }
.card-dark{ background:var(--ink-950); color:#fff; border-color:var(--ink-950); }

/* ---------- Warli pattern & mesh backgrounds (verbatim from source globals.css) ---------- */
.warli-pattern{
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cg fill='none' stroke='%23EA580C' stroke-width='1' stroke-opacity='0.16'%3E%3Ccircle cx='30' cy='25' r='3'/%3E%3Cpath d='M30 28 L30 42 M22 34 L38 34 M30 42 L24 54 M30 42 L36 54'/%3E%3Ccircle cx='90' cy='25' r='3'/%3E%3Cpath d='M90 28 L90 42 M82 34 L98 34 M90 42 L84 54 M90 42 L96 54'/%3E%3Ccircle cx='60' cy='60' r='6'/%3E%3Cg stroke-linecap='round'%3E%3Cpath d='M60 46 L60 50 M60 70 L60 74 M46 60 L50 60 M70 60 L74 60 M50 50 L53 53 M67 67 L70 70 M50 70 L53 67 M67 53 L70 50'/%3E%3C/g%3E%3Cpath d='M15 100 L25 85 L35 100 Z'/%3E%3Cpath d='M55 100 L65 85 L75 100 Z'/%3E%3Cpath d='M95 100 L105 85 L115 100 Z'/%3E%3C/g%3E%3C/svg%3E");
  background-size: 240px 240px;
}
.mesh-hero{
  background:
    radial-gradient(at 20% 20%, rgba(249,115,22,.15) 0px, transparent 50%),
    radial-gradient(at 80% 0%, rgba(63,114,160,.20) 0px, transparent 50%),
    radial-gradient(at 100% 80%, rgba(249,115,22,.12) 0px, transparent 50%),
    radial-gradient(at 0% 100%, rgba(21,40,65,.10) 0px, transparent 50%);
}
.mesh-dark{
  background:
    radial-gradient(at 20% 20%, rgba(249,115,22,.20) 0px, transparent 50%),
    radial-gradient(at 80% 0%, rgba(63,114,160,.30) 0px, transparent 50%),
    radial-gradient(at 100% 80%, rgba(249,115,22,.15) 0px, transparent 50%);
}
.bg-layer{ position:absolute; inset:0; pointer-events:none; }

/* ---------- Reveal-on-scroll ---------- */
.reveal{ opacity:0; transform:translateY(20px); transition:opacity .9s var(--ease-smooth), transform .9s var(--ease-smooth); }
.reveal.is-visible{ opacity:1; transform:translateY(0); }
@media (prefers-reduced-motion:reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

/* ---------- Header ---------- */
.site-header{ position:sticky; top:0; z-index:50; background:rgba(255,255,255,.6); backdrop-filter:blur(10px); border-bottom:1px solid transparent; transition:all .5s var(--ease-smooth); }
.site-header.is-scrolled{ background:rgba(255,255,255,.88); border-bottom-color:var(--ink-100); }
.nav-row{ display:flex; align-items:center; justify-content:space-between; gap:2rem; height:4rem; }
@media (min-width:640px){ .nav-row{ height:5rem; } }
.brand{ display:flex; align-items:center; gap:.75rem; }
.brand img{ width:2.75rem; height:2.75rem; border-radius:50%; object-fit:cover; box-shadow:0 0 0 1px var(--ink-100); }
.brand-text{ display:none; flex-direction:column; line-height:1.05; }
@media (min-width:640px){ .brand-text{ display:flex; } }
.brand-name{ font-size:.94rem; font-weight:600; color:var(--ink-950); letter-spacing:-.01em; }
.brand-sub{ margin-top:.15em; font-size:.68rem; font-weight:500; text-transform:uppercase; letter-spacing:.14em; color:var(--ink-500); }

.main-nav{ display:none; align-items:center; gap:.25rem; }
@media (min-width:1024px){ .main-nav{ display:flex; } }
.main-nav a{ position:relative; padding:.5em .9em; font-size:.9rem; font-weight:500; color:var(--ink-600); border-radius:999px; }
.main-nav a:hover{ color:var(--ink-950); }
.main-nav a.current::after{ content:''; position:absolute; left:.9em; right:.9em; bottom:0; height:1px; background:var(--ink-950); }
.main-nav a.current{ color:var(--ink-950); }

.header-actions{ display:flex; align-items:center; gap:.5rem; }
.header-join{ display:none; }
@media (min-width:640px){ .header-join{ display:inline-flex; font-size:.8rem; padding:.6em 1.2em; } }
.nav-toggle{ display:inline-flex; align-items:center; justify-content:center; width:2.5rem; height:2.5rem; border-radius:999px; border:1px solid var(--ink-200); background:#fff; cursor:pointer; }
@media (min-width:1024px){ .nav-toggle{ display:none; } }

.mobile-nav{ position:fixed; inset:4rem 0 0 0; z-index:40; background:#fff; transform:translateX(100%); opacity:0; transition:all .5s var(--ease-smooth); overflow-y:auto; }
@media (min-width:640px){ .mobile-nav{ top:5rem; } }
.mobile-nav.open{ transform:translateX(0); opacity:1; }
.mobile-nav-inner{ padding:2rem 1.5rem 3rem; }
.mobile-nav a{ display:flex; justify-content:space-between; align-items:center; padding:1em 0; font-family:var(--font-display); font-size:1.5rem; color:var(--ink-500); border-bottom:1px solid var(--ink-100); }
.mobile-nav a.current{ color:var(--ink-950); }
.mobile-nav-ctas{ margin-top:2rem; display:flex; flex-direction:column; gap:.75rem; }

/* ---------- Hero ---------- */
.hero{ position:relative; overflow:hidden; background:#fff; }
.hero-grid{ position:relative; z-index:1; display:grid; gap:3rem; padding-block:4rem 5rem; }
@media (min-width:1024px){ .hero-grid{ grid-template-columns: 7fr 5fr; gap:4rem; padding-block:7rem 8rem; } }
.hero-kicker{ display:flex; align-items:center; gap:.75rem; }
.pulse-dot{ display:inline-flex; width:.5rem; height:.5rem; border-radius:50%; background:var(--saffron-500); animation:pulse 2s infinite; }
@keyframes pulse{ 0%,100%{opacity:1;} 50%{opacity:.4;} }
.hero-kicker span.label{ font-size:.75rem; font-weight:500; text-transform:uppercase; letter-spacing:.18em; color:var(--ink-500); }
.hero h1{ margin-top:1.5rem; }
.hero .lede{ margin-top:1.5rem; max-width:38rem; font-size:1.15rem; color:var(--ink-600); line-height:1.65; }
@media (min-width:640px){ .hero .lede{ font-size:1.3rem; } }
.hero-ctas{ margin-top:2.2rem; display:flex; flex-wrap:wrap; align-items:center; gap:.75rem; }
.hero-stats{ margin-top:3.5rem; display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; max-width:32rem; }
.hero-stats div{ border-left:1px solid var(--ink-200); padding-left:1rem; }
.hero-stats dt{ font-size:.68rem; font-weight:500; text-transform:uppercase; letter-spacing:.14em; color:var(--ink-500); }
.hero-stats dd{ margin:.25em 0 0; font-family:var(--font-display); font-size:1.6rem; font-weight:600; color:var(--ink-950); }

.hero-visual{ position:relative; }
.hero-visual-frame{ position:relative; aspect-ratio: 4/5; border-radius:1.5rem; overflow:hidden; box-shadow:0 25px 60px -15px rgba(15,23,42,.35); }
.hero-visual-frame img{ width:100%; height:100%; object-fit:cover; }
.hero-visual-frame::after{ content:''; position:absolute; inset:0; background:linear-gradient(to top, rgba(2,6,23,.4), transparent 55%); }
.hero-float-card{ position:absolute; left:-1rem; bottom:-1.5rem; max-width:280px; border-radius:1.1rem; background:rgba(255,255,255,.95); backdrop-filter:blur(20px); box-shadow:0 25px 50px -12px rgba(15,23,42,.25); border:1px solid rgba(255,255,255,.6); padding:1rem 1.1rem; }
@media (min-width:640px){ .hero-float-card{ left:-2.5rem; } }
.hero-float-card .tag{ display:flex; align-items:center; gap:.4em; font-size:.62rem; font-weight:600; text-transform:uppercase; letter-spacing:.14em; color:var(--saffron-600); }
.hero-float-card p.title{ margin:.5em 0 0; font-family:var(--font-display); font-size:1rem; color:var(--ink-950); line-height:1.25; }
.hero-float-card p.loc{ margin:.25em 0 0; font-size:.72rem; color:var(--ink-500); }
.hero-pill{ position:absolute; top:-1rem; right:-1rem; display:none; align-items:center; gap:.5em; border-radius:999px; background:var(--ink-950); color:#fff; padding:.55em 1.1em; font-size:.72rem; font-weight:500; box-shadow:0 20px 40px -8px rgba(15,23,42,.3); }
@media (min-width:640px){ .hero-pill{ display:flex; } }
.hero-note{ margin-top:2rem; display:flex; align-items:center; gap:.6em; font-size:.78rem; color:var(--ink-500); }

/* ---------- Section headers ---------- */
.section-head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:1.5rem; margin-bottom:3rem; }
.section-head .lede{ margin-top:1em; color:var(--ink-600); max-width:38rem; }
.section-head-narrow{ max-width:38rem; }

/* ---------- Grids ---------- */
.grid-3{ display:grid; gap:1.5rem; grid-template-columns:1fr; }
@media (min-width:768px){ .grid-3{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .grid-3{ grid-template-columns:repeat(3,1fr); } }
.grid-2{ display:grid; gap:1.5rem; grid-template-columns:1fr; }
@media (min-width:768px){ .grid-2{ grid-template-columns:repeat(2,1fr); } }
.grid-4{ display:grid; gap:1.5rem; grid-template-columns:repeat(2,1fr); }
@media (min-width:640px){ .grid-4{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .grid-4{ grid-template-columns:repeat(4,1fr); } }

/* ---------- Icon tile (why join / values / roles) ---------- */
.icon-tile-badge{ display:inline-flex; width:2.75rem; height:2.75rem; align-items:center; justify-content:center; border-radius:.85rem; background:var(--ink-950); color:#fff; font-size:1.2rem; transition:all .3s ease; }
.icon-tile:hover .icon-tile-badge{ background:var(--saffron-500); color:var(--ink-950); }
.icon-tile h3{ margin-top:1.2rem; font-size:1.25rem; }
.icon-tile p{ margin-top:.6rem; font-size:.94rem; color:var(--ink-600); line-height:1.6; }
.icon-tile-card{ padding:1.75rem; height:100%; }
.icon-tile-card .icon-tile-badge{ background:var(--ink-950); color:#fff; }

/* ---------- Event cards ---------- */
.event-card{ overflow:hidden; display:flex; flex-direction:column; }
.event-card-media{ position:relative; aspect-ratio:16/10; overflow:hidden; display:block; background:var(--ink-100); }
.event-card-media img{ width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease-smooth); }
.event-card:hover .event-card-media img{ transform:scale(1.04); }
.event-card-media .cat-chip{ position:absolute; top:1rem; left:1rem; }
.event-date-badge{ position:absolute; top:1rem; right:1rem; display:flex; flex-direction:column; align-items:center; border-radius:.85rem; background:rgba(255,255,255,.95); padding:.5em .8em; line-height:1; color:var(--ink-950); }
.event-date-badge .m{ font-size:.62rem; font-weight:600; text-transform:uppercase; letter-spacing:.1em; color:var(--saffron-600); }
.event-date-badge .d{ margin-top:.15em; font-size:1.1rem; font-weight:600; }
.event-held-badge{ position:absolute; top:1rem; right:1rem; display:inline-flex; align-items:center; gap:.4em; border-radius:999px; background:rgba(2,6,23,.9); color:#fff; padding:.4em .9em; font-size:.68rem; font-weight:500; }
.event-card-body{ flex:1; display:flex; flex-direction:column; padding:1.5rem; }
.event-card-body h3{ font-size:1.3rem; line-height:1.25; }
.event-meta{ margin-top:.7rem; display:flex; flex-wrap:wrap; gap:.35em 1em; font-size:.76rem; color:var(--ink-500); }
.event-meta span{ display:inline-flex; align-items:center; gap:.35em; }
.event-desc{ margin-top:.7rem; font-size:.9rem; color:var(--ink-600); flex:1; }
.event-card-footer{ margin-top:1.2rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; font-size:.85rem; }
.event-cta-link{ font-weight:500; color:var(--ink-950); display:inline-flex; align-items:center; gap:.35em; }
.event-past .event-card-media img{ filter:grayscale(35%); }
.event-past:hover .event-card-media img{ filter:grayscale(0%); }

/* ---------- Committee cards ---------- */
.committee-card{ padding:1.6rem; display:flex; flex-direction:column; }
.committee-monogram{ display:inline-flex; width:3.5rem; height:3.5rem; align-items:center; justify-content:center; border-radius:50%; font-family:var(--font-display); font-size:1.15rem; font-weight:600; background:var(--ink-950); color:#fff; }
.committee-card.featured .committee-monogram{ background:var(--saffron-500); color:var(--ink-950); }
.committee-top{ display:flex; align-items:center; justify-content:space-between; }
.committee-role-tag{ font-size:.62rem; font-weight:600; text-transform:uppercase; letter-spacing:.14em; color:var(--saffron-600); }
.committee-card.featured .committee-role-tag{ color:var(--saffron-300); }
.committee-card h3{ margin-top:1.7rem; font-size:1.2rem; }
.committee-card p.role{ margin-top:.3em; font-size:.88rem; color:var(--ink-500); }
.committee-card.featured p.role{ color:var(--ink-300); }
.committee-email{ margin-top:1.3rem; display:inline-flex; align-items:center; gap:.4em; font-size:.75rem; font-weight:500; color:var(--ink-500); }

/* ---------- Pricing ---------- */
.price-card{ padding:2rem; display:flex; flex-direction:column; height:100%; position:relative; }
.price-card .badge-popular{ position:absolute; top:-.8rem; left:1.5rem; background:var(--saffron-500); color:var(--ink-950); font-weight:600; }
.price-card h3{ font-size:1.25rem; }
.price-card .tagline{ margin-top:.3em; font-size:.85rem; color:var(--ink-500); }
.price-card.featured .tagline{ color:var(--ink-300); }
.price-amount{ margin-top:1.3rem; display:flex; align-items:baseline; gap:.4em; }
.price-amount .num{ font-family:var(--font-display); font-size:2.6rem; font-weight:600; }
.price-amount .per{ font-size:.85rem; color:var(--ink-500); }
.price-card.featured .price-amount .per{ color:var(--ink-400); }
.price-features{ margin-top:1.8rem; flex:1; display:flex; flex-direction:column; gap:.7rem; }
.price-features li{ display:flex; align-items:flex-start; gap:.6em; font-size:.88rem; }
.price-features .tick{ flex:none; margin-top:.15em; color:var(--saffron-600); }
.price-card.featured .price-features .tick{ color:var(--saffron-400); }

/* ---------- Timeline (About) ---------- */
.timeline-row{ display:flex; gap:1.5rem; padding-block:1.4rem; border-bottom:1px solid var(--ink-100); }
@media (min-width:640px){ .timeline-row{ gap:2.5rem; } }
.timeline-row:last-child{ border-bottom:none; }
.timeline-year{ flex:none; width:4rem; font-family:var(--font-display); font-size:1.5rem; font-weight:600; color:var(--saffron-600); }
@media (min-width:640px){ .timeline-year{ width:6rem; font-size:1.75rem; } }
.timeline-text{ padding-top:.2em; font-size:1.05rem; color:var(--ink-800); }

/* ---------- Gallery (masonry via CSS columns) ---------- */
.gallery-masonry{ columns:1; gap:1.5rem; }
@media (min-width:640px){ .gallery-masonry{ columns:2; } }
@media (min-width:1024px){ .gallery-masonry{ columns:3; } }
.gallery-masonry figure{ margin:0 0 1.5rem; break-inside:avoid; border-radius:1.1rem; overflow:hidden; background:var(--ink-100); }
.gallery-masonry img{ width:100%; display:block; }

/* ---------- FAQ accordion ---------- */
.faq-list{ border-top:1px solid var(--ink-100); }
.faq-item{ border-bottom:1px solid var(--ink-100); }
.faq-q{ width:100%; display:flex; justify-content:space-between; align-items:center; gap:1rem; text-align:left; background:none; border:none; cursor:pointer; padding:1.3em 0; font-family:var(--font-display); font-size:1.05rem; color:var(--ink-950); }
.faq-q .chev{ flex:none; transition:transform .3s ease; color:var(--ink-400); }
.faq-q[aria-expanded="true"] .chev{ transform:rotate(180deg); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .3s ease; }
.faq-a-inner{ padding-bottom:1.3em; color:var(--ink-600); line-height:1.65; max-width:42rem; }

/* ---------- Contact ---------- */
.contact-grid{ display:grid; gap:3rem; }
@media (min-width:1024px){ .contact-grid{ grid-template-columns:5fr 7fr; } }
.contact-channel{ display:flex; gap:1rem; padding-block:1.2rem; border-bottom:1px solid var(--ink-100); }
.contact-channel:last-child{ border-bottom:none; }
.contact-channel .ico-wrap{ flex:none; display:inline-flex; width:2.6rem; height:2.6rem; align-items:center; justify-content:center; border-radius:.8rem; background:var(--ink-50); color:var(--saffron-600); }
.contact-channel .label{ font-size:.7rem; font-weight:500; text-transform:uppercase; letter-spacing:.1em; color:var(--ink-500); }
.contact-channel .value{ margin-top:.2em; font-size:1rem; color:var(--ink-900); }
.form-field{ margin-bottom:1.3rem; }
.form-field label{ display:block; margin-bottom:.4em; font-size:.85rem; font-weight:500; color:var(--ink-800); }
.form-field input, .form-field textarea{ width:100%; padding:.8em 1em; border-radius:.7rem; border:1px solid var(--ink-200); font-family:var(--font-body); font-size:.95rem; background:#fff; }
.form-field textarea{ min-height:140px; resize:vertical; }

/* ---------- Sponsors ---------- */
.sponsor-tier-heading{ display:flex; align-items:baseline; justify-content:space-between; margin-bottom:1.5rem; }
.sponsor-logo-tile{ display:flex; align-items:center; justify-content:center; height:5.5rem; border-radius:1rem; border:1px solid var(--ink-100); background:#fff; padding:1rem; filter:grayscale(60%); opacity:.85; transition:all .3s ease; }
.sponsor-logo-tile:hover{ filter:grayscale(0%); opacity:1; }
.sponsor-logo-tile img{ max-height:100%; object-fit:contain; }

/* ---------- CTA band ---------- */
.cta-band{ position:relative; overflow:hidden; border-radius:1.5rem; background:var(--ink-950); color:#fff; }
.cta-band-grid{ position:relative; z-index:1; display:grid; gap:2rem; padding:2.5rem; }
@media (min-width:768px){ .cta-band-grid{ padding:3rem; } }
@media (min-width:1024px){ .cta-band-grid{ grid-template-columns:1fr 1fr; align-items:center; padding:4rem; } }
.cta-band h2{ color:#fff; }
.cta-band p{ color:var(--ink-300); }
.cta-band-actions{ display:flex; flex-wrap:wrap; gap:.75rem; }
@media (min-width:1024px){ .cta-band-actions{ justify-content:flex-end; } }
.blur-blob{ position:absolute; border-radius:50%; filter:blur(60px); pointer-events:none; }

/* ---------- Perth Home section ---------- */
.perth-home{ position:relative; overflow:hidden; background:var(--ink-950); color:#fff; }
.perth-home-bg{ position:absolute; inset:0; }
.perth-home-bg img{ width:100%; height:100%; object-fit:cover; opacity:.4; }
.perth-home-bg::after{ content:''; position:absolute; inset:0; background:linear-gradient(to right, var(--ink-950), rgba(2,6,23,.7) 50%, rgba(2,6,23,.4)); }
.perth-home-grid{ position:relative; z-index:1; display:grid; gap:2.5rem; padding-block:6rem; align-items:center; }
@media (min-width:1024px){ .perth-home-grid{ grid-template-columns:7fr 5fr; padding-block:8rem; } }
.perth-home .lede{ margin-top:1.5rem; font-size:1.15rem; line-height:1.65; color:var(--ink-300); max-width:36rem; }
.perth-stats{ margin-top:2.5rem; display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; max-width:28rem; }
.perth-stats dt{ font-size:.68rem; text-transform:uppercase; letter-spacing:.14em; color:var(--ink-400); }
.perth-stats dd{ margin:.25em 0 0; font-family:var(--font-display); font-size:1.2rem; }
.perth-collage{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; max-width:26rem; margin-inline:auto 0; }
.perth-collage img{ aspect-ratio:3/4; object-fit:cover; border-radius:1.1rem; box-shadow:0 0 0 1px rgba(255,255,255,.1); }
.perth-collage div:nth-child(2){ margin-top:2rem; }

/* ---------- Footer ---------- */
.site-footer{ position:relative; overflow:hidden; background:var(--ink-950); color:var(--ink-100); }
.footer-top{ padding-block:5rem 3.5rem; border-bottom:1px solid rgba(255,255,255,.1); }
.footer-top-grid{ display:grid; gap:2.5rem; }
@media (min-width:1024px){ .footer-top-grid{ grid-template-columns:1fr 1fr; align-items:flex-start; gap:4rem; } }
.footer-top h2{ color:#fff; }
.footer-top .lede{ margin-top:1em; color:var(--ink-300); max-width:32rem; }
.newsletter-cta{ display:inline-flex; align-items:center; gap:.75rem; border-radius:999px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.15); padding:.4em .4em .4em 1.4em; color:#fff; font-size:.9rem; }
.newsletter-cta .go{ display:inline-flex; width:2.25rem; height:2.25rem; align-items:center; justify-content:center; border-radius:50%; background:var(--saffron-500); color:var(--ink-950); }
.footer-mid{ padding-block:3.5rem; display:grid; gap:2.5rem; grid-template-columns:1fr; }
@media (min-width:1024px){ .footer-mid{ grid-template-columns: 4fr 8fr; } }
.footer-brand p{ margin-top:1.2rem; color:var(--ink-300); font-size:.92rem; max-width:24rem; }
.footer-contact{ margin-top:1.4rem; display:flex; flex-direction:column; gap:.7rem; font-size:.9rem; }
.footer-contact li{ display:flex; align-items:flex-start; gap:.6em; color:var(--ink-300); }
.footer-social{ margin-top:1.3rem; display:flex; gap:.5rem; }
.footer-social a{ display:inline-flex; width:2.4rem; height:2.4rem; align-items:center; justify-content:center; border-radius:50%; border:1px solid rgba(255,255,255,.12); color:var(--ink-300); }
.footer-links{ display:grid; gap:2rem; grid-template-columns:repeat(2,1fr); }
@media (min-width:640px){ .footer-links{ grid-template-columns:repeat(3,1fr); } }
.footer-links h3{ font-size:.72rem; font-weight:600; text-transform:uppercase; letter-spacing:.13em; color:rgba(255,255,255,.65); }
.footer-links ul{ margin-top:1.1rem; display:flex; flex-direction:column; gap:.7rem; }
.footer-links a{ font-size:.88rem; color:var(--ink-300); }
.footer-links a:hover{ color:#fff; }
.footer-bottom{ padding-block:1.4rem; border-top:1px solid rgba(255,255,255,.1); display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; font-size:.75rem; color:var(--ink-400); }
.footer-bottom a{ margin-left:1rem; }
.footer-bottom a:hover{ color:#fff; }

/* ---------- Generic page hero (About/Committee/Events/etc.) ---------- */
.page-hero{ position:relative; overflow:hidden; background:#fff; padding-block:4rem 3.5rem; }
@media (min-width:640px){ .page-hero{ padding-block:6rem 4rem; } }
.page-hero .inner{ position:relative; z-index:1; max-width:48rem; }
.page-hero h1{ margin-top:1.5rem; }
.page-hero .lede{ margin-top:1.5rem; font-size:1.15rem; color:var(--ink-600); max-width:38rem; }
@media (min-width:640px){ .page-hero .lede{ font-size:1.25rem; } }
.page-hero-image{ margin-top:0; }
.page-hero-image .frame{ position:relative; aspect-ratio:21/9; border-radius:1.5rem; overflow:hidden; }
.page-hero-image img{ width:100%; height:100%; object-fit:cover; }

/* ---------- Values grid ---------- */
.value-card{ padding:1.75rem; height:100%; }

/* ---------- Utility ---------- */
.text-center{ text-align:center; }
.mx-auto{ margin-inline:auto; }
.max-w-xl{ max-width:36rem; }
.max-w-2xl{ max-width:42rem; }
.max-w-3xl{ max-width:48rem; }
.mt-0{ margin-top:0; }
.info-note{ margin-top:2.5rem; border-radius:1rem; background:var(--ink-50); border:1px solid var(--ink-100); padding:1.2rem 1.4rem; display:flex; gap:.8rem; font-size:.88rem; color:var(--ink-600); }
.empty-state{ border-radius:1.25rem; border:1px solid var(--ink-100); background:rgba(248,250,252,.5); padding:3rem; text-align:center; }
.stat-divider{ margin:0 .3em; color:var(--ink-400); }

/* ── Member login / portal button in header ──────────────────── */
.header-portal {
	font-size: .82rem;
	font-weight: 500;
	color: var(--ink-600);
	padding: .45rem .85rem;
	border: 1px solid var(--ink-200);
	border-radius: 6px;
	text-decoration: none;
	transition: color .2s, border-color .2s;
	white-space: nowrap;
}
.header-portal:hover {
	color: var(--ink-900);
	border-color: var(--ink-400);
}

/* ── Events embed ──────────────────────────────────────────────── */
.mmp-events-embed-wrap {
	border-radius: 1rem;
	overflow: hidden;
	box-shadow: 0 4px 32px rgba(0,0,0,.08);
	background: #fff;
	min-height: 600px;
}
.mmp-events-embed-wrap iframe {
	display: block;
	width: 100%;
	min-height: 900px;
	border: none;
}

/* ── Gallery block output ──────────────────────────────────────── */
.gallery-block-wrap .wp-block-gallery {
	gap: .75rem;
}
.gallery-block-wrap .wp-block-gallery .wp-block-image {
	margin: 0;
}
.gallery-block-wrap .wp-block-gallery .wp-block-image img {
	border-radius: var(--radius-card);
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
/* Masonry-style fallback for older gallery shortcodes */
.gallery-block-wrap .gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: .75rem;
}
.gallery-block-wrap .gallery-item img {
	border-radius: var(--radius-card);
	width: 100%;
	height: 240px;
	object-fit: cover;
}
