/* GSIS house theme, generated from the approved Phase 1 comp */

:root{
  --navy:#002561; --navy-deep:#001A45; --ink:#0B1B3E;
  --green:#069046; --green-deep:#046B34;
  --brass:#C29B3C; --brass-soft:#D9BC77;
  --sand:#F5EFE3; --sand-deep:#EDE4D0; --card:#FFFFFF;
  --line:rgba(0,37,97,.14);
  --disp:'Marcellus',Georgia,serif;
  --body:'Source Sans 3',-apple-system,'Segoe UI',sans-serif;
  --arab:'Amiri','Scheherazade New',serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--sand);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible{outline:3px solid var(--green);outline-offset:3px;border-radius:4px}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.eyebrow{font-family:var(--body);font-weight:700;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--green-deep)}
h1,h2,h3{font-family:var(--disp);font-weight:400;line-height:1.12;text-wrap:balance}
.btn,a.btn{text-decoration:none}
.btn{line-height:1.25;display:inline-flex;align-items:center;gap:.5em;font-weight:700;font-size:.95rem;padding:.85em 1.6em;border-radius:999px;border:2px solid transparent;cursor:pointer;transition:transform .15s ease, box-shadow .15s ease}
.btn:hover{transform:translateY(-1px)}
.btn-green{background:var(--green-deep);color:#fff;box-shadow:0 6px 18px rgba(6,144,70,.28)}
.btn-green:hover{background:var(--green)}
.btn-ghost{border-color:var(--navy);color:var(--navy)}
.btn-ghost:hover{background:var(--navy);color:#fff}
.btn-brass{background:var(--brass);color:var(--navy-deep)}
.btn-brass:hover{background:var(--brass-soft)}

/* ---------- utility bar ---------- */
.utility{background:var(--navy-deep);color:#C7D3EC;font-size:.82rem}
.utility .wrap{display:flex;justify-content:space-between;align-items:center;min-height:38px;gap:16px;flex-wrap:wrap;padding-top:4px;padding-bottom:4px}
.utility .hijri{color:var(--brass-soft)}
.utility .next b{color:#fff}
.utility .next .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);margin-right:.5em;animation:pulse 2.4s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}

/* ---------- header ---------- */
header.site{background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
header.site .wrap{display:flex;align-items:center;gap:28px;min-height:78px}
.logo{width:150px;flex:none}
nav.main{display:flex;gap:26px;margin-left:auto;font-weight:600;font-size:.94rem}
nav.main a{padding:6px 2px;border-bottom:2px solid transparent;white-space:nowrap}
nav.main a:hover{border-bottom-color:var(--green)}
.hdr-ctas{display:flex;gap:10px;margin-left:8px;align-items:center}
@media(max-width:960px){nav.main{display:none}}

/* ---------- hero ---------- */
.hero{background:
  radial-gradient(1200px 500px at 85% -10%, rgba(6,144,70,.07), transparent 60%),
  var(--sand)}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;padding-top:64px;padding-bottom:80px}
.hero .wrap>*{min-width:0}
.bismillah{font-family:var(--arab);font-size:1.5rem;color:var(--brass);direction:rtl;text-align:left;margin-bottom:12px;opacity:.92}
.hero h1{font-size:clamp(2.4rem,4.6vw,3.6rem);color:var(--navy)}
.hero .lede{font-size:1.15rem;max-width:34em;margin:20px 0 30px;color:#2B3A5C}
.hero .ctas{display:flex;gap:14px;flex-wrap:wrap}
.hero .traveler{margin-top:26px;font-size:.95rem;color:#44557C}
.hero .traveler a{color:var(--green-deep);font-weight:700;border-bottom:1.5px solid currentColor}
@media(max-width:1020px){
  .hero .wrap{grid-template-columns:1fr;gap:40px;padding-top:36px}
  .hero .mihrab{order:-1}
}

/* ---------- the mihrab prayer card (signature) ---------- */
.mihrab{position:relative;max-width:430px;justify-self:end;width:100%}
@media(max-width:1020px){.mihrab{justify-self:center}}
@media(max-width:430px){
  .mihrab .inner{padding:38px 14px 18px}
  table.times td{padding:9px 4px}
  table.times th{padding:0 4px 8px}
  table.times tr.next td.p::after{content:none} /* green row already says next */
}
.mihrab .frame{
  background:var(--navy);
  border-radius:215px 215px 18px 18px;
  padding:20px 20px 22px;
  box-shadow:0 30px 60px rgba(0,26,69,.35);
  position:relative}
.mihrab .frame::before{ /* brass keyline arch */
  content:"";position:absolute;inset:9px;border:1.5px solid rgba(194,155,60,.55);
  border-radius:206px 206px 12px 12px;pointer-events:none}
.mihrab .finial{position:absolute;top:-7px;left:50%;transform:translateX(-50%);
  width:14px;height:14px;border-radius:50%;background:var(--brass);box-shadow:0 0 0 4px var(--sand)}
.mihrab .inner{background:var(--card);border-radius:186px 186px 8px 8px;padding:44px 26px 22px;text-align:center}
.mihrab .m-eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#8A6A1C;margin-bottom:2px}
.mihrab h2,.mihrab h3{font-size:1.45rem;color:var(--navy);margin:0}
.mihrab .m-date{font-size:.85rem;color:#5A6A8E;margin:4px 0 16px}
.mihrab .m-date .h{color:#8A6A1C;font-weight:600}
table.times{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
table.times th{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:#55648A;font-weight:700;padding:0 8px 8px;text-align:right}
table.times th:first-child{text-align:left}
table.times td{padding:9px 8px;border-top:1px solid #EDF0F6;text-align:right;font-weight:600;color:var(--ink)}
table.times td.p{text-align:left;font-weight:700;color:var(--navy)}
table.times td .ar{font-family:var(--arab);color:#8A96B2;font-weight:400;font-size:1.02em;margin-left:.45em}
table.times tr.next td{background:rgba(6,144,70,.10)}
table.times tr.next td.p::after{content:"next";font-size:.62rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--green);border-radius:999px;padding:2px 8px;margin-left:.6em;vertical-align:middle}
.mihrab .jumuah{margin-top:16px;background:var(--sand);border:1px solid var(--sand-deep);border-radius:10px;padding:10px 14px;font-size:.9rem;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.mihrab .jumuah b{color:var(--navy)}
.mihrab .m-note{margin-top:12px;font-size:.72rem;color:#5A6A8E}

/* ---------- navy bands ---------- */
.band{background:var(--navy);color:#DCE4F5;position:relative;overflow:hidden}
.band::before{content:"";position:absolute;inset:0;opacity:.06;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='84' height='84' viewBox='0 0 84 84'%3E%3Cpath d='M42 6l8.6 18.8L69.4 16 60.6 34.8 79.4 42l-18.8 7.2L69.4 68 50.6 59.2 42 78l-8.6-18.8L14.6 68l8.8-18.8L4.6 42l18.8-7.2L14.6 16l18.8 8.8z' fill='none' stroke='%23C29B3C' stroke-width='1.4'/%3E%3C/svg%3E")}
.jumuah-band .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;padding-top:26px;padding-bottom:26px;position:relative}
.jumuah-band .t{font-family:var(--disp);font-size:1.35rem;color:#fff}
.jumuah-band .t .ar{font-family:var(--arab);color:var(--brass-soft);margin-left:.4em}
.jumuah-band .facts{display:flex;gap:28px;flex-wrap:wrap;font-size:.95rem}
.jumuah-band .facts b{display:block;color:#fff;font-size:1.15rem}

/* ---------- sections ---------- */
section.pad{padding:84px 0}
.sec-head{max-width:640px;margin-bottom:44px}
.sec-head h2{font-size:clamp(1.8rem,3vw,2.4rem);color:var(--navy);margin-top:10px}
.sec-head p{margin-top:12px;color:#44557C}

/* six doors */
.doors{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:960px){.doors{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.doors{grid-template-columns:1fr}}
.door{background:var(--card);border:1px solid var(--line);border-radius:120px 120px 14px 14px;padding:40px 24px 26px;text-align:center;transition:transform .18s ease, box-shadow .18s ease;position:relative}
.door:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(0,26,69,.12)}
.door .glyph{width:44px;height:44px;margin:0 auto 14px;color:var(--green)}
.door h3{font-size:1.2rem;color:var(--navy);margin-bottom:8px}
.door p{font-size:.93rem;color:#4B5C80}
.door .go{display:inline-block;margin-top:14px;font-weight:700;font-size:.88rem;color:var(--green-deep)}
.door.quiet .glyph{color:var(--navy)}
.door.quiet .go{color:var(--navy)}

/* campaign */
.campaign .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:center;position:relative;padding-top:88px;padding-bottom:88px}
@media(max-width:900px){.campaign .wrap{grid-template-columns:1fr;gap:40px}}
.campaign h2{color:#fff;font-size:clamp(1.9rem,3.2vw,2.5rem)}
.campaign .eyebrow{color:var(--brass-soft)}
.campaign p{color:#B9C6E2;margin-top:14px;max-width:32em}
.campaign .acts{margin-top:28px;display:flex;gap:14px;flex-wrap:wrap}
.thermo{background:rgba(255,255,255,.06);border:1px solid rgba(194,155,60,.35);border-radius:16px;padding:28px}
.thermo .nums{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px}
.thermo .raised{font-family:var(--disp);font-size:2.2rem;color:#fff}
.thermo .goal{color:#93A6CE;font-size:.95rem}
.thermo .bar{height:14px;background:rgba(255,255,255,.12);border-radius:999px;overflow:hidden}
.thermo .fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--green),#0BB35A)}
.thermo .meta{display:flex;justify-content:space-between;margin-top:12px;font-size:.85rem;color:#93A6CE}
.thermo .named{margin-top:20px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);font-size:.92rem;color:#C9D4EC}
.thermo .named b{color:var(--brass-soft)}

/* funds */
.funds{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
@media(max-width:960px){.funds{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.funds{grid-template-columns:1fr}}
.fund{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px;position:relative}
.fund h3{font-size:1.05rem;color:var(--navy)}
.fund .tag{position:absolute;top:16px;right:16px;font-size:.64rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:3px 9px;border-radius:999px}
.fund .tag.res{background:rgba(194,155,60,.16);color:#8A6A1C}
.fund .tag.zak{background:rgba(6,144,70,.13);color:var(--green-deep)}
.fund p{font-size:.88rem;color:#4B5C80;margin-top:8px}
.verify-line{margin-top:26px;font-size:.92rem;color:#44557C;display:flex;align-items:center;gap:10px}
.verify-line .seal{width:30px;height:30px;flex:none;color:var(--brass)}

/* programs */
.programs{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:22px}
@media(max-width:960px){.programs{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.programs{grid-template-columns:1fr}}
.prog{border-radius:14px;padding:28px;border:1px solid var(--line);background:var(--card)}
.prog.feature{grid-row:span 2;background:var(--navy);color:#DCE4F5;border:none;display:flex;flex-direction:column;justify-content:flex-end;min-height:340px;position:relative;overflow:hidden}
.prog.feature::before{content:"";position:absolute;inset:0;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='84' height='84' viewBox='0 0 84 84'%3E%3Cpath d='M42 6l8.6 18.8L69.4 16 60.6 34.8 79.4 42l-18.8 7.2L69.4 68 50.6 59.2 42 78l-8.6-18.8L14.6 68l8.8-18.8L4.6 42l18.8-7.2L14.6 16l18.8 8.8z' fill='none' stroke='%23C29B3C' stroke-width='1.4'/%3E%3C/svg%3E")}
@media(max-width:960px){.prog.feature{grid-row:auto;min-height:260px}}
.prog.feature h3{color:#fff;font-size:1.5rem}
.prog.feature .eyebrow{color:var(--brass-soft)}
.prog.feature p{color:#B9C6E2}
.prog h3{font-family:var(--disp);font-weight:400;color:var(--navy);font-size:1.15rem}
.prog p{font-size:.92rem;color:#4B5C80;margin-top:8px}
.prog .go{display:inline-block;margin-top:14px;font-weight:700;font-size:.88rem;color:var(--green-deep)}
.prog.feature .go{color:#fff;border-bottom:2px solid var(--green)}

/* belong */
.belong{background:var(--sand-deep)}
.belong .wrap{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;padding-top:88px;padding-bottom:88px}
@media(max-width:900px){.belong .wrap{grid-template-columns:1fr;gap:36px}}
.belong h2{font-size:clamp(1.9rem,3.2vw,2.5rem);color:var(--navy)}
.belong .points{margin-top:24px;display:grid;gap:14px}
.belong .pt{display:flex;gap:14px;align-items:flex-start}
.belong .pt .tick{width:26px;height:26px;flex:none;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-size:.8rem;font-weight:800}
.belong .pt p b{color:var(--navy)}
.belong .cardless{background:var(--card);border-radius:120px 120px 16px 16px;padding:52px 36px 36px;text-align:center;border:1px solid var(--line);box-shadow:0 20px 50px rgba(0,26,69,.10)}
.belong .cardless .big{font-family:var(--disp);font-size:1.6rem;color:var(--navy);margin-bottom:10px}
.belong .cardless p{color:#4B5C80;font-size:.95rem;margin-bottom:22px}

/* footer */
footer.site{background:var(--navy-deep);color:#A9B8DA;font-size:.92rem}
footer.site .wrap{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:40px;padding-top:64px;padding-bottom:28px}
@media(max-width:900px){footer.site .wrap{grid-template-columns:1fr 1fr}}
@media(max-width:560px){footer.site .wrap{grid-template-columns:1fr}}
footer.site h3,footer.site h4{font-family:var(--body);font-weight:700;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:#fff;margin-bottom:14px}
footer.site a:hover{color:#fff}
footer.site ul{list-style:none;display:grid;gap:8px}
.f-logo{width:150px;margin-bottom:16px}
.f-logo .gsl-n{fill:#F5EFE3}.f-logo .gsl-g{fill:#7FC99E}
.f-addr{line-height:1.7}
.f-addr b{color:#fff}
.f-bottom{border-top:1px solid rgba(255,255,255,.1)}
.f-bottom .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding-top:18px;padding-bottom:18px}
.ameen-pill{display:inline-flex;align-items:center;gap:.5em;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:.45em 1.1em;font-size:.8rem;color:#C7D3EC}
.ameen-pill:hover{background:rgba(255,255,255,.15);color:#fff}

/* motion */
@media(prefers-reduced-motion:no-preference){
  .rise{opacity:0;transform:translateY(14px);animation:rise .7s ease forwards}
  .rise.d1{animation-delay:.08s}.rise.d2{animation-delay:.16s}.rise.d3{animation-delay:.24s}
  @keyframes rise{to{opacity:1;transform:none}}
}

body.admin-bar header.site{top:32px}
@media(max-width:782px){body.admin-bar header.site{top:46px}}

.wrap h1,.wrap h2,.wrap h3,.wrap p{margin-block-start:0;margin-block-end:0}

/* ---------- interior pages ---------- */
.page-hero{background:var(--navy);color:#fff;position:relative;overflow:hidden;padding:64px 0 56px}
.page-hero::before{content:"";position:absolute;inset:0;opacity:.06;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='84' height='84' viewBox='0 0 84 84'%3E%3Cpath d='M42 6l8.6 18.8L69.4 16 60.6 34.8 79.4 42l-18.8 7.2L69.4 68 50.6 59.2 42 78l-8.6-18.8L14.6 68l8.8-18.8L4.6 42l18.8-7.2L14.6 16l18.8 8.8z' fill='none' stroke='%23C29B3C' stroke-width='1.4'/%3E%3C/svg%3E")}
.page-hero h1{font-size:clamp(2rem,4vw,2.9rem);color:#fff;position:relative}
.page-hero .eyebrow{color:var(--brass-soft);position:relative}
.page-hero p{color:#B9C6E2;max-width:38em;margin-top:12px;position:relative}
table.times.month{font-size:.92rem}
table.times.month th{text-align:right;padding:10px 10px}
table.times.month th:first-child{text-align:left}
table.times.month td{text-align:right;padding:8px 10px;font-weight:600}
table.times.month td:first-child{text-align:left;font-weight:700;color:var(--navy)}
table.times.month tr.fri td{background:rgba(6,144,70,.10)}
.subscribe-row{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:26px}

/* ---------- announcements (gsis-announcements plugin) ---------- */
.gsis-urgent-bar{background:var(--brass);color:var(--navy-deep);font-weight:700;font-size:.95rem}
.gsis-urgent-bar .wrap{padding-top:9px;padding-bottom:9px;display:flex;gap:12px;align-items:center}
.gsis-urgent-bar a{color:var(--navy-deep);border-bottom:1.5px solid rgba(0,26,69,.4)}
.gsis-urgent-tag{background:var(--navy);color:#fff;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;padding:3px 10px;border-radius:999px;flex:none}
.gsis-notice-list{display:grid;gap:10px;max-width:760px}
.gsis-notice-item{display:flex;gap:16px;align-items:baseline;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 18px;transition:transform .15s ease}
.gsis-notice-item:hover{transform:translateX(4px)}
.gsis-notice-item.is-urgent{border-color:var(--brass)}
.gsis-notice-date{font-size:.8rem;font-weight:700;color:var(--green-deep);flex:none;min-width:46px}
.gsis-notice-title{color:var(--navy);font-weight:600}

/* ================================================================
   ---- woocommerce ----
   GSIS store re-skin (Track A, Phase 7).
   Scoped to .gsis-store (the store templates) plus the block cart
   and block checkout surfaces. Loaded after all WooCommerce CSS,
   so plain overrides win; !important appears only where Woo's own
   float grid or a lazily printed block stylesheet outranks us.
   ================================================================ */

/* ---- store chrome: hero extras, ribbon, belong band ---- */
.page-hero.slim{padding:40px 0 36px}
.shop-hero h1{max-width:16em}
.shop-hero .wp-block-query-title{font-family:var(--disp);font-weight:400;line-height:1.12;font-size:clamp(2rem,4vw,2.9rem);color:#fff;position:relative;margin:0}
.shop-hero .wp-block-term-description,.shop-hero .term-description{color:#B9C6E2;max-width:38em;margin-top:12px;position:relative}
.shop-hero .wp-block-term-description p,.shop-hero .term-description p{color:#B9C6E2;margin:0 0 8px}

.store-belong-line{position:relative;margin-top:18px}
.store-belong-line a{display:inline-flex;align-items:center;gap:.5em;color:var(--brass-soft);font-weight:700;font-size:1rem;border-bottom:1.5px solid rgba(217,188,119,.55);padding-bottom:2px}
.store-belong-line a:hover{color:#fff;border-bottom-color:#fff}
.store-belong-line .go{transition:transform .15s ease}
.store-belong-line a:hover .go{transform:translateX(3px)}

.shop-collections{position:relative;display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.shop-collections .chip{display:inline-flex;align-items:center;min-height:42px;padding:.5em 1.15em;border-radius:999px;font-weight:600;font-size:.92rem;color:#DCE4F5;border:1.5px solid rgba(255,255,255,.24);background:rgba(255,255,255,.05);transition:background .15s ease,color .15s ease,border-color .15s ease}
.shop-collections .chip:hover{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.5)}
.shop-collections .chip-brass{background:var(--brass);border-color:var(--brass);color:var(--navy-deep);font-weight:700}
.shop-collections .chip-brass:hover{background:var(--brass-soft);border-color:var(--brass-soft);color:var(--navy-deep)}
.shop-filter-note{position:relative;margin-top:20px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  color:#B9C6E2;font-size:.97rem}
.shop-filter-note .sfn-key{font-family:var(--body);font-weight:700;font-size:.72rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--brass-soft)}
.shop-filter-note b{color:#fff;font-weight:700}
.shop-filter-note .sfn-clear{color:#DCE4F5;font-weight:600;border-bottom:1.5px solid rgba(220,228,245,.45);padding-bottom:1px}
.shop-filter-note .sfn-clear:hover{color:#fff;border-bottom-color:#fff}

.store-ribbon{background:var(--sand-deep);border-bottom:1px solid rgba(0,37,97,.10)}
.store-ribbon .wrap{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-top:11px;padding-bottom:11px;font-size:.95rem;color:#3A4A6E}
.store-ribbon .sr-dot{width:8px;height:8px;border-radius:50%;background:var(--green);flex:none}
.store-ribbon .sr-txt{font-weight:600;color:var(--navy)}
.store-ribbon .sr-link{color:var(--green-deep);font-weight:700;border-bottom:1.5px solid currentColor}

.gsis-store-belong{background:var(--navy);color:#DCE4F5;position:relative;overflow:hidden}
.gsis-store-belong::before{content:"";position:absolute;inset:0;opacity:.06;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='84' height='84' viewBox='0 0 84 84'%3E%3Cpath d='M42 6l8.6 18.8L69.4 16 60.6 34.8 79.4 42l-18.8 7.2L69.4 68 50.6 59.2 42 78l-8.6-18.8L14.6 68l8.8-18.8L4.6 42l18.8-7.2L14.6 16l18.8 8.8z' fill='none' stroke='%23C29B3C' stroke-width='1.4'/%3E%3C/svg%3E")}
.gsis-store-belong .wrap{position:relative;display:grid;grid-template-columns:auto 1fr auto;gap:28px;align-items:center;padding-top:42px;padding-bottom:42px}
.gsis-store-belong .sb-mark{width:52px;height:52px;color:var(--brass);flex:none}
.gsis-store-belong h2{font-size:1.45rem;color:#fff}
.gsis-store-belong p{margin-top:8px;color:#B9C6E2;max-width:46em;font-size:.97rem}
@media(max-width:820px){
  .gsis-store-belong .wrap{grid-template-columns:1fr;gap:18px;text-align:left}
  .gsis-store-belong .sb-mark{width:44px;height:44px}
}

/* ---- store page frame ---- */
.gsis-store section.pad{padding:56px 0 72px}
.gsis-store .woocommerce-notices-wrapper:empty{display:none}
.gsis-store .woocommerce-message,.gsis-store .woocommerce-info,.gsis-store .woocommerce-error,
.gsis-store .wc-block-components-notice-banner{
  border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--ink);
  font-size:1rem;line-height:1.5;padding:16px 20px;margin:0 0 26px}
.gsis-store .woocommerce-message{border-left:5px solid var(--green)}
.gsis-store .woocommerce-info{border-left:5px solid var(--brass)}
.gsis-store .woocommerce-error{border-left:5px solid #B3261E;list-style:none}
.gsis-store .woocommerce-message::before,.gsis-store .woocommerce-info::before,.gsis-store .woocommerce-error::before{display:none}
.gsis-store .woocommerce-message a.button,.gsis-store .woocommerce-info a.button{float:right;margin-left:14px}
/* wc-blocks moves focus to the notice on mount: keep the ring, make it house green */
.gsis-store .wc-block-components-notice-banner:focus,
.gsis-store .wc-block-components-notice-banner:focus-visible{outline:3px solid var(--green);outline-offset:3px}
.gsis-store .wc-block-components-notice-banner.is-success{border-left:5px solid var(--green)}
.gsis-store .wc-block-components-notice-banner.is-error{border-left:5px solid #B3261E}
.gsis-store .wc-block-components-notice-banner.is-info,
.gsis-store .wc-block-components-notice-banner.is-warning{border-left:5px solid var(--brass)}
.gsis-store .wc-block-components-notice-banner__content{font-size:1rem;color:var(--ink)}
/* wc-blocks paints this action link background:transparent and color #2f2f2f
   with !important, and the generic store button rule further down then wipes
   the border to 2px transparent and leaves its green glow behind. The button
   ended up as dark gray text floating on a white card with no edge at all, on
   the account page every member sees. The house ghost button is restored here
   and matches the !important so the intended treatment actually lands. */
.gsis-store .wc-block-components-notice-banner a.button,
.gsis-store .wc-block-components-notice-banner a.wc-forward,
.gsis-store .wc-block-components-notice-banner .wc-block-components-notice-banner__content a.wc-forward{
  display:inline-flex;align-items:center;justify-content:center;min-height:40px;
  padding:.5em 1.25em!important;border-radius:999px;
  border:1.5px solid var(--navy)!important;
  background:transparent!important;color:var(--navy)!important;box-shadow:none!important;
  font-family:var(--body);font-weight:700;font-size:.9rem;
  text-decoration:none;margin-left:14px}
.gsis-store .wc-block-components-notice-banner a.button:hover,
.gsis-store .wc-block-components-notice-banner a.wc-forward:hover,
.gsis-store .wc-block-components-notice-banner .wc-block-components-notice-banner__content a.wc-forward:hover{
  background:var(--navy)!important;color:#fff!important}

/* ---- archive toolbar: result count + sorting ---- */
.gsis-store .woocommerce-products-header{margin-bottom:8px}
.gsis-store .woocommerce-products-header__title{display:none}
.gsis-store .term-description{max-width:44em;color:#44557C;margin-bottom:26px}
.gsis-store .woocommerce-result-count{float:none;margin:0;color:#5A6A8E;font-size:.95rem}
.gsis-store .woocommerce-ordering{float:none;margin:0}
.gsis-store form.woocommerce-ordering{display:flex;align-items:center;gap:10px}
.gsis-store .woocommerce-ordering select,
.gsis-store select.orderby{
  font-family:var(--body);font-size:16px;line-height:1.3;color:var(--navy);
  background:var(--card);border:1.5px solid var(--line);border-radius:10px;
  padding:11px 40px 11px 14px;min-height:46px;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23002561' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center}
.gsis-store .woocommerce-ordering select:focus-visible,.gsis-store select.orderby:focus-visible{outline:3px solid var(--green);outline-offset:2px}
.gsis-store .store-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;
  padding-bottom:22px;margin-bottom:30px;border-bottom:1px solid var(--line)}

/* ---- product grid: neutralise Woo's float layout, rebuild as house cards ---- */
.gsis-store ul.products,
.gsis-store ul.products[class*=columns-]{
  display:grid!important;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));
  gap:26px;margin:0!important;padding:0!important;list-style:none}
.gsis-store ul.products::before,.gsis-store ul.products::after{display:none!important}
.gsis-store ul.products li.product,
.gsis-store ul.products[class*=columns-] li.product{
  width:auto!important;float:none!important;clear:none!important;margin:0!important;padding:20px 18px 22px!important;
  background:var(--card);border:1px solid var(--line);
  border-radius:120px 120px 14px 14px;
  text-align:center;position:relative;display:flex;flex-direction:column;
  transition:transform .18s ease,box-shadow .18s ease}
.gsis-store ul.products li.product:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(0,26,69,.13)}
.gsis-store ul.products li.product>a{display:flex;flex-direction:column;flex:1 1 auto;color:inherit}

/* arch framed product image, matted so nothing is ever cropped */
.gsis-store ul.products li.product img,
.gsis-store ul.products li.product a img{
  width:100%;height:auto;aspect-ratio:4/5;object-fit:contain;
  background:var(--sand);border:1px solid var(--sand-deep);
  border-radius:104px 104px 8px 8px;
  padding:14px;margin:0 0 16px;box-shadow:none;display:block}
.gsis-store ul.products li.product:hover img{border-color:rgba(194,155,60,.55)}

.gsis-store ul.products li.product .woocommerce-loop-product__title,
.gsis-store ul.products li.product h2{
  font-family:var(--disp);font-weight:400;font-size:1.14rem;line-height:1.24;color:var(--navy);
  padding:0;margin:0 0 8px;text-wrap:balance}
.gsis-store ul.products li.product .price{
  font-family:var(--body);font-weight:700;font-size:1.02rem;color:var(--green-deep);
  margin:0 0 4px;font-variant-numeric:tabular-nums;display:block}
.gsis-store ul.products li.product .price del{color:#8A96B2;font-weight:400;opacity:1;margin-right:.45em}
.gsis-store ul.products li.product .price ins{text-decoration:none;background:none;color:var(--green-deep)}
.gsis-store ul.products li.product .price .from{color:#7A87A6;font-weight:600;font-size:.86em}
.gsis-store ul.products li.product .woocommerce-loop-product__link{margin-bottom:14px}

.gsis-store ul.products li.product .onsale,
.gsis-store span.onsale{
  position:absolute;top:16px;right:16px;left:auto;margin:0;z-index:3;
  background:var(--brass);color:var(--navy-deep);
  font-family:var(--body);font-weight:800;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;
  min-height:0;min-width:0;line-height:1;padding:7px 12px;border-radius:999px;box-shadow:0 4px 12px rgba(0,26,69,.18)}

/* loop buttons mapped to the house pill */
.gsis-store ul.products li.product a.button,
.gsis-store ul.products li.product a.add_to_cart_button,
.gsis-store ul.products li.product a.product_type_variable,
.gsis-store ul.products li.product a.product_type_external{
  margin:auto 0 0;align-self:center;
  line-height:1.25;display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  font-family:var(--body);font-weight:700;font-size:.92rem;
  padding:.8em 1.5em;min-height:46px;border-radius:999px;border:2px solid transparent;
  background:var(--green);color:#fff;box-shadow:0 6px 18px rgba(6,144,70,.26);
  transition:background .15s ease,transform .15s ease}
.gsis-store ul.products li.product a.button:hover{background:var(--green-deep);color:#fff;transform:translateY(-1px)}
.gsis-store ul.products li.product a.button.loading::after{top:.6em}
.gsis-store ul.products li.product a.added_to_cart{
  display:inline-block;margin-top:10px;font-weight:700;font-size:.86rem;color:var(--green-deep);
  border-bottom:1.5px solid currentColor}

/* pagination */
.gsis-store nav.woocommerce-pagination{margin-top:44px}
.gsis-store nav.woocommerce-pagination ul{border:none;display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:0;padding:0}
.gsis-store nav.woocommerce-pagination ul li{border:none;margin:0;overflow:visible}
.gsis-store nav.woocommerce-pagination ul li a,
.gsis-store nav.woocommerce-pagination ul li span{
  display:inline-flex;align-items:center;justify-content:center;min-width:46px;min-height:46px;
  padding:0 14px;border-radius:999px;border:1.5px solid var(--line);background:var(--card);
  color:var(--navy);font-weight:700;font-size:.95rem}
.gsis-store nav.woocommerce-pagination ul li a:hover{background:var(--sand-deep);border-color:var(--brass)}
.gsis-store nav.woocommerce-pagination ul li span.current{background:var(--navy);border-color:var(--navy);color:#fff}

/* ---- single product ---- */
.gsis-store .woocommerce-breadcrumb{font-size:.9rem;color:#5A6A8E;margin:0 0 26px}
.gsis-store .woocommerce-breadcrumb a{color:var(--green-deep);font-weight:600}
.gsis-store div.product{display:grid;grid-template-columns:minmax(0,460px) minmax(0,1fr);gap:52px;align-items:start}
.gsis-store div.product::before,.gsis-store div.product::after{display:none}
.gsis-store div.product .woocommerce-product-gallery,
.gsis-store div.product div.images,
.gsis-store div.product div.summary,
.gsis-store div.product .entry-summary{width:auto!important;float:none!important;margin:0!important;clear:none!important}
.gsis-store div.product .woocommerce-tabs,
.gsis-store div.product .up-sells,
.gsis-store div.product .related{grid-column:1 / -1;width:auto!important;float:none!important;margin:56px 0 0!important}
@media(max-width:900px){.gsis-store div.product{grid-template-columns:1fr;gap:34px}}

.gsis-store div.product .woocommerce-product-gallery{position:relative;max-width:460px;width:100%}
.gsis-store div.product .woocommerce-product-gallery__wrapper{margin:0}
.gsis-store div.product .woocommerce-product-gallery__image:first-child img,
.gsis-store div.product .woocommerce-product-gallery__image:first-child a{display:block}
.gsis-store div.product .woocommerce-product-gallery__image img{
  width:100%;height:auto;aspect-ratio:4/5;object-fit:contain;
  background:var(--card);border:1px solid var(--sand-deep);
  box-shadow:0 18px 44px rgba(0,26,69,.10);
  border-radius:150px 150px 12px 12px;padding:20px}
.gsis-store div.product .flex-control-thumbs{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0 0;padding:0;list-style:none}
.gsis-store div.product .flex-control-thumbs li{width:auto;float:none;margin:0}
.gsis-store div.product .flex-control-thumbs img{
  width:68px;height:68px;object-fit:contain;background:var(--sand);
  border:1px solid var(--sand-deep);border-radius:26px 26px 6px 6px;padding:6px;opacity:.75;aspect-ratio:auto}
.gsis-store div.product .flex-control-thumbs img.flex-active,
.gsis-store div.product .flex-control-thumbs img:hover{opacity:1;border-color:var(--brass)}
.gsis-store div.product .woocommerce-product-gallery__trigger{
  position:absolute;top:16px;right:16px;z-index:4;width:42px;height:42px;border-radius:50%;
  background:var(--card);border:1px solid var(--line);display:grid;place-items:center;color:var(--navy);font-size:1.1rem;text-indent:0}

.gsis-store div.product .product_title{font-family:var(--disp);font-weight:400;color:var(--navy);font-size:clamp(1.8rem,3.2vw,2.4rem);line-height:1.14;margin:0 0 12px;padding:0}
.gsis-store div.product .summary>.price,
.gsis-store div.product p.price,
.gsis-store div.product span.price{
  font-family:var(--body);font-weight:700;font-size:1.6rem;color:var(--green-deep);
  margin:0 0 18px;font-variant-numeric:tabular-nums;display:block}
.gsis-store div.product .summary>.price del{color:#8A96B2;font-weight:400;opacity:1;font-size:.72em;margin-right:.5em}
.gsis-store div.product .summary>.price ins{text-decoration:none;background:none;color:var(--green-deep)}
.gsis-store div.product .woocommerce-product-rating{margin-bottom:14px}
.gsis-store div.product .woocommerce-product-details__short-description{
  color:#3A4A6E;font-size:1.02rem;line-height:1.65;
  padding-bottom:22px;margin-bottom:22px;border-bottom:1px solid var(--line)}
.gsis-store div.product .woocommerce-product-details__short-description p{margin-bottom:.85em}
.gsis-store div.product .woocommerce-product-details__short-description ul{margin:0 0 .85em 1.25em}
.gsis-store div.product .stock.in-stock{color:var(--green-deep);font-weight:700}
.gsis-store div.product .stock.out-of-stock{color:#B3261E;font-weight:700}

/* add to cart form */
.gsis-store div.product form.cart{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:0 0 22px}
.gsis-store div.product form.cart::before,.gsis-store div.product form.cart::after{display:none}
.gsis-store div.product form.cart div.quantity{float:none;margin:0}
.gsis-store div.product .quantity input.qty,
.gsis-store .quantity input.qty{
  font-family:var(--body);font-size:17px;font-weight:700;color:var(--navy);text-align:center;
  width:84px;min-height:54px;padding:10px 8px;
  background:var(--card);border:1.5px solid var(--line);border-radius:12px;box-shadow:none}
.gsis-store .quantity input.qty:focus-visible{outline:3px solid var(--green);outline-offset:2px;border-color:var(--green)}
.gsis-store div.product button.single_add_to_cart_button,
.gsis-store div.product .single_add_to_cart_button{
  line-height:1.25;display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  font-family:var(--body);font-weight:700;font-size:1.02rem;
  padding:.9em 2.1em;min-height:54px;border-radius:999px;border:2px solid transparent;
  background:var(--green);color:#fff;box-shadow:0 6px 18px rgba(6,144,70,.28);cursor:pointer;
  transition:background .15s ease,transform .15s ease}
.gsis-store div.product button.single_add_to_cart_button:hover{background:var(--green-deep);transform:translateY(-1px)}
.gsis-store div.product button.single_add_to_cart_button:disabled,
.gsis-store div.product button.single_add_to_cart_button.disabled{background:#9BA8C4;box-shadow:none;cursor:not-allowed}

/* variable product selectors */
.gsis-store div.product form.variations_form{display:block}
.gsis-store div.product table.variations{width:100%;border:none;margin:0 0 18px}
.gsis-store div.product table.variations tbody,
.gsis-store div.product table.variations tr,
.gsis-store div.product table.variations th,
.gsis-store div.product table.variations td{display:block;width:100%;border:none;padding:0;text-align:left;background:none}
.gsis-store div.product table.variations tr{margin-bottom:16px}
.gsis-store div.product table.variations th.label label{
  display:block;font-family:var(--body);font-weight:700;font-size:.82rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--navy);margin-bottom:7px}
.gsis-store div.product table.variations td.value select,
.gsis-store div.product .variations select{
  width:100%;font-family:var(--body);font-size:17px;color:var(--navy);
  background:var(--card);border:1.5px solid var(--line);border-radius:12px;
  padding:13px 42px 13px 15px;min-height:54px;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23002561' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 15px center}
.gsis-store div.product .variations select:focus-visible{outline:3px solid var(--green);outline-offset:2px;border-color:var(--green)}
.gsis-store div.product .reset_variations{display:inline-block;margin-top:8px;font-weight:700;font-size:.88rem;color:var(--green-deep);border-bottom:1.5px solid currentColor}
.gsis-store div.product .woocommerce-variation-price{margin-bottom:14px}
.gsis-store div.product .woocommerce-variation-price .price{font-size:1.35rem;color:var(--green-deep);font-weight:700}
.gsis-store div.product .woocommerce-variation-availability{margin-bottom:10px}

.gsis-store div.product .product_meta{
  margin-top:6px;padding-top:18px;border-top:1px solid var(--line);
  font-size:.9rem;color:#5A6A8E;display:grid;gap:6px}
.gsis-store div.product .product_meta>span{display:block}
.gsis-store div.product .product_meta a{color:var(--green-deep);font-weight:600}

/* tabs. Woo ships .woocommerce div.product .woocommerce-tabs ul.tabs li rules
   at (0,4,3), so every override here is anchored on body.woocommerce to win. */
body.woocommerce .gsis-store div.product .woocommerce-tabs ul.tabs{
  display:flex;flex-wrap:wrap;gap:8px;margin:0 0 26px;padding:0 0 14px;
  border-bottom:1px solid var(--line);list-style:none}
body.woocommerce .gsis-store div.product .woocommerce-tabs ul.tabs::before,
body.woocommerce .gsis-store div.product .woocommerce-tabs ul.tabs::after{display:none;content:none}
body.woocommerce .gsis-store div.product .woocommerce-tabs ul.tabs li{
  background:none;background-color:transparent;border:none;border-radius:0;
  margin:0;padding:0;box-shadow:none;z-index:auto}
body.woocommerce .gsis-store div.product .woocommerce-tabs ul.tabs li::before,
body.woocommerce .gsis-store div.product .woocommerce-tabs ul.tabs li::after{
  display:none;content:none;border:none;box-shadow:none}
body.woocommerce .gsis-store div.product .woocommerce-tabs ul.tabs li a{
  display:inline-flex;align-items:center;min-height:46px;padding:.55em 1.25em;border-radius:999px;
  font-family:var(--body);font-weight:700;font-size:.95rem;color:var(--navy);text-shadow:none;
  background:var(--card);border:1.5px solid var(--line)}
body.woocommerce .gsis-store div.product .woocommerce-tabs ul.tabs li a:hover{
  background:var(--sand-deep);border-color:var(--brass);color:var(--navy)}
body.woocommerce .gsis-store div.product .woocommerce-tabs ul.tabs li.active{background:none}
body.woocommerce .gsis-store div.product .woocommerce-tabs ul.tabs li.active a{
  background:var(--navy);border-color:var(--navy);color:#fff}
body.woocommerce .gsis-store div.product .woocommerce-tabs .panel{
  margin:0;padding:0;max-width:44em;color:#3A4A6E;font-size:1.02rem;line-height:1.7}
body.woocommerce .gsis-store div.product .woocommerce-tabs .panel h2{
  font-family:var(--disp);font-weight:400;font-size:1.4rem;color:var(--navy);margin-bottom:14px}
body.woocommerce .gsis-store div.product .woocommerce-tabs .panel p{margin-bottom:1em}
body.woocommerce .gsis-store div.product .woocommerce-tabs .panel ul,
body.woocommerce .gsis-store div.product .woocommerce-tabs .panel ol{margin:0 0 1em 1.3em}
body.woocommerce .gsis-store div.product .woocommerce-tabs .panel table.shop_attributes{
  border:1px solid var(--line);border-radius:12px;border-collapse:separate;border-spacing:0;overflow:hidden;background:var(--card)}
body.woocommerce .gsis-store div.product .woocommerce-tabs .panel table.shop_attributes th,
body.woocommerce .gsis-store div.product .woocommerce-tabs .panel table.shop_attributes td{
  padding:12px 16px;border:none;border-top:1px solid var(--line);font-style:normal}
body.woocommerce .gsis-store div.product .woocommerce-tabs .panel table.shop_attributes th{
  color:var(--navy);font-family:var(--body);font-weight:700;background:var(--sand)}

/* related and upsells */
.gsis-store .related>h2,.gsis-store .up-sells>h2,.gsis-store .cross-sells>h2{
  font-family:var(--disp);font-weight:400;font-size:1.7rem;color:var(--navy);margin:0 0 26px}

/* ---- cart and checkout: WooCommerce Blocks surfaces ---- */
.gsis-store .wp-block-woocommerce-cart,
.gsis-store .wp-block-woocommerce-checkout{max-width:none;margin:0}
.gsis-store .wc-block-components-title,
.gsis-store .wc-block-cart__empty-cart__title,
.gsis-store .wc-block-components-checkout-step__title{
  font-family:var(--disp)!important;font-weight:400!important;color:var(--navy)!important;letter-spacing:0}
.gsis-store .wc-block-components-checkout-step__title{font-size:1.3rem}
.gsis-store .wc-block-components-checkout-step__description{color:#5A6A8E;font-size:.95rem}
.gsis-store .wc-block-components-checkout-step__heading{margin-top:0}
.gsis-store .wc-block-components-product-name{
  font-family:var(--disp);font-weight:400;font-size:1.12rem;color:var(--navy);line-height:1.25}
.gsis-store .wc-block-components-product-name:hover{color:var(--green-deep)}
.gsis-store .wc-block-components-product-metadata{color:#5A6A8E;font-size:.92rem}
.gsis-store .wc-block-components-formatted-money-amount,
.gsis-store .wc-block-components-product-price{font-weight:700;color:var(--green-deep);font-variant-numeric:tabular-nums}
.gsis-store .wc-block-cart-items__header{
  font-family:var(--body);font-weight:700;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#7A87A6}
.gsis-store .wc-block-cart-items td,.gsis-store .wc-block-cart-item__wrap{border-color:var(--line)}
.gsis-store table.wc-block-cart-items{border-collapse:collapse}
.gsis-store .wc-block-cart-item__image img{
  background:var(--sand);border:1px solid var(--sand-deep);border-radius:44px 44px 6px 6px;padding:8px;object-fit:contain}
.gsis-store .wc-block-components-quantity-selector{
  border:1.5px solid var(--line);border-radius:12px;background:var(--card);min-height:48px;max-width:120px}
.gsis-store .wc-block-components-quantity-selector::after{display:none}
.gsis-store .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input{
  font-family:var(--body);font-size:17px;font-weight:700;color:var(--navy);min-height:46px}
.gsis-store .wc-block-components-quantity-selector__button{
  color:var(--navy);font-size:1.1rem;min-width:38px;min-height:46px;opacity:1}
.gsis-store .wc-block-components-quantity-selector__button:hover{color:var(--green-deep)}

.gsis-store .wc-block-cart__totals-title,
.gsis-store .wc-block-components-totals-wrapper{border-color:var(--line)}
.gsis-store .wc-block-components-totals-item__label{color:#44557C}
.gsis-store .wc-block-components-totals-footer-item{color:var(--navy)}
.gsis-store .wc-block-components-totals-footer-item .wc-block-components-totals-item__value{color:var(--navy);font-size:1.3rem}
.gsis-store .wc-block-cart .wc-block-components-sidebar,
.gsis-store .wc-block-checkout .wc-block-components-sidebar{
  background:var(--card);border:1px solid var(--line);border-radius:16px;padding:24px}
@media(max-width:700px){
  .gsis-store .wc-block-cart .wc-block-components-sidebar,
  .gsis-store .wc-block-checkout .wc-block-components-sidebar{padding:18px}
}
/* one card, not two: the outer sidebar is the card, so flatten Woo's inner panel */
.gsis-store .wc-block-components-sidebar .wp-block-woocommerce-checkout-order-summary-block,
.gsis-store .wc-block-components-sidebar .wp-block-woocommerce-cart-order-summary-block{
  border:none;border-radius:0;padding:0;background:transparent}
.gsis-store .wc-block-components-order-summary__content{padding:0}
.gsis-store .wc-block-components-totals-wrapper{padding-left:0;padding-right:0}

/* ship vs pickup toggle in house colors */
.gsis-store .wc-block-checkout__shipping-method-container{
  background:var(--sand-deep);border-radius:14px;padding:5px;gap:5px}
.gsis-store .wc-block-checkout__shipping-method-option{
  background:transparent;border:1.5px solid transparent;border-radius:11px;
  color:var(--navy);font-family:var(--body);font-weight:600;min-height:52px;box-shadow:none}
.gsis-store .wc-block-checkout__shipping-method-option--selected{
  background:var(--card);border-color:var(--navy);color:var(--navy);box-shadow:0 2px 8px rgba(0,26,69,.10)}
.gsis-store .wc-block-checkout__shipping-method-option-title{font-weight:700}

/* the Log in link on checkout */
.gsis-store .wc-block-checkout__login-prompt,
.gsis-store .wc-block-components-checkout-step__heading-content a{color:var(--green-deep);font-weight:700}

/* buttons inside the block cart and checkout */
.gsis-store .wc-block-components-button:not(.is-link),
.gsis-store .wc-block-cart__submit-button,
.gsis-store .wc-block-components-checkout-place-order-button{
  background:var(--green)!important;color:#fff!important;border:2px solid transparent!important;
  border-radius:999px!important;font-family:var(--body)!important;font-weight:700!important;font-size:1rem!important;
  min-height:54px;padding:.9em 2em;box-shadow:0 6px 18px rgba(6,144,70,.26);
  transition:background .15s ease,transform .15s ease}
.gsis-store .wc-block-components-button:not(.is-link):hover{background:var(--green-deep)!important;transform:translateY(-1px)}
.gsis-store .wc-block-components-button.is-link{color:var(--green-deep);font-weight:700}
.gsis-store .wc-block-components-button:focus-visible{outline:3px solid var(--navy);outline-offset:3px}

/* form fields, block checkout and classic alike, 17px for legibility */
.gsis-store .wc-block-components-text-input input[type=text],
.gsis-store .wc-block-components-text-input input[type=email],
.gsis-store .wc-block-components-text-input input[type=tel],
.gsis-store .wc-block-components-text-input input[type=number],
.gsis-store .wc-block-components-textarea,
.gsis-store .wc-block-components-combobox-control input.components-combobox-control__input,
.gsis-store .wc-block-components-select .wc-block-components-select__select{
  font-family:var(--body)!important;font-size:17px!important;color:var(--ink);
  background:var(--card);border:1.5px solid var(--line);border-radius:12px;min-height:56px;line-height:1.4}
.gsis-store .wc-block-components-text-input input:focus,
.gsis-store .wc-block-components-combobox-control input:focus,
.gsis-store .wc-block-components-select__select:focus{
  outline:3px solid var(--green);outline-offset:1px;border-color:var(--green);box-shadow:none}
.gsis-store .wc-block-components-text-input label,
.gsis-store .wc-block-components-select label{color:#5A6A8E;font-size:15px}
.gsis-store .wc-block-components-checkbox__label,
.gsis-store .wc-block-components-radio-control__label{font-size:16px;color:var(--ink)}
.gsis-store .wc-block-components-checkbox__input,
.gsis-store .wc-block-components-radio-control__input{width:22px;height:22px}
.gsis-store .wc-block-components-validation-error{color:#B3261E;font-size:14px}
.gsis-store .wc-block-components-panel__button{font-family:var(--body);font-weight:700;color:var(--navy);min-height:48px}
.gsis-store .wc-block-components-address-card{border-color:var(--line);border-radius:12px}
.gsis-store .wc-block-components-radio-control-accordion-option{border-color:var(--line);border-radius:12px}
.gsis-store .wc-block-components-shipping-rates-control__package{border-color:var(--line)}

.checkout-assure{margin-top:34px;padding-top:20px;border-top:1px solid var(--line);font-size:.95rem;color:#5A6A8E}
.checkout-assure a{color:var(--green-deep);font-weight:700;border-bottom:1.5px solid currentColor}

/* ---- my account ---- */
.gsis-account .woocommerce{display:block}
.gsis-account .woocommerce-MyAccount-navigation{float:none;width:auto;margin:0 0 30px}
.gsis-account .woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.gsis-account .woocommerce-MyAccount-navigation ul li{margin:0}
.gsis-account .woocommerce-MyAccount-navigation ul li a{
  display:inline-flex;align-items:center;min-height:46px;padding:.55em 1.2em;border-radius:999px;
  font-family:var(--body);font-weight:700;font-size:.95rem;color:var(--navy);text-decoration:none;
  background:var(--card);border:1.5px solid var(--line)}
.gsis-account .woocommerce-MyAccount-navigation ul li.is-active a{text-decoration:none}
.gsis-account .woocommerce-MyAccount-navigation ul li a:hover{background:var(--sand-deep);border-color:var(--brass)}
.gsis-account .woocommerce-MyAccount-navigation ul li.is-active a{background:var(--navy);border-color:var(--navy);color:#fff}
.gsis-account .woocommerce-MyAccount-content{float:none;width:auto;color:#3A4A6E;font-size:1.02rem;line-height:1.7}
.gsis-account .woocommerce-MyAccount-content p{margin-bottom:1em}
.gsis-account .woocommerce-MyAccount-content a{color:var(--green-deep);font-weight:600}

/* login and register cards get the arch */
.gsis-store .woocommerce form.woocommerce-form-login,
.gsis-store .woocommerce form.woocommerce-form-register,
.gsis-store .woocommerce form.lost_reset_password,
.gsis-store .woocommerce form.edit-account,
.gsis-store .woocommerce form.woocommerce-EditAccountForm{
  position:relative;background:var(--card);border:1px solid var(--line);
  border-radius:120px 120px 16px 16px;
  padding:54px 34px 36px;max-width:520px;margin:0 auto;
  box-shadow:0 20px 50px rgba(0,26,69,.08)}
/* the house mihrab keyline, same move as the prayer card */
.gsis-store .woocommerce form.woocommerce-form-login::before,
.gsis-store .woocommerce form.woocommerce-form-register::before,
.gsis-store .woocommerce form.lost_reset_password::before{
  content:"";position:absolute;inset:9px;pointer-events:none;
  border:1.5px solid rgba(194,155,60,.42);border-radius:112px 112px 9px 9px}
.gsis-store .woocommerce form.woocommerce-form-login .form-row{position:relative}
.gsis-store .woocommerce form.woocommerce-form-login .woocommerce-form-login__rememberme{margin-bottom:18px}
.gsis-store .woocommerce form.woocommerce-form-login button.woocommerce-form-login__submit{
  width:100%;margin:0 0 6px;float:none}
.gsis-store .woocommerce form.woocommerce-form-login .woocommerce-LostPassword{
  margin:14px 0 0;text-align:center}
.gsis-store .u-columns.col2-set{display:grid;grid-template-columns:1fr 1fr;gap:34px}
.gsis-store .u-columns.col2-set .col-1,.gsis-store .u-columns.col2-set .col-2{width:auto;float:none}
@media(max-width:820px){.gsis-store .u-columns.col2-set{grid-template-columns:1fr}}
.gsis-store .woocommerce h2{font-family:var(--disp);font-weight:400;color:var(--navy);font-size:1.5rem;text-align:center;margin-bottom:22px}
.gsis-store .woocommerce form .form-row{display:block;margin:0 0 18px;padding:0}
.gsis-store .woocommerce form .form-row label{
  display:block;font-family:var(--body);font-weight:700;font-size:.82rem;letter-spacing:.09em;
  text-transform:uppercase;color:var(--navy);margin-bottom:7px}
.gsis-store .woocommerce form .form-row label.woocommerce-form-login__rememberme{
  text-transform:none;letter-spacing:0;font-size:1rem;font-weight:600;display:flex;align-items:center;gap:10px}
.gsis-store .woocommerce form .form-row input.input-text,
.gsis-store .woocommerce form .form-row textarea,
.gsis-store .woocommerce form .form-row select,
.gsis-store .woocommerce .woocommerce-Input{
  width:100%;font-family:var(--body);font-size:17px;color:var(--ink);
  background:var(--card);border:1.5px solid var(--line);border-radius:12px;
  padding:14px 15px;min-height:56px;line-height:1.4;box-shadow:none}
.gsis-store .woocommerce form .form-row input.input-text:focus-visible,
.gsis-store .woocommerce form .form-row textarea:focus-visible,
.gsis-store .woocommerce form .form-row select:focus-visible{
  outline:3px solid var(--green);outline-offset:2px;border-color:var(--green)}
.gsis-store .woocommerce form .woocommerce-form-login__submit,
.gsis-store .woocommerce form button.woocommerce-Button,
.gsis-store .woocommerce button.button,
.gsis-store .woocommerce input.button,
.gsis-store .woocommerce a.button{
  line-height:1.25;display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  font-family:var(--body);font-weight:700;font-size:.98rem;
  padding:.85em 1.8em;min-height:50px;border-radius:999px;border:2px solid transparent;
  background:var(--green);color:#fff;box-shadow:0 6px 18px rgba(6,144,70,.24);cursor:pointer;
  transition:background .15s ease,transform .15s ease}
.gsis-store .woocommerce button.button:hover,
.gsis-store .woocommerce a.button:hover,
.gsis-store .woocommerce input.button:hover{background:var(--green-deep);color:#fff;transform:translateY(-1px)}
.gsis-store .woocommerce .woocommerce-LostPassword a{color:var(--green-deep);font-weight:700}
.gsis-store .woocommerce .password-input{display:block;width:100%}
.gsis-store .woocommerce .show-password-input{top:.9em}

/* ---- cart: keep Proceed to Checkout on the page ----
   wc-blocks decides this container is "sticky" from the cart block's own
   measurements a moment after the page settles, and cart.css then hides every
   sticky container from 783px of VIEWPORT width up, on the assumption that a
   second in flow button exists. Only one is rendered here, so a second after
   the desktop cart loads it loses its checkout button altogether and the only
   way on is the WooPay tile. The sticky positioning itself lives in a
   max-width:782px block, so putting the container back in the flow above that
   width needs nothing but display. The short viewport case is reset properly,
   because there the fixed bar would cover the cart it belongs to. */
@media (min-width:783px){
  .gsis-cart .wc-block-cart .wc-block-cart__submit-container--sticky{display:block!important}
}
@media screen and (max-height:500px){
  .gsis-cart .wc-block-cart .wc-block-cart__submit-container--sticky{
    display:block!important;position:static!important;width:auto!important;
    padding:0!important;background:transparent!important;z-index:auto!important}
  .gsis-cart .wc-block-cart .wc-block-cart__submit-container--sticky::before{display:none!important}
}

/* order tables in the account area */
.gsis-store table.shop_table,
.gsis-store table.woocommerce-orders-table{
  width:100%;border:1px solid var(--line);border-radius:14px;border-collapse:separate;border-spacing:0;overflow:hidden;background:var(--card)}
.gsis-store table.shop_table th{
  font-family:var(--body);font-weight:700;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  color:#7A87A6;background:var(--sand);padding:14px 16px;text-align:left;border:none}
.gsis-store table.shop_table td{padding:14px 16px;border:none;border-top:1px solid var(--line);color:var(--ink);font-size:.98rem}
.gsis-store table.shop_table td a{color:var(--green-deep);font-weight:700}

/* phones: two columns beats one tall column in a shop, so tighten the card */
@media(max-width:680px){
  .gsis-store section.pad{padding:38px 0 52px}
  .gsis-store ul.products,
  .gsis-store ul.products[class*=columns-]{grid-template-columns:repeat(2,1fr)!important;gap:14px}
  .gsis-store ul.products li.product,
  .gsis-store ul.products[class*=columns-] li.product{
    padding:12px 10px 16px!important;border-radius:88px 88px 12px 12px}
  .gsis-store ul.products li.product img,
  .gsis-store ul.products li.product a img{
    border-radius:76px 76px 6px 6px;padding:8px;margin-bottom:10px}
  .gsis-store ul.products li.product .woocommerce-loop-product__title,
  .gsis-store ul.products li.product h2{font-size:1rem;margin-bottom:6px}
  .gsis-store ul.products li.product .price{font-size:.95rem}
  .gsis-store ul.products li.product a.button,
  .gsis-store ul.products li.product a.add_to_cart_button,
  .gsis-store ul.products li.product a.product_type_variable{
    width:100%;font-size:.85rem;padding:.7em .9em;min-height:44px}
  .gsis-store ul.products li.product .onsale,.gsis-store span.onsale{top:10px;right:10px;font-size:.6rem;padding:6px 9px}
  .gsis-store .store-toolbar{padding-bottom:16px;margin-bottom:22px}
  .gsis-store div.product .woocommerce-product-gallery__image img{border-radius:120px 120px 10px 10px;padding:14px}
  .gsis-store .woocommerce form.woocommerce-form-login,
  .gsis-store .woocommerce form.woocommerce-form-register,
  .gsis-store .woocommerce form.lost_reset_password{padding:46px 20px 28px;border-radius:100px 100px 14px 14px}
  .gsis-store .woocommerce form.woocommerce-form-login::before,
  .gsis-store .woocommerce form.woocommerce-form-register::before,
  .gsis-store .woocommerce form.lost_reset_password::before{border-radius:93px 93px 8px 8px}
}
@media(max-width:359px){
  .gsis-store ul.products,
  .gsis-store ul.products[class*=columns-]{grid-template-columns:1fr!important}
}

/* ---------- interior elevation pass (overrides earlier .page-hero) ---------- */
.page-hero{
  background:
    radial-gradient(900px 420px at 12% -20%, rgba(6,144,70,.16), transparent 60%),
    radial-gradient(700px 380px at 95% 120%, rgba(194,155,60,.10), transparent 60%),
    var(--navy);
  padding:104px 0 88px;
  border-bottom:2px solid rgba(194,155,60,.55);
}
.page-hero::after{ /* bismillah watermark, decorative */
  content:"\FDFD"; /* ﷽ */
  position:absolute; right:4%; bottom:-14px;
  font-family:var(--arab); font-size:8rem; line-height:1;
  color:#fff; opacity:.05; pointer-events:none; user-select:none;
}
.page-hero .wrap{position:relative}
.page-hero .eyebrow{color:var(--brass-soft); display:inline-flex; align-items:center; gap:12px}
.page-hero .eyebrow::before{content:""; width:34px; height:2px; background:var(--brass); display:inline-block}
.page-hero h1{font-size:clamp(2.3rem,4.4vw,3.3rem); max-width:16em; margin-top:14px}
.page-hero p{font-size:1.08rem; max-width:36em; margin-top:16px; color:#C3CFE9}
.page-hero + section.pad{padding-top:64px}
section.pad{padding:96px 0}
.sec-head h2{font-size:clamp(1.9rem,3.1vw,2.5rem)}
/* card craft */
.door,.fund,.prog{position:relative; overflow:hidden}
.door::before,.fund::before{content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg,transparent,var(--brass),transparent); opacity:0; transition:opacity .2s ease}
.door:hover::before,.fund:hover::before{opacity:1}
.fund{border-radius:16px}
.fund:hover{transform:translateY(-3px); box-shadow:0 14px 34px rgba(0,26,69,.10); transition:transform .18s ease, box-shadow .18s ease}
/* soften the band edges inside pages */
section.pad .band{border-radius:20px}

/* ---------- light-in-the-navy treatment (William 2026-09-12) ---------- */
.band{
  background:
    radial-gradient(1100px 520px at 22% 30%, rgba(245,239,227,.10), transparent 62%),
    radial-gradient(760px 420px at 88% 78%, rgba(194,155,60,.12), transparent 65%),
    linear-gradient(135deg, var(--navy-deep) 0%, var(--navy) 46%, #0A3578 100%);
}
.band::before{opacity:.09}
.band::after{ /* a great pale arch rising behind the right half */
  content:""; position:absolute; right:-4%; top:-22%; width:46%; aspect-ratio:3/4.4;
  border:2px solid rgba(245,239,227,.14);
  border-radius:50% 50% 0 0 / 42% 42% 0 0;
  box-shadow:inset 0 0 0 14px rgba(245,239,227,.035);
  pointer-events:none;
}
.band .wrap{position:relative;z-index:1}
.thermo{background:rgba(245,239,227,.07);backdrop-filter:blur(2px)}
.prog.feature{
  background:
    radial-gradient(700px 360px at 25% 20%, rgba(245,239,227,.09), transparent 60%),
    linear-gradient(135deg, var(--navy-deep), var(--navy) 60%, #0A3578 100%)}

/* ---------- Fluent Forms house skin (punch list, 2026-09-12) ----------
   Scoped to .frm-fluent-form so every embedded form inherits the palette;
   page-level overrides (.yth-form etc.) are more specific and still win. */
.frm-fluent-form .ff-el-input--label label{color:var(--navy);font-weight:600;font-size:.92rem}
.frm-fluent-form .ff-el-form-control{border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);padding:10px 14px;font-family:var(--body)}
.frm-fluent-form .ff-el-form-control:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(6,144,70,.16);outline:none}
.frm-fluent-form .ff-btn-submit{background:var(--green)!important;border:none!important;color:#fff!important;font-family:var(--body);font-weight:700;font-size:1rem;border-radius:999px;padding:13px 30px;box-shadow:0 6px 18px rgba(6,144,70,.28);cursor:pointer;transition:background .15s ease,transform .15s ease}
.frm-fluent-form .ff-btn-submit:hover{background:var(--green-deep)!important;transform:translateY(-1px)}
.frm-fluent-form .ff-el-progress-bar{background:var(--green)}
.frm-fluent-form .ff-el-form-check-label{color:var(--ink)}
.frm-fluent-form .ff_btn_style{background:var(--green);border-color:var(--green)}
.frm-fluent-form .ff_list_buttons .ff_item_selected{background:var(--green)!important;border-color:var(--green)!important;color:#fff!important}
.frm-fluent-form .error,.frm-fluent-form .ff-el-is-error .text-danger{color:#A4262C}

/* header CTAs: recover the ~20px overflow at narrow phone widths */
@media(max-width:480px){
  .hdr-ctas{margin-left:0;gap:6px}
  .hdr-ctas .btn{padding:9px 13px;font-size:.85rem}
  header.site .wrap{padding-left:14px;padding-right:14px}
}

/* ---------- mobile navigation (hamburger, 2026-09-13, theme 0.3.0) ----------
   Prefixes .mnav- and .gsis-mnav. Grepped before writing: zero hits in gsis.css,
   parts/*.html, templates/*.html, page-rescue/built/*.html, wpgg_posts.post_content
   and wpgg_options. The hidden state carries its own !important guard so no later
   class carrying a display: value can ever out-rank the hidden attribute. */
.gsis-mnav[hidden]{display:none!important}
.mnav-toggle{display:none}

@media(max-width:960px){
  header.site .wrap{gap:14px}
  .hdr-ctas{margin-left:auto}
  .mnav-toggle{
    display:inline-grid;place-items:center;flex:none;
    width:46px;height:46px;min-width:44px;min-height:44px;padding:0;
    border:1px solid var(--line);border-radius:12px;background:var(--card);
    color:var(--navy);cursor:pointer;
    transition:background .15s ease,border-color .15s ease,color .15s ease}
  .mnav-toggle:hover{background:var(--sand);border-color:var(--brass)}
  .mnav-toggle:focus-visible{border-radius:12px}
  .mnav-toggle[aria-expanded="true"]{background:var(--navy);border-color:var(--navy);color:#fff}
  .mnav-ico{width:22px;height:22px;display:block}
  .mnav-ico-close{display:none}
  .mnav-toggle[aria-expanded="true"] .mnav-ico-open{display:none}
  .mnav-toggle[aria-expanded="true"] .mnav-ico-close{display:block}
}

.gsis-mnav{
  position:absolute;top:100%;left:0;right:0;
  background:
    radial-gradient(760px 320px at 18% 0%, rgba(245,239,227,.08), transparent 62%),
    linear-gradient(180deg, var(--navy-deep) 0%, var(--navy) 58%, #0A3578 100%);
  border-top:2px solid rgba(194,155,60,.55);
  box-shadow:0 26px 54px rgba(0,26,69,.38);
  max-height:calc(100dvh - 78px);
  overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
/* own container class: header.site .wrap is display:flex and would capture a .wrap here */
.mnav-inner{max-width:1180px;margin:0 auto;padding:4px 24px 16px}
.mnav-list{list-style:none;margin:0;padding:0}
.mnav-list li+li{border-top:1px solid rgba(194,155,60,.22)}
.mnav-list a{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  min-height:52px;padding:14px 2px;
  font-family:var(--body);font-weight:600;font-size:1.04rem;
  color:var(--sand);transition:color .15s ease}
.mnav-list a::after{
  content:"";flex:none;width:8px;height:8px;
  border-right:2px solid var(--brass);border-top:2px solid var(--brass);
  transform:rotate(45deg);opacity:.55;
  transition:opacity .15s ease,transform .15s ease}
.mnav-list a:hover,.mnav-list a:focus-visible{color:#fff}
.mnav-list a:hover::after{opacity:1;transform:rotate(45deg) translate(2px,-2px)}

@media(prefers-reduced-motion:no-preference){
  .gsis-mnav:not([hidden]){animation:mnav-in .18s ease both}
  @keyframes mnav-in{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
}

/* the desktop bar owns navigation above 960, so the panel can never leak in */
@media(min-width:961px){.gsis-mnav{display:none!important}}

/* narrow phones: keep logo, both CTAs and the toggle on one row with no overflow */
@media(max-width:480px){
  .hdr-ctas{margin-left:auto}
  header.site .wrap{gap:10px}
  .mnav-inner{padding-left:18px;padding-right:18px}
  .logo{width:110px}
  .mnav-toggle{width:44px;height:44px;border-radius:10px}
  .mnav-ico{width:20px;height:20px}
  .mnav-list a{font-size:1rem}
}
@media(max-width:360px){
  .logo{width:96px}
  .hdr-ctas .btn{padding:9px 10px;font-size:.78rem}
}

/* =========================================================================
   Giving Desk checkout component (.ggdco-). Shared by /quickpay/, /sustainers/
   and the gift confirmation page, which is why it lives here and not in one
   page's own style block. Grepped gsis.css, the theme, every plugin, every
   built page and the whole wp_posts table before naming it: no collision.
   ====================================================================== */
.ggdco-wrap{margin-top:8px}
.ggdco{margin-top:8px}
.ggdco fieldset{border:0;margin:0;padding:0;min-width:0}
.ggdco-block{margin-top:26px}
.ggdco-block:first-of-type{margin-top:6px}
.ggdco-legend{display:block;font-size:.74rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--green-deep);margin-bottom:12px;padding:0}
.ggdco-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* preset amount buttons */
.ggdco-presets{display:grid;grid-template-columns:repeat(auto-fit,minmax(84px,1fr));gap:10px}
.ggdco-presets-sm{grid-template-columns:repeat(auto-fit,minmax(74px,1fr))}
.ggdco-preset{position:relative;display:block}
.ggdco-preset input{position:absolute;opacity:0;width:1px;height:1px}
.ggdco-preset span{display:block;text-align:center;padding:14px 6px;border-radius:12px;border:1.5px solid var(--line);background:#fff;color:var(--navy);font-family:var(--disp);font-size:1.12rem;line-height:1.1;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}
.ggdco-preset span:hover{border-color:var(--green);color:var(--green-deep)}
.ggdco-preset input:checked+span{background:var(--green);border-color:var(--green);color:#fff}
.ggdco-preset input:focus-visible+span{outline:2px solid var(--navy);outline-offset:2px}

/* text and money fields */
.ggdco-field{display:block;margin-top:18px}
.ggdco-label{display:block;font-size:.86rem;font-weight:600;color:var(--navy);margin-bottom:7px}
.ggdco-field input[type=text],.ggdco-field textarea{width:100%;box-sizing:border-box;padding:13px 14px;border:1.5px solid var(--line);border-radius:11px;background:#fff;color:var(--ink);font-family:inherit;font-size:1rem;line-height:1.5}
.ggdco-field input[type=text]:focus,.ggdco-field textarea:focus{outline:2px solid var(--green);outline-offset:1px;border-color:var(--green)}
.ggdco-money{position:relative;display:block}
.ggdco-money i{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-style:normal;font-family:var(--disp);font-size:1.05rem;color:var(--navy);opacity:.7;pointer-events:none}
.ggdco-money input[type=text]{padding-left:30px;font-family:var(--disp);font-size:1.15rem}
.ggdco-hint{margin-top:9px;font-size:.86rem;line-height:1.65;color:#5B6B8C}

/* fund list */
.ggdco-funds{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media(max-width:720px){.ggdco-funds{grid-template-columns:1fr}}
.ggdco-fund{position:relative;display:block}
.ggdco-fund input{position:absolute;opacity:0;width:1px;height:1px}
.ggdco-fund-body{display:block;padding:14px 16px;border-radius:12px;border:1.5px solid var(--line);background:#fff;cursor:pointer;height:100%;box-sizing:border-box;transition:border-color .12s ease,background .12s ease}
.ggdco-fund-body b{display:block;font-family:var(--disp);font-weight:400;font-size:1.05rem;color:var(--navy);line-height:1.2}
.ggdco-fund-body em{display:block;margin-top:6px;font-style:normal;font-size:.86rem;line-height:1.6;color:#5B6B8C}
.ggdco-fund-body:hover{border-color:var(--green)}
.ggdco-fund input:checked+.ggdco-fund-body{border-color:var(--green);background:rgba(6,144,70,.06);box-shadow:inset 0 0 0 1px var(--green)}
.ggdco-fund input:focus-visible+.ggdco-fund-body{outline:2px solid var(--navy);outline-offset:2px}
.ggdco-preselected{margin-top:14px;padding:13px 17px;border-radius:11px;background:var(--sand);border:1px solid var(--sand-deep);border-left:4px solid var(--green);color:#5C4F33;font-size:.91rem;line-height:1.7}
.ggdco-preselected b{color:var(--navy)}

/* plain radio rows */
.ggdco-choice{display:grid;gap:9px}
.ggdco-radio{display:flex;gap:11px;align-items:flex-start;padding:13px 16px;border:1.5px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;font-size:.93rem;line-height:1.6;color:var(--ink)}
.ggdco-radio:hover{border-color:var(--green)}
.ggdco-radio input{margin-top:3px;accent-color:var(--green);flex:none}
.ggdco-radio:focus-within{outline:2px solid var(--navy);outline-offset:2px}

/* goal add on accordion */
.ggdco-goal{margin-top:24px;border:1px solid var(--line);border-radius:13px;background:#fff;overflow:hidden}
.ggdco-goal>summary{list-style:none;cursor:pointer;padding:15px 18px;font-size:.9rem;font-weight:700;color:var(--navy);position:relative;padding-right:44px}
.ggdco-goal>summary::-webkit-details-marker{display:none}
.ggdco-goal>summary::after{content:"";position:absolute;right:19px;top:50%;width:9px;height:9px;border-right:2px solid var(--green-deep);border-bottom:2px solid var(--green-deep);transform:translateY(-70%) rotate(45deg);transition:transform .15s ease}
.ggdco-goal[open]>summary::after{transform:translateY(-20%) rotate(-135deg)}
.ggdco-goal>summary:focus-visible{outline:2px solid var(--navy);outline-offset:-2px}
.ggdco-goal-body{padding:2px 18px 20px}
.ggdco-goal-body>p{font-size:.9rem;line-height:1.72;color:#5B6B8C;margin-bottom:14px}

/* acknowledgment and submit */
.ggdco-ack{display:flex;gap:12px;align-items:flex-start;margin-top:20px;padding:15px 17px;border-radius:12px;background:var(--sand);border:1px solid var(--sand-deep);font-size:.9rem;line-height:1.68;color:#5C4F33;cursor:pointer}
.ggdco-ack input{margin-top:3px;accent-color:var(--green);flex:none;width:18px;height:18px}
.ggdco-ack:focus-within{outline:2px solid var(--navy);outline-offset:2px}
.ggdco-tierhead{font-size:.95rem;line-height:1.7;color:#4B5C80;margin-bottom:6px}
.ggdco-tierhead b{color:var(--navy)}
.ggdco-next{margin-top:18px;font-size:.9rem;line-height:1.72;color:#5B6B8C}
.ggdco-next b{color:var(--navy)}
.ggdco-submit{margin-top:24px}
.ggdco-submit .btn{width:100%;justify-content:center;text-align:center;font-size:1rem;padding:15px 22px}
@media(min-width:620px){.ggdco-submit .btn{width:auto}}
.ggdco-secure{margin-top:13px;font-size:.86rem;line-height:1.7;color:#5B6B8C}

/* returned with a message */
.ggdco-notice{margin:0 0 22px;padding:15px 18px;border-radius:12px;background:var(--sand);border:1px solid var(--sand-deep);border-left:4px solid var(--brass);color:#5C4F33;font-size:.93rem;line-height:1.72}
.ggdco-notice b{color:var(--navy)}
.ggdco-notice-error{border-left-color:#9A2B2B}

/* confirmation page */
.ggdco-thanks{max-width:none}
.ggdco-eyebrow{font-size:.74rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--green-deep);margin-bottom:10px}
.ggdco-thanks h2{color:var(--navy);font-size:clamp(1.7rem,3vw,2.3rem)}
.ggdco-thanks h3{color:var(--navy);font-size:1.15rem;margin-bottom:9px}
.ggdco-thanks-lede{margin-top:14px;font-size:1.03rem;line-height:1.78;color:#4B5C80;max-width:54em}
.ggdco-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1px;margin-top:28px;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.ggdco-summary>div{background:#fff;padding:18px 20px}
.ggdco-summary dt{font-size:.71rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--green-deep);margin-bottom:7px}
.ggdco-summary dd{margin:0;font-family:var(--disp);font-size:1.18rem;color:var(--navy);line-height:1.25;word-break:break-word}
.ggdco-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1.05rem;letter-spacing:.13em;background:var(--sand);border:1px solid var(--sand-deep);border-radius:7px;padding:3px 9px;color:var(--navy)}
.ggdco-gift,.ggdco-verify{margin-top:30px;padding:24px 26px;background:#fff;border:1px solid var(--line);border-radius:16px}
.ggdco-gift ul{list-style:none;margin:0 0 12px;padding:0}
.ggdco-gift li{padding:9px 0;border-bottom:1px solid var(--line);font-size:.95rem;line-height:1.6;color:#4B5C80}
.ggdco-gift li:last-child{border-bottom:0}
.ggdco-gift li b,.ggdco-verify b{color:var(--navy)}
.ggdco-gift p,.ggdco-verify p{font-size:.94rem;line-height:1.74;color:#4B5C80}
.ggdco-verify p+p{margin-top:16px}
.ggdco-dua{margin-top:30px;font-family:var(--disp);font-size:1.25rem;color:var(--navy);line-height:1.4}
.ggdco-thanks-links{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.ggdco-thanks-plain h2{font-size:clamp(1.5rem,2.6vw,2rem)}
.ggdco-thanks-plain p{margin-top:14px;font-size:1rem;line-height:1.78;color:#4B5C80;max-width:52em}


/* ---- Post-launch fixes 0.7.1 (2026-09-25) ---------------------------- */
/* iOS zooms into any input under 16px; every Fluent Forms control is 16px now. */
.ff-el-form-control,.fluentform input.ff-el-form-control,.fluentform select.ff-el-form-control,.fluentform textarea.ff-el-form-control{font-size:16px!important}
/* Arabic prayer names were 2.96:1 against white; this is 7:1. */
.times td .ar,.ar{color:#4A5A7C}
/* Form buttons: white on --green was 4.13:1; on --green-deep it is 6.3:1. */
.ff-btn-submit,.ff_btn_style,.fluentform .ff-btn-submit{background:var(--green-deep)!important;border-color:var(--green-deep)!important;color:#fff!important}
.ff-btn-submit:hover,.fluentform .ff-btn-submit:hover{background:var(--navy)!important;border-color:var(--navy)!important}
/* Cookie notice button was white on light green at 13px. */
#cookie-law-info-bar .cli_action_button,#cookie-law-info-bar .cli-plugin-button,.cli-bar-btn_container .cli_action_button{background:#2F6B12!important;border-color:#2F6B12!important;color:#fff!important;font-size:14px!important;padding:8px 16px!important}
/* Footer links and icons reach a 44px touch target without moving. */
footer.site a[aria-label]{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin:-11px -6px}
footer.site .wrap ul li a{display:inline-block;padding:7px 0;line-height:1.5}
footer.site .f-legal a{display:inline-block;padding:10px 4px}
footer.site .f-addr a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35)}
footer.site .f-addr a:hover{border-bottom-color:#fff}
/* Owner notes and photo frames that are still pending never reach a visitor. */
body:not(.gsis-staff) :is(.pending,.ftr-pending,.ph-photo,.photo-frame,.flag){display:none!important}
/* Single event pages inherit the house typography instead of the calendar's defaults. */
.single-tribe_events .tribe-events-single,.single-tribe_events #tribe-events-content{max-width:1100px;margin:0 auto;padding:36px 20px 64px;font-family:var(--body);color:var(--ink)}
.single-tribe_events .tribe-events-single-event-title{font-family:var(--disp);font-weight:400;font-size:clamp(2rem,4.5vw,2.75rem);line-height:1.15;color:var(--navy);margin:.2em 0 .35em;text-wrap:balance}
.single-tribe_events .tribe-events-schedule{font-family:var(--body);font-size:1.12rem;color:var(--ink);margin:0 0 22px}
.single-tribe_events .tribe-events-schedule h2,.single-tribe_events .tribe-events-single-section-title{font-family:var(--disp);font-weight:400;color:var(--navy);letter-spacing:0;text-transform:none}
.single-tribe_events .tribe-events-single-event-description{font-size:1.06rem;line-height:1.65;max-width:70ch}
.single-tribe_events .tribe-events-single-event-description p{margin-bottom:1em}
.single-tribe_events .tribe-events-back a,.single-tribe_events .tribe-events-sub-nav a,.single-tribe_events .tribe-events-meta-value a{color:var(--navy);font-weight:600;text-decoration:none}
.single-tribe_events .tribe-events-back a:hover,.single-tribe_events .tribe-events-sub-nav a:hover{text-decoration:underline}
.single-tribe_events .tribe-events-event-meta{background:var(--sand);border:1px solid var(--line);border-radius:14px;padding:20px 24px;margin-top:32px;font-family:var(--body)}
.single-tribe_events .tribe-events-meta-group{margin:0 24px 12px 0}
.single-tribe_events .tribe-events-meta-label{color:var(--navy);font-weight:600}
.single-tribe_events .tribe-common-c-btn-border,.single-tribe_events .tribe-events-c-subscribe-dropdown__button{border-color:var(--navy)!important;color:var(--navy)!important;font-family:var(--body)}
.single-tribe_events #tribe-events-footer,.single-tribe_events #tribe-events-header{border-color:var(--line)}
@media (max-width:560px){.single-tribe_events .tribe-events-single,.single-tribe_events #tribe-events-content{padding:24px 16px 48px}}

/* Signed-in header (0.7.2): the account button replaces "Become a Member"; the
   Sign out text link shows only where the desktop bar has room for it. Below
   that width it lives in the phone menu, the footer and on My membership. */
.hdr-signout{display:none;font-weight:600;font-size:.9rem;color:var(--navy);white-space:nowrap;padding:6px 2px;border-bottom:2px solid transparent}
.hdr-signout:hover{border-bottom-color:var(--green)}
@media(min-width:1240px){.hdr-signout{display:inline-block}}
.mnav-list li:not(.mnav-acct)+li.mnav-acct{border-top:2px solid rgba(194,155,60,.45)}
/* 961 to 1180px (0.7.3): the desktop bar ran 30px past the viewport at 961 with
   "Become a Member" wrapped to three lines, and 60px with "My membership".
   Slightly tighter spacing keeps every header state on one line with no overflow. */
@media(min-width:961px) and (max-width:1180px){
  nav.main{gap:16px;font-size:.9rem}
  header.site .wrap{gap:18px}
  .hdr-ctas .btn{padding:.7em 1.05em;white-space:nowrap}
}
