/* ============================================================
   Ivory & Clover — Design System v2 (mobile-first)
   Loaded after style.css. Owns global layout safety, responsive
   typography, cards, forms/smart controls, chrome and states.
   ============================================================ */

/* ---------- Layout safety: never allow horizontal overflow ---------- */
*,*::before,*::after{box-sizing:border-box}
html,body{max-width:100%;overflow-x:hidden}
img,svg,video,iframe,canvas{max-width:100%}
.ivc-container{width:100%;max-width:1200px;margin-inline:auto;padding-inline:1.25rem}
@media(min-width:768px){.ivc-container{padding-inline:2rem}}
.ivc-container--narrow{max-width:760px}
.ivc-section{padding-block:clamp(2.5rem,7vw,4.5rem)}
.ivc-section--tight{padding-block:clamp(1.75rem,4vw,2.5rem)}
[hidden]{display:none !important}

/* ---------- Responsive typography ---------- */
:root{
  --ivc-step--1:clamp(.82rem,.79rem + .15vw,.9rem);
  --ivc-step-0:clamp(1rem,.96rem + .2vw,1.06rem);
  --ivc-step-1:clamp(1.15rem,1.08rem + .4vw,1.35rem);
  --ivc-tap:48px;
}
body{font-size:var(--ivc-step-0);line-height:1.6}
h1{font-size:clamp(1.9rem,1.35rem + 2.6vw,3.25rem);line-height:1.1}
h2{font-size:clamp(1.55rem,1.2rem + 1.7vw,2.35rem);line-height:1.15}
h3{font-size:clamp(1.2rem,1.08rem + .6vw,1.5rem)}
h1,h2,h3,h4,p,li,blockquote{overflow-wrap:break-word;hyphens:auto}
.ivc-lede{font-size:var(--ivc-step-1);max-width:60ch}
.ivc-meta,.ivc-eyebrow,.ivc-tag{font-size:var(--ivc-step--1)}
.ivc-eyebrow{letter-spacing:.14em}
.ivc-meta{color:var(--ivc-muted)}
.ivc-section__head{max-width:64ch;margin-bottom:clamp(1.5rem,4vw,2.25rem)}

/* ---------- Buttons: tap targets + mobile fullwidth ---------- */
.ivc-btn{min-height:var(--ivc-tap);padding:.8rem 1.35rem;font-size:.95rem;max-width:100%}
.ivc-btn--block{width:100%}
.ivc-btn--sm{min-height:40px;padding:.5rem 1rem;font-size:.85rem}
.ivc-btnrow{display:flex;flex-wrap:wrap;gap:.6rem}
@media(max-width:600px){
  .ivc-btnrow--stack{flex-direction:column;align-items:stretch}
  .ivc-btnrow--stack .ivc-btn{width:100%}
}

