/*
 * GanjaGuide Masters Global Design System
 * Release: 3.1.0-R4
 *
 * De Masters-pagina is de bindende visuele standaard voor iedere route.
 * Deze laag wijzigt uitsluitend presentatie, geometrie en responsiviteit.
 */

:root{
  --gg-master-max:1440px;
  --gg-master-gutter:32px;
  --gg-master-radius-xl:26px;
  --gg-master-radius-lg:20px;
  --gg-master-radius-md:14px;
  --gg-master-lime:#a9e92d;
  --gg-master-lime-deep:#4f8d11;
  --gg-master-amber:#f4bb4f;
  --gg-master-dark:#070b09;
  --gg-master-dark-2:#0b120d;
  --gg-master-dark-3:#101813;
  --gg-master-line-dark:#29352c;
  --gg-master-light:#eef3ea;
  --gg-master-light-card:#ffffff;
  --gg-master-light-line:#c9d5ca;
  --gg-master-light-title:#102018;
  --gg-master-light-copy:#5c6c61;
  --gg-master-shadow:0 20px 54px rgba(25,46,31,.10);
  --gg-master-shadow-dark:0 24px 64px rgba(0,0,0,.28);
  --gg-content-max:1440px;
  --gg-content-gutter:32px;
  --gg-content-outer:1440px;
}

html[data-theme="light"]{
  --gg-master-canvas:var(--gg-master-light);
  --gg-master-surface:var(--gg-master-light-card);
  --gg-master-surface-soft:#f7faf5;
  --gg-master-border:var(--gg-master-light-line);
  --gg-master-title:var(--gg-master-light-title);
  --gg-master-copy:var(--gg-master-light-copy);
}
html[data-theme="dark"]{
  --gg-master-canvas:var(--gg-master-dark);
  --gg-master-surface:var(--gg-master-dark-2);
  --gg-master-surface-soft:var(--gg-master-dark-3);
  --gg-master-border:var(--gg-master-line-dark);
  --gg-master-title:#f4f7f2;
  --gg-master-copy:#aeb9b0;
}

body{
  background:var(--gg-master-canvas);
  color:var(--gg-master-title);
}
.desktop-stage,
.app-frame,
.site-main,
.gg-content-standard{
  background:var(--gg-master-canvas);
}

