/*
 * GanjaGuide Warm Cosy Global Harmonization
 * Release: 3.1.0-R5
 *
 * Bindende referentie: de lichte Masters-secties met warme sage-canvas,
 * rustige witte kaarten, donkere teal-typografie en limegroene accenten.
 * Deze laag wordt als laatste geladen en harmoniseert uitsluitend presentatie.
 */

:root{
  --gg-cosy-max:1440px;
  --gg-cosy-canvas:#edf2e8;
  --gg-cosy-canvas-soft:#f3f6ef;
  --gg-cosy-canvas-deep:#e4ebe0;
  --gg-cosy-card:#fffefb;
  --gg-cosy-card-soft:#f8faf5;
  --gg-cosy-line:#c6d2c4;
  --gg-cosy-line-strong:#aebdab;
  --gg-cosy-title:#08262a;
  --gg-cosy-copy:#52635a;
  --gg-cosy-muted:#76857b;
  --gg-cosy-lime:#94df18;
  --gg-cosy-green:#5ca40e;
  --gg-cosy-green-deep:#3d7d0b;
  --gg-cosy-amber:#edae43;
  --gg-cosy-radius-xl:26px;
  --gg-cosy-radius-lg:18px;
  --gg-cosy-radius-md:13px;
  --gg-cosy-shadow:0 16px 42px rgba(38,59,43,.085);
  --gg-cosy-shadow-hover:0 24px 58px rgba(38,59,43,.13);
  --gg-cosy-shadow-dark:0 22px 58px rgba(0,0,0,.24);
}

html[data-theme="light"]{
  --gg-page:var(--gg-cosy-canvas);
  --gg-surface:var(--gg-cosy-card);
  --gg-surface-2:var(--gg-cosy-card-soft);
  --gg-surface-3:var(--gg-cosy-canvas-deep);
  --gg-border:var(--gg-cosy-line);
  --gg-title:var(--gg-cosy-title);
  --gg-copy:var(--gg-cosy-copy);
  --gg-shadow:var(--gg-cosy-shadow);
  --gg-card:var(--gg-cosy-card);
  --gg-line:var(--gg-cosy-line);
  --gg-text:var(--gg-cosy-title);
  --gg-muted:var(--gg-cosy-muted);
  --gg-green:var(--gg-cosy-green);
  --gg-action:var(--gg-cosy-green);
  --gg-action-bright:var(--gg-cosy-lime);
  --gg-action-deep:var(--gg-cosy-green-deep);
}
html[data-theme="dark"]{
  --gg-card:#0d1510;
  --gg-line:#2c3a30;
  --gg-text:#f2f7f1;
  --gg-muted:#9eaca2;
  --gg-green:#9ce12f;
}

html[data-theme="light"] body,
html[data-theme="light"] .desktop-stage,
html[data-theme="light"] .app-frame,
html[data-theme="light"] .site-main,
html[data-theme="light"] .gg-content-standard{
  background:
    radial-gradient(circle at 12% 4%,rgba(148,223,24,.045),transparent 28%),
    var(--gg-cosy-canvas)!important;
}
body{line-height:1.56;}
.gg-content-standard{min-width:0;}
.gg-content-standard>*{min-width:0;}

/* Eén geometrie voor iedere route. */
@media(min-width:981px){
  .app-frame>.site-header,
  .gg-content-standard,
  .site-footer{
    width:min(calc(100% - 48px),var(--gg-cosy-max))!important;
    max-width:var(--gg-cosy-max)!important;
  }
  .gg-content-standard{padding-top:20px!important;}
}

