/* ==========================================================================
   Continental Game — Brand 2026 design layer (1.12.0)
   Loaded last, after every theme and plugin stylesheet.
   Tokens → type → motion → components. Additive only: nothing is deleted,
   so a rollback to 1.9.1 assets restores the previous look exactly.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Tokens
   -------------------------------------------------------------------------- */
:root{
  --cg-display:"Bricolage Grotesque","Sora","Segoe UI",system-ui,-apple-system,sans-serif;
  --cg-sans:"Manrope","Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --cg-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,"SF Mono",Menlo,monospace;

  --cg-night:#071624;
  --cg-night-2:#0d2438;
  --cg-ink:#0e1b26;
  --cg-muted:#5a6b78;
  --cg-soft:#7e8d99;
  --cg-canvas:#f6f8fa;
  --cg-surface:#ffffff;
  --cg-border:#e3e9ee;
  --cg-border-strong:#cdd8e1;

  --cg-accent:#175cb5;
  --cg-accent-2:#3ba3ff;
  --cg-accent-ink:#0b3f81;
  --cg-pitch:#128a5a;
  --cg-gold:#e0a11b;

  --cg-grad-hero:radial-gradient(120% 120% at 12% 0%,rgba(59,163,255,.32) 0%,rgba(7,22,36,0) 58%),
                 radial-gradient(90% 90% at 100% 100%,rgba(18,138,90,.28) 0%,rgba(7,22,36,0) 60%),
                 linear-gradient(140deg,#071624 0%,#0d2438 52%,#123753 100%);
  --cg-grad-accent:linear-gradient(120deg,var(--cg-accent) 0%,var(--cg-accent-2) 100%);
  --cg-grad-line:linear-gradient(90deg,transparent,var(--cg-border-strong),transparent);

  --cg-r-sm:10px; --cg-r-md:14px; --cg-r-lg:20px; --cg-r-xl:28px; --cg-r-pill:999px;

  --cg-sh-1:0 1px 2px rgba(9,24,38,.05),0 2px 6px rgba(9,24,38,.04);
  --cg-sh-2:0 4px 10px rgba(9,24,38,.06),0 14px 34px rgba(9,24,38,.07);
  --cg-sh-3:0 10px 24px rgba(9,24,38,.10),0 30px 70px rgba(9,24,38,.12);
  --cg-sh-accent:0 12px 30px rgba(23,92,181,.28);

  --cg-ease:cubic-bezier(.22,.61,.36,1);
  --cg-ease-out:cubic-bezier(.16,1,.3,1);
  --cg-dur:.42s;

  --cg-shell:min(1240px,calc(100% - 64px));

  /* Floating UI stack — one source of truth so widgets never collide. */
  --cg-float-gap:16px;
  --cg-float-edge:24px;
  --cg-bag-size:60px;
  --cg-z-bag:2147480100;
  --cg-z-chat:2147480300;
  --cg-z-notify:2147480500;
}

/* --------------------------------------------------------------------------
   2. Typography — creative display face, highly legible UI face
   -------------------------------------------------------------------------- */
body.cg-site{
  font-family:var(--cg-sans)!important;
  font-size:16.5px;
  line-height:1.68;
  color:var(--cg-ink);
  background:var(--cg-canvas);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  font-feature-settings:"ss01" 1,"cv11" 1;
}
body.cg-site :where(h1,h2,h3,h4,h5,h6,.cg-display){
  font-family:var(--cg-display)!important;
  font-weight:700;
  line-height:1.08;
  letter-spacing:-.028em;
  text-wrap:balance;
  color:var(--cg-ink);
}
body.cg-site h1{font-size:clamp(38px,4.6vw,66px);letter-spacing:-.04em}
body.cg-site h2{font-size:clamp(27px,2.8vw,42px);letter-spacing:-.032em}
body.cg-site h3{font-size:clamp(20px,1.5vw,25px);letter-spacing:-.022em;line-height:1.2}
body.cg-site h4{font-size:18px;letter-spacing:-.015em}
body.cg-site :where(p,li,dd,td){font-weight:400}
body.cg-site :where(p,li) strong{font-weight:700;color:var(--cg-ink)}
body.cg-site :where(.cg-eyebrow,.cgu-overline,.cgs-kicker,.cgx-kicker,.cgh-kicker,.cga-kicker,.cgb-eyebrow,.cgl-kicker){
  font-family:var(--cg-mono)!important;
  font-size:11.5px!important;
  font-weight:600!important;
  letter-spacing:.16em!important;
  text-transform:uppercase;
  color:var(--cg-accent);
}
body.cg-site :where(.cgu-section-index,.cg-step-index,.cg-value-index){
  font-family:var(--cg-mono)!important;
  font-variant-numeric:tabular-nums;
  letter-spacing:.04em;
}
body.cg-site :where(.price,.amount,.cg-plan-price,.cgu-price){
  font-family:var(--cg-display)!important;
  font-variant-numeric:tabular-nums;
  letter-spacing:-.035em;
  font-weight:700;
}
body.cg-site :where(.cg-prose,.cgu-prose){font-size:17px;line-height:1.78;color:#25353f}
body.cg-site :where(.cg-prose,.cgu-prose) h2{margin:2.2em 0 .6em}
body.cg-site :where(.cg-prose,.cgu-prose) h3{margin:1.8em 0 .5em}
body.cg-site :where(.cg-prose,.cgu-prose) > p{max-width:72ch}
body.cg-site :where(.cg-prose,.cgu-prose) a{color:var(--cg-accent-ink);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1.5px}
body.cg-site :where(.cg-muted,.cg-help,.cgu-muted){color:var(--cg-muted)}

/* Selection + focus */
body.cg-site ::selection{background:rgba(23,92,181,.18)}
body.cg-site :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:3px solid var(--cg-accent-2);outline-offset:3px;border-radius:6px;
}

/* --------------------------------------------------------------------------
   3. Motion primitives
   -------------------------------------------------------------------------- */
@keyframes cg-rise{from{opacity:0;transform:translate3d(0,22px,0)}to{opacity:1;transform:none}}
@keyframes cg-fade{from{opacity:0}to{opacity:1}}
@keyframes cg-sheen{from{background-position:-160% 0}to{background-position:260% 0}}
@keyframes cg-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes cg-pulse-ring{0%{box-shadow:0 0 0 0 rgba(23,92,181,.35)}70%{box-shadow:0 0 0 16px rgba(23,92,181,0)}100%{box-shadow:0 0 0 0 rgba(23,92,181,0)}}
@keyframes cg-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

.cg-reveal{opacity:0;transform:translate3d(0,24px,0);transition:opacity .7s var(--cg-ease-out),transform .7s var(--cg-ease-out)}
.cg-reveal.cg-in{opacity:1;transform:none}
.cg-reveal[data-cg-delay="1"]{transition-delay:.07s}
.cg-reveal[data-cg-delay="2"]{transition-delay:.14s}
.cg-reveal[data-cg-delay="3"]{transition-delay:.21s}
.cg-reveal[data-cg-delay="4"]{transition-delay:.28s}
.cg-reveal[data-cg-delay="5"]{transition-delay:.35s}

/* --------------------------------------------------------------------------
   4. Shell, header, navigation
   -------------------------------------------------------------------------- */
body.cg-site .cg-wrap,body.cg-site .cg-header-inner{width:var(--cg-shell);max-width:var(--cg-shell);margin-inline:auto}

body.cg-site .cg-site-header{
  position:sticky;top:0;z-index:1200;
  background:rgba(255,255,255,.78);
  backdrop-filter:saturate(180%) blur(16px);
  -webkit-backdrop-filter:saturate(180%) blur(16px);
  border-bottom:1px solid transparent;
  transition:box-shadow .3s var(--cg-ease),border-color .3s var(--cg-ease),background .3s var(--cg-ease);
}
body.cg-site.cg-scrolled .cg-site-header{border-bottom-color:var(--cg-border);box-shadow:0 8px 30px rgba(9,24,38,.07);background:rgba(255,255,255,.92)}
body.cg-site .cg-header-inner{min-height:84px;transition:min-height .3s var(--cg-ease)}
body.cg-site.cg-scrolled .cg-header-inner{min-height:70px}

body.cg-site .cg-brand{font-family:var(--cg-display)!important;font-weight:700;letter-spacing:-.045em;font-size:19px}
body.cg-site .cg-brand-mark{
  background:var(--cg-grad-hero);
  border-radius:12px 12px 22px 12px;
  box-shadow:var(--cg-sh-2);
  transition:transform .4s var(--cg-ease-out),box-shadow .4s var(--cg-ease-out);
}
body.cg-site .cg-brand:hover .cg-brand-mark{transform:translateY(-2px) rotate(-3deg);box-shadow:var(--cg-sh-3)}
body.cg-site .cg-brand-mark>span{background:var(--cg-accent-2);height:3px;width:20px}

body.cg-site .cg-menu a{position:relative;font-size:14.5px;font-weight:600;letter-spacing:-.005em;color:var(--cg-ink)}
body.cg-site .cg-menu>li>a::after{
  content:"";position:absolute;left:0;right:100%;bottom:14px;height:2px;border-radius:2px;
  background:var(--cg-grad-accent);transition:right .35s var(--cg-ease-out);
}
body.cg-site .cg-menu>li:hover>a::after,
body.cg-site .cg-menu>li:focus-within>a::after,
body.cg-site .cg-menu>li.current-menu-item>a::after{right:0}
body.cg-site .cg-menu .sub-menu{border-radius:var(--cg-r-md);box-shadow:var(--cg-sh-3);border-color:var(--cg-border);padding:10px;overflow:hidden;animation:cg-rise .28s var(--cg-ease-out)}
body.cg-site .cg-menu .sub-menu a{border-radius:8px;padding-inline:12px}
body.cg-site .cg-menu .sub-menu a:hover{background:#f2f6fb;color:var(--cg-accent)}
body.cg-site .cg-login-menu>div{border-radius:var(--cg-r-md);box-shadow:var(--cg-sh-3);animation:cg-rise .28s var(--cg-ease-out)}

/* --------------------------------------------------------------------------
   5. Buttons
   -------------------------------------------------------------------------- */
body.cg-site :where(.cg-btn,.woocommerce .button,.woocommerce button.button,.woocommerce button.button.alt,
  .wp-block-button__link,.cgu-buy .button,.cgx-mode-button,button.single_add_to_cart_button){
  position:relative;overflow:hidden;isolation:isolate;
  border-radius:var(--cg-r-pill)!important;
  font-family:var(--cg-sans)!important;
  font-weight:650!important;
  letter-spacing:-.005em;
  padding:13px 24px;
  min-height:50px;
  border:1px solid transparent;
  background:var(--cg-grad-accent);
  color:#fff!important;
  box-shadow:var(--cg-sh-accent);
  transition:transform .28s var(--cg-ease-out),box-shadow .28s var(--cg-ease-out),filter .28s var(--cg-ease);
}
body.cg-site :where(.cg-btn,.woocommerce .button,.wp-block-button__link,button.single_add_to_cart_button)::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.34) 50%,transparent 80%);
  background-size:220% 100%;background-position:-160% 0;
}
body.cg-site :where(.cg-btn,.woocommerce .button,.wp-block-button__link,button.single_add_to_cart_button):hover{
  transform:translateY(-2px);
  box-shadow:0 18px 40px rgba(23,92,181,.34);
  filter:saturate(1.06);
}
body.cg-site :where(.cg-btn,.woocommerce .button,.wp-block-button__link,button.single_add_to_cart_button):hover::before{animation:cg-sheen .9s var(--cg-ease) 1}
body.cg-site :where(.cg-btn,.woocommerce .button,.wp-block-button__link):active{transform:translateY(0) scale(.985)}