/* Bindende breedte: gelijk aan De Masters. */
@media(min-width:981px){
  .app-frame>.site-header,
  .gg-content-standard,
  .site-footer{
    width:min(calc(100% - 64px),var(--gg-master-max))!important;
    max-width:var(--gg-master-max)!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
  .app-frame>.site-header{
    grid-template-columns:minmax(270px,350px) minmax(0,1fr) auto auto!important;
    gap:clamp(16px,1.6vw,28px)!important;
    padding-left:28px!important;
    padding-right:24px!important;
    border-radius:0 0 18px 18px;
  }
  .gg-content-standard{padding-top:18px;}
}

/* Header, navigatie en globale acties volgen de Masters-lijn. */
.site-header{
  background:#050907!important;
  border-color:#223027!important;
  box-shadow:0 13px 34px rgba(0,0,0,.18);
}
.site-header nav a{
  position:relative;
  color:#cdd7cf;
  font-weight:700;
  letter-spacing:-.01em;
}
.site-header nav a:after{
  content:"";
  position:absolute;
  left:0;
  right:100%;
  bottom:-8px;
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--gg-master-lime),var(--gg-master-lime-deep));
  transition:right .2s ease;
}
.site-header nav a:hover:after,
.site-header nav a.active:after{right:0;}
.site-header nav a:hover,
.site-header nav a.active{color:var(--gg-master-lime);}
.portal-menu-link,
.header-actions .portal-menu-link{
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 16px;
  border:1px solid #76b91b;
  border-radius:11px;
  color:#071007!important;
  background:linear-gradient(135deg,#b9f538,#75ba19)!important;
  font-size:12px;
  font-weight:900;
  box-shadow:0 8px 20px rgba(109,178,24,.16);
}
.header-actions .portal-menu-link:first-child{
  color:#dbe5dd!important;
  background:#0c140e!important;
  border-color:#4d6b38;
  box-shadow:none;
}
.theme-toggle{
  border-color:#35463a!important;
  background:#0b130e!important;
  color:var(--gg-master-lime)!important;
}

/* Algemene typografie en links. */
.gg-content-standard :where(h1,h2,h3,h4){
  color:var(--gg-master-title);
  text-wrap:balance;
}
.gg-content-standard :where(p,li,dd,small){
  color:var(--gg-master-copy);
}
.gg-content-standard :where(.eyebrow,[class*="-label"],[class*="-kicker"]){
  color:var(--gg-master-lime-deep);
}
html[data-theme="dark"] .gg-content-standard :where(.eyebrow,[class*="-label"],[class*="-kicker"]){
  color:var(--gg-master-lime);
}
.gg-content-standard a:not(.primary):not(.ghost):not(.ggm-button):not(.ggm-secondary):not(.location-card):not(.editorial-source-card){
  color:var(--gg-master-lime-deep);
  text-decoration-color:color-mix(in srgb,var(--gg-master-lime-deep) 48%,transparent);
  text-underline-offset:4px;
}
html[data-theme="dark"] .gg-content-standard a:not(.primary):not(.ghost):not(.ggm-button):not(.ggm-secondary):not(.location-card):not(.editorial-source-card){
  color:var(--gg-master-lime);
}

/* Alle niet-Masters routes krijgen dezelfde hero-opbouw. */
body:not(.page-masters):not(.page-marketing-shop) :where(
  .editorial-hero,
  .portal-hero,
  .placeholder-page,
  .partner-page>.editorial-hero,
  .account-hero-copy
){
  position:relative;
  overflow:hidden;
  border:1px solid #26342b;
  border-radius:var(--gg-master-radius-xl);
  background:
    radial-gradient(circle at 86% 12%,rgba(169,233,45,.18),transparent 30%),
    linear-gradient(135deg,#0d1710 0%,#070b09 58%,#0c150e 100%);
  color:#f4f7f2;
  box-shadow:var(--gg-master-shadow-dark);
}
body:not(.page-masters):not(.page-marketing-shop) :where(.editorial-hero,.portal-hero){
  min-height:clamp(400px,42vw,610px);
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:clamp(38px,5vw,76px);
}
body:not(.page-masters):not(.page-marketing-shop) :where(.editorial-hero,.portal-hero):before,
body:not(.page-masters):not(.page-marketing-shop) .account-hero-copy:before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.34;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:34px 34px;
  mask-image:linear-gradient(to bottom,black,transparent 82%);
}
body:not(.page-masters):not(.page-marketing-shop) :where(.editorial-hero,.portal-hero)>*{position:relative;z-index:1;}
body:not(.page-masters):not(.page-marketing-shop) :where(.editorial-hero,.portal-hero) h1{
  max-width:1100px;
  margin:14px 0 20px;
  color:#f4f7f2;
  font-size:clamp(46px,6vw,86px);
  line-height:.93;
  letter-spacing:-.06em;
}
body:not(.page-masters):not(.page-marketing-shop) :where(.editorial-hero,.portal-hero)>p{
  max-width:860px;
  color:#cbd7ce;
  font-size:clamp(15px,1.5vw,19px);
  line-height:1.7;
}
body:not(.page-masters):not(.page-marketing-shop) :where(.editorial-hero,.portal-hero) .eyebrow{
  color:var(--gg-master-lime);
  font:900 10px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace;
  letter-spacing:.16em;
}

/* Masters-achtige sectieritmiek voor alle bestaande inhoudstypen. */
body:not(.page-masters):not(.page-marketing-shop) :where(
  .editorial-section,
  .portal-section,
  .shop-section,
  .result-section,
  .home-top10,
  .strain-showcase,
  .gg-news-feed
){
  width:100%;
  margin:0;
  padding:clamp(44px,5vw,78px) clamp(22px,5vw,78px);
  border-bottom:1px solid var(--gg-master-border);
  background:var(--gg-master-canvas);
}
body:not(.page-masters):not(.page-marketing-shop) :where(.editorial-section,.portal-section,.shop-section,.result-section,.home-top10,.strain-showcase,.gg-news-feed):first-child{
  border-radius:var(--gg-master-radius-xl) var(--gg-master-radius-xl) 0 0;
}
body:not(.page-masters):not(.page-marketing-shop) :where(.editorial-section-head,.portal-section-head,.section-head,.strain-showcase-head,.gg-news-head){
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(260px,.65fr);
  gap:24px 42px;
  align-items:end;
  margin:0 0 30px;
}
body:not(.page-masters):not(.page-marketing-shop) :where(.editorial-section-head,.portal-section-head,.section-head,.strain-showcase-head,.gg-news-head) h2{
  margin:9px 0 0;
  max-width:920px;
  font-size:clamp(32px,4.3vw,58px);
  line-height:.98;
  letter-spacing:-.055em;
}
body:not(.page-masters):not(.page-marketing-shop) :where(.editorial-section-head,.portal-section-head,.section-head,.strain-showcase-head,.gg-news-head)>p{
  max-width:560px;
  margin:0;
  line-height:1.68;
}

/* Kaarten: hetzelfde materiaal, radius en hovergedrag als De Masters. */
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,
  .safety-grid>article,
  .legal-country-grid>article,
  .category-count-grid>a,
  .verification-ladder>article,
  .info-card,
  .menu-row,
  .facility-grid>article,
  .producer-grid>article,
  .review-card,
  .review-hub-card,
  .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,
  .account-shell,
  .account-architecture>article,
  .strain-card,
  .gg-news-card
){
  border:1px solid var(--gg-master-border)!important;
  border-radius:var(--gg-master-radius-lg)!important;
  background:var(--gg-master-surface)!important;
  color:var(--gg-master-title);
  box-shadow:var(--gg-master-shadow);
}
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(-4px);
  border-color:color-mix(in srgb,var(--gg-master-lime-deep) 58%,var(--gg-master-border))!important;
  box-shadow:0 24px 60px rgba(22,50,29,.14);
}
html[data-theme="dark"] 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,.safety-grid>article,.legal-country-grid>article,.category-count-grid>a,
  .verification-ladder>article,.info-card,.menu-row,.facility-grid>article,.producer-grid>article,
  .review-card,.review-hub-card,.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,
  .account-shell,.account-architecture>article,.strain-card,.gg-news-card
){
  background:linear-gradient(145deg,#0d130f,#080c09)!important;
  box-shadow:0 18px 42px rgba(0,0,0,.22);
}

/* Grids profiteren nu ook werkelijk van 1440 px. */
@media(min-width:1180px){
  .location-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:18px!important;}
  .editorial-card-grid,
  .safety-grid,
  .legal-country-grid,
  .review-hub-grid,
  .portal-dashboard-grid,
  .portal-following-grid,
  .portal-review-grid,
  .portal-masters-grid,
  .portal-stateweed-grid,
  .portal-subscription-plan-grid,
  .publication-summary-grid,
  .publication-hardening-grid,
  .strain-card-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;}
  .editorial-benefit-grid,
  .editorial-copy-columns,
  .portal-radar-layout,
  .portal-security-layout,
  .portal-verification-architecture{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .info-grid,.facility-grid,.producer-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
}