/* Rustige, warme sectie-opbouw in plaats van route-specifieke vlakken. */
body:not(.page-masters):not(.page-marketing-shop) :where(
  .editorial-page,
  .customer-portal,
  .account-page,
  .partner-page,
  .favorites-page
){
  background:transparent!important;
}
body:not(.page-masters):not(.page-marketing-shop) :where(
  .editorial-section,
  .portal-section,
  .shop-section,
  .result-section,
  .home-top10,
  .strain-showcase,
  .gg-news-feed
){
  border:0!important;
  border-bottom:1px solid var(--gg-cosy-line)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  padding:clamp(54px,5vw,82px) clamp(24px,5vw,72px)!important;
}
body:not(.page-masters):not(.page-marketing-shop) :where(
  .editorial-section,
  .portal-section,
  .shop-section,
  .result-section,
  .home-top10,
  .strain-showcase,
  .gg-news-feed
):last-child{border-bottom:0!important;}

/* Bindende sectiekoppen: kicker en titel links, uitleg rechts. */
body:not(.page-masters):not(.page-marketing-shop) .editorial-section-head,
body:not(.page-masters):not(.page-marketing-shop) .strain-showcase-head{
  display:grid!important;
  grid-template-columns:minmax(0,1.08fr) minmax(300px,.62fr)!important;
  grid-template-areas:"kicker copy" "title copy"!important;
  align-items:end!important;
  column-gap:clamp(34px,5vw,78px)!important;
  row-gap:8px!important;
  margin:0 0 34px!important;
}
body:not(.page-masters):not(.page-marketing-shop) .editorial-section-head>.eyebrow,
body:not(.page-masters):not(.page-marketing-shop) .strain-showcase-head>.eyebrow{grid-area:kicker;align-self:end;}
body:not(.page-masters):not(.page-marketing-shop) .editorial-section-head>h2,
body:not(.page-masters):not(.page-marketing-shop) .strain-showcase-head>h2{grid-area:title;min-width:0;}
body:not(.page-masters):not(.page-marketing-shop) .editorial-section-head>p,
body:not(.page-masters):not(.page-marketing-shop) .strain-showcase-head>p{grid-area:copy;align-self:end;}
body:not(.page-masters):not(.page-marketing-shop) .editorial-section-head>div{
  grid-column:1!important;
  grid-row:1 / span 2!important;
  min-width:0;
}
body:not(.page-masters):not(.page-marketing-shop) .editorial-section-head>div+*{
  grid-column:2!important;
  grid-row:1 / span 2!important;
  align-self:end;
}
body:not(.page-masters):not(.page-marketing-shop) :where(.section-head,.portal-section-head,.gg-news-head){
  display:grid!important;
  grid-template-columns:minmax(0,1.08fr) minmax(280px,.62fr)!important;
  gap:22px clamp(34px,5vw,78px)!important;
  align-items:end!important;
  margin:0 0 32px!important;
}
body:not(.page-masters):not(.page-marketing-shop) :where(.section-head,.portal-section-head,.gg-news-head)>div:first-child{min-width:0;}
body:not(.page-masters):not(.page-marketing-shop) :where(.section-head,.portal-section-head,.gg-news-head)>p,
body:not(.page-masters):not(.page-marketing-shop) :where(.section-head,.portal-section-head,.gg-news-head)>.portal-section-actions,
body:not(.page-masters):not(.page-marketing-shop) :where(.section-head,.portal-section-head,.gg-news-head)>button,
body:not(.page-masters):not(.page-marketing-shop) :where(.section-head,.portal-section-head,.gg-news-head)>a{
  justify-self:stretch;
  align-self:end;
}
body:not(.page-masters):not(.page-marketing-shop) :where(
  .editorial-section-head,
  .section-head,
  .portal-section-head,
  .strain-showcase-head,
  .gg-news-head
) h2{
  max-width:900px!important;
  margin:7px 0 0!important;
  color:var(--gg-cosy-title)!important;
  font-size:clamp(34px,4.2vw,58px)!important;
  line-height:.98!important;
  letter-spacing:-.055em!important;
  text-wrap:balance;
}
body:not(.page-masters):not(.page-marketing-shop) :where(
  .editorial-section-head,
  .section-head,
  .portal-section-head,
  .strain-showcase-head,
  .gg-news-head
) p{
  max-width:560px;
  margin:0;
  color:var(--gg-cosy-copy)!important;
  line-height:1.68;
}
body:not(.page-masters):not(.page-marketing-shop) :where(.eyebrow,[class*="-label"],[class*="-kicker"]){
  color:var(--gg-cosy-green)!important;
  font:900 9px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace!important;
  letter-spacing:.16em!important;
  text-transform:uppercase;
}