/* ---------- Header + mobile nav ---------- */
.ivc-site-header__inner{gap:1rem}
.ivc-brand span{white-space:nowrap;font-size:clamp(1.05rem,1rem + .5vw,1.4rem)}
.ivc-navtoggle{display:inline-flex;align-items:center;justify-content:center;width:var(--ivc-tap);height:var(--ivc-tap);
  border:1px solid var(--ivc-border);border-radius:14px;background:#fff;cursor:pointer}
.ivc-navtoggle span{position:relative;display:block;width:18px;height:1.5px;background:var(--ivc-clover-deep)}
.ivc-navtoggle span::before,.ivc-navtoggle span::after{content:"";position:absolute;left:0;width:18px;height:1.5px;background:inherit}
.ivc-navtoggle span::before{top:-6px}
.ivc-navtoggle span::after{top:6px}
@media(min-width:900px){.ivc-navtoggle{display:none}}
@media(max-width:899px){
  .ivc-nav{position:fixed;inset:auto 0 0 0;top:0;display:flex;flex-direction:column;align-items:stretch;gap:.25rem;
    background:var(--ivc-warm-white);padding:5.25rem 1.25rem 2rem;transform:translateY(-100%);
    transition:transform .28s cubic-bezier(.2,.7,.2,1);z-index:60;overflow-y:auto;min-height:100vh}
  .ivc-nav.is-open{transform:none;box-shadow:0 30px 60px rgba(31,67,56,.18)}
  .ivc-nav a{padding:.9rem .25rem;font-size:1.15rem;font-family:var(--ivc-font-serif);border-bottom:1px solid var(--ivc-border)}
  .ivc-nav .ivc-btn{margin-top:1rem;width:100%;font-family:var(--ivc-font-sans);border-bottom:0}
  body.ivc-nav-open{overflow:hidden}
}

/* ---------- Footer ---------- */
.ivc-site-footer{position:static;clear:both;margin-top:clamp(3rem,8vw,5rem);border-top:1px solid var(--ivc-border);
  background:var(--ivc-ivory);color:var(--ivc-ink);text-align:left;padding:clamp(2.5rem,6vw,3.5rem) 0 2rem}
.ivc-foot__grid{display:grid;grid-template-columns:1fr;gap:2rem}
@media(min-width:640px){.ivc-foot__grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:980px){.ivc-foot__grid{grid-template-columns:1.4fr 1fr 1fr 1fr}}
.ivc-foot__brand img{width:36px;height:36px;margin-bottom:.75rem}
.ivc-foot__brand p{color:var(--ivc-muted);max-width:34ch;margin:.5rem 0 0}
.ivc-foot h3{font-family:var(--ivc-font-sans);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ivc-muted);margin:0 0 .85rem}
.ivc-foot ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.ivc-foot a{color:var(--ivc-ink)}
.ivc-foot a:hover{color:var(--ivc-clover)}
.ivc-foot__social{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}
.ivc-foot__social a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;
  border:1px solid var(--ivc-border);border-radius:999px;background:#fff}
.ivc-foot__bar{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;justify-content:space-between;align-items:center;
  margin-top:clamp(2rem,5vw,3rem);padding-top:1.5rem;border-top:1px solid var(--ivc-border);
  color:var(--ivc-muted);font-size:var(--ivc-step--1)}
.ivc-foot__bar ul{display:flex;flex-wrap:wrap;gap:1rem;list-style:none;margin:0;padding:0}