/* Home wordt een Masters-achtige split hero. */
body:not(.page-masters):not(.page-marketing-shop) .home-map-slide{
  overflow:hidden;
  border:1px solid var(--gg-master-border);
  border-radius:var(--gg-master-radius-xl);
  background:var(--gg-master-surface);
  box-shadow:var(--gg-master-shadow);
}
body:not(.page-masters):not(.page-marketing-shop) .home-search-panel{
  position:relative;
  padding:clamp(30px,4vw,58px)!important;
  background:
    radial-gradient(circle at 10% 0,rgba(169,233,45,.16),transparent 30%),
    linear-gradient(145deg,#0d1710,#060a07)!important;
  color:#f4f7f2;
}
body:not(.page-masters):not(.page-marketing-shop) .home-search-panel :where(h1,h2,h3,p,label,span){color:inherit;}
body:not(.page-masters):not(.page-marketing-shop) .finder.finder-floating label{
  border:1px solid #304039;
  border-radius:13px;
  background:#f8fbf7;
}
body:not(.page-masters):not(.page-marketing-shop) .home-map-shell{min-height:520px;}
@media(min-width:1100px){
  body:not(.page-masters):not(.page-marketing-shop) .home-map-slide{
    display:grid;
    grid-template-columns:minmax(360px,.42fr) minmax(0,.58fr);
  }
  body:not(.page-masters):not(.page-marketing-shop) .home-search-panel{display:flex;flex-direction:column;justify-content:center;}
  body:not(.page-masters):not(.page-marketing-shop) .home-map-shell,
  body:not(.page-masters):not(.page-marketing-shop) .home-map-shell #map{height:100%;min-height:560px;}
}

/* Shopdetail en vaste informatiepanelen. */
.shop-hero{
  overflow:hidden;
  border:1px solid var(--gg-master-border);
  border-radius:var(--gg-master-radius-xl) var(--gg-master-radius-xl) 0 0;
  box-shadow:var(--gg-master-shadow);
}
.shop-hero-media{height:clamp(300px,35vw,520px)!important;}
.shop-hero-content{padding-top:22px!important;padding-bottom:34px!important;}
.shop-title-row h1{font-size:clamp(38px,5vw,66px)!important;letter-spacing:-.055em;}
.shop-tabs{
  border:1px solid var(--gg-master-border);
  border-top:0;
  border-radius:0 0 18px 18px;
  box-shadow:0 14px 34px rgba(25,46,31,.08);
}

/* Knoppen en formuliercontrols worden overal gelijk. */
.primary,
button.primary,
.gg-content-standard button[type="submit"]{
  border:1px solid var(--gg-master-lime-deep)!important;
  border-radius:12px!important;
  background:linear-gradient(135deg,#b9f538,#75ba19)!important;
  color:#071007!important;
  font-weight:900!important;
  box-shadow:0 10px 26px rgba(100,169,24,.16);
}
.ghost,
.locate,
.gg-content-standard button:not(.primary):not([class*="favorite"]):not([class*="toggle"]):not([class*="tab"]){
  border:1px solid color-mix(in srgb,var(--gg-master-lime-deep) 64%,var(--gg-master-border));
  border-radius:12px;
  background:var(--gg-master-surface-soft);
  color:var(--gg-master-lime-deep);
  font-weight:800;
}
html[data-theme="dark"] :where(.ghost,.locate){color:var(--gg-master-lime);}
.gg-content-standard :where(input,select,textarea){
  min-height:48px;
  border:1px solid var(--gg-master-border);
  border-radius:12px;
  outline:0;
  background:var(--gg-master-surface-soft);
  color:var(--gg-master-title);
  font:inherit;
}
.gg-content-standard textarea{min-height:130px;}
.gg-content-standard :where(input,select,textarea):focus{
  border-color:var(--gg-master-lime-deep);
  box-shadow:0 0 0 4px rgba(126,191,33,.14);
}

/* Afbeeldingen en media. */
body:not(.page-masters):not(.page-marketing-shop) .gg-content-standard :where(
  .editorial-page img,
  .portal-section img,
  .shop-section img,
  .strain-card img,
  .review-hub-card img
){
  max-width:100%;
  border-radius:18px;
}
.strain-card{overflow:hidden;}
.strain-card img{border-radius:0!important;}

/* Portaal en account blijven functioneel maar gebruiken hetzelfde materiaal. */
.customer-portal,
.account-page,
.editorial-page{
  width:100%;
  max-width:none;
  margin:0;
  padding:0;
}
.portal-jump-nav{
  margin:18px 0;
  padding:10px;
  border:1px solid var(--gg-master-border);
  border-radius:16px;
  background:var(--gg-master-surface);
  box-shadow:var(--gg-master-shadow);
}
.account-hero{gap:18px!important;}
.account-readiness,
.account-lock-notice{
  border-radius:var(--gg-master-radius-xl)!important;
  box-shadow:var(--gg-master-shadow-dark);
}

/* Nieuws en footer sluiten de pagina af zoals een Masters-hoofdstuk. */
.gg-news-feed{
  border-radius:0 0 var(--gg-master-radius-xl) var(--gg-master-radius-xl);
}
.site-footer{
  display:grid!important;
  grid-template-columns:minmax(0,1.6fr) minmax(280px,.7fr);
  gap:40px;
  margin-top:30px!important;
  margin-bottom:34px;
  padding:clamp(30px,4vw,52px)!important;
  border:1px solid #29352c!important;
  border-radius:var(--gg-master-radius-xl)!important;
  background:
    radial-gradient(circle at 92% 0,rgba(169,233,45,.14),transparent 34%),
    linear-gradient(145deg,#0d1510,#060a07)!important;
  color:#aeb9b0!important;
  box-shadow:var(--gg-master-shadow-dark);
}
.site-footer .footer-intro b,
.site-footer .footer-intro strong{color:#f4f7f2!important;}
.site-footer .footer-intro strong{font-size:clamp(19px,2vw,27px)!important;letter-spacing:-.03em;}
.site-footer .footer-intro p{color:#aeb9b0!important;line-height:1.7;}
.site-footer .footer-links{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px 18px;
  align-content:start;
}
.site-footer .footer-links a{
  margin:0!important;
  padding:8px 0;
  color:#cbd6cd!important;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.site-footer .footer-links a:hover{color:var(--gg-master-lime)!important;}

/* Tablet en mobiel: zelfde ontwerp, zonder horizontale overflow. */
@media(max-width:1179px){
  body:not(.page-masters):not(.page-marketing-shop) :where(.editorial-section-head,.portal-section-head,.section-head,.strain-showcase-head,.gg-news-head){
    grid-template-columns:1fr;
    gap:12px;
  }
  .site-footer{grid-template-columns:1fr!important;}
}
@media(max-width:980px){
  .gg-content-standard{padding:12px;}
  .site-main{overflow:hidden;}
  body:not(.page-masters):not(.page-marketing-shop) :where(.editorial-hero,.portal-hero){
    min-height:0;
    border-radius:20px;
    padding:34px 24px;
  }
  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:42px 22px;
  }
  .home-map-slide,.shop-hero,.shop-tabs{border-radius:20px;}
  .site-footer{width:calc(100% - 24px)!important;margin-left:12px!important;margin-right:12px!important;}
}
@media(max-width:620px){
  .gg-content-standard{padding:8px;}
  body:not(.page-masters):not(.page-marketing-shop) :where(.editorial-hero,.portal-hero) h1{font-size:clamp(39px,12vw,58px);}
  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:34px 16px;
  }
  body:not(.page-masters):not(.page-marketing-shop) :where(.editorial-section-head,.portal-section-head,.section-head,.strain-showcase-head,.gg-news-head) h2{
    font-size:clamp(29px,9vw,42px);
  }
  .site-footer{width:calc(100% - 16px)!important;margin-left:8px!important;margin-right:8px!important;padding:28px 20px!important;}
  .site-footer .footer-links{grid-template-columns:1fr;}
  .portal-jump-nav{overflow-x:auto;scrollbar-width:none;}
}