/* Hero's blijven donker, maar krijgen overal dezelfde warme maatvoering. */
body:not(.page-masters):not(.page-marketing-shop) :where(.editorial-hero,.portal-hero,.account-hero-copy,.account-readiness){
  border-radius:var(--gg-cosy-radius-xl)!important;
}
body:not(.page-masters):not(.page-marketing-shop) :where(.editorial-hero,.portal-hero){
  min-height:clamp(390px,38vw,560px)!important;
  padding:clamp(42px,5vw,74px)!important;
  margin-bottom:18px!important;
}
body:not(.page-masters):not(.page-marketing-shop) :where(.editorial-hero,.portal-hero) h1{
  max-width:1060px!important;
  font-size:clamp(48px,5.7vw,82px)!important;
  line-height:.94!important;
}
body:not(.page-masters):not(.page-marketing-shop) :where(.editorial-hero,.portal-hero)>p{
  max-width:830px!important;
  font-size:clamp(15px,1.35vw,18px)!important;
}
.editorial-hero-actions,.portal-section-actions,.shop-actions,.account-profile-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px!important;
}

/* Eén kaartmateriaal voor alle niet-Masters modules. */
body:not(.page-masters):not(.page-marketing-shop) :where(
  .location-card,
  .editorial-card-grid>article,
  .editorial-benefit-grid>article,
  .editorial-process-grid>article,
  .editorial-team-grid>article,
  .editorial-copy-columns>div,
  .safety-grid>article,
  .legal-country-grid>article,
  .category-count-grid>a,
  .verification-ladder>article,
  .editorial-stat-grid>article,
  .feature-strip>article,
  .module-grid>article,
  .info-card,
  .facility-grid>article,
  .producer-grid>article,
  .review-card,
  .review-hub-card,
  .portal-stat-grid>article,
  .portal-dashboard-card,
  .portal-passport-card,
  .portal-following-card,
  .portal-review-card,
  .portal-subscription-plan,
  .portal-security-check,
  .portal-verification-case,
  .publication-gate-card,
  .publication-summary-grid>article,
  .publication-hardening-grid>article,
  .portal-security-summary>article,
  .portal-security-foundation>article,
  .portal-security-principal,
  .portal-security-activation,
  .portal-security-session-list>article,
  .portal-security-authz-list>article,
  .portal-security-notice,
  .publication-check,
  .account-architecture>article,
  .strain-card,
  .gg-news-card,
  .legal-note,
  .checkin-panel,
  .stateweed-banner,
  .empty-state
){
  border:1px solid var(--gg-cosy-line)!important;
  border-radius:var(--gg-cosy-radius-lg)!important;
  background:var(--gg-cosy-card)!important;
  color:var(--gg-cosy-title)!important;
  box-shadow:var(--gg-cosy-shadow)!important;
}
body:not(.page-masters):not(.page-marketing-shop) :where(
  .location-card,
  .editorial-card-grid>article,
  .editorial-benefit-grid>article,
  .editorial-process-grid>article,
  .category-count-grid>a,
  .review-hub-card,
  .portal-dashboard-card,
  .portal-following-card,
  .portal-review-card,
  .strain-card,
  .gg-news-card
){transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease;}
body:not(.page-masters):not(.page-marketing-shop) :where(
  .location-card,
  .editorial-card-grid>article,
  .editorial-benefit-grid>article,
  .editorial-process-grid>article,
  .category-count-grid>a,
  .review-hub-card,
  .portal-dashboard-card,
  .portal-following-card,
  .portal-review-card,
  .strain-card,
  .gg-news-card
):hover{
  transform:translateY(-3px)!important;
  border-color:#9fbe87!important;
  box-shadow:var(--gg-cosy-shadow-hover)!important;
}
body:not(.page-masters):not(.page-marketing-shop) :where(
  .editorial-card-grid>article,
  .editorial-benefit-grid>article,
  .editorial-process-grid>article,
  .editorial-copy-columns>div,
  .safety-grid>article,
  .legal-country-grid>article,
  .verification-ladder>article,
  .feature-strip>article,
  .module-grid>article,
  .portal-dashboard-card,
  .portal-following-card,
  .portal-review-card
){padding:clamp(20px,2.4vw,30px)!important;}
body:not(.page-masters):not(.page-marketing-shop) :where(
  .editorial-card-grid,
  .editorial-benefit-grid,
  .safety-grid,
  .legal-country-grid,
  .review-hub-grid,
  .portal-dashboard-grid,
  .portal-following-grid,
  .portal-review-grid,
  .publication-hardening-grid,
  .strain-grid,
  .gg-news-grid,
  .feature-strip,
  .module-grid
){gap:14px!important;}

