/* Geschreven Gedichten 3.0 — ONE DESIGN SYSTEM, one final frontend layer.
 * Theme owns visual presentation; plugins retain forms, endpoints, access checks and payments.
 * 1280px track, 10px mobile gutters, no nested visual framing.
 */
:root {
 --gg3-max:1280px;
 --gg3-gutter:20px;
 --gg3-track:min(var(--gg3-max),calc(100% - var(--gg3-gutter) - var(--gg3-gutter)));
 --gg3-ink:var(--ggw-ink,#403832);
 --gg3-muted:#756d65;
 --gg3-accent:var(--ggw-accent,#b46957);
 --gg3-accent-hover:var(--ggw-accent-deep,#92513f);
 --gg3-sage:var(--ggw-olive,#687662);
 --gg3-cream:var(--ggw-cream,#fbf7f2);
 --gg3-paper:var(--ggw-paper,#fffdf9);
 --gg3-sand:#f4ede5;
 --gg3-blush:var(--ggw-blush,#f3e0d7);
 --gg3-line:var(--ggw-line,#e9dfd6);
 --gg3-radius:var(--ggw-card-radius,20px);
 --gg3-hero-radius:var(--ggw-hero-radius,26px);
 --gg3-shadow:0 10px 32px rgba(67,49,39,.065);
 --gg3-shadow-hover:0 18px 42px rgba(67,49,39,.11);
 --gg3-gap:clamp(18px,2.4vw,32px);
 --gg3-section:clamp(32px,5vw,68px);
 --ggw-layout-max:var(--gg3-max);
 --ggw-layout-gutter:var(--gg3-gutter);
 --vv-layout-max:var(--gg3-max);
 --vv-layout-gutter:var(--gg3-gutter);
 --vv-content-max:var(--gg3-max);
 --vv-gutter:var(--gg3-gutter);
}
@media(max-width:767px){:root{--gg3-gutter:10px;--gg3-gap:16px;--gg3-section:34px}}
html{scroll-padding-top:95px}
body.ggw-theme{background:var(--gg3-cream);color:var(--gg3-ink);overflow-wrap:break-word}
body.ggw-theme :focus-visible{outline:3px solid var(--gg3-accent)!important;outline-offset:3px}
body.ggw-theme :where(img,video,iframe,svg){max-width:100%}
body.ggw-theme :where(.ggw-site,.ggw-page-main,.ggw-article-main,.ggw-archive-main,.ggw-poem-single,main,article,aside,section){min-width:0}
/* Shared track, not an extra visible box. */
body.ggw-theme :is(.ggw-container,.container-studio,.single-page-container,.ggw-content-shell,.ggw-blog-single-layout,.ggw-single-layout,.ggw-with-sidebar,.ggw-archive-body,.ggw-layout--account .vv-profile-shell,.gg37-home-main,.vv-home-main){
 box-sizing:border-box;max-width:var(--gg3-max);min-width:0;
}
body.ggw-theme :is(.ggw-container,.container-studio,.ggw-archive-body,.ggw-blog-single-layout,.ggw-single-layout,.ggw-with-sidebar,.ggw-layout--account .vv-profile-shell){
 width:var(--gg3-track);margin-left:auto;margin-right:auto;
}
/* Inner tracks do not repeat the outer side gutter. Do not collapse true card padding. */
body.ggw-theme :is(.ggw-container,.container-studio,.ggw-content-shell,.ggw-plugin-page,.ggw-archive-primary,.vv-profile-shell) > :is(.ggw-container,.container-studio,.ggw-content-shell,.ggw-archive-primary,.builder-wrapper,.builder-container,.ggw-page-main,.blog-studio-layout){
 width:100%;max-width:100%;margin-inline:0;min-width:0;
}
body.ggw-theme .ggw-page-main>.ggw-container:not(.ggw-hero):not(.ggw-inner-hero),
body.ggw-theme .ggw-article-main>.ggw-with-sidebar,
body.ggw-theme .ggw-poem-single>.ggw-container>.ggw-with-sidebar { margin-top:var(--gg3-gap) }
body.ggw-theme .ggw-page-main>.ggw-container + .ggw-container {margin-top:var(--gg3-section)}
/* One hero family, same composition everywhere; content differs, card style does not. */
body.ggw-theme :is(.ggw-hero,.ggw-inner-hero,.ggw-page-hero,.ggw-archive-hero,.gg90-hero,.gg-profile-banner,.gg-rhyme-hero,.vv-home-hero){
 box-sizing:border-box;border-radius:var(--gg3-hero-radius)!important;overflow:hidden;
 background:linear-gradient(112deg,#f8eee6 0%,#f7e9e0 53%,#eee8db 100%);
 border:1px solid rgba(175,134,111,.17);
}
body.ggw-theme .ggw-hero{width:var(--gg3-track);max-width:var(--gg3-max);margin:clamp(16px,2.2vw,30px) auto 0}
body.ggw-theme .ggw-hero--inner{min-height:clamp(270px,29vw,385px)}
body.ggw-theme .ggw-hero--home{min-height:clamp(380px,41vw,560px)}
body.ggw-theme .ggw-hero--inner .ggw-hero__copy{padding:clamp(29px,4vw,58px) clamp(25px,5vw,65px)}
body.ggw-theme .ggw-hero__copy h1{font-size:clamp(2.3rem,4.4vw,3.9rem);line-height:1.13;letter-spacing:-.035em;max-width:18ch;color:#463930}
body.ggw-theme .ggw-hero__copy>p{color:#77655a;font-size:clamp(15px,1.25vw,17px);max-width:57ch;line-height:1.75}
body.ggw-theme .ggw-hero--inner .ggw-hero__visual{min-height:260px}
body.ggw-theme .ggw-hero--inner .ggw-hero__visual>img{object-fit:contain}
body.ggw-theme .ggw-hero__actions{display:flex;flex-wrap:wrap;gap:12px}
body.ggw-theme .ggw-header{background:rgba(251,247,242,.97)!important;border-bottom-color:transparent!important}
body.ggw-theme .ggw-header__inner{width:var(--gg3-track);max-width:var(--gg3-max)}
body.ggw-theme .ggw-mega-panel{background:var(--gg3-paper);border:1px solid var(--gg3-line);border-radius:20px;box-shadow:var(--gg3-shadow-hover)}
body.ggw-theme .ggw-mobile-nav{background:var(--gg3-paper)}
/* Typography: consistent scale across cards, templates, tools and studio. */
body.ggw-theme :is(.ggw-section-header h2,.ggw-section h2,.ggw-overview-explore h2,.ggw-entry-content h2,.ggw-article h2,.ggw-archive-primary h2,.ggw-side-card h2){
 font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.18;letter-spacing:-.036em;color:var(--gg3-ink)}
body.ggw-theme :is(.ggw-section-header h3,.ggw-section h3,.ggw-entry-content h3,.ggw-article h3,.ggw-side-card h3){
 font-size:clamp(1.2rem,2vw,1.6rem);line-height:1.3;color:var(--gg3-ink)}
body.ggw-theme :is(.ggw-eyebrow,.ggw-side-card__label,.ggw-section-kicker,.vv-section-kicker){color:var(--gg3-accent-hover);letter-spacing:.14em}
body.ggw-theme :is(.ggw-prose,.ggw-entry-content,.entry-content){line-height:1.78}
body.ggw-theme :is(.ggw-entry-content,.entry-content) > :is(p,ul,ol,blockquote) + :is(p,ul,ol,blockquote){margin-top:1.1em}
body.ggw-theme .ggw-entry-content :is(h2,h3){margin-block:1.5em .6em}
/* Cards and sidebars share radius, border, soft elevation. No extra wrapper surface. */
body.ggw-theme :is(.ggw-poem-card,.ggw-blog-card,.ggw-topic,.ggw-studio-topic,.ggw-side-card,.ggw-result-card,.ggw-article,.ggw-poem-paper,.ggw-author-strip,.ggw-empty,.ggw-content-shell .ggw-page-article,.ggw-collection-cta,.ggw-overview-explore,.ggw-system-page__notice){
 border-radius:var(--gg3-radius);border:1px solid var(--gg3-line);
 background:var(--gg3-paper);box-shadow:var(--gg3-shadow);box-sizing:border-box;min-width:0;
}
body.ggw-theme :is(.ggw-poem-card,.ggw-blog-card,.ggw-topic,.ggw-studio-topic,.ggw-side-card,.ggw-result-card){
 transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease;
}
@media(hover:hover){body.ggw-theme :is(.ggw-poem-card,.ggw-blog-card,.ggw-topic,.ggw-studio-topic,.ggw-result-card):hover{
 transform:translateY(-3px);box-shadow:var(--gg3-shadow-hover);border-color:#d8c0b3;}}
body.ggw-theme :is(.ggw-poem-grid,.ggw-blog-grid,.ggw-topic-grid,.ggw-topic-studio-grid,.ggw-archive-grid,.ggw-card-grid){gap:var(--gg3-gap);min-width:0}
body.ggw-theme .ggw-poem-card__body,body.ggw-theme .ggw-blog-card__body{padding:clamp(19px,2.4vw,30px)}
body.ggw-theme .ggw-with-sidebar{display:grid;grid-template-columns:minmax(0,1fr) minmax(235px,292px);gap:var(--gg3-gap);align-items:start}
body.ggw-theme .ggw-with-sidebar>.ggw-archive-primary{min-width:0;max-width:100%;margin:0}
body.ggw-theme .ggw-context-sidebar{min-width:0;width:100%;max-width:100%}
body.ggw-theme .ggw-context-sidebar :is(.ggw-side-card,.widget){margin-bottom:var(--gg3-gap)}
body.ggw-theme .ggw-context-sidebar :is(.ggw-side-term,.ggw-side-card a){text-decoration:none}
body.ggw-theme .ggw-content-shell.ggw-layout--editorial{background:transparent;border:0;box-shadow:none;padding:0}
body.ggw-theme .ggw-content-shell.ggw-layout--editorial .ggw-page-article{width:100%;margin:0}
body.ggw-theme .ggw-content-shell.ggw-layout--editorial .ggw-page-article>.ggw-entry-content{padding:clamp(22px,3.2vw,43px)}
/* Individual poems: preserve authored line breaks without adding artificial blank stanzas. */
body.ggw-theme .ggw-poem-content{font-size:clamp(18px,1.5vw,21px);line-height:1.75;color:#493d36;overflow-wrap:break-word}
body.ggw-theme .ggw-poem-content p{margin:0 0 .85em}
body.ggw-theme .ggw-poem-content p:last-child{margin-bottom:0}
body.ggw-theme .ggw-poem-actions-wrap,body.ggw-theme .ggw-comments-area{max-width:100%;min-width:0;margin:var(--gg3-gap) 0}
body.ggw-theme .ggw-article__image{overflow:hidden;border-radius:calc(var(--gg3-radius) - 4px)}
body.ggw-theme .ggw-article__image img{width:100%;object-fit:cover;max-height:520px}
/* Studio and theme generator: one card per actual content component. */
body.ggw-theme :is(.ggw-plugin-page,.ggw-system-page__content,.vv-theme-landing-page,.ggw-v21-studio-theme,.ggw-layout--studio){background:transparent;box-shadow:none;border:0;min-width:0}
body.ggw-theme .ggw-system-page__content{margin-top:var(--gg3-gap)}
body.ggw-theme :is(.builder-wrapper,.builder-container,.vv-landing-builder-container,.ggw-quick-generator,.ggw-generator-information,.ggw-generator-advice,.ggw-quick-result){min-width:0;max-width:100%;box-sizing:border-box}
body.ggw-theme .ggw-v21-studio-theme >.vv-theme-landing-page{padding:0;background:transparent;border:0;box-shadow:none}
body.ggw-theme .ggw-v21-studio-theme .ggw-generator-information{border:0!important;background:transparent!important;padding:0!important;box-shadow:none!important}
body.ggw-theme .ggw-v21-studio-theme .ggw-generator-information>.ggte-wrap{display:grid;gap:var(--gg3-gap);background:transparent;border:0;padding:0;box-shadow:none}
body.ggw-theme .ggw-v21-studio-theme .ggw-generator-information .ggte-card,
body.ggw-theme .ggw-v21-studio-theme .ggw-generator-information .ggte-join,
body.ggw-theme .ggw-v21-studio-theme .ggw-generator-advice,
body.ggw-theme .ggw-v21-studio-theme .ggw-quick-result,
body.ggw-theme .ggw-v21-studio-theme .ggw-quick-generator{
 border:1px solid var(--gg3-line);border-radius:var(--gg3-radius);box-shadow:var(--gg3-shadow);background:var(--gg3-paper)}
body.ggw-theme .ggw-v21-studio-theme .ggw-quick-generator>.gg45-theme-brief{background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;margin:0!important}
body.ggw-theme .ggw-v21-studio-theme .ggte-join{background:linear-gradient(120deg,#fffaf3,#f2e3d8)!important}
body.ggw-theme .ggw-v21-studio-theme .ggte-about-layout{min-width:0}
body.ggw-theme .ggw-v21-studio-theme .ggte-about-media{border-radius:16px;overflow:hidden}
/* Shared forms, actionable defaults; native field spacing can stay module-specific. */
body.ggw-theme :is(.ggw-page-main,.ggw-article-main,.ggw-poem-single,.vv-profile-shell,.ggw-system-page,.ggw-v21-studio-theme) :is(input:not([type=checkbox]):not([type=radio]),textarea,select){
 min-width:0;max-width:100%;border-radius:12px;border-color:#dbccc1;background:#fffdfa;color:var(--gg3-ink)}
body.ggw-theme :is(.ggw-page-main,.ggw-article-main,.ggw-poem-single,.vv-profile-shell,.ggw-system-page,.ggw-v21-studio-theme) :is(input,textarea,select):focus-visible{outline-color:var(--gg3-accent)}
body.ggw-theme :is(.ggw-btn,.ggw-btn--primary,.ggw-quick-generator__submit,.ggw-mobile-nav__cta,.ggw-rhyme-drop button){
 border-radius:12px;min-height:44px;transition:background-color .18s ease,box-shadow .18s ease,transform .18s ease}
body.ggw-theme :is(.ggw-btn--primary,.ggw-quick-generator__submit){background:var(--gg3-accent);color:#fff;border-color:var(--gg3-accent)}
body.ggw-theme :is(.ggw-btn--primary,.ggw-quick-generator__submit):hover{background:var(--gg3-accent-hover);border-color:var(--gg3-accent-hover)}
/* Member profile and community: visual unity, separate plugin behavior. */
body.ggw-theme .ggw-layout--account>.vv-profile-shell{width:var(--gg3-track);max-width:var(--gg3-max);padding:0;background:transparent;border:0;box-shadow:none}
body.ggw-theme .gg-profile-layout{display:grid;grid-template-columns:minmax(210px,250px) minmax(0,1fr);gap:var(--gg3-gap);align-items:start}
body.ggw-theme .gg-profile-sidebar{width:100%;min-width:0;border:1px solid var(--gg3-line);border-radius:var(--gg3-radius);background:var(--gg3-paper);box-shadow:var(--gg3-shadow)}
body.ggw-theme :is(.gg-profile-main,.ggdc-dashboard,.ggdc-content,.ggdc-page,.gg-community-page,.ggdc-wrap){min-width:0;max-width:100%;box-sizing:border-box}
body.ggw-theme :is(.gg-profile-main,.ggdc-dashboard,.ggdc-content,.ggdc-page,.gg-community-page) :is(.vv-profile-metrics>*,.ggdc-card,.ggdc-panel,.gg-community-card){border-color:var(--gg3-line);border-radius:var(--gg3-radius);background:var(--gg3-paper);box-shadow:var(--gg3-shadow)}
body.ggw-theme :is(.gg-profile-sidebar,.ggdc-sidebar) :is(a,button){font-weight:400}
body.ggw-theme .ggw-system-page--self-heading .ggw-system-page__content{margin-top:var(--gg3-gap)}
/* Popups: unified warm surfaces, bottom-right positioning for small notices. */
body.ggw-theme :is(.gg-popup-card,.ggw-login-modal__dialog,.ggw-modal__dialog,.ggw-cookie-notice,.gg-cookie-notice,.ggw-toast){border:1px solid var(--gg3-line);border-radius:var(--gg3-radius);background:var(--gg3-paper);box-shadow:var(--gg3-shadow-hover)}
body.ggw-theme :is(.ggw-cookie-notice,.gg-cookie-notice,.ggw-toast){max-width:min(440px,calc(100vw - 20px))}
/* WordPress blocks share the same components, preserving semantics and content. */
body.ggw-theme :is(.wp-block-group,.wp-block-columns,.wp-block-cover,.wp-block-media-text,.wp-block-query){max-width:100%;box-sizing:border-box}
body.ggw-theme .entry-content :is(.wp-block-group.is-style-card,.wp-block-quote.is-style-card){background:var(--gg3-paper);padding:clamp(22px,3vw,40px);border:1px solid var(--gg3-line);border-radius:var(--gg3-radius);box-shadow:var(--gg3-shadow)}
body.ggw-theme .entry-content .wp-block-button__link{border-radius:12px;background:var(--gg3-accent);color:#fff;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
body.ggw-theme .entry-content .wp-block-button__link:hover{background:var(--gg3-accent-hover)}
body.ggw-theme .ggw-footer{margin-top:var(--gg3-section);background:var(--gg3-sand)}
@media(max-width:1020px){
 body.ggw-theme .ggw-with-sidebar{grid-template-columns:minmax(0,1fr)}
 body.ggw-theme .ggw-context-sidebar{width:100%}
 body.ggw-theme .gg-profile-layout{grid-template-columns:minmax(0,1fr)}
 body.ggw-theme .ggw-hero{grid-template-columns:minmax(0,1fr)}
 body.ggw-theme .ggw-hero--inner .ggw-hero__visual{display:none}
}
@media(max-width:767px){
 body.ggw-theme .ggw-header__inner{width:calc(100% - 40px)}
 body.ggw-theme .ggw-hero{width:var(--gg3-track);margin-top:12px}
 body.ggw-theme .ggw-hero--home,body.ggw-theme .ggw-hero--inner{min-height:0}
 body.ggw-theme .ggw-hero__copy,body.ggw-theme .ggw-hero--inner .ggw-hero__copy{padding:30px 22px}
 body.ggw-theme .ggw-hero__copy h1{font-size:clamp(30px,8vw,45px)}
 body.ggw-theme :is(.ggw-poem-grid,.ggw-blog-grid,.ggw-topic-studio-grid,.ggw-archive-grid){grid-template-columns:minmax(0,1fr)}
 body.ggw-theme .ggw-content-shell.ggw-layout--editorial .ggw-page-article>.ggw-entry-content{padding:23px 18px}
 body.ggw-theme .ggw-poem-paper{padding:clamp(22px,5vw,32px)}
 body.ggw-theme :is(.ggw-poem-actions-wrap,.ggw-author-strip,.ggw-comments-area){width:100%;max-width:100%}
 body.ggw-theme .ggw-page-main :is(input:not([type=checkbox]):not([type=radio]),select,textarea){max-width:100%}
 body.ggw-theme .ggw-v21-studio-theme .ggte-about-layout{grid-template-columns:minmax(0,1fr)}
}
@media(prefers-reduced-motion:reduce){body.ggw-theme *,body.ggw-theme *::before,body.ggw-theme *::after{transition-duration:0s!important;animation-duration:0s!important;scroll-behavior:auto!important}}

/* 3.0.1 CRITICAL: historic overlays must not override the native hidden state.
   The popup appears only following the user's explicit action; do not depend on JS for initial hiding. */
html body.ggw-theme #vvReportModal[hidden],
html body.ggw-theme #ggPoemReportDialog[hidden],
html body.ggw-theme .gg-report-dialog[hidden],
html body.ggw-theme .vers-modal-backdrop.gg-popup-legacy[hidden]{display:none!important;visibility:hidden!important;pointer-events:none!important;}