body.cg-site .cg-btn--outline,body.cg-site .is-style-outline .wp-block-button__link,
body.cg-site .woocommerce a.button.wc-backward{
  background:transparent!important;color:var(--cg-ink)!important;
  border:1.5px solid var(--cg-border-strong);box-shadow:none;
}
body.cg-site .cg-btn--outline:hover{border-color:var(--cg-accent);color:var(--cg-accent)!important;background:rgba(23,92,181,.05)!important;box-shadow:none}
body.cg-site .cg-hero .cg-btn--outline{border-color:rgba(255,255,255,.42);color:#fff!important}
body.cg-site .cg-hero .cg-btn--outline:hover{background:rgba(255,255,255,.12)!important;border-color:#fff}

body.cg-site .cg-text-link{
  display:inline-flex;align-items:center;gap:8px;font-weight:650;color:var(--cg-accent-ink);
  text-decoration:none;transition:gap .3s var(--cg-ease-out),color .2s
}
body.cg-site .cg-text-link:hover{gap:13px;color:var(--cg-accent)}
body.cg-site .cg-round-link{
  width:46px;height:46px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  border:1.5px solid var(--cg-border-strong);color:var(--cg-ink);
  transition:background .3s var(--cg-ease),color .3s,border-color .3s,transform .3s var(--cg-ease-out);
}
body.cg-site .cg-round-link:hover{background:var(--cg-grad-accent);border-color:transparent;color:#fff;transform:translateX(4px)}

/* --------------------------------------------------------------------------
   6. Hero + home sections
   -------------------------------------------------------------------------- */
body.cg-site .cg-hero{
  position:relative;overflow:hidden;isolation:isolate;
  background-color:var(--cg-night);
  background-blend-mode:normal;
  min-height:640px;
}
body.cg-site .cg-hero::before{
  content:"";position:absolute;inset:0;z-index:-1;background:var(--cg-grad-hero);opacity:.94;
}
body.cg-site .cg-hero::after{
  content:"";position:absolute;inset:-30% -10% auto auto;width:60vw;height:60vw;z-index:-1;
  background:radial-gradient(circle,rgba(59,163,255,.22),transparent 62%);
  animation:cg-float 12s ease-in-out infinite;pointer-events:none;
}
body.cg-site .cg-hero h1{letter-spacing:-.05em}
body.cg-site .cg-hero .cg-eyebrow{color:#9fd0ff}
body.cg-site .cg-hero p:not(.cg-eyebrow){color:#d5e3ee;font-size:18px}

body.cg-site .cg-value-strip{background:var(--cg-surface);border-bottom:1px solid var(--cg-border)}
body.cg-site .cg-value-strip .cg-value-index{border-color:var(--cg-border-strong);background:#f3f7fc;font-weight:600}
body.cg-site .cg-home-section--soft{background:linear-gradient(180deg,#f2f5f8 0%,#f8fafb 100%)}
body.cg-site .cg-section-heading{position:relative;padding-top:26px}
body.cg-site .cg-section-heading::before{content:"";position:absolute;top:0;left:0;width:72px;height:3px;border-radius:3px;background:var(--cg-grad-accent)}

body.cg-site .cg-pathway{
  border-radius:var(--cg-r-lg);border-top-width:0;position:relative;overflow:hidden;
  background:var(--cg-surface);border:1px solid var(--cg-border);box-shadow:var(--cg-sh-1);
  transition:transform .45s var(--cg-ease-out),box-shadow .45s var(--cg-ease-out);
}
body.cg-site .cg-pathway::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--cg-grad-accent)}
body.cg-site .cg-pathway:nth-child(2)::before{background:linear-gradient(120deg,#128a5a,#5fd6a2)}
body.cg-site .cg-pathway:hover{transform:translateY(-6px);box-shadow:var(--cg-sh-3)}
body.cg-site .cg-pathway li:before{color:var(--cg-accent);font-weight:800}

body.cg-site .cg-banner{
  position:relative;overflow:hidden;border-radius:var(--cg-r-xl);
  background:var(--cg-grad-hero);box-shadow:var(--cg-sh-3);
}
body.cg-site .cg-banner::after{
  content:"";position:absolute;right:-12%;bottom:-60%;width:44vw;height:44vw;
  background:radial-gradient(circle,rgba(59,163,255,.26),transparent 62%);pointer-events:none;
}

/* --------------------------------------------------------------------------
   7. Cards
   -------------------------------------------------------------------------- */
body.cg-site :where(.cg-card,.cgu-panel,.cgu-market-card,.cg-journal-card,.cg-plan,.cg-opportunity-card,.cg-stat){
  border-radius:var(--cg-r-lg);
  border:1px solid var(--cg-border);
  background:var(--cg-surface);
  box-shadow:var(--cg-sh-1);
  transition:transform .45s var(--cg-ease-out),box-shadow .45s var(--cg-ease-out),border-color .3s var(--cg-ease);
}
body.cg-site :where(.cgu-market-card,.cg-journal-card,.cg-opportunity-card,.cg-plan):hover{
  transform:translateY(-6px);
  box-shadow:var(--cg-sh-3);
  border-color:var(--cg-border-strong);
}
body.cg-site :where(.cgu-market-image,.cg-opportunity-cover,.cg-plan-cover,.cg-journal-art){
  border-radius:var(--cg-r-md);overflow:hidden;
}
body.cg-site :where(.cgu-market-image img,.cg-opportunity-cover img,.cg-plan-cover img,.cg-journal-art img){
  transition:transform .8s var(--cg-ease-out),filter .5s var(--cg-ease);
}
body.cg-site :where(.cgu-market-card:hover,.cg-opportunity-card:hover,.cg-plan:hover,.cg-journal-card:hover) img{transform:scale(1.055)}

body.cg-site .cg-tag,body.cg-site .cgu-kind{
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--cg-mono)!important;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  padding:6px 12px;border-radius:var(--cg-r-pill);
  background:rgba(23,92,181,.09);color:var(--cg-accent-ink);border:1px solid rgba(23,92,181,.16);
}
body.cg-site .cgu-demo-label{background:rgba(224,161,27,.14);color:#8a6208;border-color:rgba(224,161,27,.3)}
body.cg-site .cg-monogram{
  background:var(--cg-grad-hero);color:#fff;font-family:var(--cg-display)!important;font-weight:700;letter-spacing:-.04em;
  border-radius:12px;box-shadow:var(--cg-sh-1);
}

/* --------------------------------------------------------------------------
   8. Product page — panels, gallery, read-more, poster, purchase rail
   -------------------------------------------------------------------------- */
body.cg-site .cgu-breadcrumb{
  font-family:var(--cg-mono)!important;font-size:12px;letter-spacing:.08em;text-transform:uppercase;
  display:flex;gap:10px;align-items:center;color:var(--cg-soft);padding:22px 0 6px;
}
body.cg-site .cgu-breadcrumb a{color:var(--cg-accent);text-decoration:none}
body.cg-site .cgu-breadcrumb a:hover{text-decoration:underline}

body.cg-site .cgu-product-heading{padding:8px 0 26px;border-bottom:1px solid var(--cg-border);margin-bottom:30px}
body.cg-site .cgu-product-heading h1{margin:14px 0 12px;max-width:20ch}
body.cg-site .cgu-lead{font-size:19px;line-height:1.6;color:var(--cg-muted);max-width:62ch}
body.cg-site .cgu-labels{display:flex;gap:10px;flex-wrap:wrap;align-items:center}

body.cg-site .cgu-section-nav{
  position:sticky;top:78px;z-index:40;
  display:flex;gap:4px;flex-wrap:wrap;align-items:center;
  padding:8px;margin-bottom:28px;
  background:rgba(255,255,255,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:1px solid var(--cg-border);border-radius:var(--cg-r-pill);box-shadow:var(--cg-sh-1);
  overflow-x:auto;scrollbar-width:none;
}
body.cg-site .cgu-section-nav::-webkit-scrollbar{display:none}
body.cg-site .cgu-section-nav a{
  white-space:nowrap;padding:9px 16px;border-radius:var(--cg-r-pill);
  font-size:13.5px;font-weight:600;color:var(--cg-muted);text-decoration:none;
  transition:background .25s var(--cg-ease),color .25s;
}
body.cg-site .cgu-section-nav a:hover{background:#eef4fb;color:var(--cg-accent)}
body.cg-site .cgu-section-nav a.is-current{background:var(--cg-night);color:#fff}

body.cg-site .cgu-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(330px,.95fr);gap:34px;align-items:start}
body.cg-site .cgu-panel{padding:32px;margin-bottom:24px;scroll-margin-top:150px}
body.cg-site .cgu-panel-heading{display:flex;gap:16px;align-items:flex-start;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--cg-border)}
body.cg-site .cgu-section-index{
  flex:none;display:inline-flex;align-items:center;justify-content:center;
  width:42px;height:42px;border-radius:12px;
  background:linear-gradient(135deg,#eef4fb,#e2ecf8);color:var(--cg-accent-ink);
  font-size:13px;font-weight:700;
}
body.cg-site .cgu-panel-heading h2{margin:2px 0 0;font-size:clamp(22px,2vw,29px)}
body.cg-site .cgu-panel-heading .cgu-overline{margin:0 0 2px}

/* Gallery */
body.cg-site .cgu-media-panel{margin-bottom:24px}
body.cg-site .cgu-gallery,body.cg-site .cgu-media-fallback{
  border-radius:var(--cg-r-lg);overflow:hidden;border:1px solid var(--cg-border);
  background:var(--cg-surface);box-shadow:var(--cg-sh-2);
}
body.cg-site .cgu-gallery .flex-control-thumbs{display:flex;gap:10px;flex-wrap:wrap;padding:14px;margin:0;list-style:none}
body.cg-site .cgu-gallery .flex-control-thumbs li{width:74px;margin:0}
body.cg-site .cgu-gallery .flex-control-thumbs img{border-radius:9px;border:2px solid transparent;transition:border-color .25s,transform .35s var(--cg-ease-out)}
body.cg-site .cgu-gallery .flex-control-thumbs img:hover{transform:translateY(-2px)}
body.cg-site .cgu-gallery .flex-control-thumbs img.flex-active{border-color:var(--cg-accent)}

/* Read more --------------------------------------------------------------- */
.cg-readmore{position:relative}
.cg-readmore__body{position:relative;overflow:hidden;transition:max-height .6s var(--cg-ease-out)}
.cg-readmore:not(.is-open) .cg-readmore__body{max-height:var(--cg-readmore-collapsed,320px)}
.cg-readmore:not(.is-open) .cg-readmore__body::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:140px;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.86) 58%,#fff 100%);
}
.cg-readmore.is-open .cg-readmore__body{max-height:none}
.cg-readmore__actions{display:flex;justify-content:center;margin-top:-14px;position:relative;z-index:1}
.cg-readmore__toggle{
  display:inline-flex;align-items:center;gap:10px;cursor:pointer;
  font-family:var(--cg-sans);font-size:14.5px;font-weight:650;letter-spacing:-.005em;
  padding:12px 24px;border-radius:var(--cg-r-pill);
  color:var(--cg-accent-ink);background:#fff;
  border:1.5px solid var(--cg-border-strong);
  box-shadow:var(--cg-sh-1);
  transition:transform .3s var(--cg-ease-out),box-shadow .3s var(--cg-ease-out),border-color .25s,color .25s,background .25s;
}
.cg-readmore__toggle:hover{transform:translateY(-2px);border-color:var(--cg-accent);color:#fff;background:var(--cg-grad-accent);box-shadow:var(--cg-sh-accent)}
.cg-readmore__toggle .cg-readmore__chev{
  display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;
  transition:transform .4s var(--cg-ease-out);
}
.cg-readmore.is-open .cg-readmore__chev{transform:rotate(180deg)}
.cg-readmore__toggle .cg-readmore__less{display:none}
.cg-readmore.is-open .cg-readmore__more{display:none}
.cg-readmore.is-open .cg-readmore__less{display:inline}
.cg-readmore__meta{
  display:block;text-align:center;margin-top:10px;
  font-family:var(--cg-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--cg-soft);
}

/* Key details */
body.cg-site .cgu-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:2px;margin:0;background:var(--cg-border);border:1px solid var(--cg-border);border-radius:var(--cg-r-md);overflow:hidden}
body.cg-site .cgu-facts>div{background:var(--cg-surface);padding:18px 20px;margin:0}
body.cg-site .cgu-facts dt{font-family:var(--cg-mono)!important;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--cg-soft);margin:0 0 6px}
body.cg-site .cgu-facts dd{margin:0;font-size:16px;font-weight:650;color:var(--cg-ink)}

/* Steps */
body.cg-site .cgu-steps{counter-reset:cgstep;list-style:none;padding:0;margin:0;display:grid;gap:14px}
body.cg-site .cgu-steps li{
  counter-increment:cgstep;position:relative;padding:20px 22px 20px 66px;margin:0;
  border:1px solid var(--cg-border);border-radius:var(--cg-r-md);background:#fbfcfe;
  transition:border-color .3s,background .3s,transform .35s var(--cg-ease-out);
}
body.cg-site .cgu-steps li:hover{border-color:var(--cg-border-strong);background:#fff;transform:translateX(4px)}
body.cg-site .cgu-steps li::before{
  content:counter(cgstep,decimal-leading-zero);
  position:absolute;left:20px;top:19px;
  width:32px;height:32px;border-radius:10px;display:grid;place-items:center;
  background:var(--cg-grad-accent);color:#fff;
  font-family:var(--cg-mono);font-size:12px;font-weight:700;
}
body.cg-site .cgu-steps li strong{display:block;font-family:var(--cg-display);font-size:17px;letter-spacing:-.015em;margin-bottom:4px}
body.cg-site .cgu-steps li p{margin:0;font-size:15px;color:var(--cg-muted)}

/* Poster / organization card ---------------------------------------------- */
.cg-poster{
  display:grid;gap:16px;padding:22px;
  border:1px solid var(--cg-border);border-radius:var(--cg-r-lg);
  background:linear-gradient(180deg,#fbfdff 0%,#ffffff 100%);
  box-shadow:var(--cg-sh-1);
}
.cg-poster__top{display:flex;gap:14px;align-items:center}
.cg-poster__avatar,.cg-poster .cg-avatar{
  flex:none;width:58px;height:58px;border-radius:16px;overflow:hidden;
  display:grid;place-items:center;
  background:var(--cg-grad-hero);color:#fff;
  font-family:var(--cg-display);font-size:20px;font-weight:700;letter-spacing:-.04em;
}
.cg-poster .cg-avatar img,.cg-poster__avatar img{width:100%;height:100%;object-fit:cover}
.cg-poster__id{min-width:0}
.cg-poster__role{
  display:block;font-family:var(--cg-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--cg-accent);margin-bottom:3px;
}
.cg-poster__name{
  margin:0;font-family:var(--cg-display);font-size:19px;font-weight:700;letter-spacing:-.025em;line-height:1.2;
  overflow-wrap:anywhere;
}
.cg-poster__name a{color:var(--cg-ink);text-decoration:none}
.cg-poster__name a:hover{color:var(--cg-accent)}
.cg-poster__verified{
  display:inline-flex;align-items:center;gap:5px;margin-top:6px;
  font-size:12px;font-weight:650;color:#0f7145;
}
.cg-poster__verified svg{width:14px;height:14px}
.cg-poster__meta{display:grid;gap:8px;margin:0;padding:14px 0 0;border-top:1px solid var(--cg-border)}
.cg-poster__meta div{display:flex;justify-content:space-between;gap:14px;font-size:13.5px}
.cg-poster__meta dt{color:var(--cg-soft);margin:0}
.cg-poster__meta dd{margin:0;font-weight:650;text-align:right;overflow-wrap:anywhere}
.cg-poster__actions{display:flex;flex-wrap:wrap;gap:10px}
.cg-poster__note{margin:0;font-size:12.5px;line-height:1.55;color:var(--cg-soft)}

/* Purchase rail */
body.cg-site .cgu-purchase{position:sticky;top:150px}
body.cg-site .cgu-purchase-card{
  border-radius:var(--cg-r-lg);border:1px solid var(--cg-border);overflow:hidden;
  background:var(--cg-surface);box-shadow:var(--cg-sh-2);
}
body.cg-site .cgu-purchase-heading{padding:22px 24px;background:var(--cg-grad-hero);color:#fff}
body.cg-site .cgu-purchase-heading p{margin:0 0 6px;font-family:var(--cg-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#a8d2ff}
body.cg-site .cgu-purchase-heading h2{margin:0;color:#fff;font-size:23px}
body.cg-site .cgu-purchase-body{padding:24px}
body.cg-site .cgu-price{font-size:clamp(30px,3vw,40px);line-height:1.05;margin-bottom:6px}
body.cg-site .cgu-price del{font-size:.55em;opacity:.5;font-weight:500;margin-right:8px}
body.cg-site .cgu-price ins{text-decoration:none}
body.cg-site .cgu-fee{font-weight:650;color:#0f7145}
body.cg-site .cgu-action-area{margin:18px 0 6px}
body.cg-site .cgu-action-area .button,body.cg-site .cgu-action-area .cg-btn{width:100%}
body.cg-site .cgu-purchase-footer{border-top:1px solid var(--cg-border);margin-top:20px;padding-top:16px;font-size:13px;color:var(--cg-muted)}
body.cg-site .cgu-bag-link{display:inline-flex;gap:8px;align-items:center;font-weight:650;color:var(--cg-accent);text-decoration:none;margin-top:8px}

body.cg-site .cg-trust{display:grid;gap:9px;margin-top:18px;padding-top:16px;border-top:1px dashed var(--cg-border-strong)}
body.cg-site .cg-trust span{position:relative;padding-left:26px;font-size:13.5px;color:var(--cg-muted);line-height:1.5}
body.cg-site .cg-trust span::before{
  content:"";position:absolute;left:0;top:3px;width:17px;height:17px;border-radius:50%;
  background:rgba(18,138,90,.12) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23128a5a' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 4 4L19 6'/%3E%3C/svg%3E") center/11px no-repeat;
}

/* Guest checkout availability panel --------------------------------------- */
.cgx-guest-product{
  display:grid;gap:12px;margin:16px 0 4px;padding:18px 20px;
  border:1px solid rgba(18,138,90,.28);border-radius:var(--cg-r-md);
  background:linear-gradient(180deg,rgba(18,138,90,.06),rgba(18,138,90,.02));
}
.cgx-guest-product__title{
  display:flex;gap:9px;align-items:center;margin:0;
  font-family:var(--cg-display);font-size:16px;font-weight:700;letter-spacing:-.02em;color:#0d5c3c;
}
.cgx-guest-product__title svg{width:18px;height:18px;flex:none}
.cgx-guest-product p{margin:0;font-size:13.5px;line-height:1.6;color:#3c5a4c}
.cgx-guest-product__actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.cgx-guest-product__link{
  display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:10px 18px;
  border-radius:var(--cg-r-pill);border:1.5px solid rgba(18,138,90,.4);
  background:#fff;color:#0d5c3c!important;font-weight:650;font-size:14px;text-decoration:none!important;
  transition:background .25s,transform .25s var(--cg-ease-out),box-shadow .25s;
}
.cgx-guest-product__link:hover{background:#0d5c3c;color:#fff!important;transform:translateY(-2px);box-shadow:0 10px 24px rgba(13,92,60,.24)}
.cgx-guest-product__alt{font-size:13px;color:var(--cg-muted)}
.cgx-guest-product__alt a{color:var(--cg-accent-ink);font-weight:650}
.cgx-guest-product--muted{border-color:var(--cg-border);background:#fafbfc}
.cgx-guest-product--muted .cgx-guest-product__title{color:var(--cg-ink)}

/* --------------------------------------------------------------------------
   9. Shop archive
   -------------------------------------------------------------------------- */
body.cg-site .cgu-market-heading{padding:44px 0 28px}
body.cg-site .cgu-market-heading h1{margin:10px 0 14px}
body.cg-site .cgu-market-heading p{max-width:58ch;font-size:17.5px;color:var(--cg-muted)}
body.cg-site .cgu-market-toolbar{
  display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;
  padding:14px 18px;margin-bottom:26px;
  border:1px solid var(--cg-border);border-radius:var(--cg-r-pill);background:var(--cg-surface);box-shadow:var(--cg-sh-1);
}
body.cg-site .cgu-market-toolbar select{border-radius:var(--cg-r-pill);border:1px solid var(--cg-border-strong);min-height:44px;padding:8px 16px}
body.cg-site .cgu-market-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(288px,1fr));gap:26px}
body.cg-site .cgu-market-card{display:flex;flex-direction:column;overflow:hidden}
body.cg-site .cgu-market-image{display:block;aspect-ratio:4/3;position:relative;overflow:hidden;border-radius:0}
body.cg-site .cgu-market-image img{width:100%;height:100%;object-fit:cover}
body.cg-site .cgu-market-card-body{display:flex;flex-direction:column;gap:10px;padding:20px;flex:1}
body.cg-site .cgu-market-card-body h2{font-size:20px;line-height:1.22;margin:0}
body.cg-site .cgu-market-card-body h2 a{color:var(--cg-ink);text-decoration:none}
body.cg-site .cgu-market-card-body p{margin:0;font-size:14.5px;color:var(--cg-muted)}
body.cg-site .cgu-market-card-body footer{
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  margin-top:auto;padding-top:14px;border-top:1px solid var(--cg-border);
}
body.cg-site .cgu-market-card-body footer a{font-weight:650;color:var(--cg-accent);text-decoration:none}

/* --------------------------------------------------------------------------
   10. Forms, notices, tables, WooCommerce surfaces
   -------------------------------------------------------------------------- */
body.cg-site :where(.woocommerce input.input-text,.woocommerce select,.woocommerce textarea,
  .cg-field input,.cg-field select,.cg-field textarea,.cg-search input){
  border-radius:var(--cg-r-sm)!important;border:1.5px solid var(--cg-border-strong)!important;
  background:#fff;min-height:50px;padding:13px 15px;
  transition:border-color .22s var(--cg-ease),box-shadow .22s var(--cg-ease);
}
body.cg-site :where(.woocommerce input.input-text:focus,.woocommerce select:focus,.woocommerce textarea:focus,
  .cg-field input:focus,.cg-field select:focus,.cg-field textarea:focus){
  border-color:var(--cg-accent)!important;box-shadow:0 0 0 4px rgba(23,92,181,.12);outline:none;
}
body.cg-site .cg-field>span{font-size:13px;font-weight:650;color:var(--cg-muted);margin-bottom:6px;display:block}
body.cg-site .cg-search{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;padding:18px;border:1px solid var(--cg-border);border-radius:var(--cg-r-lg);background:var(--cg-surface);box-shadow:var(--cg-sh-1)}

body.cg-site :where(.cg-notice,.woocommerce-message,.woocommerce-info,.woocommerce-error){
  border-radius:var(--cg-r-md);border-width:1px;border-style:solid;padding:16px 20px;box-shadow:var(--cg-sh-1);
}
body.cg-site :where(.woocommerce-message,.cg-notice--success){background:#eefaf3;border-color:#bfe5d2;color:#0f5c3c}
body.cg-site :where(.woocommerce-info,.cg-notice){background:#eef5fd;border-color:#c6dcf5;color:#1a4877}
body.cg-site :where(.woocommerce-error,.cg-notice--error){background:#fdeeec;border-color:#f2c6c0;color:#8b2f27}
body.cg-site .cg-notice--warning{background:#fff7e8;border-color:#f0dbb0;color:#7a5410}

body.cg-site .woocommerce .shop_table{border-radius:var(--cg-r-lg);overflow:hidden;box-shadow:var(--cg-sh-1)}
body.cg-site .woocommerce .shop_table th{background:#f7f9fb;font-family:var(--cg-mono)!important;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--cg-soft)}
body.cg-site .woocommerce #payment{background:#f7f9fb;border:1px solid var(--cg-border);border-radius:var(--cg-r-lg)}
body.cg-site .woocommerce .woocommerce-MyAccount-navigation a{border-radius:var(--cg-r-sm);border-bottom:0;font-weight:600}
body.cg-site .woocommerce .woocommerce-MyAccount-navigation .is-active a,
body.cg-site .woocommerce .woocommerce-MyAccount-navigation li.is-active>a{background:var(--cg-night);color:#fff}

/* --------------------------------------------------------------------------
   11. Journal & article
   -------------------------------------------------------------------------- */
body.cg-site .cg-article{border-radius:var(--cg-r-xl);box-shadow:var(--cg-sh-1);background:var(--cg-surface)}
body.cg-site .cg-article .cg-prose{font-size:18px;line-height:1.82}
body.cg-site .cg-article .cg-prose>p:first-of-type{font-size:20px;line-height:1.68;color:#22323d}
body.cg-site .cg-journal-art{border-radius:var(--cg-r-lg)}
body.cg-site .page-numbers{border-radius:var(--cg-r-sm);border-color:var(--cg-border-strong);font-weight:650;transition:background .25s,color .25s,transform .25s var(--cg-ease-out)}
body.cg-site .page-numbers:hover{transform:translateY(-2px);border-color:var(--cg-accent);color:var(--cg-accent)}
body.cg-site .page-numbers.current{background:var(--cg-grad-accent);border-color:transparent;box-shadow:var(--cg-sh-accent)}

/* --------------------------------------------------------------------------
   12. Footer
   -------------------------------------------------------------------------- */
body.cg-site .cg-site-footer{background:var(--cg-grad-hero);position:relative;overflow:hidden}
body.cg-site .cg-site-footer::before{
  content:"";position:absolute;left:-10%;top:-40%;width:50vw;height:50vw;
  background:radial-gradient(circle,rgba(59,163,255,.16),transparent 62%);pointer-events:none;
}
body.cg-site .cg-site-footer h2{font-family:var(--cg-mono)!important;font-size:11.5px;letter-spacing:.16em;color:#8fc2f5}
body.cg-site .cg-footer-top>div>a:not(.cg-brand){
  position:relative;width:fit-content;color:#cfdce8;transition:color .25s,transform .3s var(--cg-ease-out);
}
body.cg-site .cg-footer-top>div>a:not(.cg-brand):hover{color:#fff;transform:translateX(4px)}
body.cg-site .cg-footer-bottom{border-top-color:rgba(255,255,255,.12)}

/* --------------------------------------------------------------------------
   13. Floating widget stack — bag, chat and notifications never overlap
   -------------------------------------------------------------------------- */
.cgb-launch{
  z-index:var(--cg-z-bag)!important;
  right:var(--cg-float-edge)!important;
  bottom:var(--cg-float-edge)!important;
  width:var(--cg-bag-size)!important;height:var(--cg-bag-size)!important;
  border:0!important;
  background:var(--cg-night)!important;color:#fff!important;
  box-shadow:0 14px 34px rgba(7,22,36,.30)!important;
  transition:transform .3s var(--cg-ease-out),box-shadow .3s var(--cg-ease-out)!important;
}
.cgb-launch:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 20px 44px rgba(7,22,36,.38)!important}
.cgb-count{background:var(--cg-accent-2)!important;color:#04203f!important;border-color:#fff!important;font-family:var(--cg-mono)!important;font-weight:700!important}

/* Chat sits ABOVE the bag in the same column, never on top of it. */
.cgl-root{
  z-index:var(--cg-z-chat)!important;
  right:var(--cg-float-edge)!important;
  bottom:calc(var(--cg-float-edge) + var(--cg-bag-size) + var(--cg-float-gap))!important;
}
.cgl-root.cgl-left{left:var(--cg-float-edge)!important;right:auto!important}
body.cg-has-bag .cgl-root{bottom:calc(var(--cg-float-edge) + var(--cg-bag-size) + var(--cg-float-gap))!important}
body:not(.cg-has-bag) .cgl-root{bottom:var(--cg-float-edge)!important}
.cgl-panel{max-height:min(620px,calc(100vh - 190px))!important}

/* While the bag drawer is open the chat launcher steps aside. */
html.cgb-is-open .cgl-root,body.cgb-is-open .cgl-root{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s var(--cg-ease)}
/* While the chat panel is open the bag button stays reachable but tucks down. */
.cgl-root[data-cgl-open="true"]~.cgb-launch,body.cgl-open .cgb-launch{box-shadow:0 8px 20px rgba(7,22,36,.24)!important}

.cgl-launch{border-radius:var(--cg-r-pill);background:var(--cg-grad-accent)!important;box-shadow:0 14px 34px rgba(23,92,181,.32)!important;font-family:var(--cg-sans)!important;font-weight:650!important}
.cgl-panel{border-radius:var(--cg-r-xl)!important;box-shadow:var(--cg-sh-3)!important;animation:cg-rise .34s var(--cg-ease-out)}
.cgl-panel-head{background:var(--cg-grad-hero)!important}
.cgl-msg{font-family:var(--cg-sans)}

/* Notification centre keeps clear of both. */
.cgn-centre.is-floating{z-index:var(--cg-z-notify)!important}

/* Bag drawer polish */
.cgb-drawer{border-radius:var(--cg-r-xl) 0 0 var(--cg-r-xl)!important;box-shadow:-24px 0 60px rgba(7,22,36,.22)!important}
.cgb-drawer h2{font-family:var(--cg-display)!important;letter-spacing:-.03em}
.cgb-checkout{border-radius:var(--cg-r-pill)!important;background:var(--cg-grad-accent)!important;box-shadow:var(--cg-sh-accent)}
.cgb-trust{border-radius:var(--cg-r-md)}

/* --------------------------------------------------------------------------
   14. Responsive
   -------------------------------------------------------------------------- */
@media(max-width:1100px){
  body.cg-site .cgu-layout{grid-template-columns:1fr}
  body.cg-site .cgu-purchase{position:static}
  body.cg-site .cgu-section-nav{top:70px}
}
@media(max-width:900px){
  :root{--cg-shell:calc(100% - 44px)}
  body.cg-site .cgu-panel{padding:24px}
  body.cg-site .cg-hero{min-height:560px}
}
@media(max-width:640px){
  :root{--cg-shell:calc(100% - 32px);--cg-float-edge:16px;--cg-bag-size:56px}
  body.cg-site{font-size:16px}
  body.cg-site .cgu-panel{padding:20px;border-radius:var(--cg-r-md)}
  body.cg-site .cgu-panel-heading{gap:12px}
  body.cg-site .cgu-section-index{width:36px;height:36px;border-radius:10px}
  body.cg-site .cgu-lead{font-size:17px}
  body.cg-site .cgu-market-grid{grid-template-columns:1fr}
  body.cg-site .cgu-section-nav{border-radius:var(--cg-r-md);flex-wrap:nowrap}
  .cg-readmore:not(.is-open) .cg-readmore__body{max-height:var(--cg-readmore-collapsed-sm,260px)}
  .cgb-launch{bottom:calc(var(--cg-float-edge) + env(safe-area-inset-bottom))!important}
  .cgl-root{bottom:calc(var(--cg-float-edge) + var(--cg-bag-size) + var(--cg-float-gap) + env(safe-area-inset-bottom))!important}
}

/* --------------------------------------------------------------------------
   15. Accessibility / reduced motion / print
   -------------------------------------------------------------------------- */
@media(prefers-reduced-motion:reduce){
  body.cg-site *,body.cg-site *::before,body.cg-site *::after{
    animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important;
  }
  .cg-reveal{opacity:1!important;transform:none!important}
  .cg-readmore__body{transition:none}
}
@media print{
  .cgb-launch,.cgl-root,.cgn-centre,.cgu-section-nav,.cg-site-header,.cg-site-footer{display:none!important}
  .cg-readmore:not(.is-open) .cg-readmore__body{max-height:none!important}
  .cg-readmore__body::after,.cg-readmore__actions{display:none!important}
}

/* --------------------------------------------------------------------------
   5b. Button contrast safety net (1.12.0)
   Some buttons inherited a light label on a light fill (and the reverse) from
   the parent theme, WooCommerce core and block styles, so the text vanished.
   These rules pin an explicit, readable pair for every button variant and use
   colour-contrast() where supported so the label always wins.
   -------------------------------------------------------------------------- */
body.cg-site :where(.cg-btn,.cgu-btn,.button,.woocommerce .button,.woocommerce button.button,
  .woocommerce input.button,.woocommerce a.button,.woocommerce #respond input#submit,
  .wp-block-button__link,.wp-element-button,button.single_add_to_cart_button,
  .checkout-button,.cgx-mode-button,.cgb-checkout,.cgl-send,input[type="submit"]){
  color:#fff!important;
  -webkit-text-fill-color:#fff;
  text-shadow:none!important;
}

/* Light-filled and transparent variants get dark ink instead. */
body.cg-site :where(.cg-btn--outline,.cg-btn--ghost,.button.ghost,.is-style-outline .wp-block-button__link,
  .woocommerce a.button.wc-backward,.woocommerce .cart .button[name="update_cart"],
  .woocommerce-message .button,.woocommerce-info .button,.cgb-continue,
  .cg-btn--light,.cg-chip,.cgx-mode-button[aria-pressed="false"]){
  color:var(--cg-ink)!important;
  -webkit-text-fill-color:var(--cg-ink);
}

body.cg-site :where(.cg-btn--outline,.cg-btn--ghost,.button.ghost,.is-style-outline .wp-block-button__link):hover{
  color:var(--cg-accent-dark,#0f4794)!important;
  -webkit-text-fill-color:var(--cg-accent-dark,#0f4794);
}

/* On dark sections the light variants flip to white. */
body.cg-site :where(.cg-hero,.cg-section--dark,.cg-dark,footer.cg-footer) :where(.cg-btn--outline,.cg-btn--ghost,.button.ghost){
  color:#fff!important;
  -webkit-text-fill-color:#fff;
  border-color:rgba(255,255,255,.5)!important;
}

/* Disabled buttons must still be legible, not a grey blur. */
body.cg-site :where(.button,.wp-block-button__link,.cg-btn)[disabled],
body.cg-site :where(.button,.cg-btn).disabled{
  opacity:1!important;
  background:var(--cg-surface-alt,#eef1f5)!important;
  color:#5b6472!important;
  -webkit-text-fill-color:#5b6472;
  border-color:var(--cg-line-strong,#c9d2dd)!important;
}

/* Never let a decorative sheen or overlay sit on top of the label. */
body.cg-site :where(.cg-btn,.woocommerce .button,.wp-block-button__link,button.single_add_to_cart_button)::before{
  z-index:-1!important;
  pointer-events:none;
}
body.cg-site :where(.cg-btn,.woocommerce .button,.wp-block-button__link) > *{position:relative;z-index:1}

/* Browsers with relative colour support get a guaranteed contrast pair. */
@supports (color: color-contrast(#000 vs #fff, #111)){
  body.cg-site :where(.cg-btn,.woocommerce .button,.wp-block-button__link,button.single_add_to_cart_button){
    color:color-contrast(var(--cg-accent) vs #ffffff, #0b1622)!important;
  }
}

/* --------------------------------------------------------------------------
   5c. Floating layer order (1.12.0)
   The bag owned the top of the stack, so the chat launcher was painted behind
   it and the two overlapped in the same corner. Chat now sits above the bag and
   in its own slot; the bag drawer still covers everything while it is open.
   -------------------------------------------------------------------------- */
body.cg-site .cgl-root{z-index:var(--cg-z-chat)!important}
body.cg-site .cgb-launch{z-index:var(--cg-z-bag)!important}
body.cg-site .cgn-centre.is-floating{z-index:var(--cg-z-notify)!important}

/* --------------------------------------------------------------------------
   5d. Block-button contrast (1.12.0)
   Gutenberg puts the variant class on the *wrapper* (.wp-block-button), not on
   the link, so 5b matched every .wp-block-button__link and painted it white -
   including the light pill in the hero, which produced white text on a white
   button. The outline variant had the mirror problem: dark ink on the dark
   hero. These rules key off the wrapper and off the section, and they are
   loaded after 5b so they win.
   -------------------------------------------------------------------------- */

/* The label must never be clipped by, or spill out of, the pill. */
body.cg-site :where(.wp-block-button__link,.wp-element-button,.cg-btn){
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:48px;
  padding:14px 26px;
  line-height:1.25;
  max-width:100%;
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
}
body.cg-site .cg-hero .wp-block-buttons,body.cg-site .cg-actions{display:flex;flex-wrap:wrap;gap:14px}

/* Outline variant on light sections: dark ink. */
body.cg-site .wp-block-button.is-style-outline > .wp-block-button__link{
  background:transparent!important;
  color:var(--cg-ink,#0b1622)!important;
  -webkit-text-fill-color:var(--cg-ink,#0b1622)!important;
  border:1px solid var(--cg-line-strong,#c9d2dd)!important;
}

/* Outline variant on dark sections: white label, visible edge. */
body.cg-site :where(.cg-hero,.cg-section--dark,.cg-dark,footer.cg-footer) .wp-block-button.is-style-outline > .wp-block-button__link,
body.cg-site :where(.cg-hero,.cg-section--dark,.cg-dark,footer.cg-footer) .is-style-outline .wp-block-button__link{
  background:transparent!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  border:1px solid rgba(255,255,255,.55)!important;
}
body.cg-site :where(.cg-hero,.cg-section--dark,.cg-dark,footer.cg-footer) .wp-block-button.is-style-outline > .wp-block-button__link:hover{
  background:rgba(255,255,255,.14)!important;
  border-color:#fff!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

/* The light/white pill keeps dark ink in every section, including the hero. */
body.cg-site .wp-block-button.cg-button-light > .wp-block-button__link,
body.cg-site .wp-block-button.cg-btn--light > .wp-block-button__link,
body.cg-site .wp-block-button__link.cg-button-light,
body.cg-site .cg-btn.cg-button-light,
body.cg-site :where(.cg-hero,.cg-section--dark,.cg-dark) .wp-block-button.cg-button-light > .wp-block-button__link{
  background:#fff!important;
  background-image:none!important;
  color:var(--cg-ink,#0b1622)!important;
  -webkit-text-fill-color:var(--cg-ink,#0b1622)!important;
  border:1px solid rgba(11,22,34,.10)!important;
  text-shadow:none!important;
}
body.cg-site .wp-block-button.cg-button-light > .wp-block-button__link:hover,
body.cg-site .wp-block-button.cg-btn--light > .wp-block-button__link:hover{
  background:#f2f7fc!important;
  color:var(--cg-accent-dark,#0f4794)!important;
  -webkit-text-fill-color:var(--cg-accent-dark,#0f4794)!important;
  border-color:rgba(15,71,148,.28)!important;
}

/* A label must never depend on the selection highlight to be readable. */
body.cg-site ::selection{background:rgba(23,92,181,.22);color:inherit}
body.cg-site :where(.wp-block-button__link,.cg-btn)::selection{background:rgba(23,92,181,.22);color:inherit}

/* Relative-colour browsers: exclude the variants pinned above. */
@supports (color: color-contrast(#000 vs #fff, #111)){
  body.cg-site .wp-block-button.cg-button-light > .wp-block-button__link,
  body.cg-site .wp-block-button.is-style-outline > .wp-block-button__link{
    color:inherit;
  }
}

/* ==========================================================================
   1.13.0 — organised service / product pages

   Reported: "all services and their parts or probably woo products related
   pages should have organized ui, and product description should minimized
   and visitors can maximize it if they only wanted to."

   What changed
   • The description now renders COLLAPSED (see cgt_readmore_wrap): the page
     opens on price, what-you-get and the buy button instead of an essay.
   • Everything below the summary is grouped into labelled cards with one
     rhythm, so a service page reads in a fixed order:
     gallery · summary/buy · at a glance · description · details · related.
   • The purchase panel sticks while you scroll the long content on desktop.
   ========================================================================== */

.single-product div.product{
	--cg-svc-gap:clamp(20px,3vw,38px);
	--cg-svc-radius:18px;
}

/* ---- Summary column ---------------------------------------------------- */
.single-product div.product .summary,
.single-product div.product .entry-summary{
	display:flex;
	flex-direction:column;
	gap:14px;
}

.single-product div.product .summary .price,
.single-product div.product .entry-summary .price{
	margin:0;
	font-weight:800;
	letter-spacing:-.015em;
}

/* The buy block becomes one clear card. */
.single-product div.product form.cart,
.single-product div.product .cgu-buybox{
	margin:0;
	padding:16px 18px;
	border:1px solid rgba(16,32,58,.12);
	border-radius:var(--cg-svc-radius);
	background:#fff;
	box-shadow:0 12px 30px -22px rgba(12,26,53,.45);
}
.single-product div.product form.cart .button{width:100%;justify-content:center}
.single-product div.product form.cart .quantity{margin-bottom:10px}

@media(min-width:1024px){
	.single-product div.product .summary,
	.single-product div.product .entry-summary{
		position:sticky;
		top:calc(var(--cg-header-h,88px) + 18px);
		align-self:start;
	}
}

/* ---- Section cards ----------------------------------------------------- */
.single-product .woocommerce-tabs,
.single-product .cgu-section,
.single-product .woocommerce-product-details__short-description,
.single-product #reviews,
.single-product .up-sells,
.single-product .related.products{
	margin-top:var(--cg-svc-gap);
}

.single-product .woocommerce-tabs,
.single-product .cgu-section{
	padding:clamp(16px,2.4vw,26px);
	border:1px solid rgba(16,32,58,.10);
	border-radius:var(--cg-svc-radius);
	background:#fff;
	box-shadow:0 14px 34px -30px rgba(12,26,53,.5);
}

.single-product .woocommerce-tabs ul.tabs{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	margin:0 0 16px;
	padding:0;
	border:0;
	background:none;
}
.single-product .woocommerce-tabs ul.tabs::before,
.single-product .woocommerce-tabs ul.tabs::after{display:none}
.single-product .woocommerce-tabs ul.tabs li{
	margin:0;
	padding:0;
	border:0;
	border-radius:999px;
	background:#f2f6fc;
	box-shadow:none;
}
.single-product .woocommerce-tabs ul.tabs li::before,
.single-product .woocommerce-tabs ul.tabs li::after{display:none}
.single-product .woocommerce-tabs ul.tabs li a{
	display:block;
	padding:9px 16px;
	border-radius:999px;
	font-size:.86rem;
	font-weight:700;
	color:#3a4d66;
	text-decoration:none;
}
.single-product .woocommerce-tabs ul.tabs li.active{background:var(--cg-accent,#175cb5)}
.single-product .woocommerce-tabs ul.tabs li.active a{color:#fff}
.single-product .woocommerce-tabs .panel{margin:0;padding:0}
.single-product .woocommerce-tabs .panel > h2:first-child{margin-top:0}

/* Section label used by the theme's service blocks. */
.single-product .cgu-section > h2,
.single-product .cgu-section > h3{
	margin:0 0 12px;
	font-size:clamp(1.05rem,1.6vw,1.3rem);
	line-height:1.25;
	letter-spacing:-.01em;
}

/* ---- "At a glance" facts ---------------------------------------------- */
.cgu-facts{
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
	gap:10px;
	margin:0;
	padding:0;
	list-style:none;
}
.cgu-facts li{
	padding:11px 13px;
	border:1px solid rgba(16,32,58,.10);
	border-radius:12px;
	background:#f8fafd;
	font-size:.85rem;
	line-height:1.45;
}
.cgu-facts b,.cgu-facts strong{display:block;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:#5b6b83;margin-bottom:3px}

/* ---- Collapsed description -------------------------------------------- */
/* Server-rendered closed as of 1.13.0, so make the affordance obvious. */
.cg-readmore:not(.is-open) .cg-readmore__body{
	mask-image:linear-gradient(to bottom,#000 62%,transparent 100%);
	-webkit-mask-image:linear-gradient(to bottom,#000 62%,transparent 100%);
}
.cg-readmore.is-open .cg-readmore__body{mask-image:none;-webkit-mask-image:none}
.cg-readmore__toggle{font-weight:700}
.cg-readmore__meta{
	display:block;
	margin-top:8px;
	text-align:center;
	font-size:.72rem;
	color:#6b7a91;
}

/* ---- Related / upsells ------------------------------------------------- */
.single-product .related.products ul.products,
.single-product .up-sells ul.products{
	display:grid;
	grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
	gap:18px;
	margin:0;
	padding:0;
	list-style:none;
}
.single-product .related.products ul.products::before,
.single-product .related.products ul.products::after,
.single-product .up-sells ul.products::before,
.single-product .up-sells ul.products::after{display:none}
.single-product .related.products ul.products li.product,
.single-product .up-sells ul.products li.product{width:auto!important;margin:0!important;float:none!important}

/* ---- Shop / archive cards line up with the service pages -------------- */
.woocommerce ul.products li.product .woocommerce-loop-product__title{
	font-size:.98rem;
	line-height:1.3;
	font-weight:700;
}
.woocommerce ul.products li.product .price{font-weight:700}
.woocommerce ul.products li.product .cgvb-loop-verified{display:inline-flex}

@media(max-width:1023px){
	.single-product div.product form.cart,
	.single-product .woocommerce-tabs,
	.single-product .cgu-section{border-radius:14px}
}

@media(prefers-color-scheme:dark){
	.single-product div.product form.cart,
	.single-product .woocommerce-tabs,
	.single-product .cgu-section{background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.12)}
	.cgu-facts li{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12)}
}