/* Statistieken: overzichtelijk, niet als smalle tekstkolom. */
.editorial-stat-grid,
.portal-stat-grid,
.portal-security-summary,
.publication-summary-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:14px!important;
}
.editorial-stat-grid>article,
.portal-stat-grid>article,
.portal-security-summary>article,
.publication-summary-grid>article{
  min-height:126px!important;
  padding:20px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  gap:7px!important;
}
.editorial-stat-grid strong,
.portal-stat-grid strong,
.portal-security-summary strong,
.publication-summary-grid strong{
  color:var(--gg-cosy-title)!important;
  font-size:clamp(28px,3vw,42px)!important;
  letter-spacing:-.045em;
}
.editorial-stat-grid span,
.portal-stat-grid span,
.portal-security-summary span,
.publication-summary-grid span{color:var(--gg-cosy-copy)!important;}

/* Home: rustige kaartintro en volwaardige vervolgkaarten. */
.page-home .home-map-slide{
  margin-bottom:0!important;
  border-color:var(--gg-cosy-line)!important;
  box-shadow:var(--gg-cosy-shadow)!important;
}
.page-home .home-search-panel{min-height:100%;}
.page-home .feature-strip,
.page-home .module-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:14px!important;
  margin:0!important;
  padding:clamp(40px,4vw,64px) clamp(24px,5vw,72px)!important;
  border-bottom:1px solid var(--gg-cosy-line);
  background:transparent!important;
}
.page-home .feature-strip p,
.page-home .module-grid p{color:var(--gg-cosy-copy)!important;}
.page-home .module-grid span{color:var(--gg-cosy-green)!important;font-weight:900;}

/* Nieuws is op iedere route hetzelfde slot als onder De Masters. */
.gg-news-feed{
  margin:0!important;
  overflow:visible!important;
}
.gg-news-grid{align-items:stretch;}
.gg-news-card{overflow:hidden;}
.gg-news-card h3{color:var(--gg-cosy-title)!important;line-height:1.12!important;}
.gg-news-card p,.gg-news-card small,.gg-news-policy{color:var(--gg-cosy-copy)!important;}
.gg-news-card .primary,.gg-news-card a:last-child{margin-top:auto;}
.gg-news-policy{margin:18px 0 0!important;font-size:10px!important;}