/* ---------- Cards: one consistent ratio system ---------- */
.ivc-grid{display:grid;gap:1.25rem;grid-template-columns:1fr}
@media(min-width:620px){.ivc-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}}
@media(min-width:1000px){.ivc-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1000px){.ivc-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}}
.ivc-ecards,.ivc-host-grid,.ivc-cards-3,.ivc-cards-4,.ivc-paths{display:grid;gap:1.25rem;grid-template-columns:1fr}
@media(min-width:620px){
  .ivc-ecards,.ivc-host-grid,.ivc-cards-3,.ivc-paths{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}
  .ivc-cards-4{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
}
@media(min-width:1000px){
  .ivc-ecards,.ivc-host-grid,.ivc-cards-3,.ivc-paths{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ivc-cards-4{grid-template-columns:repeat(4,minmax(0,1fr))}
}
.ivc-ecard,.ivc-host-card,.ivc-card{display:flex;flex-direction:column;min-width:0;height:100%;
  background:#fff;border:1px solid var(--ivc-border);border-radius:18px;overflow:hidden;
  box-shadow:var(--ivc-shadow-sm);transition:transform .2s ease,box-shadow .2s ease}
.ivc-ecard:hover,.ivc-host-card:hover,.ivc-card:hover{transform:translateY(-2px);box-shadow:var(--ivc-shadow-md)}
.ivc-ecard__media,.ivc-card__media{position:relative;aspect-ratio:3/2;overflow:hidden;background:var(--ivc-ivory);display:block}
.ivc-host-card__media{aspect-ratio:3/2}
.ivc-ecard__media img,.ivc-card__media img{width:100%;height:100%;object-fit:cover}
.ivc-card__media.tall,.ivc-card__media.square{aspect-ratio:3/2}
.ivc-ecard__body,.ivc-card__body,.ivc-host-card__body{display:flex;flex-direction:column;gap:.4rem;
  padding:1.15rem 1.2rem 1.3rem;flex:1 1 auto;min-width:0}
.ivc-ecard__body h3,.ivc-card__body h3,.ivc-host-card__body h3{margin:0;font-size:var(--ivc-step-1);color:var(--ivc-clover-deep)}
.ivc-ecard__facts{list-style:none;margin:.25rem 0 .5rem;padding:0;display:grid;gap:.3rem;
  font-size:var(--ivc-step--1);color:var(--ivc-muted)}
.ivc-ecard__body .ivc-btn,.ivc-host-card__body .ivc-btn{margin-top:auto;align-self:stretch}
.ivc-ecard__date{position:absolute;top:.85rem;left:.85rem;display:grid;place-items:center;padding:.4rem .6rem;
  border-radius:12px;background:rgba(252,251,248,.94);color:var(--ivc-clover-deep);line-height:1;text-align:center}
.ivc-ecard__date strong{font-size:.65rem;letter-spacing:.12em;text-transform:uppercase}
.ivc-ecard__date em{font-style:normal;font-family:var(--ivc-font-serif);font-size:1.25rem}
.ivc-badge{position:absolute;top:.85rem;right:.85rem;left:auto;font-size:.65rem;padding:.35rem .6rem}
.ivc-badge--gold{background:var(--ivc-gold);color:var(--ivc-clover-deep)}
.ivc-badge--verified{background:var(--ivc-clover)}
.ivc-chiprow{display:flex;flex-wrap:wrap;gap:.4rem;margin:0}

/* ---------- Smart form controls ---------- */
.ivc-form label{margin-bottom:1.25rem}
.ivc-form input[type=text],.ivc-form input[type=email],.ivc-form input[type=tel],.ivc-form input[type=url],
.ivc-form input[type=number],.ivc-form input[type=date],.ivc-form input[type=time],.ivc-form input[type=search],
.ivc-form input[type=password],.ivc-form select,.ivc-form textarea,.ivc-input,.ivc-select{
  min-height:var(--ivc-tap);font-size:1rem;border-radius:14px;border:1px solid var(--ivc-border);background:#fff}
.ivc-form input:focus,.ivc-form select:focus,.ivc-form textarea:focus{outline:none;border-color:var(--ivc-clover);
  box-shadow:0 0 0 4px rgba(47,93,80,.12)}
.ivc-field{margin-bottom:1.5rem;min-width:0}
.ivc-field__label{display:block;font-size:.8rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ivc-muted);margin-bottom:.5rem}
.ivc-field__hint{margin:.45rem 0 0;font-size:var(--ivc-step--1);color:var(--ivc-muted)}
.ivc-form__row{display:grid;grid-template-columns:1fr;gap:0 1rem}
@media(min-width:640px){.ivc-form__row{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Image upload / dropzone */
.ivc-upload{position:relative;display:block}
.ivc-upload input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.ivc-upload__zone{display:grid;place-items:center;gap:.4rem;text-align:center;padding:2rem 1rem;min-height:180px;
  border:1.5px dashed rgba(47,93,80,.35);border-radius:18px;background:var(--ivc-ivory);color:var(--ivc-clover-deep)}
.ivc-upload.is-drag .ivc-upload__zone{border-color:var(--ivc-clover);background:rgba(47,93,80,.07)}
.ivc-upload__icon{font-size:1.6rem}
.ivc-upload__title{font-family:var(--ivc-font-serif);font-size:1.25rem}
.ivc-upload__hint{font-size:var(--ivc-step--1);color:var(--ivc-muted)}
.ivc-upload__preview{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:3/2;background:var(--ivc-ivory)}
.ivc-upload__preview img{width:100%;height:100%;object-fit:cover}
.ivc-upload__tools{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.65rem}

/* Stepper */
.ivc-stepper{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--ivc-border);border-radius:999px;
  background:#fff;padding:.25rem}
.ivc-stepper button{width:42px;height:42px;border-radius:999px;border:0;background:var(--ivc-ivory);
  color:var(--ivc-clover-deep);font-size:1.25rem;line-height:1;cursor:pointer}
.ivc-stepper button:disabled{opacity:.4;cursor:not-allowed}
.ivc-stepper input{width:3.5rem;text-align:center;border:0 !important;background:transparent !important;
  font-size:1.05rem;font-variant-numeric:tabular-nums;box-shadow:none !important;min-height:auto !important;
  margin:0 !important;-moz-appearance:textfield;appearance:textfield}
.ivc-stepper input::-webkit-outer-spin-button,.ivc-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

/* Chips / visual choice */
.ivc-chips{display:flex;flex-wrap:wrap;gap:.5rem}
.ivc-chips input{position:absolute;opacity:0;pointer-events:none;width:0;height:0;margin:0 !important}
.ivc-chip{position:relative;display:inline-flex;align-items:center;gap:.4rem;min-height:44px;padding:.55rem 1rem;
  border:1px solid var(--ivc-border);border-radius:999px;background:#fff;cursor:pointer;font-size:.92rem;
  margin:0 !important;transition:all .15s ease}
.ivc-chip:hover{border-color:var(--ivc-clover)}
.ivc-chip:has(input:checked){background:var(--ivc-clover);border-color:var(--ivc-clover);color:var(--ivc-warm-white)}
.ivc-chip:has(input:focus-visible){box-shadow:0 0 0 4px rgba(47,93,80,.15)}

/* Visual choice cards */
.ivc-choices{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.85rem}
.ivc-choice{position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:.2rem;min-height:120px;
  padding:1rem;border:1px solid var(--ivc-border);border-radius:18px;background:#fff;cursor:pointer;
  margin:0 !important;text-align:left;transition:all .15s ease}
.ivc-choice input{position:absolute;opacity:0;width:0;height:0;margin:0 !important}
.ivc-choice__emoji{font-size:1.5rem}
.ivc-choice__label{font-family:var(--ivc-font-serif);font-size:1.15rem;color:var(--ivc-clover-deep)}
.ivc-choice__meta{font-size:var(--ivc-step--1);color:var(--ivc-muted)}
.ivc-choice:has(input:checked){border-color:var(--ivc-clover);box-shadow:0 0 0 2px var(--ivc-clover) inset}

/* Toggle */
.ivc-toggle{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:var(--ivc-tap);
  margin:0 !important;cursor:pointer}
.ivc-toggle input{position:absolute;opacity:0;width:0;height:0}
.ivc-toggle__track{position:relative;flex:0 0 auto;width:52px;height:30px;border-radius:999px;background:var(--ivc-border);transition:background .2s ease}
.ivc-toggle__track::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:999px;
  background:#fff;box-shadow:var(--ivc-shadow-sm);transition:transform .2s ease}
.ivc-toggle:has(input:checked) .ivc-toggle__track{background:var(--ivc-clover)}
.ivc-toggle:has(input:checked) .ivc-toggle__track::after{transform:translateX(22px)}

/* Location picker */
.ivc-locate{position:relative}
.ivc-locate__row{display:grid;grid-template-columns:1fr;gap:.5rem}
@media(min-width:520px){.ivc-locate__row{grid-template-columns:1fr auto}}
.ivc-locate__resolved{margin:.6rem 0 0;padding:.7rem .9rem;border-radius:14px;background:var(--ivc-ivory);
  border:1px solid var(--ivc-border);font-size:var(--ivc-step--1)}

/* Progressive disclosure */
.ivc-more{margin:1.5rem 0;border-top:1px solid var(--ivc-border);padding-top:1rem}
.ivc-more>summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:.5rem;min-height:44px;
  font-size:.95rem;color:var(--ivc-clover);font-weight:500}
.ivc-more>summary::-webkit-details-marker{display:none}
.ivc-more>summary::after{content:"＋";font-size:1rem}
.ivc-more[open]>summary::after{content:"−"}

/* ---------- Empty / success / error states ---------- */
.ivc-empty,.ivc-emptystate{display:grid;justify-items:center;gap:.5rem;text-align:center;
  padding:clamp(2rem,6vw,3.5rem) 1.25rem;border:1px dashed var(--ivc-border);border-radius:20px;
  background:var(--ivc-ivory);color:var(--ivc-muted)}
.ivc-emptystate__icon{font-size:1.8rem}
.ivc-emptystate h3{margin:0;color:var(--ivc-clover-deep)}
.ivc-emptystate p{margin:0;max-width:44ch}
.ivc-emptystate .ivc-btnrow{margin-top:.75rem;justify-content:center}
.ivc-flash{display:flex;gap:.6rem;align-items:flex-start}
.ivc-flash.is-success,.ivc-flash--success{background:rgba(47,93,80,.08);border-color:rgba(47,93,80,.25);color:var(--ivc-clover-deep)}
.ivc-flash--error{background:rgba(210,103,74,.1);border-color:rgba(210,103,74,.4);color:#7a3a29}

/* ---------- Event page ---------- */
.ivc-ehero{position:relative;min-height:clamp(320px,52vw,540px);display:flex;align-items:flex-end;overflow:hidden}
.ivc-ehero__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ivc-ehero__scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(20,34,29,.9) 0%,rgba(20,34,29,.45) 55%,rgba(20,34,29,.1) 100%)}
.ivc-ehero__inner{position:relative;width:100%;padding-block:clamp(2rem,6vw,3.5rem);color:#FCFBF8}
.ivc-ehero__inner h1{color:#FCFBF8;margin:.35rem 0 .5rem;max-width:26ch}
.ivc-ehero__inner .ivc-tag{background:rgba(252,251,248,.16);border-color:rgba(252,251,248,.35);color:#FCFBF8}
.ivc-ehero__host{margin:.35rem 0 0;color:rgba(252,251,248,.92)}
.ivc-ehero__host a{color:#FCFBF8;text-decoration:underline;text-underline-offset:3px}
.ivc-event{display:grid;grid-template-columns:1fr;gap:2rem;align-items:start}
@media(min-width:980px){.ivc-event{grid-template-columns:minmax(0,1.55fr) minmax(300px,.9fr);gap:3rem}}
.ivc-event__main{min-width:0}
.ivc-event__aside{min-width:0}
@media(min-width:980px){.ivc-event__aside{position:sticky;top:6rem}}
.ivc-facts{list-style:none;margin:0 0 2rem;padding:1.15rem 1.25rem;display:grid;gap:.75rem;
  border:1px solid var(--ivc-border);border-radius:18px;background:#fff}
@media(min-width:620px){.ivc-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ivc-facts li{display:flex;gap:.65rem;align-items:flex-start;min-width:0}
.ivc-facts span[aria-hidden]{flex:0 0 auto}
.ivc-facts strong{display:block;font-weight:600}
.ivc-facts em{font-style:normal;color:var(--ivc-muted);font-size:var(--ivc-step--1)}
.ivc-rsvpcard{border:1px solid var(--ivc-border);border-radius:20px;background:#fff;padding:1.5rem;box-shadow:var(--ivc-shadow-md)}
.ivc-rsvpcard__date{margin:0;font-family:var(--ivc-font-serif);font-size:1.35rem;color:var(--ivc-clover-deep)}
.ivc-rsvpcard__time,.ivc-rsvpcard__cost{margin:.2rem 0 0;color:var(--ivc-muted)}
.ivc-rsvpcard__seats{margin:.85rem 0 1rem;font-weight:600;color:var(--ivc-clover-deep)}
.ivc-rsvpcard__utils{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.5rem;margin-top:1rem}
.ivc-rsvpcard__utils .ivc-btn{width:100%}
.ivc-event__flyer{margin:0 0 1.5rem;border-radius:20px;overflow:hidden;border:1px solid var(--ivc-border)}
.ivc-event__gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin:1.5rem 0}
@media(min-width:768px){.ivc-event__gallery{grid-template-columns:repeat(3,minmax(0,1fr))}}
.ivc-event__gallery figure{margin:0;aspect-ratio:1/1;border-radius:14px;overflow:hidden}
.ivc-event__gallery img{width:100%;height:100%;object-fit:cover}
.ivc-map{width:100%;aspect-ratio:16/10;max-height:380px;border:0;border-radius:18px;margin:1rem 0;display:block}
.ivc-highlights{margin:1.25rem 0;padding-left:1.1rem;display:grid;gap:.4rem}

/* Sticky mobile RSVP bar */
.ivc-stickybar{position:fixed;inset:auto 0 0 0;z-index:55;display:flex;gap:.75rem;align-items:center;
  padding:.75rem 1rem calc(.75rem + env(safe-area-inset-bottom));background:rgba(252,251,248,.97);
  border-top:1px solid var(--ivc-border);box-shadow:0 -10px 30px rgba(31,67,56,.1)}
.ivc-stickybar__info{min-width:0;flex:1 1 auto;font-size:var(--ivc-step--1);color:var(--ivc-muted)}
.ivc-stickybar__info strong{display:block;color:var(--ivc-clover-deep);font-size:.95rem;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ivc-stickybar .ivc-btn{flex:0 0 auto}
@media(min-width:980px){.ivc-stickybar{display:none}}
@media(max-width:979px){body.has-stickybar{padding-bottom:5.5rem}}

/* ---------- Conversation (replaces raw WP comments) ---------- */
.ivc-convo{margin-top:clamp(2rem,6vw,3rem);border-top:1px solid var(--ivc-border);padding-top:1.75rem}
.ivc-convo .comment-form-author,.ivc-convo .comment-form-email,.ivc-convo .comment-form-url,
.ivc-convo .comment-notes,.ivc-convo .logged-in-as{display:none}
.ivc-convo .comment-list{list-style:none;padding:0;margin:0 0 1.5rem;display:grid;gap:1rem}
.ivc-convo .comment-list li{border:1px solid var(--ivc-border);border-radius:16px;background:#fff;padding:1rem 1.15rem;list-style:none}
.ivc-convo textarea{width:100%;min-height:110px;border:1px solid var(--ivc-border);border-radius:16px;padding:.9rem 1rem;font:inherit}
.ivc-convo .form-submit{margin:.75rem 0 0}
.ivc-convo .submit{min-height:var(--ivc-tap);padding:.8rem 1.5rem;border-radius:999px;border:0;
  background:var(--ivc-clover);color:var(--ivc-warm-white);font:inherit;cursor:pointer}

/* ---------- Host / Venue / Brand profile heroes ---------- */
.ivc-phero{position:relative;overflow:hidden;min-height:clamp(300px,46vw,480px);display:flex;align-items:flex-end}
.ivc-phero__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ivc-phero__scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(20,34,29,.92),rgba(20,34,29,.3) 60%,rgba(20,34,29,.1))}
.ivc-phero__inner{position:relative;width:100%;padding-block:clamp(2rem,6vw,3rem);color:#FCFBF8}
.ivc-phero__inner h1{color:#FCFBF8;margin:.3rem 0 .35rem}
.ivc-phero__inner p{color:rgba(252,251,248,.92)}
.ivc-phero__avatar{width:84px;height:84px;border-radius:22px;object-fit:cover;border:2px solid rgba(252,251,248,.75);margin-bottom:.85rem}
.ivc-phero__cta{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.15rem}
@media(max-width:600px){.ivc-phero__cta{flex-direction:column;align-items:stretch}.ivc-phero__cta .ivc-btn{width:100%}}
.ivc-statgrid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
@media(min-width:768px){.ivc-statgrid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.ivc-statgrid li{border:1px solid var(--ivc-border);border-radius:16px;background:#fff;padding:1rem 1.15rem}
.ivc-statgrid strong{display:block;font-family:var(--ivc-font-serif);font-size:1.9rem;color:var(--ivc-clover);line-height:1.1}
.ivc-statgrid span{font-size:var(--ivc-step--1);letter-spacing:.1em;text-transform:uppercase;color:var(--ivc-muted)}
.ivc-brand__hero,.ivc-dir-hero,.ivc-venuehero{padding-block:clamp(3.5rem,10vw,6rem)}

/* ---------- Filters: bottom sheet on mobile ---------- */
.ivc-filterbar{display:flex;gap:.6rem;align-items:center;margin-bottom:1.25rem}
@media(min-width:900px){.ivc-filterbar{display:none}}
.ivc-filters{display:grid;grid-template-columns:1fr;gap:1rem;align-items:end}
@media(min-width:620px){.ivc-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1000px){.ivc-filters{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:899px){
  .ivc-sheet{position:fixed;inset:0;z-index:70;display:none;background:rgba(20,34,29,.45)}
  .ivc-sheet.is-open{display:block}
  .ivc-sheet__panel{position:absolute;inset:auto 0 0 0;max-height:85vh;overflow-y:auto;background:var(--ivc-warm-white);
    border-radius:24px 24px 0 0;padding:1.25rem 1.25rem calc(1.5rem + env(safe-area-inset-bottom))}
  .ivc-sheet__head{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}
  body.ivc-sheet-open{overflow:hidden}
}
@media(min-width:900px){.ivc-sheet{display:block !important;background:none;position:static}.ivc-sheet__head{display:none}}

/* ---------- Find a game ---------- */
@media(max-width:959px){
  .ivc-fg{grid-template-columns:1fr}
  .ivc-fg__map{height:260px;order:2}
  .ivc-fg__list{max-height:none;overflow:visible}
}
.ivc-fg__search{grid-template-columns:1fr}
@media(min-width:520px){.ivc-fg__search{grid-template-columns:1fr auto}}
.ivc-fg__filters{grid-template-columns:1fr}
@media(min-width:520px){.ivc-fg__filters{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- Dashboard ---------- */
.ivc-dash__grid,.ivc-orgdash__grid{grid-template-columns:1fr}
@media(min-width:900px){.ivc-orgdash__grid{grid-template-columns:minmax(240px,280px) minmax(0,1fr)}}
@media(min-width:700px){.ivc-dash__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1100px){.ivc-dash__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.ivc-tile{min-width:0;border-radius:18px}
.ivc-quickactions{display:grid;grid-template-columns:1fr;gap:.6rem}
@media(min-width:620px){.ivc-quickactions{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ivc-quickaction{display:flex;align-items:center;gap:.75rem;min-height:var(--ivc-tap);padding:.85rem 1rem;
  border:1px solid var(--ivc-border);border-radius:16px;background:#fff;color:var(--ivc-clover-deep);font-weight:500}
.ivc-quickaction:hover{border-color:var(--ivc-clover)}
.ivc-quickaction span{font-size:1.2rem}

/* ---------- Auth screens ---------- */
@media(max-width:899px){.ivc-auth{grid-template-columns:1fr;min-height:0}.ivc-auth__art{min-height:180px}}
.ivc-auth__panel{width:100%;padding:clamp(1.75rem,5vw,4rem) clamp(1.25rem,4vw,3rem)}

/* ---------- Homepage overflow guards ---------- */
.ivc-hero-photo{min-height:clamp(460px,74vh,780px)}
.ivc-hero-photo__inner{width:100%;padding-inline:1.25rem;padding-top:clamp(4rem,12vw,6rem);padding-bottom:clamp(2.5rem,7vw,4.5rem)}
@media(min-width:768px){.ivc-hero-photo__inner{padding-inline:2rem}}
.ivc-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;padding-block:clamp(2rem,6vw,3rem)}
@media(min-width:768px){.ivc-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1100px){.ivc-stats{grid-template-columns:repeat(6,minmax(0,1fr))}}
.ivc-stat__num{font-size:clamp(1.85rem,4vw,3rem)}
.ivc-story{grid-template-columns:1fr}
.ivc-story__body blockquote{font-size:clamp(1.25rem,1rem + 1.4vw,2rem)}
.ivc-gallery{gap:4px}
.ivc-cta-photo__inner{padding-block:clamp(3rem,10vw,6rem)}
.ivc-tpl-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.ivc-qr{flex-wrap:wrap}
.ivc-sharelist li{flex-wrap:wrap}
.ivc-attlist__row{gap:.6rem}

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