/* Geschreven Gedichten – één layoutsysteem voor native, legacy en Studio-pagina's.
 * De buitenste sectie bezit de gutter; binnenste wrappers zijn uitsluitend structuur.
 * Geen globale display:contents en geen wijzigingen aan werkende formuliervelden.
 */
:root{
  --ggw-layout-max:1280px;
  --ggw-layout-gutter:20px;
  --ggw-layout-width:min(var(--ggw-layout-max),calc(100% - (var(--ggw-layout-gutter) * 2)));
  --ggw-layout-gap:clamp(18px,2.2vw,30px);
  --ggw-layout-block-gap:clamp(28px,4vw,56px);
  --ggw-layout-radius:clamp(16px,1.8vw,24px);
  --ggw-layout-surface:var(--ggw-paper,#fffdf9);
  --ggw-layout-border:var(--ggw-line,#e9dfd6);
}
@media(max-width:767px){:root{--ggw-layout-gutter:10px;--ggw-layout-gap:16px;--ggw-layout-block-gap:30px;--ggw-layout-radius:16px}}
html body.ggw-theme{--ggw-container:var(--ggw-layout-max);--vv-layout-max:var(--ggw-layout-max);--vv-layout-gutter:var(--ggw-layout-gutter);--vv-gutter:var(--ggw-layout-gutter)}
html body.ggw-theme,html body.ggw-theme .ggw-site{max-width:100%;min-width:0}
html body.ggw-theme :where(.ggw-page-main,.ggw-layout-main,.site-main,.ggw-system-page,.ggw-editorial-overview){min-width:0;box-sizing:border-box}
/* One owner for the left/right margin, including WordPress's classic templates. */
html body.ggw-theme :is(.ggw-container,.container-studio,.gg37-home-main,.vv-profile-shell.ggw-account-v16){
  width:var(--ggw-layout-width)!important;
  max-width:var(--ggw-layout-max)!important;
  min-width:0!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box!important;
}
/* In a grid/section, inner helpers must not subtract the outer margins again. */
html body.ggw-theme :is(.ggw-container,.container-studio,.ggw-layout-main,.ggw-plugin-page,.ggw-system-page__content,.ggw-content-shell,.vv-profile-shell,.ggw-archive-primary) > :is(.ggw-container,.container-studio,.site-main,.builder-wrapper,.builder-container,.blog-studio-layout,.ggw-layout-main,.ggw-page-main){
  width:100%!important;max-width:100%!important;min-width:0!important;
  margin-inline:0!important;box-sizing:border-box!important;
}
/* A normal main element without its own inner container also gets the same track. */
html body.ggw-theme main:is(.site-main,.gg-rhyme,.gg-contact-page,.gg-policy-page,.ggw-layout--studio){
  width:var(--ggw-layout-width)!important;max-width:var(--ggw-layout-max)!important;
  margin-inline:auto!important;min-width:0!important;box-sizing:border-box!important;
}
html body.ggw-theme main.ggw-layout--theme-studio{width:100%;max-width:100%;min-width:0;margin-inline:0}
html body.ggw-theme .ggw-layout--theme-studio > .vv-theme-landing-page{width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;gap:var(--ggw-layout-gap)!important}
html body.ggw-theme .ggw-layout--theme-studio > .vv-theme-landing-page > :is(.gg44-theme-landing-hero,.gg45-theme-brief,.vv-landing-builder-container,.ggte-wrap,.ggw-generator-advice,.ggte-about-section){
  width:var(--ggw-layout-width)!important;max-width:var(--ggw-layout-max)!important;
  margin-inline:auto!important;min-width:0!important;box-sizing:border-box!important;
}
/* Card interior padding stays on the card: never on its surrounding layout track. */
html body.ggw-theme .vv-theme-landing-page > .gg45-theme-brief{padding:clamp(20px,3vw,38px)!important}
html body.ggw-theme :is(.ggw-page-main,.ggw-layout-main) :is(.ggw-page-main,.ggw-layout-main,.ggw-archive-primary,.ggw-system-page__content,.ggw-page-article,.ggw-entry-content,.ggw-plugin-page){min-width:0;box-sizing:border-box}
html body.ggw-theme .ggw-plugin-page .ggw-entry-content{min-width:0}
/* The old system template used a plain heading; v17 uses the exact same hero as all other pages. */
html body.ggw-theme :is(.ggw-inner-hero,.ggw-hero,.ggw-page-hero,.ggw-archive-hero,.gg-profile-banner,.gg-rhyme-hero,.gg90-hero,.vv-home-hero,.ggw-studio-hero){
  border-radius:var(--ggw-layout-radius)!important;
  box-sizing:border-box!important;
}
html body.ggw-theme .ggw-inner-hero{
  width:var(--ggw-layout-width)!important;
  max-width:var(--ggw-layout-max)!important;
  margin:clamp(10px,2vw,26px) auto 0!important;
  background:linear-gradient(112deg,#f6e9df,#faf2ea 65%,#eee9df)!important;
  border:1px solid #e8d9cd!important;
  overflow:hidden;
}
html body.ggw-theme .ggw-inner-hero > .ggw-inner-hero__inside{
  width:100%!important;max-width:100%!important;min-width:0!important;
  margin:0!important;
  padding:clamp(28px,4.3vw,58px)!important;
}
html body.ggw-theme .ggw-hero{width:var(--ggw-layout-width)!important;max-width:var(--ggw-layout-max)!important;margin-inline:auto!important}
html body.ggw-theme .ggw-page-main > :is(.ggw-container,.ggw-section,.ggw-collection-cta){box-sizing:border-box}
/* The first real content after its hero has a predictable rhythm. */
html body.ggw-theme .ggw-inner-hero + :is(.ggw-container,.ggw-content-shell,.ggw-with-sidebar,.ggw-system-page__content,.ggw-section){margin-top:var(--ggw-layout-gap)!important}
html body.ggw-theme .ggw-content-shell{padding-block:0 var(--ggw-layout-block-gap)!important}
html body.ggw-theme .ggw-content-shell .ggw-entry-content{width:100%!important;max-width:100%!important;margin:0!important}
/* Only prose pages receive paper framing. Already styled module cards keep their own framing. */
html body.ggw-theme .ggw-content-shell.ggw-layout--editorial .ggw-page-article > .ggw-entry-content{
  padding:clamp(20px,3vw,42px)!important;
  border:1px solid var(--ggw-layout-border)!important;
  border-radius:var(--ggw-layout-radius)!important;
  background:var(--ggw-layout-surface)!important;
}
html body.ggw-theme .ggw-content-shell.ggw-layout--editorial .ggw-page-article{background:transparent!important;border:0!important;padding:0!important;box-shadow:none!important}
/* Keep a proper main/aside grid, rather than a sidebar nested in a second 1280px shell. */
html body.ggw-theme .ggw-with-sidebar{gap:var(--ggw-layout-gap)!important;grid-template-columns:minmax(0,1fr) minmax(255px,292px)!important}
html body.ggw-theme .ggw-with-sidebar > :is(.ggw-archive-primary,.ggw-page-article,.ggw-context-sidebar){min-width:0;max-width:100%;box-sizing:border-box}
html body.ggw-theme .ggw-context-sidebar .ggw-side-card{width:100%;max-width:100%;box-sizing:border-box}
/* One Studio track, including all three steps and Downloadatelier. */
html body.ggw-theme :is(.builder-wrapper,.vv-landing-builder-container,.gg36-studio-workspace,.gg37-studio,.gg81-step,.gg81-step3,.gg103-atelier,.gg103-layout,.gg103-main,.gg103-side){min-width:0;box-sizing:border-box}
html body.ggw-theme .ggw-layout--studio > :is(.builder-wrapper,.builder-container),
html body.ggw-theme :is(.ggw-layout--studio,.vv-landing-builder-container) .builder-wrapper,
html body.ggw-theme .builder-wrapper > :is(.builder-container,.gg36-studio-workspace,.gg37-studio),
html body.ggw-theme .vv-landing-builder-container > :is(.builder-wrapper,.gg37-studio,.gg81-step),
html body.ggw-theme .vv-theme-landing-page .builder-wrapper,
html body.ggw-theme .vv-theme-landing-page .ggte-wrap > .ggte-card{
 width:100%!important;max-width:100%!important;min-width:0!important;
 margin-inline:0!important;padding-inline:0!important;
}
html body.ggw-theme .builder-wrapper :is(.gg99-progress,#gg99Progress,.gg81-step,.gg81-step3,.gg103-atelier,.gg103-layout){width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important}
html body.ggw-theme .vv-theme-landing-page #gg99Progress{margin-inline:0!important}
html body.ggw-theme :is(.builder-wrapper,.vv-theme-landing-page) :is(.gg44-studio-shared-hero,.gg44-theme-landing-hero,.vv-home-hero-wrap,.gg90-managed-hero-wrap){width:100%!important;max-width:100%!important;margin-inline:0!important;padding-inline:0!important}
html body.ggw-theme :is(.gg44-studio-shared-hero,.gg44-theme-landing-hero) .ggw-inner-hero{width:100%!important;max-width:100%!important;margin:0!important}
/* No second paper frame around already rounded studio controls/forms. */
html body.ggw-theme .ggw-plugin-page > .ggw-entry-content:has(> .builder-wrapper),
html body.ggw-theme .ggw-plugin-page > .ggw-entry-content:has(> .vv-theme-landing-page){border:0!important;background:transparent!important;box-shadow:none!important;padding:0!important}
/* Member account is itself a content track. Main and menu are columns, not nested cards. */
html body.ggw-theme .ggw-layout--account > .vv-profile-shell,
html body.ggw-theme .vv-profile-shell.ggw-account-v16{
  width:var(--ggw-layout-width)!important;max-width:var(--ggw-layout-max)!important;
  margin:var(--ggw-layout-gap) auto var(--ggw-layout-block-gap)!important;
  padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;
}
html body.ggw-theme .vv-profile-shell.ggw-account-v16 > .gg-profile-layout{
  width:100%!important;max-width:100%!important;min-width:0!important;
  grid-template-columns:minmax(215px,242px) minmax(0,1fr)!important;
  gap:var(--ggw-layout-gap)!important;margin:0!important;padding:0!important;
  border:0!important;background:transparent!important;box-shadow:none!important;
}
html body.ggw-theme .vv-profile-shell.ggw-account-v16 .gg-profile-main{min-width:0!important;max-width:100%!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
html body.ggw-theme .vv-profile-shell.ggw-account-v16 .gg-profile-sidebar{box-sizing:border-box;min-width:0}
html body.ggw-theme .vv-profile-shell.ggw-account-v16 .gg-profile-banner{margin:0 0 var(--ggw-layout-gap)!important}
/* Native WordPress block patterns stay aligned to their parent editor content grid. */
html body.ggw-theme :is(.entry-content,.ggw-entry-content,.wp-block-post-content) :is(.alignwide,.alignfull,.wp-block-group,.wp-block-columns,.ggw-pattern){box-sizing:border-box;max-width:100%}
html body.ggw-theme :is(.entry-content,.ggw-entry-content,.wp-block-post-content) :is(.alignwide,.alignfull){width:100%!important;margin-inline:0!important}
html body.ggw-theme :is(.entry-content,.ggw-entry-content) .wp-block-columns{gap:clamp(14px,2vw,26px)}
html body.ggw-theme :is(.entry-content,.ggw-entry-content) .wp-block-column{min-width:0}
/* Navigation background and its content island follow the exact page track. */
@media(min-width:1071px){
  html body.ggw-theme header.ggw-header{width:var(--ggw-layout-width)!important;max-width:var(--ggw-layout-max)!important}
  html body.ggw-theme header.ggw-header > .ggw-header__inner{width:calc(100% - 32px)!important;max-width:none!important;margin-inline:auto!important}
}
html body.ggw-theme .ggw-footer__inner,html body.ggw-theme .ggw-footer__main,html body.ggw-theme .ggw-footer__bottom{box-sizing:border-box}
/* No fixed-width children may force a whole page wider than the viewport. */
html body.ggw-theme :is(.ggw-page-main,.ggw-layout-main,.vv-profile-shell,.vv-theme-landing-page,.builder-wrapper) :is(img,video,iframe,canvas,textarea,input,select,table){max-width:100%;box-sizing:border-box}
@media(max-width:1100px){
 html body.ggw-theme .ggw-with-sidebar{grid-template-columns:minmax(0,1fr) minmax(220px,260px)!important}
 html body.ggw-theme .vv-profile-shell.ggw-account-v16 > .gg-profile-layout{grid-template-columns:minmax(195px,215px) minmax(0,1fr)!important}
}
@media(max-width:980px){
 html body.ggw-theme .ggw-with-sidebar{display:flex!important;flex-direction:column!important;gap:20px!important}
 html body.ggw-theme .ggw-with-sidebar > :is(.ggw-archive-primary,.ggw-context-sidebar){width:100%!important}
 html body.ggw-theme .vv-profile-shell.ggw-account-v16 > .gg-profile-layout{display:block!important}
 html body.ggw-theme .vv-profile-shell.ggw-account-v16 .gg-profile-sidebar{display:none!important}
 html body.ggw-theme .vv-profile-shell.ggw-account-v16 .gg-profile-mobile-menu{display:block!important}
}
@media(max-width:767px){
 html body.ggw-theme .ggw-inner-hero > .ggw-inner-hero__inside{padding:25px 21px!important;min-height:180px}
 html body.ggw-theme .ggw-inner-hero h1{font-size:clamp(28px,7.5vw,38px)!important}
 html body.ggw-theme .ggw-layout--theme-studio > .vv-theme-landing-page{gap:18px!important}
 html body.ggw-theme .ggw-content-shell.ggw-layout--editorial .ggw-entry-content{padding:20px 17px!important}
 html body.ggw-theme .ggw-entry-content .wp-block-columns{flex-wrap:wrap!important}
 html body.ggw-theme .ggw-entry-content .wp-block-column{flex-basis:100%!important}
 html body.ggw-theme .vv-profile-shell.ggw-account-v16 .gg-profile-banner{padding:24px 20px!important}
 html body.ggw-theme .vv-theme-landing-page .gg45-theme-fields{grid-template-columns:minmax(0,1fr)!important}
 html body.ggw-theme .vv-theme-landing-page .gg45-theme-fields .gg45-field{grid-column:1/-1}
}
@media(max-width:520px){
 html body.ggw-theme .ggw-container .ggw-poem-grid,
 html body.ggw-theme .ggw-container .ggw-blog-grid{grid-template-columns:minmax(0,1fr)}
 html body.ggw-theme .ggw-theme-landing-page .gg45-theme-brief{padding:20px 16px!important}
 html body.ggw-theme :is(.ggw-layout-main,.ggw-page-main,.ggw-with-sidebar) :is(.ggw-btn,.wp-element-button){max-width:100%}
}

/* Full-screen module in a system template owns its inner width, no second site gutter. */
html body.ggw-theme .ggw-system-page__content > :is(.vv-profile-shell,.builder-wrapper,.container-studio,.ggw-page-main,.ggw-layout-main),
html body.ggw-theme .ggw-system-page__content > .builder-wrapper > .builder-container {
 width:100%!important;max-width:100%!important;min-width:0!important;
 margin-inline:0!important;padding-inline:0!important;
}
html body.ggw-theme .ggw-system-page__content > .vv-profile-shell.ggw-account-v16{margin-top:0!important;margin-bottom:var(--ggw-layout-block-gap)!important}
html body.ggw-theme .ggw-system-page--self-heading > .ggw-system-page__content{margin-top:var(--ggw-layout-gap)!important}
/* Legacy .site-main padding was the final source of double studio gutters. */
html body.ggw-theme main.ggw-layout--studio.site-main{padding-inline:0!important}

/* Older page hero helper: its inner .container-studio must not subtract the gutter twice. */
html body.ggw-theme .vv-home-hero-wrap{width:var(--ggw-layout-width)!important;max-width:var(--ggw-layout-max)!important;margin-inline:auto!important;min-width:0!important;box-sizing:border-box}
html body.ggw-theme .vv-home-hero-wrap > .container-studio{width:100%!important;max-width:100%!important;margin-inline:0!important;padding-inline:0!important}
html body.ggw-theme main.site-main > .vv-home-hero-wrap{width:100%!important;max-width:100%!important;margin-inline:0!important}
html body.ggw-theme .vv-home-hero-wrap .site-hero-slanted{width:100%!important;max-width:100%!important;margin:0!important;box-sizing:border-box;border-radius:var(--ggw-layout-radius)!important}
/* Rijmwoordenboek owns one page track: the old shell cannot take another 15px on each side. */
html body.ggw-theme main.gg-rhyme.site-main{padding-inline:0!important}
html body.ggw-theme main.gg-rhyme > .gg-rhyme-shell,
html body.ggw-theme main.gg-rhyme .gg-rhyme-shell{width:100%!important;max-width:100%!important;min-width:0!important;margin-inline:0!important;padding-inline:0!important;box-sizing:border-box!important}
/* Archive and blog templates share the outer grid without padding it a second time. */
html body.ggw-theme main.site-main > .blog-studio-layout,
html body.ggw-theme main.site-main > .container-studio,
html body.ggw-theme .ggw-archive-body > .blog-studio-layout{width:100%!important;max-width:100%!important;margin-inline:0!important;padding-inline:0!important;min-width:0!important}
html body.ggw-theme :is(.blog-studio-layout,.vv-home-primary-layout) > :is(.blog-content-area,.sidebar-studio,.sidebar-area,.widget-area){min-width:0;box-sizing:border-box}
/* Theme overview: replace hardcoded blue borders and 320px columns with responsive warm cards. */
html body.ggw-theme .vv-themes-overview-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))!important;gap:var(--ggw-layout-gap)!important;margin-top:var(--ggw-layout-gap)!important;width:100%!important;max-width:100%!important}
html body.ggw-theme .vv-themes-overview-grid .vv-theme-card{display:flex;flex-direction:column;min-width:0;box-sizing:border-box;padding:clamp(18px,2.5vw,27px);background:var(--ggw-layout-surface);border:1px solid var(--ggw-layout-border);border-radius:var(--ggw-layout-radius);box-shadow:0 12px 30px rgba(87,61,49,.045);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
html body.ggw-theme .vv-theme-card > div:first-child{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}
html body.ggw-theme .vv-theme-card > div:first-child > div{display:grid;place-items:center;width:48px;height:48px;flex:none;border-radius:14px;background:#f4e5dc;color:#ad6855;font-size:20px}
html body.ggw-theme .vv-theme-card > div:first-child > span{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:6px 10px;border-radius:999px;background:#f8efea;color:#a76350;border:1px solid #ecdad0}
html body.ggw-theme .vv-theme-card > span{font-size:12px;font-weight:700;letter-spacing:.055em;text-transform:uppercase;color:#987f72;margin-bottom:9px}
html body.ggw-theme .vv-theme-card h2{font-family:Georgia,'Cormorant Garamond',serif;font-size:clamp(24px,2.3vw,30px);line-height:1.2;font-weight:600;color:#3c332f;margin:0 0 12px}
html body.ggw-theme .vv-theme-card h2 a{color:inherit;text-decoration:none}
html body.ggw-theme .vv-theme-card p{font-size:15px;line-height:1.7;color:#695a51;flex:1;margin:0 0 20px}
html body.ggw-theme .vv-theme-card > div:last-child{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;border-top:1px solid #eadfd8;padding-top:15px}
html body.ggw-theme .vv-theme-card > div:last-child > span{font-size:12px;color:#9b877b}
html body.ggw-theme .vv-theme-card > div:last-child > a{color:#a96351;font-size:14px;font-weight:750;text-decoration:none}
html body.ggw-theme .vv-theme-card :is(a,button):focus-visible{outline:2px solid #a96351;outline-offset:4px}
@media(prefers-reduced-motion:reduce){html body.ggw-theme .vv-theme-card{transition:none!important}}
/* The shared track itself never has inner horizontal padding; only cards do. */
html body.ggw-theme main.site-main.container-studio{padding-inline:0!important}
@media(max-width:980px){html body.ggw-theme main.site-main .blog-studio-layout{display:flex!important;flex-direction:column!important;gap:var(--ggw-layout-gap)!important}}
html body.ggw-theme main.site-main .blog-studio-layout > :is(.blog-content-area,.sidebar-studio,.sidebar-area,.widget-area){min-width:0!important;max-width:100%!important;box-sizing:border-box!important}
@media(max-width:980px){html body.ggw-theme main.site-main .blog-studio-layout > :is(.blog-content-area,.sidebar-studio,.sidebar-area,.widget-area){width:100%!important;flex:0 1 auto!important;margin-inline:0!important}}