/* Account: donkere securityhero, maar dezelfde warme lichte werkruimte als Masters. */
html[data-theme="light"] .page-account .account-shell{
  border:1px solid var(--gg-cosy-line)!important;
  background:var(--gg-cosy-canvas-soft)!important;
  color:var(--gg-cosy-title)!important;
  box-shadow:var(--gg-cosy-shadow)!important;
}
html[data-theme="light"] .page-account .account-tabs{
  border-color:var(--gg-cosy-line)!important;
  background:#e1e5df!important;
}
html[data-theme="light"] .page-account .account-tabs button{
  color:#36513e!important;
  border-color:#a4be91!important;
  background:#f8faf5!important;
}
html[data-theme="light"] .page-account .account-tabs button:hover{background:#ffffff!important;}
html[data-theme="light"] .page-account .account-tabs button.is-active{
  color:#173807!important;
  border-color:#75ad33!important;
  background:linear-gradient(135deg,#f6fbf1,#e8f2df)!important;
  box-shadow:none!important;
}
html[data-theme="light"] .page-account .account-tabs-note{
  border-color:#c5cec3!important;
}
html[data-theme="light"] .page-account .account-tabs-note strong,
html[data-theme="light"] .page-account .account-access-head h2,
html[data-theme="light"] .page-account .account-form label,
html[data-theme="light"] .page-account .account-check{
  color:var(--gg-cosy-title)!important;
}
html[data-theme="light"] .page-account .account-tabs-note p,
html[data-theme="light"] .page-account .account-access-head p,
html[data-theme="light"] .page-account .account-form small{
  color:var(--gg-cosy-copy)!important;
}
html[data-theme="light"] .page-account .account-form input{
  border-color:var(--gg-cosy-line)!important;
  background:#f8faf6!important;
  color:var(--gg-cosy-title)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75)!important;
}
html[data-theme="light"] .page-account .account-form input:disabled{
  color:#748179!important;
  background:#eef2eb!important;
  border-color:#d2dbd1!important;
}
html[data-theme="light"] .page-account .account-architecture>article{
  background:var(--gg-cosy-card)!important;
}
html[data-theme="light"] .page-account .account-architecture p{color:var(--gg-cosy-copy)!important;}

/* Portaal: één rustige canvas, witte instrumentkaarten en minder visuele ruis. */
.customer-portal{padding-bottom:0!important;}
.portal-jump-nav{
  position:sticky;
  top:88px;
  z-index:300;
  border-color:var(--gg-cosy-line)!important;
  background:rgba(255,254,251,.94)!important;
  box-shadow:0 10px 30px rgba(38,59,43,.08)!important;
  backdrop-filter:blur(14px);
}
.portal-jump-nav a{
  color:#48604f!important;
  border-radius:10px;
}
.portal-jump-nav a:hover,.portal-jump-nav a.is-active{
  color:#173807!important;
  background:#e9f4dd!important;
}
.portal-demo-warning{border-radius:var(--gg-cosy-radius-lg)!important;margin:18px 0 0!important;}
.portal-security-gate,.publication-gate-card{box-shadow:var(--gg-cosy-shadow)!important;}

/* Shopdetail volgt hetzelfde hoofdstukritme. */
.shop-hero{margin-top:18px;}
.shop-tabs{background:rgba(255,254,251,.96)!important;backdrop-filter:blur(14px);}
html[data-theme="light"] .shop-tabs a{color:#46604e!important;}
html[data-theme="light"] .shop-tabs a:hover{color:var(--gg-cosy-green)!important;}
.menu-row{box-shadow:none!important;}

/* Knoppen en controls: minder hard, wel duidelijk. */
.primary,
button.primary,
.gg-content-standard button[type="submit"]{
  min-height:44px;
  border-color:#70ad12!important;
  border-radius:11px!important;
  background:linear-gradient(135deg,#9dea22,#65ac0d)!important;
  color:#102708!important;
  box-shadow:0 9px 20px rgba(91,154,15,.14)!important;
}
.ghost,.locate{
  min-height:44px;
  border-color:#8fb66c!important;
  border-radius:11px!important;
  background:#fffefb!important;
  color:#3e7112!important;
  box-shadow:none!important;
}
.gg-content-standard :where(input,select,textarea){
  border-color:var(--gg-cosy-line)!important;
  background:#f8faf6!important;
  color:var(--gg-cosy-title)!important;
}
.gg-content-standard :where(input,select,textarea)::placeholder{color:#8a978e;}

/* Tekst en lijsten blijven rustig leesbaar. */
html[data-theme="light"] .gg-content-standard :where(h1,h2,h3,h4,strong,b){color:var(--gg-cosy-title);}
html[data-theme="light"] .gg-content-standard :where(p,li,dd,small){color:var(--gg-cosy-copy);}
html[data-theme="light"] .gg-content-standard a:not(.primary):not(.ghost):not(.ggm-button):not(.ggm-secondary):not(.location-card):not(.editorial-source-card){
  color:var(--gg-cosy-green-deep)!important;
  text-decoration-thickness:1px;
}

/* Masters blijft de visuele bron, maar sluit exact aan op de globale canvas. */
html[data-theme="light"] .page-masters .ggm,
html[data-theme="light"] .page-marketing-shop .ggm{box-shadow:var(--gg-cosy-shadow)!important;}
.page-masters .gg-news-feed,.page-marketing-shop .gg-news-feed{
  padding-left:clamp(24px,5vw,72px)!important;
  padding-right:clamp(24px,5vw,72px)!important;
}

/* Footer: identiek hoofdstukslot op iedere route. */
.site-footer{margin-top:22px!important;}

@media(min-width:1180px){
  .editorial-card-grid,
  .editorial-benefit-grid,
  .safety-grid,
  .legal-country-grid,
  .review-hub-grid,
  .portal-dashboard-grid,
  .portal-following-grid,
  .portal-review-grid,
  .publication-hardening-grid,
  .strain-grid,
  .gg-news-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
  .editorial-process-grid{grid-template-columns:repeat(5,minmax(0,1fr))!important;}
  .info-grid,.facility-grid,.producer-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
}

@media(max-width:1179px){
  body:not(.page-masters):not(.page-marketing-shop) .editorial-section-head,
  body:not(.page-masters):not(.page-marketing-shop) .strain-showcase-head,
  body:not(.page-masters):not(.page-marketing-shop) :where(.section-head,.portal-section-head,.gg-news-head){
    grid-template-columns:1fr!important;
    grid-template-areas:"kicker" "title" "copy"!important;
    gap:10px!important;
  }
  body:not(.page-masters):not(.page-marketing-shop) .editorial-section-head>div,
  body:not(.page-masters):not(.page-marketing-shop) .editorial-section-head>div+*,
  body:not(.page-masters):not(.page-marketing-shop) :where(.section-head,.portal-section-head,.gg-news-head)>*{
    grid-column:1!important;
    grid-row:auto!important;
    justify-self:stretch!important;
  }
  .editorial-stat-grid,.portal-stat-grid,.portal-security-summary,.publication-summary-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .page-home .feature-strip,.page-home .module-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}

@media(max-width:980px){
  .gg-content-standard{padding:12px!important;}
  body:not(.page-masters):not(.page-marketing-shop) :where(.editorial-section,.portal-section,.shop-section,.result-section,.home-top10,.strain-showcase,.gg-news-feed){
    padding:44px 22px!important;
  }
  .portal-jump-nav{top:84px;}
}

@media(max-width:620px){
  .gg-content-standard{padding:8px!important;}
  body:not(.page-masters):not(.page-marketing-shop) :where(.editorial-section,.portal-section,.shop-section,.result-section,.home-top10,.strain-showcase,.gg-news-feed){
    padding:36px 16px!important;
  }
  body:not(.page-masters):not(.page-marketing-shop) :where(.editorial-hero,.portal-hero){
    padding:34px 22px!important;
  }
  .editorial-stat-grid,.portal-stat-grid,.portal-security-summary,.publication-summary-grid,
  .page-home .feature-strip,.page-home .module-grid{
    grid-template-columns:1fr!important;
  }
  .portal-jump-nav{top:84px;margin-left:0!important;margin-right:0!important;}
  .site-footer{margin-top:12px!important;}
}
