
:root{
  --ggg-green:#0f5f3d;--ggg-green-dark:#073b29;--ggg-green-2:#2f7b4f;--ggg-green-soft:#eaf5ef;
  --ggg-orange:#d9662f;--ggg-yellow:#f0b429;--ggg-blue:#2c6fb7;--ggg-cream:#fbf7ea;--ggg-paper:#fffdf7;--ggg-white:#fff;
  --ggg-text:#1f2d26;--ggg-muted:#63736b;--ggg-border:#dfe8df;--ggg-border-strong:#abc8b2;
  --ggg-shadow:0 18px 48px rgba(15,95,61,.11);--ggg-shadow-soft:0 10px 28px rgba(15,95,61,.08);
  --ggg-radius:22px;--ggg-radius-lg:32px;--ggg-max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ggg-text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Hiragino Sans","Noto Sans JP","Yu Gothic",sans-serif;background:var(--ggg-cream);line-height:1.8;letter-spacing:.02em}
img{max-width:100%;height:auto;display:block}a{color:inherit}.ggg-v4-container,.ggg-container{width:min(var(--ggg-max),calc(100% - 48px));margin-inline:auto}.ggg-v4-main{position:relative;overflow:hidden}.ggg-v4-main:before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(255,253,247,.7),transparent 18%,transparent 82%,rgba(255,253,247,.7));z-index:-1}
.ggg-side-ornament{position:fixed;top:84px;bottom:0;width:135px;background-size:contain;background-repeat:repeat-y;opacity:.75;pointer-events:none;z-index:-1}.ggg-side-ornament--left{left:0;background-image:url("../design/webp/ggg-ornament-side-river-forest-left.webp")}.ggg-side-ornament--right{right:0;background-image:url("../design/webp/ggg-ornament-side-river-forest-right.webp")}
.ggg-v4-header{position:sticky;top:0;z-index:100;background:rgba(255,253,247,.94);border-bottom:1px solid rgba(15,95,61,.12);backdrop-filter:blur(16px)}body.admin-bar .ggg-v4-header{top:32px}.ggg-v4-header__inner{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:22px}.ggg-v4-brand{text-decoration:none;display:flex;flex-direction:column;gap:0}.ggg-v4-brand img{width:190px;height:auto}.ggg-v4-brand small{font-size:11px;color:var(--ggg-muted);font-weight:800;margin-left:45px;margin-top:-6px}.ggg-v4-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:18px;align-items:center}.ggg-v4-nav a{text-decoration:none;font-size:13px;font-weight:900;color:var(--ggg-green-dark);display:flex;align-items:center;gap:6px;padding:8px 4px;border-bottom:2px solid transparent}.ggg-v4-nav a:hover{border-color:var(--ggg-green);opacity:1}.ggg-nav-icon{width:22px;height:22px;object-fit:contain}.ggg-v4-header-actions{display:flex;align-items:center;gap:10px}.ggg-v4-header-actions a,.ggg-menu-toggle{border:0;background:transparent;text-decoration:none;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10px;font-weight:800;color:#17251d}.ggg-v4-header-icon{width:25px;height:25px;object-fit:contain}.ggg-menu-toggle{cursor:pointer}
.ggg-v4-section{margin:88px 0}.ggg-v4-section-head{display:flex;align-items:end;justify-content:center;gap:24px;text-align:center;margin-bottom:30px;position:relative}.ggg-v4-section-head h2{font-size:30px;letter-spacing:.12em;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;margin:0}.ggg-v4-section-head h2:before,.ggg-v4-section-head h2:after{content:"";display:inline-block;width:28px;height:22px;background:url("../design/svg/ggg-ornament-section-title-left.svg") center/contain no-repeat;margin:0 10px -3px}.ggg-v4-section-head h2:after{background-image:url("../design/svg/ggg-ornament-section-title-right.svg")}.ggg-v4-eyebrow{font-size:12px;color:var(--ggg-green);font-weight:900;margin:0 0 4px}.ggg-v4-text-link{position:absolute;right:0;bottom:4px;text-decoration:none;color:var(--ggg-orange);font-weight:900;font-size:14px}.ggg-v4-text-link span{margin-left:8px}.ggg-v4-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 24px;border-radius:999px;background:linear-gradient(135deg,var(--ggg-green),#1f7549);color:#fff;text-decoration:none;font-weight:900;border:1px solid transparent;box-shadow:0 10px 20px rgba(15,95,61,.14)}.ggg-v4-button--ghost{background:#fff;color:var(--ggg-green);border-color:var(--ggg-green);box-shadow:none}.ggg-v4-button--orange{background:linear-gradient(135deg,#cf5f2e,#e07c37)}.ggg-v4-button--yellow{background:linear-gradient(135deg,#e1a31b,#efbd2c);color:#173b2a}
.ggg-v4-pill,.ggg-v4-mini-badge,.ggg-badge{display:inline-flex;align-items:center;gap:5px;background:var(--ggg-green);color:#fff;font-weight:900;border-radius:999px;padding:5px 12px;font-size:12px;text-decoration:none}.ggg-v4-mini-badge{background:#eaf3e9;color:var(--ggg-green-dark);padding:4px 9px}.ggg-chip,.ggg-v4-chip-row a,.ggg-v4-chip-row span{display:inline-flex;background:#f1f5ed;border:1px solid #dbe7d8;border-radius:999px;padding:4px 9px;text-decoration:none;color:#385047;font-size:12px;font-weight:800;margin:3px}.ggg-v4-chip-row{display:flex;flex-wrap:wrap;gap:4px;margin:12px 0}
.ggg-v4-home-hero{position:relative;padding:74px 0 60px}.ggg-v4-home-hero__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:54px;align-items:center}.ggg-v4-kicker{font-weight:900;color:var(--ggg-green);margin:0 0 20px}.ggg-v4-home-hero h1{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:54px;line-height:1.35;letter-spacing:.08em;margin:0 0 22px}.ggg-v4-home-hero h1 span{color:var(--ggg-green);font-weight:900}.ggg-v4-home-hero p{font-weight:700;color:#3e4c45}.ggg-v4-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:26px}.ggg-v4-hero-collage{position:relative;min-height:470px}.ggg-v4-hero-map{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:40px;opacity:.72}.ggg-v4-polaroids{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:end;padding:70px 30px}.ggg-v4-polaroids figure{margin:0;background:#fff;padding:12px 12px 38px;border-radius:12px;box-shadow:0 18px 44px rgba(0,0,0,.16);transform:rotate(-4deg)}.ggg-v4-polaroids figure:nth-child(2){transform:rotate(4deg);margin-top:34px}.ggg-v4-polaroids figure:nth-child(3){transform:rotate(-2deg);margin-top:70px}.ggg-v4-polaroids img{width:100%;height:250px;object-fit:cover;border-radius:8px}.ggg-v4-polaroids figcaption{text-align:center;font-weight:900;margin-top:8px}
.ggg-v4-nav-cards{display:grid;grid-template-columns:repeat(5,1fr);gap:26px}.ggg-v4-nav-cards a{min-height:190px;background:rgba(255,253,247,.92);border:2px solid var(--ggg-border-strong);border-radius:18px;text-align:center;text-decoration:none;padding:28px 18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;box-shadow:var(--ggg-shadow-soft)}.ggg-v4-nav-cards img{width:58px;height:58px}.ggg-v4-nav-cards strong{font-size:17px}.ggg-v4-nav-cards span{font-size:13px;color:var(--ggg-muted);font-weight:700}.ggg-v4-purpose-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:18px}.ggg-v4-purpose-grid a{background:#fffdf7;border:1px solid var(--ggg-border-strong);border-radius:18px;min-height:140px;text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:18px;text-align:center;box-shadow:var(--ggg-shadow-soft)}.ggg-v4-purpose-grid img{width:46px;height:46px}.ggg-v4-area-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:20px}.ggg-v4-area-grid a{background:#fff;border:1px solid var(--ggg-border);border-radius:18px;padding:14px;text-decoration:none;box-shadow:var(--ggg-shadow-soft)}.ggg-v4-area-grid img{aspect-ratio:3/2;object-fit:cover;border-radius:12px;margin-bottom:10px}.ggg-v4-area-grid strong{display:block;font-size:20px;color:var(--ggg-green-dark)}.ggg-v4-area-grid span{font-size:12px;color:var(--ggg-muted)}
.ggg-v4-card-row{display:grid;grid-template-columns:repeat(5,1fr);gap:20px}.ggg-v4-grid{display:grid;gap:22px}.ggg-v4-grid--3{grid-template-columns:repeat(3,1fr)}.ggg-v4-grid--karuta{grid-template-columns:repeat(5,1fr)}.ggg-v4-karuta-row{display:grid;grid-template-columns:repeat(5,1fr);gap:28px}.ggg-v4-card,.ggg-v4-static-card,.ggg-v4-karuta-card,.ggg-v4-static-karuta,.ggg-v4-static-course,.ggg-v4-article-card{background:#fff;border:1px solid var(--ggg-border);border-radius:18px;box-shadow:var(--ggg-shadow-soft);overflow:hidden}.ggg-v4-card a,.ggg-v4-karuta-card a,.ggg-v4-article-card a{text-decoration:none;display:block;height:100%}.ggg-v4-card figure,.ggg-v4-static-card figure{margin:0}.ggg-v4-card figure img,.ggg-v4-static-card>img{width:100%;aspect-ratio:3/2;object-fit:cover}.ggg-v4-card__body,.ggg-v4-static-card{padding:14px}.ggg-v4-card h3,.ggg-v4-static-card h3{margin:8px 0 6px;font-size:17px;line-height:1.45}.ggg-v4-card p,.ggg-v4-static-card p{font-size:13px;color:#4f6258}.ggg-v4-karuta-card a,.ggg-v4-static-karuta{padding:12px;text-align:center}.ggg-v4-karuta-card figure{margin:0}.ggg-v4-karuta-card img,.ggg-v4-static-karuta img{width:100%;aspect-ratio:9/14;object-fit:cover;border-radius:10px;border:2px solid #173b2a}.ggg-v4-karuta-card h3,.ggg-v4-static-karuta strong{display:block;margin:10px 0 4px;font-size:15px}.ggg-v4-static-course{padding:18px}.ggg-v4-static-course img{width:100%;height:80px;object-fit:cover;border-radius:12px;margin-top:10px}.ggg-v4-mini-timeline{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:800;color:var(--ggg-green);margin:10px 0}.ggg-v4-mini-timeline i{flex:1;height:1px;background:var(--ggg-border)}
.ggg-v4-info-panels{display:grid;grid-template-columns:1fr 1fr;gap:28px}.ggg-v4-info-panels article{background:#fff;border:1px solid var(--ggg-border);border-radius:24px;padding:28px;min-height:220px;box-shadow:var(--ggg-shadow-soft)}.ggg-v4-info-panels img{max-height:120px;margin-left:auto}
.ggg-v4-news-list{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.ggg-v4-news-list article,.ggg-v4-article-card a{display:flex;gap:14px;align-items:center;background:#fff;border:1px solid var(--ggg-border);border-radius:18px;padding:12px;text-decoration:none}.ggg-v4-news-list img,.ggg-v4-article-card img{width:110px;height:72px;object-fit:cover;border-radius:12px}.ggg-v4-news-list h3,.ggg-v4-article-card h3{font-size:15px;margin:0 0 6px}.ggg-v4-news-list time,.ggg-v4-article-card time{color:var(--ggg-muted);font-size:12px}
.ggg-v4-archive-hero{display:grid;grid-template-columns:.9fr 1.1fr;gap:42px;align-items:center;margin:58px 0 60px}.ggg-v4-archive-hero h1{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:46px;line-height:1.3;margin:14px 0}.ggg-v4-archive-hero__text p:not(.ggg-v4-pill){font-weight:700;color:#43534a}.ggg-v4-archive-hero figure{margin:0}.ggg-v4-archive-hero figure img{width:100%;height:330px;object-fit:cover;border-radius:32px}.ggg-v4-filter-panel{background:rgba(255,253,247,.92);border:1px solid var(--ggg-border);border-radius:22px;padding:24px;box-shadow:var(--ggg-shadow-soft);margin-bottom:34px}.ggg-v4-filter-panel form{display:flex;gap:12px}.ggg-v4-filter-panel input[type=search]{flex:1;min-height:48px;border:1px solid var(--ggg-border-strong);border-radius:999px;padding:0 18px;font:inherit}.ggg-v4-filter-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.ggg-v4-filter-chips a{background:#fff;border:1px solid var(--ggg-border);border-radius:999px;padding:9px 15px;text-decoration:none;font-weight:800}.ggg-v4-archive-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:32px;align-items:start}.ggg-v4-sidebar{position:sticky;top:108px}.ggg-archive-tools,.ggg-taxonomy-links,.ggg-cta-box{background:#fff;border:1px solid var(--ggg-border);border-radius:18px;padding:20px;margin-bottom:22px;box-shadow:var(--ggg-shadow-soft)}.ggg-taxonomy-links a,.ggg-purpose-mini-links a{display:inline-flex;margin:4px;padding:7px 10px;border-radius:999px;background:#f3f7f1;text-decoration:none;font-size:12px;font-weight:800}.ggg-v4-course-list{display:grid;gap:18px}.ggg-v4-course-list .ggg-v4-card a{display:grid;grid-template-columns:230px 1fr;gap:18px}.ggg-v4-search-list{display:grid;gap:18px}.ggg-v4-search-list .ggg-v4-card a,.ggg-v4-search-list .ggg-v4-karuta-card a,.ggg-v4-search-list .ggg-v4-article-card a{display:grid;grid-template-columns:220px 1fr;align-items:center}.ggg-v4-search-list .ggg-v4-karuta-card figure{padding:12px}.ggg-v4-search-hero{text-align:center;margin:70px 0 42px;background:linear-gradient(180deg,rgba(255,253,247,.8),rgba(255,253,247,.95)),url("../design/webp/ggg-hero-bg-watercolor-map.webp") center/cover;border-radius:34px;padding:58px 20px}.ggg-v4-search-hero h1{font-size:44px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif}.search-form{display:flex;gap:10px;max-width:760px;margin:24px auto}.search-form input[type=search]{flex:1;min-height:50px;border-radius:999px;border:1px solid var(--ggg-border-strong);padding:0 18px}.search-form input[type=submit]{border:0;border-radius:999px;background:var(--ggg-green);color:#fff;padding:0 24px;font-weight:900}
.ggg-v4-detail{margin:38px 0 70px}.ggg-v4-detail-hero{display:grid;grid-template-columns:1fr 1fr;gap:34px;align-items:center;margin:26px 0 28px}.ggg-v4-detail-hero--media .ggg-v4-detail-hero__image>img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:18px}.ggg-v4-gallery-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}.ggg-v4-gallery-strip img{aspect-ratio:3/2;object-fit:cover;border-radius:10px}.ggg-v4-detail-hero__text h1,.ggg-v4-detail-hero--karuta h1{font-size:42px;line-height:1.28;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;margin:14px 0}.ggg-v4-info-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--ggg-border);border-radius:20px;overflow:hidden;background:#fff;margin:28px 0}.ggg-v4-info-grid div{padding:18px;border-right:1px solid var(--ggg-border);border-bottom:1px solid var(--ggg-border)}.ggg-v4-info-grid span{display:block;color:var(--ggg-muted);font-size:12px;font-weight:900}.ggg-v4-info-grid strong,.ggg-v4-info-grid a{font-weight:900;text-decoration:none}.ggg-v4-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:24px;align-items:start}.ggg-v4-panel{background:#fff;border:1px solid var(--ggg-border);border-radius:22px;padding:26px;margin-bottom:24px;box-shadow:var(--ggg-shadow-soft)}.ggg-v4-panel h2{font-size:24px;margin:0 0 20px;color:var(--ggg-green-dark)}.ggg-v4-highlight-list{display:grid;gap:16px}.ggg-v4-highlight-list article{display:grid;grid-template-columns:170px 1fr;gap:18px}.ggg-v4-highlight-list img{aspect-ratio:3/2;object-fit:cover;border-radius:12px}.ggg-v4-access-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.ggg-v4-map-placeholder{margin:0;min-height:240px;border-radius:16px;background:linear-gradient(135deg,#e8f0e4,#f5ead4);display:grid;place-items:center;text-align:center;color:var(--ggg-green)}.ggg-v4-map-placeholder span{font-size:38px;font-weight:900}.ggg-v4-side-panel{position:relative;overflow:hidden}.ggg-v4-side-panel img{border-radius:14px}.ggg-v4-info-list,.ggg-v4-check-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}.ggg-v4-info-list li{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--ggg-border);padding-bottom:10px}.ggg-v4-relation-card{display:grid;grid-template-columns:150px 1fr;gap:20px;align-items:center}.ggg-v4-relation-card img{border-radius:12px}.ggg-v4-thumb-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.ggg-v4-thumb-grid a{text-decoration:none}.ggg-v4-thumb-grid img{aspect-ratio:3/2;object-fit:cover;border-radius:12px}.ggg-v4-detail-hero--karuta{grid-template-columns:330px 1fr}.ggg-v4-detail-hero--karuta figure{margin:0}.ggg-v4-detail-hero--karuta figure img{aspect-ratio:9/14;object-fit:cover;border-radius:18px;border:4px solid var(--ggg-green-dark);box-shadow:var(--ggg-shadow)}.ggg-v4-kids-note{display:grid;grid-template-columns:260px 1fr;gap:28px;align-items:center;background:#fff;border:1px solid var(--ggg-border);border-radius:24px;padding:24px}.ggg-v4-kids-note img{border-radius:20px}.ggg-v4-course-hero{position:relative;margin:36px 0 42px}.ggg-v4-course-hero figure{margin:0}.ggg-v4-course-hero figure img{width:100%;height:520px;object-fit:cover;border-radius:30px}.ggg-v4-course-hero__card{position:absolute;left:38px;top:38px;width:min(420px,calc(100% - 76px));background:rgba(255,253,247,.94);border:1px solid var(--ggg-border);border-radius:22px;padding:28px;box-shadow:var(--ggg-shadow)}.ggg-v4-course-hero__card h1{font-size:34px;line-height:1.3}.ggg-v4-course-hero__card ul{list-style:none;margin:18px 0;padding:0;display:grid;gap:8px}.ggg-v4-timeline{display:grid;gap:18px}.ggg-v4-timeline article{display:grid;grid-template-columns:84px 1fr 140px;gap:18px;align-items:center;position:relative}.ggg-v4-timeline time{font-weight:900;color:var(--ggg-green)}.ggg-v4-timeline img{aspect-ratio:3/2;object-fit:cover;border-radius:12px}.ggg-v4-side-card{display:grid;grid-template-columns:96px 1fr;gap:12px;align-items:center;border-bottom:1px solid var(--ggg-border);padding:10px 0}.ggg-v4-side-card img{aspect-ratio:3/2;object-fit:cover}.ggg-v4-related-boxes{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:60px 0}.ggg-v4-related-boxes a{background:#fff;border:1px solid var(--ggg-border);border-radius:18px;text-decoration:none;padding:28px;font-weight:900;box-shadow:var(--ggg-shadow-soft)}.ggg-v4-back-link{text-align:center;margin:40px 0}.ggg-v4-back-link a{display:inline-flex;padding:16px 80px;border:1px solid var(--ggg-green);border-radius:999px;text-decoration:none;color:var(--ggg-green);font-weight:900}
.ggg-v4-page{margin:42px 0 80px}.ggg-v4-page__hero{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center;margin-bottom:36px}.ggg-v4-page__hero h1{font-size:46px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif}.ggg-v4-page__hero img{height:320px;object-fit:cover;border-radius:32px}.ggg-v4-page__body{background:#fff;border:1px solid var(--ggg-border);border-radius:24px;padding:36px;box-shadow:var(--ggg-shadow-soft)}.ggg-v4-404{text-align:center;padding:70px 0}.ggg-v4-404 img{width:160px;margin:0 auto}.ggg-v4-404 h1{font-size:96px;margin:0;color:var(--ggg-green);font-family:serif}.ggg-v4-footer{position:relative;margin-top:80px;background:rgba(255,253,247,.98);border-top:1px solid var(--ggg-border);padding-top:40px}.ggg-v4-footer__landscape{height:108px;background:url("../design/webp/ggg-hero-bg-watercolor-map.webp") center bottom/cover no-repeat;opacity:.8}.ggg-v4-footer__inner{display:grid;grid-template-columns:280px 1fr;gap:60px;padding:38px 0}.ggg-v4-footer__brand img{width:210px}.ggg-v4-footer__cols{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}.ggg-v4-footer h2{font-size:14px;margin:0 0 12px}.ggg-v4-footer a{display:block;text-decoration:none;margin:6px 0;font-size:13px;color:#293b32}.ggg-v4-social{display:flex;gap:10px;flex-wrap:wrap}.ggg-v4-social span{display:inline-flex;width:34px;height:34px;border-radius:999px;align-items:center;justify-content:center;background:#f0f6ee;font-size:10px;font-weight:900}.ggg-v4-footer__legal{display:flex;gap:18px;align-items:center;justify-content:center;border-top:1px solid var(--ggg-border);padding:16px 0;font-size:12px;color:var(--ggg-muted)}
.pagination,.nav-links{display:flex;justify-content:center;gap:8px;margin:36px 0}.page-numbers{min-width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--ggg-border);border-radius:999px;text-decoration:none}.page-numbers.current{background:var(--ggg-green);color:#fff}.ggg-empty-state{background:#fff;border:1px solid var(--ggg-border);border-radius:20px;padding:30px;text-align:center}
@media (max-width:1100px){.ggg-v4-nav ul{gap:8px}.ggg-v4-nav a{font-size:12px}.ggg-v4-nav-cards{grid-template-columns:repeat(3,1fr)}.ggg-v4-purpose-grid{grid-template-columns:repeat(3,1fr)}.ggg-v4-card-row{grid-template-columns:repeat(3,1fr)}.ggg-v4-grid--karuta{grid-template-columns:repeat(3,1fr)}.ggg-v4-area-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:782px){body.admin-bar .ggg-v4-header{top:46px}.ggg-v4-container,.ggg-container{width:min(100% - 32px,var(--ggg-max))}.ggg-side-ornament{display:none}.ggg-v4-header__inner{min-height:68px}.ggg-v4-brand img{width:150px}.ggg-v4-brand small{display:none}.ggg-v4-nav{display:none;position:absolute;left:16px;right:16px;top:76px;background:#fff;border:1px solid var(--ggg-border);border-radius:20px;padding:16px;box-shadow:var(--ggg-shadow)}.ggg-v4-nav.is-open{display:block}.ggg-v4-nav ul{display:grid;gap:8px}.ggg-v4-header-actions a span{display:none}.ggg-menu-toggle span{display:block}.ggg-v4-home-hero{padding:42px 0}.ggg-v4-home-hero__grid,.ggg-v4-archive-hero,.ggg-v4-detail-hero,.ggg-v4-detail-grid,.ggg-v4-page__hero,.ggg-v4-footer__inner{grid-template-columns:1fr}.ggg-v4-home-hero h1{font-size:36px}.ggg-v4-hero-collage{min-height:360px}.ggg-v4-polaroids{padding:40px 16px;gap:8px}.ggg-v4-polaroids img{height:170px}.ggg-v4-section{margin:54px 0}.ggg-v4-section-head{display:block}.ggg-v4-text-link{position:static;display:inline-block;margin-top:8px}.ggg-v4-nav-cards,.ggg-v4-purpose-grid,.ggg-v4-card-row,.ggg-v4-grid--3,.ggg-v4-grid--karuta,.ggg-v4-karuta-row,.ggg-v4-course-row,.ggg-v4-area-grid,.ggg-v4-news-list,.ggg-v4-info-panels,.ggg-v4-related-boxes{grid-template-columns:1fr 1fr}.ggg-v4-nav-cards a{min-height:150px}.ggg-v4-archive-layout{grid-template-columns:1fr}.ggg-v4-sidebar{position:static}.ggg-v4-detail-hero--karuta{grid-template-columns:1fr}.ggg-v4-detail-hero--karuta figure{max-width:280px;margin:auto}.ggg-v4-info-grid{grid-template-columns:1fr}.ggg-v4-highlight-list article,.ggg-v4-access-grid,.ggg-v4-relation-card,.ggg-v4-kids-note{grid-template-columns:1fr}.ggg-v4-course-hero figure img{height:430px}.ggg-v4-course-hero__card{position:static;width:auto;margin-top:-70px;margin-inline:16px}.ggg-v4-timeline article{grid-template-columns:70px 1fr}.ggg-v4-timeline img{grid-column:2}.ggg-v4-footer__cols{grid-template-columns:1fr 1fr}.ggg-v4-footer__legal{flex-wrap:wrap}.ggg-v4-search-list .ggg-v4-card a,.ggg-v4-search-list .ggg-v4-karuta-card a,.ggg-v4-search-list .ggg-v4-article-card a,.ggg-v4-course-list .ggg-v4-card a{grid-template-columns:1fr}.ggg-v4-search-list .ggg-v4-card figure img{height:auto}}
@media (max-width:560px){.ggg-v4-nav-cards,.ggg-v4-purpose-grid,.ggg-v4-card-row,.ggg-v4-grid--3,.ggg-v4-grid--karuta,.ggg-v4-karuta-row,.ggg-v4-course-row,.ggg-v4-area-grid,.ggg-v4-news-list,.ggg-v4-info-panels,.ggg-v4-related-boxes{grid-template-columns:1fr}.ggg-v4-home-hero h1{font-size:31px}.ggg-v4-archive-hero h1,.ggg-v4-page__hero h1{font-size:34px}.ggg-v4-section-head h2{font-size:24px}.ggg-v4-actions{display:grid}.ggg-v4-filter-panel form,.search-form{display:grid}.ggg-v4-course-hero figure img{height:340px}.ggg-v4-footer__cols{grid-template-columns:1fr}}


/* v0.4.1 camp fidelity patch: separate image-led visuals from HTML content */
.ggg-v4-home-hero--image-led {
  background:
    radial-gradient(circle at 9% 78%, rgba(15,95,61,.07) 0 160px, transparent 165px),
    linear-gradient(180deg, rgba(255,253,247,.35), rgba(255,253,247,0));
}
.ggg-v4-hero-collage-image {
  margin: 0;
  position: relative;
}
.ggg-v4-hero-collage-image img {
  width: 100%;
  aspect-ratio: 405 / 260;
  object-fit: cover;
  border-radius: 34px;
  box-shadow: 0 28px 70px rgba(15,95,61,.15);
}
.ggg-v4-hero-collage-image:before {
  content: "";
  position: absolute;
  inset: -18px;
  background: url("../design/webp/ggg-home-hero-background-wide.webp") center/cover no-repeat;
  z-index: -1;
  opacity: .42;
  border-radius: 44px;
}
.ggg-v4-polaroids,
.ggg-v4-hero-map {
  display: none !important;
}

/* Correct side ornament assets: large watercolor side trims, not geometric pattern */
.ggg-side-ornament {
  width: 150px;
  top: 82px;
  bottom: auto;
  height: calc(100vh - 82px);
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-position: top center;
  opacity: .95;
}
.ggg-side-ornament--left {
  background-image: url("../design/webp/ggg-ornament-side-river-forest-left.webp");
}
.ggg-side-ornament--right {
  background-image: url("../design/webp/ggg-ornament-side-river-forest-right.webp");
}

/* Stronger card imagery so fallback still looks like the comp */
.ggg-v4-karuta-card img,
.ggg-v4-static-karuta img {
  background: #fbf7ea;
  border: 3px solid #17442e;
  box-shadow: 0 12px 24px rgba(15,95,61,.12);
}
.ggg-v4-card figure img,
.ggg-v4-static-card>img,
.ggg-v4-static-course img,
.ggg-v4-area-grid img {
  background: #eef5ec;
}
.ggg-v4-static-course {
  min-height: 185px;
}
.ggg-v4-static-course img {
  height: 96px;
}

/* Footer image led decoration */
.ggg-v4-footer__landscape {
  background-image: url("../design/webp/ggg-common-footer-landscape.webp");
  background-size: cover;
  background-position: center bottom;
  height: 132px;
  opacity: 1;
}

/* v0.4.1 more generous PC rhythm */
@media (min-width: 1000px) {
  .ggg-v4-home-hero {
    padding-top: 86px;
    padding-bottom: 78px;
  }
  .ggg-v4-section {
    margin: 104px 0;
  }
  .ggg-v4-search-nav {
    margin-top: 86px;
  }
}

/* Better course preview, not flat placeholder blocks */
.ggg-v4-course-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
}
.ggg-v4-static-course h3 {
  font-size: 17px;
  line-height: 1.5;
  margin: 0 0 12px;
}
.ggg-v4-static-course .ggg-v4-mini-timeline {
  margin: 12px 0 14px;
}
.ggg-v4-static-course img {
  width: 100%;
  aspect-ratio: 3/2;
  height: auto;
  object-fit: cover;
}

/* Prevent generated crop text from becoming the content source */
.ggg-v4-card__body,
.ggg-v4-static-card,
.ggg-v4-static-course,
.ggg-v4-page__body,
.ggg-v4-panel {
  position: relative;
  z-index: 1;
}

@media (max-width: 782px) {
  .ggg-v4-hero-collage-image img {
    border-radius: 24px;
  }
  .ggg-v4-hero-collage-image:before {
    inset: -10px;
    border-radius: 30px;
  }
  .ggg-v4-course-row {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 560px) {
  .ggg-v4-course-row {
    grid-template-columns: 1fr;
  }
}


/* v0.4.2 visual fidelity hotfix:
   - side ornament crops no longer include page content
   - footer uses landscape-only strip, not a captured footer
   - reduce side ornament dominance on desktop */
.ggg-side-ornament {
  width: 118px !important;
  height: calc(100vh - 82px) !important;
  opacity: .68 !important;
  background-size: 118px auto !important;
}
.ggg-side-ornament--left { left: 0 !important; background-position: left top !important; }
.ggg-side-ornament--right { right: 0 !important; background-position: right top !important; }

.ggg-v4-footer {
  margin-top: 96px;
}
.ggg-v4-footer__landscape {
  height: 74px !important;
  background-image: url("../design/webp/ggg-common-footer-landscape.webp") !important;
  background-size: cover !important;
  background-position: center center !important;
  opacity: .82 !important;
}
.ggg-v4-footer__inner {
  padding-top: 30px;
}

.ggg-v4-hero-collage-image img {
  object-position: center center;
}

@media (min-width: 1200px) {
  .ggg-v4-container, .ggg-container {
    width: min(1120px, calc(100% - 72px));
  }
}
@media (max-width: 1300px) {
  .ggg-side-ornament {
    opacity: .38 !important;
    width: 82px !important;
    background-size: 82px auto !important;
  }
}
@media (max-width: 1000px) {
  .ggg-side-ornament { display:none !important; }
}


/* v0.4.3 hero camp fidelity rebuild */
.ggg-v4-home-hero--camp {
  position: relative;
  min-height: 560px;
  padding: 84px 0 92px;
  background:
    radial-gradient(circle at 10% 58%, rgba(47,123,79,.10) 0 124px, transparent 126px),
    linear-gradient(90deg, rgba(251,247,234,.96), rgba(255,250,232,.88) 52%, rgba(251,247,234,.98));
  overflow: hidden;
}
.ggg-v4-home-hero--camp .ggg-v4-home-hero__bg {
  position: absolute;
  inset: 0;
  background:
    url("../design/webp/ggg-home-hero-band-bg.webp") center top / cover no-repeat;
  opacity: .20;
  pointer-events: none;
}
.ggg-v4-home-hero--camp:before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 18px;
  width: 300px;
  height: 390px;
  background: url("../design/webp/ggg-home-hero-left-deco.webp") left bottom / contain no-repeat;
  opacity: .62;
  pointer-events: none;
}
.ggg-v4-home-hero--camp .ggg-v4-home-hero__grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(440px, 1.08fr);
  gap: 58px;
  align-items: center;
}
.ggg-v4-home-hero--camp .ggg-v4-home-hero__body {
  max-width: 530px;
}
.ggg-v4-home-hero--camp .ggg-v4-kicker {
  margin-bottom: 18px;
  color: var(--ggg-green);
  font-size: 14px;
  font-weight: 900;
  letter-spacing: .06em;
}
.ggg-v4-home-hero--camp h1 {
  margin: 0 0 22px;
  font-family: "Yu Mincho","Hiragino Mincho ProN",serif;
  font-size: clamp(42px, 4.15vw, 63px);
  line-height: 1.28;
  letter-spacing: .075em;
  color: #17251d;
}
.ggg-v4-home-hero--camp h1 span {
  color: var(--ggg-green);
  font-weight: 900;
}
.ggg-v4-home-hero--camp .ggg-v4-home-hero__lead {
  max-width: 520px;
  font-size: 14px;
  line-height: 2.05;
  font-weight: 700;
  color: #34453d;
  margin: 0;
}
.ggg-v4-hero-actions {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 12px !important;
  align-items: center;
  margin-top: 26px !important;
  width: max-content;
  max-width: 100%;
}
.ggg-v4-button--hero {
  min-height: 42px;
  height: 42px;
  padding: 0 15px 0 13px;
  border-radius: 999px;
  font-size: 13px;
  line-height: 1;
  white-space: nowrap;
  box-shadow: 0 10px 18px rgba(15,95,61,.14);
}
.ggg-v4-button--hero .ggg-v4-button__icon {
  width: 17px;
  height: 17px;
  object-fit: contain;
  filter: brightness(0) invert(1);
  flex: 0 0 auto;
}
.ggg-v4-button--hero.ggg-v4-button--yellow .ggg-v4-button__icon {
  filter: none;
}
.ggg-v4-button--hero span {
  display: inline-block;
}
.ggg-v4-button--karuta {
  background: linear-gradient(135deg, #0f5f3d, #1f7549);
}
.ggg-v4-home-hero--camp .ggg-v4-hero-collage-image {
  margin: 0;
  justify-self: end;
  width: min(100%, 590px);
  position: relative;
}
.ggg-v4-home-hero--camp .ggg-v4-hero-collage-image:before {
  content: "";
  position: absolute;
  inset: -24px -22px -26px -28px;
  background:
    radial-gradient(circle at 72% 20%, rgba(240,180,41,.13), transparent 38%),
    radial-gradient(circle at 10% 75%, rgba(47,123,79,.11), transparent 34%);
  border-radius: 42px;
  z-index: -1;
}
.ggg-v4-home-hero--camp .ggg-v4-hero-collage-image img {
  width: 100%;
  aspect-ratio: 442 / 310;
  object-fit: cover;
  object-position: center;
  border-radius: 34px;
  box-shadow: 0 28px 70px rgba(15,95,61,.15);
}

/* keep the rest of the top slightly lower, closer to the comp rhythm */
.ggg-v4-search-nav {
  margin-top: 78px;
}

@media (min-width: 1000px) and (max-width: 1180px) {
  .ggg-v4-home-hero--camp .ggg-v4-home-hero__grid {
    grid-template-columns: minmax(0, .92fr) minmax(410px, 1fr);
    gap: 34px;
  }
  .ggg-v4-button--hero {
    font-size: 12px;
    padding-inline: 11px 12px;
  }
  .ggg-v4-hero-actions {
    gap: 8px !important;
  }
}
@media (max-width: 999px) {
  .ggg-v4-home-hero--camp {
    min-height: auto;
    padding: 50px 0 58px;
  }
  .ggg-v4-home-hero--camp:before {
    opacity: .25;
    width: 220px;
  }
  .ggg-v4-home-hero--camp .ggg-v4-home-hero__grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .ggg-v4-home-hero--camp .ggg-v4-home-hero__body {
    max-width: 100%;
  }
  .ggg-v4-home-hero--camp h1 {
    font-size: 38px;
  }
  .ggg-v4-hero-actions {
    width: 100%;
    flex-wrap: wrap !important;
  }
  .ggg-v4-button--hero {
    flex: 1 1 auto;
  }
  .ggg-v4-home-hero--camp .ggg-v4-hero-collage-image {
    justify-self: stretch;
    width: 100%;
  }
}
@media (max-width: 560px) {
  .ggg-v4-home-hero--camp h1 {
    font-size: 31px;
  }
  .ggg-v4-pc-br {
    display: none;
  }
  .ggg-v4-hero-actions {
    display: grid !important;
  }
  .ggg-v4-button--hero {
    width: 100%;
  }
}


/* v0.4.4 clean asset first rebuild
   Important: these rules intentionally override v0.4.3 background crops.
   No full-page mockup crop is used as a background. */
.ggg-v4-home-hero--clean {
  position: relative;
  min-height: 560px;
  padding: 86px 0 92px;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(251,247,234,.96), rgba(255,250,232,.9) 58%, rgba(251,247,234,.98)),
    url("../design/webp/ggg-home-hero-bg-clean.webp") center / cover no-repeat;
}
.ggg-v4-home-hero--clean:before {
  content: "";
  position: absolute;
  left: -40px;
  bottom: 40px;
  width: 360px;
  height: 360px;
  border-radius: 42% 58% 50% 50%;
  background: rgba(15,95,61,.08);
  pointer-events: none;
}
.ggg-v4-home-hero--clean .ggg-v4-home-hero__grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(440px, 1.08fr);
  gap: 58px;
  align-items: center;
}
.ggg-v4-home-hero--clean .ggg-v4-home-hero__body {
  max-width: 530px;
}
.ggg-v4-home-hero--clean .ggg-v4-kicker {
  margin-bottom: 18px;
  color: var(--ggg-green);
  font-size: 14px;
  font-weight: 900;
  letter-spacing: .06em;
}
.ggg-v4-home-hero--clean h1 {
  margin: 0 0 22px;
  font-family: "Yu Mincho","Hiragino Mincho ProN",serif;
  font-size: clamp(42px, 4.15vw, 62px);
  line-height: 1.28;
  letter-spacing: .075em;
  color: #17251d;
}
.ggg-v4-home-hero--clean h1 span {
  color: var(--ggg-green);
  font-weight: 900;
}
.ggg-v4-home-hero--clean .ggg-v4-home-hero__lead {
  max-width: 520px;
  font-size: 14px;
  line-height: 2.05;
  font-weight: 700;
  color: #34453d;
  margin: 0;
}
.ggg-v4-home-hero--clean .ggg-v4-hero-collage-image {
  margin: 0;
  justify-self: end;
  width: min(100%, 590px);
  position: relative;
}
.ggg-v4-home-hero--clean .ggg-v4-hero-collage-image:before {
  content: "";
  position: absolute;
  inset: -22px -18px -26px -22px;
  border-radius: 42px;
  background:
    radial-gradient(circle at 70% 18%, rgba(240,180,41,.15), transparent 38%),
    radial-gradient(circle at 12% 78%, rgba(15,95,61,.10), transparent 36%);
  z-index: -1;
}
.ggg-v4-home-hero--clean .ggg-v4-hero-collage-image img {
  width: 100%;
  aspect-ratio: 14 / 9;
  object-fit: cover;
  object-position: center;
  border-radius: 34px;
  box-shadow: 0 28px 70px rgba(15,95,61,.15);
}

/* Force hero CTA to stay 3-column on PC and include icon styling */
.ggg-v4-home-hero--clean .ggg-v4-hero-actions {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 12px !important;
  align-items: center;
  margin-top: 26px !important;
  width: max-content;
  max-width: 100%;
}
.ggg-v4-home-hero--clean .ggg-v4-button--hero {
  min-height: 42px;
  height: 42px;
  padding: 0 15px 0 13px;
  border-radius: 999px;
  font-size: 13px;
  line-height: 1;
  white-space: nowrap;
  box-shadow: 0 10px 18px rgba(15,95,61,.14);
}
.ggg-v4-home-hero--clean .ggg-v4-button--hero .ggg-v4-button__icon {
  width: 17px;
  height: 17px;
  object-fit: contain;
  filter: brightness(0) invert(1);
  flex: 0 0 auto;
}
.ggg-v4-home-hero--clean .ggg-v4-button--hero.ggg-v4-button--yellow .ggg-v4-button__icon {
  filter: none;
}
.ggg-v4-home-hero--clean .ggg-v4-button--karuta {
  background: linear-gradient(135deg, #0f5f3d, #1f7549);
}

/* Override old side/footer assets with clean standalone files */
.ggg-side-ornament {
  background-image: none !important;
  width: 118px !important;
  height: calc(100vh - 82px) !important;
  opacity: .62 !important;
  background-size: 118px auto !important;
  background-repeat: no-repeat !important;
}
.ggg-side-ornament--left {
  background-image: url("../design/webp/ggg-side-ornament-clean-left.webp") !important;
  left: 0 !important;
  background-position: left top !important;
}
.ggg-side-ornament--right {
  background-image: url("../design/webp/ggg-side-ornament-clean-right.webp") !important;
  right: 0 !important;
  background-position: right top !important;
}
.ggg-v4-footer__landscape {
  height: 92px !important;
  background-image: url("../design/webp/ggg-footer-landscape-clean.webp") !important;
  background-size: cover !important;
  background-position: center center !important;
  opacity: .9 !important;
}

/* Kill any previous full-camp crop layers that caused ghost text */
.ggg-v4-home-hero--camp .ggg-v4-home-hero__bg,
.ggg-v4-home-hero--image-led .ggg-v4-home-hero__bg {
  display: none !important;
}

@media (min-width: 1000px) and (max-width: 1180px) {
  .ggg-v4-home-hero--clean .ggg-v4-home-hero__grid {
    grid-template-columns: minmax(0, .92fr) minmax(410px, 1fr);
    gap: 34px;
  }
  .ggg-v4-home-hero--clean .ggg-v4-button--hero {
    font-size: 12px;
    padding-inline: 11px 12px;
  }
  .ggg-v4-home-hero--clean .ggg-v4-hero-actions {
    gap: 8px !important;
  }
}
@media (max-width: 999px) {
  .ggg-v4-home-hero--clean {
    min-height: auto;
    padding: 50px 0 58px;
  }
  .ggg-v4-home-hero--clean:before {
    opacity: .45;
    width: 240px;
    height: 260px;
  }
  .ggg-v4-home-hero--clean .ggg-v4-home-hero__grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .ggg-v4-home-hero--clean .ggg-v4-home-hero__body {
    max-width: 100%;
  }
  .ggg-v4-home-hero--clean h1 {
    font-size: 38px;
  }
  .ggg-v4-home-hero--clean .ggg-v4-hero-actions {
    width: 100%;
    flex-wrap: wrap !important;
  }
  .ggg-v4-home-hero--clean .ggg-v4-button--hero {
    flex: 1 1 auto;
  }
  .ggg-v4-home-hero--clean .ggg-v4-hero-collage-image {
    justify-self: stretch;
    width: 100%;
  }
}
@media (max-width: 560px) {
  .ggg-v4-home-hero--clean h1 {
    font-size: 31px;
  }
  .ggg-v4-home-hero--clean .ggg-v4-hero-actions {
    display: grid !important;
  }
  .ggg-v4-home-hero--clean .ggg-v4-button--hero {
    width: 100%;
  }
}


/* =========================================================
   GOGO群馬 Design Integrated v0.1.4
   Scope:
   - Use explicit .ggg-home-decor-stage side elements
   - Avoid pseudo-element clipping
   - Keep side ornaments out of footer
   - Keep FV/card foundation
========================================================= */

body.home{
	position:relative;
	background:#fbf5e7;
	overflow-x:hidden;
}

/* FV */
.ggg-fv-camp{
	position:relative;
	isolation:isolate;
	min-height:clamp(600px, 53vw, 820px);
	overflow:hidden;
	background:#fbf4e5;
	border-bottom:1px solid rgba(40,83,58,.08);
	z-index:2;
}
.ggg-fv-camp__bg{position:absolute;inset:0;z-index:0;display:block;overflow:hidden}
.ggg-fv-camp__bg img{width:100%;height:100%;object-fit:cover;object-position:center center;display:block}
.ggg-fv-camp__shade{
	position:absolute;inset:0;z-index:1;pointer-events:none;
	background:
		linear-gradient(90deg,rgba(255,251,240,.12) 0%,rgba(255,251,240,.05) 18%,rgba(255,251,240,.012) 34%,rgba(255,251,240,0) 48%),
		linear-gradient(180deg,rgba(255,255,255,.045) 0%,rgba(255,255,255,0) 36%,rgba(255,251,240,.055) 100%);
}
.ggg-fv-camp__inner{
	position:relative;z-index:2;max-width:1380px;min-height:inherit;margin:0 auto;
	padding:clamp(74px,7.6vw,112px) clamp(26px,4vw,56px) clamp(56px,6vw,82px);
	display:grid;grid-template-columns:minmax(0,610px) 1fr;align-items:center;
}
.ggg-fv-camp__copy{
	position:relative;width:min(100%,610px);margin-left:clamp(10px,2.4vw,44px);
	padding:clamp(18px,2.2vw,28px) clamp(18px,2.3vw,28px) clamp(18px,2.2vw,24px);color:#073b24;
}
.ggg-fv-camp__copy::before{
	content:"";position:absolute;z-index:-1;inset:8% 14% 10% 4%;
	background:radial-gradient(ellipse at 22% 38%,rgba(255,252,245,.24) 0%,rgba(255,252,245,.14) 38%,rgba(255,252,245,.055) 60%,rgba(255,252,245,.016) 78%,rgba(255,252,245,0) 92%);
	border-radius:28px;filter:blur(13px);box-shadow:none;
}
.ggg-fv-camp__copy::after{display:none}
.ggg-fv-camp__eyebrow{
	margin:0 0 10px;font-family:"Shippori Mincho","Yu Mincho","YuMincho","Hiragino Mincho ProN","Noto Serif JP",serif;
	font-weight:700;font-size:clamp(16px,1.2vw,19px);line-height:1.45;letter-spacing:.08em;color:#073b24;
	text-shadow:0 1px 0 rgba(255,255,255,.20),0 4px 12px rgba(255,255,255,.13);
}
.ggg-fv-camp__rule{
	display:block;width:min(440px,90%);height:18px;margin:0 0 clamp(18px,2vw,26px);
	background:linear-gradient(90deg,rgba(26,74,47,.44),rgba(26,74,47,.20),rgba(26,74,47,0)) center 8px/100% 1px no-repeat;position:relative;
}
.ggg-fv-camp__rule::after{content:"";position:absolute;left:40%;top:4px;width:48px;height:9px;border-bottom:1px solid rgba(107,83,44,.44);border-radius:50%;transform:skewX(-18deg)}
.ggg-fv-camp__title{
	margin:0;font-family:"Shippori Mincho","Yu Mincho","YuMincho","Hiragino Mincho ProN","Noto Serif JP",serif;
	font-weight:600;font-size:clamp(48px,5.4vw,76px);line-height:1.35;letter-spacing:.028em;color:#0a472c;
	text-shadow:0 1px 0 rgba(255,255,255,.20),0 3px 12px rgba(255,255,255,.16),0 8px 20px rgba(4,43,28,.06);
}
.ggg-fv-camp__title span{display:block;white-space:nowrap}
.ggg-fv-camp__lead{margin:clamp(24px,2.2vw,30px) 0 0;font-size:clamp(14px,1.1vw,16px);line-height:2;letter-spacing:.05em;font-weight:700;color:#173a2a;text-shadow:0 1px 0 rgba(255,255,255,.16),0 4px 12px rgba(255,255,255,.12)}
.ggg-fv-camp__actions{display:grid;grid-template-columns:repeat(3,168px);gap:12px;align-items:center;justify-content:start;margin-top:clamp(24px,2.5vw,34px)}
.ggg-fv-camp__button{
	--btn-bg:#0b6539;--btn-bg2:#08482b;--btn-fg:#fff;display:inline-flex;align-items:center;justify-content:center;gap:8px;
	width:168px;min-width:168px;height:52px;padding:0 15px;border-radius:999px;background:linear-gradient(180deg,var(--btn-bg),var(--btn-bg2));
	border:1.5px solid rgba(255,255,255,.96);box-shadow:0 8px 16px rgba(45,63,34,.15),inset 0 1px 0 rgba(255,255,255,.22);
	color:var(--btn-fg)!important;text-decoration:none;font-size:14px;font-weight:800;line-height:1;letter-spacing:.025em;white-space:nowrap;
	transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
}
.ggg-fv-camp__button:hover{transform:translateY(-2px);box-shadow:0 12px 22px rgba(45,63,34,.18),inset 0 1px 0 rgba(255,255,255,.24);filter:saturate(1.04)}
.ggg-fv-camp__button-icon,.ggg-fv-camp__button-icon svg{width:18px;height:18px;display:grid;place-items:center;flex:0 0 18px;fill:currentColor}
.ggg-fv-camp__button i{width:7px;height:7px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg);opacity:.95;flex:0 0 7px}
.ggg-fv-camp__button--karuta{--btn-bg:#0f6b3f;--btn-bg2:#07512f}
.ggg-fv-camp__button--spot{--btn-bg:#e86e22;--btn-bg2:#c95115}
.ggg-fv-camp__button--course{--btn-bg:#e7b814;--btn-bg2:#d19400;color:#1d321f!important}

/* Side ornaments: single source of truth */
body.home .ggg-side-ornament,
body.home .home-side-deco,
body.home .ggg-page-side-illustration,
body.home .ggg-home-side-deco{
	display:none!important;background:none!important;border:0!important;box-shadow:none!important;
}
body.home::before,
body.home::after{content:none!important;display:none!important}

.ggg-home-decor-stage{
	position:relative;
	z-index:1;
	background:#fbf5e7;
	overflow:hidden;
	isolation:isolate;
}

.ggg-home-decor-stage::before{
	content:"";
	position:absolute;
	left:0;
	right:0;
	top:-26px;
	height:54px;
	pointer-events:none;
	background:linear-gradient(180deg,rgba(251,245,231,0),rgba(251,245,231,.58) 76%,rgba(251,245,231,.86));
	z-index:0;
}

.ggg-home-decor-stage__side{
	position:absolute;
	top:0;
	bottom:0;
	width:clamp(170px,14vw,280px);
	min-height:100%;
	pointer-events:none;
	z-index:0;
	opacity:.76;
	background-repeat:repeat-y;
	background-size:100% auto;
	background-position:top center;
	filter:saturate(.98) contrast(.98);
}

.ggg-home-decor-stage__side--left{
	left:0;
	background-image:url("../design/final/ggg-home-side-deco-left-v014.png");
}

.ggg-home-decor-stage__side--right{
	right:0;
	background-image:url("../design/final/ggg-home-side-deco-right-v014.png");
}

body.home .ggg-home-main{
	position:relative;
	z-index:1;
	background:
		linear-gradient(90deg,rgba(251,245,231,0) 0%,rgba(251,245,231,.22) 8%,rgba(251,245,231,.50) 18%,rgba(251,245,231,.50) 82%,rgba(251,245,231,.22) 92%,rgba(251,245,231,0) 100%);
	overflow:visible!important;
}

body.home .ggg-home-main::before,
body.home .ggg-home-main::after{
	content:none!important;
	display:none!important;
}

/* Footer boundary: footer and pre-footer mountain band must sit above/after decorations */
body.home .ggg-v4-footer,
body.home footer,
body.home .site-footer{
	position:relative;z-index:5;background:#fffdf8;isolation:isolate;
}
body.home .ggg-v4-footer::before,
body.home footer::before,
body.home .site-footer::before{
	content:"";position:absolute;left:0;right:0;top:-1px;height:1px;background:rgba(15,95,61,.10);pointer-events:none;
}
body.home .ggg-footer-mountain,
body.home .ggg-footer-landscape,
body.home .ggg-footer-visual,
body.home .footer-mountain,
body.home .footer-landscape,
body.home .ggg-common-footer-visual{
	position:relative;z-index:4;overflow:hidden;background-color:#fbf5e7;
}
body.home .ggg-footer-mountain img,
body.home .ggg-footer-landscape img,
body.home .ggg-footer-visual img,
body.home .footer-mountain img,
body.home .footer-landscape img,
body.home .ggg-common-footer-visual img{
	width:100%;height:auto;display:block;
}

/* Home common sections */
body.home .ggg-home-camp-main{max-width:1120px}
body.home .ggg-v4-section{margin:76px 0}
body.home .ggg-v4-section-head{margin-bottom:28px;text-align:center}
body.home .ggg-v4-section-head h2{font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;font-weight:800;font-size:clamp(22px,2vw,28px);letter-spacing:.12em;color:#18392a}
body.home .ggg-v4-section-head h2::before,body.home .ggg-v4-section-head h2::after{content:"";display:inline-block;width:22px;height:1px;margin:0 12px .35em;background:#257046;transform:rotate(18deg);opacity:.75}
body.home .ggg-v4-section-head .ggg-v4-section-more{color:#ca6b24;font-size:12px;font-weight:800;text-decoration:none}

body.home .ggg-camp-nav-cards,body.home .ggg-camp-purpose-grid{display:grid;gap:20px}
body.home .ggg-camp-nav-cards{grid-template-columns:repeat(5,minmax(0,1fr))}
body.home .ggg-camp-nav-cards a,body.home .ggg-camp-purpose-grid a{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;text-decoration:none;color:#18392a;background:#fffdf8;border:1.5px solid rgba(15,95,61,.25);border-radius:18px;box-shadow:0 12px 28px rgba(15,95,61,.08);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
body.home .ggg-camp-nav-cards a{min-height:156px;padding:22px 14px}
body.home .ggg-camp-purpose-grid a{min-height:112px;padding:16px 12px}
body.home .ggg-camp-nav-cards a:hover,body.home .ggg-camp-purpose-grid a:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(15,95,61,.12);border-color:rgba(15,95,61,.42)}
body.home .ggg-camp-nav-cards img,body.home .ggg-camp-nav-icon{width:44px;height:44px;object-fit:contain;margin-bottom:12px}
body.home .ggg-camp-purpose-grid img{width:38px;height:38px;object-fit:contain;margin-bottom:10px}
body.home .ggg-camp-nav-cards strong,body.home .ggg-camp-purpose-grid strong{font-size:14px;font-weight:900;line-height:1.45}
body.home .ggg-camp-nav-cards span,body.home .ggg-camp-purpose-grid span{margin-top:7px;font-size:11.5px;line-height:1.55;color:#5f6f66;max-width:142px}

body.home .ggg-camp-karuta-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px;align-items:start}
body.home .ggg-camp-karuta-card{text-decoration:none;text-align:center;color:#18392a}
body.home .ggg-camp-karuta-card figure{margin:0 0 10px;background:#fff;border-radius:12px;box-shadow:0 14px 30px rgba(15,95,61,.13);overflow:hidden}
body.home .ggg-camp-karuta-card img{display:block;width:100%;aspect-ratio:9/13.2;object-fit:cover}
body.home .ggg-camp-karuta-card strong{display:block;font-size:13px;line-height:1.45;font-weight:900}
body.home .ggg-camp-karuta-card span{display:block;margin-top:3px;font-size:11px;color:#68756c}

body.home .ggg-camp-spot-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px}
body.home .ggg-camp-spot-card{display:block;text-decoration:none;color:#1f2d26;background:#fff;border:1px solid rgba(15,95,61,.12);border-radius:18px;overflow:hidden;box-shadow:0 14px 30px rgba(15,95,61,.10)}
body.home .ggg-camp-spot-card figure{margin:0;background:#eef5ef}
body.home .ggg-camp-spot-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center}
body.home .ggg-camp-spot-card__body{padding:12px 13px 14px}
body.home .ggg-camp-mini-badge{display:inline-block;margin-bottom:7px;padding:4px 7px;font-size:10px;font-weight:900;line-height:1;color:#227145;background:#eaf5ef;border-radius:999px}
body.home .ggg-camp-spot-card strong{display:block;font-size:14px;line-height:1.45;font-weight:900}
body.home .ggg-camp-spot-card p{margin:7px 0 0;font-size:11.5px;line-height:1.65;color:#596960}
body.home .ggg-camp-chip-row{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
body.home .ggg-camp-chip-row em{font-style:normal;font-size:10px;font-weight:800;padding:4px 7px;border-radius:999px;background:#f2f5ef;color:#4f6758}

body.home .ggg-camp-course-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
body.home .ggg-camp-course-card{display:block;text-decoration:none;color:#1f2d26;background:#fff;border:1px solid rgba(15,95,61,.12);border-radius:20px;padding:16px;box-shadow:0 14px 30px rgba(15,95,61,.10)}
body.home .ggg-camp-course-card__thumbs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
body.home .ggg-camp-course-card__thumbs img{width:100%;aspect-ratio:1.3/1;object-fit:cover;border-radius:10px;background:#eef5ef}
body.home .ggg-camp-course-card strong{display:block;font-size:15px;line-height:1.55;font-weight:900}
body.home .ggg-camp-course-card ol{list-style:none;margin:12px 0;padding:0;display:grid;gap:7px}
body.home .ggg-camp-course-card li{position:relative;padding-left:17px;font-size:11.5px;font-weight:800;line-height:1.45;color:#3c5548}
body.home .ggg-camp-course-card li::before{content:"";position:absolute;left:1px;top:.55em;width:7px;height:7px;border-radius:50%;background:#0f6b3f}
body.home .ggg-camp-course-meta{display:flex;gap:7px}
body.home .ggg-camp-course-meta em{font-style:normal;font-size:10px;font-weight:900;padding:5px 8px;border-radius:999px;color:#25623f;background:#eaf5ef}

body.home .ggg-camp-area-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px}
body.home .ggg-camp-area-grid a{display:block;text-decoration:none;color:#18392a;background:#fffdf8;border:1px solid rgba(15,95,61,.13);border-radius:18px;padding:10px 10px 14px;box-shadow:0 12px 26px rgba(15,95,61,.08)}
body.home .ggg-camp-area-grid img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:12px;background:#eef5ef}
body.home .ggg-camp-area-grid strong{display:block;margin-top:10px;font-size:17px;font-weight:900;line-height:1.35}
body.home .ggg-camp-area-grid span{display:block;margin-top:4px;color:#65705f;font-size:12px}

body.home .ggg-camp-news-box{display:grid;grid-template-columns:1fr 1fr;gap:24px}
body.home .ggg-camp-news-panel,body.home .ggg-v4-info-card{background:#fff;border:1px solid rgba(15,95,61,.14);border-radius:22px;padding:22px;box-shadow:0 14px 32px rgba(15,95,61,.08)}
body.home .ggg-camp-panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}
body.home .ggg-camp-panel-head h2{margin:0;font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;font-size:22px;letter-spacing:.12em}
body.home .ggg-camp-panel-head a{color:#ca6b24;font-size:12px;font-weight:800;text-decoration:none}
body.home .ggg-camp-news-list{display:grid;gap:12px}
body.home .ggg-camp-news-list a{display:grid;grid-template-columns:78px 1fr auto;gap:12px;align-items:center;text-decoration:none;color:#1f2d26}
body.home .ggg-camp-news-list img{width:78px;height:56px;object-fit:cover;border-radius:10px;background:#eef5ef}
body.home .ggg-camp-news-list strong{font-size:13px;line-height:1.5}
body.home .ggg-camp-news-list time{font-size:11px;color:#758278}

.ggg-v4-container{position:relative;z-index:1}
.ggg-v4-archive-hero,.ggg-v4-page__hero,.ggg-v4-search-hero{border-radius:28px;overflow:hidden;box-shadow:0 16px 38px rgba(15,95,61,.08)}
.ggg-v4-card,.ggg-v4-grid>article,.ggg-v4-search-list>article{border-radius:18px}

@media (min-width:1500px){
	.ggg-fv-camp__inner{max-width:1440px;grid-template-columns:minmax(0,640px) 1fr}
	.ggg-fv-camp__copy{margin-left:52px}
	.ggg-home-decor-stage__side{width:clamp(180px,12vw,280px);opacity:.74}
}

@media (max-width:1260px){
	.ggg-fv-camp__button{width:160px;min-width:160px;font-size:13.5px}
	body.home .ggg-home-camp-main{max-width:1040px}
}

@media (max-width:1180px){
	.ggg-home-decor-stage__side{width:118px;opacity:.54}
	body.home .ggg-camp-spot-row,
	body.home .ggg-camp-area-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media (max-width:1100px){
	.ggg-fv-camp{min-height:auto}
	.ggg-fv-camp__bg img{object-position:58% center}
	.ggg-fv-camp__inner{grid-template-columns:1fr;padding-top:68px;padding-bottom:68px}
	.ggg-fv-camp__copy{max-width:620px;margin-left:0}
	.ggg-fv-camp__actions{grid-template-columns:repeat(3,160px)}
	body.home .ggg-camp-nav-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
	body.home .ggg-camp-karuta-row{grid-template-columns:repeat(3,minmax(0,1fr))}
	body.home .ggg-camp-course-row{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:900px){
	.ggg-home-decor-stage__side{display:none}
	body.home .ggg-home-main{background:#fbf5e7}
	body.home .ggg-camp-nav-cards,
	body.home .ggg-camp-purpose-grid,
	body.home .ggg-camp-spot-row,
	body.home .ggg-camp-area-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
	body.home .ggg-camp-news-box{grid-template-columns:1fr}
}

@media (max-width:760px){
	.ggg-fv-camp__bg img{object-position:64% center}
	.ggg-fv-camp__inner{padding:56px 18px 52px}
	.ggg-fv-camp__copy{padding:22px 18px}
	.ggg-fv-camp__title{font-size:clamp(38px,12vw,54px)}
	.ggg-fv-camp__title span{white-space:normal}
	.ggg-fv-camp__lead{font-size:14px;line-height:1.85}
	.ggg-fv-camp__lead br{display:none}
	.ggg-fv-camp__actions{grid-template-columns:1fr}
	.ggg-fv-camp__button{width:100%;min-width:0;height:56px;font-size:15px}
	body.home .ggg-v4-section{margin:54px 0}
	body.home .ggg-camp-nav-cards,
	body.home .ggg-camp-purpose-grid,
	body.home .ggg-camp-karuta-row,
	body.home .ggg-camp-spot-row,
	body.home .ggg-camp-course-row,
	body.home .ggg-camp-area-grid{grid-template-columns:1fr}
	body.home .ggg-camp-news-list a{grid-template-columns:70px 1fr}
	body.home .ggg-camp-news-list time{grid-column:2}
}

@media (max-width:420px){
	.ggg-fv-camp__eyebrow{font-size:14px;letter-spacing:.04em}
	.ggg-fv-camp__title{font-size:36px}
}




/* =========================================================
   GOGO群馬 Design Integrated v0.1.5
   Phase 2:
   - common archive/detail/page foundation
   - card polish for spot / karuta / course lists
   - preserve top v0.1.4 state
========================================================= */

/* ------------------------------
   Common lower-page base
------------------------------ */

body:not(.home) .ggg-v4-main,
body:not(.home) .site-main,
body:not(.home) main{
	background:
		linear-gradient(180deg, #fbf5e7 0%, #fffdf8 42%, #fbf5e7 100%);
}

.ggg-v4-container,
.ggg-container{
	position:relative;
	z-index:1;
}

.ggg-v4-archive-hero,
.ggg-v4-page__hero,
.ggg-v4-search-hero,
.ggg-v4-single-hero,
.ggg-archive-hero,
.ggg-page-hero,
.ggg-single-hero{
	position:relative;
	margin:clamp(28px, 5vw, 64px) auto clamp(34px, 5vw, 72px);
	padding:clamp(32px, 5vw, 72px);
	border-radius:32px;
	overflow:hidden;
	background:
		radial-gradient(circle at 86% 22%, rgba(231,184,20,.16), transparent 30%),
		radial-gradient(circle at 12% 68%, rgba(15,107,63,.10), transparent 34%),
		linear-gradient(135deg, rgba(255,253,248,.98), rgba(247,238,213,.92));
	border:1px solid rgba(15,95,61,.12);
	box-shadow:0 18px 48px rgba(15,95,61,.08);
}

.ggg-v4-archive-hero::after,
.ggg-v4-page__hero::after,
.ggg-v4-search-hero::after,
.ggg-v4-single-hero::after,
.ggg-archive-hero::after,
.ggg-page-hero::after,
.ggg-single-hero::after{
	content:"";
	position:absolute;
	right:-40px;
	bottom:-34px;
	width:220px;
	height:130px;
	pointer-events:none;
	opacity:.32;
	background:url("../design/webp/ggg-common-footer-landscape.webp") center/contain no-repeat;
}

.ggg-v4-archive-hero h1,
.ggg-v4-page__hero h1,
.ggg-v4-search-hero h1,
.ggg-v4-single-hero h1,
.ggg-archive-hero h1,
.ggg-page-hero h1,
.ggg-single-hero h1{
	position:relative;
	z-index:1;
	margin:0;
	font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;
	font-weight:800;
	font-size:clamp(30px, 4vw, 52px);
	line-height:1.35;
	letter-spacing:.08em;
	color:#103b29;
}

.ggg-v4-archive-hero p,
.ggg-v4-page__hero p,
.ggg-v4-search-hero p,
.ggg-v4-single-hero p,
.ggg-archive-hero p,
.ggg-page-hero p,
.ggg-single-hero p{
	position:relative;
	z-index:1;
	max-width:720px;
	margin:16px 0 0;
	color:#4f6258;
	font-size:15px;
	line-height:1.9;
	font-weight:700;
}

/* ------------------------------
   Archive grids and cards
------------------------------ */

.ggg-v4-grid,
.ggg-archive-grid,
.ggg-card-grid,
.ggg-spot-grid,
.ggg-karuta-grid,
.ggg-course-grid{
	display:grid;
	grid-template-columns:repeat(3, minmax(0, 1fr));
	gap:clamp(20px, 2.4vw, 30px);
	margin:clamp(28px, 4vw, 56px) 0;
}

.ggg-v4-card,
.ggg-card,
.ggg-archive-card,
.ggg-spot-card,
.ggg-karuta-card,
.ggg-course-card,
.ggg-v4-grid > article,
.ggg-archive-grid > article,
.ggg-card-grid > article{
	position:relative;
	display:block;
	color:#1f2d26;
	text-decoration:none;
	background:#fffdf8;
	border:1px solid rgba(15,95,61,.13);
	border-radius:22px;
	overflow:hidden;
	box-shadow:0 16px 36px rgba(15,95,61,.08);
	transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.ggg-v4-card:hover,
.ggg-card:hover,
.ggg-archive-card:hover,
.ggg-spot-card:hover,
.ggg-karuta-card:hover,
.ggg-course-card:hover,
.ggg-v4-grid > article:hover,
.ggg-archive-grid > article:hover,
.ggg-card-grid > article:hover{
	transform:translateY(-3px);
	box-shadow:0 20px 44px rgba(15,95,61,.12);
	border-color:rgba(15,95,61,.24);
}

.ggg-v4-card figure,
.ggg-card figure,
.ggg-archive-card figure,
.ggg-spot-card figure,
.ggg-karuta-card figure,
.ggg-course-card figure,
.ggg-v4-card__image,
.ggg-card__image,
.ggg-archive-card__image{
	margin:0;
	background:#edf5ef;
	overflow:hidden;
}

.ggg-v4-card img,
.ggg-card img,
.ggg-archive-card img,
.ggg-spot-card img,
.ggg-course-card img,
.ggg-v4-card__image img,
.ggg-card__image img,
.ggg-archive-card__image img{
	display:block;
	width:100%;
	aspect-ratio:16/10;
	object-fit:cover;
	object-position:center;
}

.ggg-karuta-card img,
.ggg-karuta-grid img{
	aspect-ratio:9/13;
	object-fit:cover;
}

.ggg-v4-card__body,
.ggg-card__body,
.ggg-archive-card__body,
.ggg-spot-card__body,
.ggg-course-card__body,
.ggg-karuta-card__body{
	padding:18px 18px 20px;
}

.ggg-v4-card h2,
.ggg-v4-card h3,
.ggg-card h2,
.ggg-card h3,
.ggg-archive-card h2,
.ggg-archive-card h3,
.ggg-spot-card h2,
.ggg-spot-card h3,
.ggg-course-card h2,
.ggg-course-card h3,
.ggg-karuta-card h2,
.ggg-karuta-card h3{
	margin:0;
	font-size:clamp(17px, 1.5vw, 21px);
	line-height:1.55;
	color:#18392a;
	font-weight:900;
}

.ggg-v4-card p,
.ggg-card p,
.ggg-archive-card p,
.ggg-spot-card p,
.ggg-course-card p,
.ggg-karuta-card p{
	margin:10px 0 0;
	font-size:13px;
	line-height:1.8;
	color:#607166;
}

.ggg-v4-badge,
.ggg-badge,
.ggg-card-badge,
.ggg-area-badge,
.ggg-type-badge,
.ggg-purpose-badge{
	display:inline-flex;
	align-items:center;
	gap:6px;
	margin:0 0 10px;
	padding:5px 9px;
	border-radius:999px;
	background:#eaf5ef;
	color:#1e6b42;
	font-size:11px;
	font-weight:900;
	line-height:1;
}

/* ------------------------------
   Single/detail pages
------------------------------ */

.ggg-v4-single,
.ggg-single,
.ggg-detail,
.ggg-page-content{
	max-width:1040px;
	margin:0 auto;
}

.ggg-v4-single__layout,
.ggg-single-layout,
.ggg-detail-layout{
	display:grid;
	grid-template-columns:minmax(0, 1fr) 300px;
	gap:clamp(28px, 4vw, 48px);
	align-items:start;
}

.ggg-v4-single__content,
.ggg-single-content,
.ggg-detail-content,
.entry-content{
	background:#fffdf8;
	border:1px solid rgba(15,95,61,.12);
	border-radius:28px;
	padding:clamp(24px, 4vw, 48px);
	box-shadow:0 16px 38px rgba(15,95,61,.07);
}

.entry-content > *:first-child{
	margin-top:0;
}

.entry-content h2,
.ggg-v4-single__content h2,
.ggg-single-content h2,
.ggg-detail-content h2{
	margin:2.2em 0 .8em;
	padding-left:16px;
	border-left:4px solid #0f6b3f;
	font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;
	font-size:clamp(22px, 2.2vw, 30px);
	line-height:1.45;
	color:#103b29;
}

.entry-content h3,
.ggg-v4-single__content h3,
.ggg-single-content h3,
.ggg-detail-content h3{
	margin:1.8em 0 .65em;
	font-size:clamp(18px, 1.8vw, 23px);
	color:#18392a;
}

.entry-content p,
.entry-content li,
.ggg-v4-single__content p,
.ggg-single-content p,
.ggg-detail-content p{
	font-size:15.5px;
	line-height:2;
	color:#263a30;
}

.entry-content a{
	color:#0f6b3f;
	font-weight:800;
	text-decoration-thickness:.08em;
	text-underline-offset:.25em;
}

.ggg-info-box,
.ggg-note-box,
.ggg-before-visit,
.ggg-safety-box,
.ggg-related-box,
.ggg-v4-info-box{
	margin:28px 0;
	padding:20px 22px;
	background:#f7f1df;
	border:1px solid rgba(15,95,61,.14);
	border-radius:20px;
	color:#2c4337;
}

.ggg-info-box h2,
.ggg-info-box h3,
.ggg-note-box h2,
.ggg-note-box h3,
.ggg-before-visit h2,
.ggg-before-visit h3,
.ggg-safety-box h2,
.ggg-safety-box h3,
.ggg-related-box h2,
.ggg-related-box h3,
.ggg-v4-info-box h2,
.ggg-v4-info-box h3{
	margin-top:0;
	border-left:0;
	padding-left:0;
	font-size:20px;
}

.ggg-v4-sidebar,
.ggg-sidebar,
.ggg-detail-sidebar{
	position:sticky;
	top:104px;
	display:grid;
	gap:18px;
}

.ggg-v4-sidebar > *,
.ggg-sidebar > *,
.ggg-detail-sidebar > *{
	background:#fffdf8;
	border:1px solid rgba(15,95,61,.12);
	border-radius:22px;
	padding:18px;
	box-shadow:0 12px 28px rgba(15,95,61,.07);
}

/* ------------------------------
   Search / 404 / forms
------------------------------ */

.search-form,
.ggg-search-form,
.ggg-v4-search-form,
form[role="search"]{
	display:flex;
	gap:10px;
	align-items:center;
	max-width:680px;
	margin:26px auto;
	padding:10px;
	border-radius:999px;
	background:#fff;
	border:1px solid rgba(15,95,61,.16);
	box-shadow:0 12px 30px rgba(15,95,61,.08);
}

.search-form input[type="search"],
.ggg-search-form input[type="search"],
.ggg-v4-search-form input[type="search"],
form[role="search"] input[type="search"]{
	flex:1;
	min-width:0;
	border:0;
	background:transparent;
	padding:12px 14px;
	font-size:16px;
	outline:none;
}

.search-form button,
.ggg-search-form button,
.ggg-v4-search-form button,
form[role="search"] button,
.ggg-button,
.ggg-v4-button,
.wp-block-button__link{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:44px;
	padding:0 20px;
	border:0;
	border-radius:999px;
	background:#0f6b3f;
	color:#fff!important;
	font-weight:900;
	text-decoration:none;
	box-shadow:0 10px 22px rgba(15,95,61,.16);
}

/* ------------------------------
   Pagination
------------------------------ */

.pagination,
.nav-links,
.ggg-pagination{
	display:flex;
	justify-content:center;
	align-items:center;
	gap:8px;
	margin:44px 0 0;
}

.pagination a,
.pagination span,
.nav-links a,
.nav-links span,
.ggg-pagination a,
.ggg-pagination span{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:40px;
	height:40px;
	padding:0 12px;
	border-radius:999px;
	background:#fffdf8;
	border:1px solid rgba(15,95,61,.16);
	color:#17442d;
	text-decoration:none;
	font-weight:800;
}

.pagination .current,
.nav-links .current,
.ggg-pagination .current{
	background:#0f6b3f;
	color:#fff;
}

/* ------------------------------
   Responsive lower pages
------------------------------ */

@media (max-width: 1080px){
	.ggg-v4-grid,
	.ggg-archive-grid,
	.ggg-card-grid,
	.ggg-spot-grid,
	.ggg-karuta-grid,
	.ggg-course-grid{
		grid-template-columns:repeat(2, minmax(0, 1fr));
	}

	.ggg-v4-single__layout,
	.ggg-single-layout,
	.ggg-detail-layout{
		grid-template-columns:1fr;
	}

	.ggg-v4-sidebar,
	.ggg-sidebar,
	.ggg-detail-sidebar{
		position:static;
	}
}

@media (max-width: 680px){
	.ggg-v4-archive-hero,
	.ggg-v4-page__hero,
	.ggg-v4-search-hero,
	.ggg-v4-single-hero,
	.ggg-archive-hero,
	.ggg-page-hero,
	.ggg-single-hero{
		margin:24px auto 36px;
		padding:28px 22px;
		border-radius:24px;
	}

	.ggg-v4-grid,
	.ggg-archive-grid,
	.ggg-card-grid,
	.ggg-spot-grid,
	.ggg-karuta-grid,
	.ggg-course-grid{
		grid-template-columns:1fr;
	}

	.ggg-v4-single__content,
	.ggg-single-content,
	.ggg-detail-content,
	.entry-content{
		padding:24px 20px;
		border-radius:22px;
	}

	.search-form,
	.ggg-search-form,
	.ggg-v4-search-form,
	form[role="search"]{
		border-radius:22px;
		flex-direction:column;
		align-items:stretch;
	}

	.search-form button,
	.ggg-search-form button,
	.ggg-v4-search-form button,
	form[role="search"] button{
		width:100%;
	}
}




/* =========================================================
   GOGO群馬 Design Integrated v0.1.6
   Batch:
   - top PC/SP polish
   - spot archive/detail polish
   - karuta archive/detail polish
   - relation/next-step cards
========================================================= */

/* ------------------------------
   Top polish from 6 screenshots
------------------------------ */

body.home .ggg-home-camp-main{
	padding-inline:clamp(18px, 2.4vw, 28px);
}

body.home .ggg-v4-section{
	margin:clamp(54px, 6vw, 84px) 0;
}

body.home .ggg-camp-nav-cards a,
body.home .ggg-camp-purpose-grid a{
	backdrop-filter:blur(2px);
}

body.home .ggg-camp-spot-card,
body.home .ggg-camp-course-card,
body.home .ggg-camp-area-grid a,
body.home .ggg-camp-news-panel,
body.home .ggg-v4-info-card{
	box-shadow:0 14px 32px rgba(16,68,44,.085);
}

body.home .ggg-camp-spot-card p,
body.home .ggg-camp-course-card li{
	display:-webkit-box;
	-webkit-line-clamp:3;
	-webkit-box-orient:vertical;
	overflow:hidden;
}

/* SP: reduce top density and make cards breathe */
@media (max-width: 760px){
	body.home .ggg-fv-camp{
		min-height:560px;
	}
	body.home .ggg-fv-camp__inner{
		align-items:end;
		padding-top:92px;
		padding-bottom:34px;
	}
	body.home .ggg-fv-camp__copy{
		width:100%;
		padding:16px 14px 18px;
	}
	body.home .ggg-fv-camp__eyebrow{
		font-size:12px;
		letter-spacing:.06em;
	}
	body.home .ggg-fv-camp__rule{
		margin-bottom:12px;
	}
	body.home .ggg-fv-camp__title{
		font-size:34px;
		line-height:1.36;
		letter-spacing:.02em;
	}
	body.home .ggg-fv-camp__lead{
		margin-top:16px;
		font-size:12.5px;
		line-height:1.8;
	}
	body.home .ggg-fv-camp__actions{
		gap:9px;
		margin-top:18px;
	}
	body.home .ggg-fv-camp__button{
		height:46px;
		font-size:13px;
	}
	body.home .ggg-v4-section-head{
		margin-bottom:18px;
	}
	body.home .ggg-v4-section-head h2{
		font-size:20px;
		letter-spacing:.08em;
	}
	body.home .ggg-camp-nav-cards a,
	body.home .ggg-camp-purpose-grid a{
		min-height:auto;
		padding:18px 14px;
	}
	body.home .ggg-camp-karuta-card figure{
		max-width:210px;
		margin-left:auto;
		margin-right:auto;
	}
	body.home .ggg-camp-spot-card__body{
		padding:14px 15px 16px;
	}
}

/* ------------------------------
   Archive page hero/filter refinements
------------------------------ */

.ggg-v4-filter-panel{
	max-width:980px;
	margin:0 auto clamp(28px, 4vw, 48px);
	padding:22px 24px;
	border-radius:24px;
	background:rgba(255,253,248,.92);
	border:1px solid rgba(15,95,61,.14);
	box-shadow:0 14px 34px rgba(15,95,61,.07);
}

.ggg-v4-filter-panel h2,
.ggg-v4-filter-panel h3{
	margin:0 0 14px;
	font-size:18px;
	color:#18392a;
}

.ggg-v4-filter-chips{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
}

.ggg-v4-filter-chips a,
.ggg-v4-chip-row a,
.ggg-v4-chip-row span,
.ggg-v4-chip-row em{
	display:inline-flex;
	align-items:center;
	min-height:28px;
	padding:6px 11px;
	border-radius:999px;
	background:#e8f3ec;
	color:#1c6540;
	border:1px solid rgba(15,95,61,.14);
	text-decoration:none;
	font-size:11.5px;
	font-weight:900;
	line-height:1;
	font-style:normal;
}

/* Spot archive: keep the card-horizontal look from screenshot */
.post-type-archive-ggg_spot .ggg-v4-grid,
.archive.post-type-archive-ggg_spot .ggg-v4-grid{
	grid-template-columns:repeat(2, minmax(0, 1fr));
	gap:24px;
}

.post-type-archive-ggg_spot .ggg-v4-card--spot a,
.archive.post-type-archive-ggg_spot .ggg-v4-card--spot a{
	display:grid;
	grid-template-columns:minmax(180px, 42%) 1fr;
	min-height:230px;
	text-decoration:none;
	color:inherit;
}

.post-type-archive-ggg_spot .ggg-v4-card--spot figure,
.archive.post-type-archive-ggg_spot .ggg-v4-card--spot figure{
	height:100%;
}

.post-type-archive-ggg_spot .ggg-v4-card--spot img,
.archive.post-type-archive-ggg_spot .ggg-v4-card--spot img{
	height:100%;
	aspect-ratio:auto;
	object-fit:cover;
}

.post-type-archive-ggg_spot .ggg-v4-card--spot .ggg-v4-card__body,
.archive.post-type-archive-ggg_spot .ggg-v4-card--spot .ggg-v4-card__body{
	display:flex;
	flex-direction:column;
	justify-content:center;
	padding:22px 24px;
}

.post-type-archive-ggg_spot .ggg-v4-card--spot h3,
.archive.post-type-archive-ggg_spot .ggg-v4-card--spot h3{
	font-size:22px;
}

/* Karuta archive: more stable card rhythm */
.post-type-archive-karuta_card .ggg-v4-grid--karuta,
.archive.post-type-archive-karuta_card .ggg-v4-grid--karuta{
	grid-template-columns:repeat(3, minmax(0, 1fr));
	gap:24px;
}

.ggg-v4-karuta-card{
	background:#fffdf8;
	border:1px solid rgba(15,95,61,.13);
	border-radius:22px;
	box-shadow:0 16px 36px rgba(15,95,61,.08);
	overflow:hidden;
	transition:transform .18s ease, box-shadow .18s ease;
}

.ggg-v4-karuta-card:hover{
	transform:translateY(-3px);
	box-shadow:0 20px 44px rgba(15,95,61,.12);
}

.ggg-v4-karuta-card a{
	display:grid;
	grid-template-columns:132px 1fr;
	gap:18px;
	align-items:center;
	color:inherit;
	text-decoration:none;
	padding:16px;
}

.ggg-v4-karuta-card figure{
	margin:0;
	border-radius:14px;
	overflow:hidden;
	background:#f3f0e5;
	box-shadow:0 10px 22px rgba(15,95,61,.10);
}

.ggg-v4-karuta-card figure img{
	width:100%;
	aspect-ratio:9/13;
	object-fit:cover;
	display:block;
}

.ggg-v4-karuta-card h3{
	margin:0;
	font-size:20px;
	line-height:1.45;
	color:#18392a;
}

.ggg-v4-karuta-card p{
	margin:8px 0 0;
	font-size:13px;
	line-height:1.75;
	color:#607166;
}

.ggg-v4-kana{
	color:#0f6b3f!important;
	font-weight:900;
	letter-spacing:.1em;
}

/* ------------------------------
   Detail pages: hero + panels
------------------------------ */

.ggg-v4-detail{
	max-width:1040px;
	margin:0 auto;
	padding:clamp(24px, 4vw, 56px) 0 72px;
}

.ggg-v4-detail-hero{
	position:relative;
	display:grid;
	grid-template-columns:minmax(0, 1.05fr) minmax(320px, .95fr);
	gap:clamp(24px, 4vw, 46px);
	align-items:center;
	margin:0 0 32px;
	padding:clamp(24px, 4vw, 42px);
	border-radius:30px;
	background:rgba(255,253,248,.94);
	border:1px solid rgba(15,95,61,.13);
	box-shadow:0 18px 46px rgba(15,95,61,.09);
	overflow:hidden;
}

.ggg-v4-detail-hero--karuta{
	grid-template-columns:minmax(260px, .72fr) minmax(0, 1.28fr);
}

.ggg-v4-detail-hero::before{
	content:"";
	position:absolute;
	inset:0;
	background:
		radial-gradient(circle at 88% 14%, rgba(231,184,20,.12), transparent 30%),
		radial-gradient(circle at 6% 86%, rgba(15,107,63,.08), transparent 34%);
	pointer-events:none;
}

.ggg-v4-detail-hero > *{
	position:relative;
	z-index:1;
}

.ggg-v4-detail-hero figure,
.ggg-v4-detail-hero__image{
	margin:0;
	border-radius:20px;
	overflow:hidden;
	background:#eef5ef;
	box-shadow:0 14px 32px rgba(15,95,61,.10);
}

.ggg-v4-detail-hero figure img,
.ggg-v4-detail-hero__image > img{
	width:100%;
	aspect-ratio:16/10;
	object-fit:cover;
	display:block;
}

.ggg-v4-detail-hero--karuta figure img{
	aspect-ratio:16/10;
}

.ggg-v4-detail-hero h1{
	margin:10px 0 14px;
	font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;
	font-size:clamp(34px, 4.6vw, 58px);
	line-height:1.24;
	letter-spacing:.06em;
	color:#0b4c31;
}

.ggg-v4-detail-hero p{
	line-height:1.9;
	color:#4a5e53;
	font-weight:700;
}

.ggg-v4-pill,
.ggg-v4-mini-badge{
	display:inline-flex;
	align-items:center;
	width:max-content;
	padding:6px 11px;
	border-radius:999px;
	background:#e8f3ec;
	color:#1c6540;
	border:1px solid rgba(15,95,61,.14);
	font-size:11px;
	font-weight:900;
	line-height:1;
}

.ggg-v4-actions{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
	margin-top:18px;
}

.ggg-v4-button--ghost{
	background:#fffdf8!important;
	color:#0f6b3f!important;
	border:1px solid rgba(15,95,61,.22)!important;
	box-shadow:none!important;
}

.ggg-v4-detail-grid{
	display:grid;
	grid-template-columns:minmax(0, 1fr) 300px;
	gap:28px;
	align-items:start;
}

.ggg-v4-detail-grid > div{
	display:grid;
	gap:24px;
}

.ggg-v4-detail-grid > aside{
	position:sticky;
	top:96px;
	display:grid;
	gap:18px;
}

.ggg-v4-panel,
.ggg-v4-detail-grid > aside > *,
.ggg-v4-section--related-spots,
.ggg-v4-section--nearby,
.ggg-v4-kids-note{
	background:#fffdf8;
	border:1px solid rgba(15,95,61,.12);
	border-radius:24px;
	padding:clamp(22px, 3vw, 34px);
	box-shadow:0 14px 34px rgba(15,95,61,.075);
}

.ggg-v4-panel h2,
.ggg-v4-section--related-spots h2,
.ggg-v4-section--nearby h2,
.ggg-v4-kids-note h2{
	margin:0 0 14px;
	font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;
	font-size:clamp(22px, 2.2vw, 30px);
	line-height:1.45;
	color:#103b29;
}

.ggg-v4-panel p,
.ggg-v4-section--related-spots p,
.ggg-v4-section--nearby p,
.ggg-v4-kids-note p{
	font-size:15px;
	line-height:2;
	color:#2f4338;
}

.ggg-v4-panel__head{
	margin-bottom:18px;
}

.ggg-v4-panel__head h2{
	margin-top:8px;
}

/* Better relation cards */
.ggg-v4-relation-list{
	display:grid;
	gap:16px;
}

.ggg-v4-relation-card{
	display:grid;
	grid-template-columns:150px 1fr;
	gap:18px;
	align-items:center;
	padding:16px;
	border-radius:18px;
	background:#fff;
	border:1px solid rgba(15,95,61,.13);
	color:inherit;
	text-decoration:none;
}

.ggg-v4-relation-card figure{
	margin:0;
	border-radius:14px;
	overflow:hidden;
	background:#eef5ef;
}

.ggg-v4-relation-card figure img,
.ggg-v4-relation-card > img{
	width:100%;
	aspect-ratio:4/3;
	object-fit:cover;
	border-radius:14px;
	display:block;
}

.ggg-v4-relation-card h3{
	margin:6px 0 8px;
	font-size:20px;
	line-height:1.45;
	color:#18392a;
}

.ggg-v4-text-link{
	display:inline-flex;
	margin-top:8px;
	color:#0f6b3f;
	font-weight:900;
	font-size:13px;
}

/* Related static cards */
.ggg-v4-card-row{
	display:grid;
	grid-template-columns:repeat(4, minmax(0, 1fr));
	gap:18px;
}

.ggg-v4-static-card{
	display:block;
	color:inherit;
	text-decoration:none;
	background:#fff;
	border:1px solid rgba(15,95,61,.12);
	border-radius:18px;
	padding:14px;
	box-shadow:0 12px 28px rgba(15,95,61,.06);
}

.ggg-v4-static-card img,
.ggg-v4-static-card figure img{
	width:100%;
	aspect-ratio:16/10;
	object-fit:cover;
	border-radius:12px;
	background:#eef5ef;
	display:block;
}

.ggg-v4-static-card figure{
	margin:0 0 12px;
}

.ggg-v4-static-card h3{
	margin:10px 0 6px;
	font-size:16px;
	line-height:1.45;
	color:#18392a;
}

.ggg-v4-static-card p{
	margin:0;
	font-size:12.5px;
	line-height:1.65;
	color:#637166;
}

/* Notes: make lower warning/info blocks less monotonous */
.ggg-v4-detail .ggg-v4-panel:nth-of-type(n+4),
.ggg-v4-detail .ggg-note-box,
.ggg-v4-detail .ggg-info-box,
.ggg-v4-detail .ggg-safety-box{
	border-left:5px solid #e2b13c;
}

.ggg-v4-detail .ggg-safety-box{
	border-left-color:#d56b45;
}

.ggg-v4-detail .ggg-before-visit{
	border-left-color:#4d9a61;
}

/* ------------------------------
   Responsive detail/archive
------------------------------ */

@media (max-width: 1120px){
	.post-type-archive-ggg_spot .ggg-v4-grid,
	.archive.post-type-archive-ggg_spot .ggg-v4-grid{
		grid-template-columns:1fr;
	}

	.post-type-archive-karuta_card .ggg-v4-grid--karuta,
	.archive.post-type-archive-karuta_card .ggg-v4-grid--karuta{
		grid-template-columns:repeat(2, minmax(0, 1fr));
	}

	.ggg-v4-detail-hero,
	.ggg-v4-detail-hero--karuta,
	.ggg-v4-detail-grid{
		grid-template-columns:1fr;
	}

	.ggg-v4-detail-grid > aside{
		position:static;
	}
}

@media (max-width: 760px){
	.ggg-v4-archive-hero,
	.ggg-v4-page__hero,
	.ggg-v4-search-hero,
	.ggg-v4-single-hero,
	.ggg-archive-hero,
	.ggg-page-hero,
	.ggg-single-hero{
		margin:22px auto 30px;
		padding:26px 20px;
		border-radius:22px;
	}

	.ggg-v4-archive-hero h1,
	.ggg-v4-page__hero h1,
	.ggg-v4-search-hero h1,
	.ggg-v4-single-hero h1,
	.ggg-archive-hero h1,
	.ggg-page-hero h1,
	.ggg-single-hero h1{
		font-size:30px;
	}

	.ggg-v4-filter-panel{
		padding:18px;
		border-radius:20px;
	}

	.post-type-archive-ggg_spot .ggg-v4-card--spot a,
	.archive.post-type-archive-ggg_spot .ggg-v4-card--spot a{
		display:block;
		min-height:0;
	}

	.post-type-archive-ggg_spot .ggg-v4-card--spot img,
	.archive.post-type-archive-ggg_spot .ggg-v4-card--spot img{
		height:auto;
		aspect-ratio:16/10;
	}

	.post-type-archive-karuta_card .ggg-v4-grid--karuta,
	.archive.post-type-archive-karuta_card .ggg-v4-grid--karuta{
		grid-template-columns:1fr;
	}

	.ggg-v4-karuta-card a{
		grid-template-columns:112px 1fr;
		gap:14px;
		padding:14px;
	}

	.ggg-v4-karuta-card h3{
		font-size:17px;
	}

	.ggg-v4-detail{
		padding-top:20px;
	}

	.ggg-v4-detail-hero{
		padding:20px;
		border-radius:24px;
	}

	.ggg-v4-detail-hero h1{
		font-size:32px;
	}

	.ggg-v4-panel,
	.ggg-v4-detail-grid > aside > *,
	.ggg-v4-section--related-spots,
	.ggg-v4-section--nearby,
	.ggg-v4-kids-note{
		padding:20px;
		border-radius:20px;
	}

	.ggg-v4-relation-card{
		grid-template-columns:1fr;
	}

	.ggg-v4-card-row{
		grid-template-columns:1fr 1fr;
	}

	.ggg-v4-static-card{
		padding:12px;
	}
}

@media (max-width: 460px){
	.ggg-v4-card-row{
		grid-template-columns:1fr;
	}

	.ggg-v4-karuta-card a{
		grid-template-columns:92px 1fr;
	}
}




/* =========================================================
   GOGO群馬 Design Integrated v0.1.7
   6-page camp implementation batch:
   01 top PC / top SP
   02 spot archive
   03 spot detail
   04 karuta archive
   05 karuta detail
========================================================= */

:root{
	--ggg-camp-bg:#fbf5e7;
	--ggg-camp-paper:#fffdf8;
	--ggg-camp-green:#0b6039;
	--ggg-camp-ink:#16392b;
	--ggg-camp-muted:#65756b;
	--ggg-camp-line:rgba(15,95,61,.14);
	--ggg-camp-shadow:0 18px 44px rgba(15,95,61,.085);
}

.ggg-camp-page{
	background:var(--ggg-camp-bg);
	color:var(--ggg-camp-ink);
	padding:clamp(34px,5vw,72px) 0 84px;
}

.ggg-camp-page__inner{
	width:min(1160px, calc(100% - 40px));
	margin:0 auto;
}

.ggg-camp-page__inner--narrow{
	width:min(980px, calc(100% - 40px));
}

.ggg-camp-eyebrow{
	margin:0 0 8px;
	color:var(--ggg-camp-green);
	font-weight:900;
	font-size:12px;
	letter-spacing:.08em;
}

.ggg-camp-pill{
	display:inline-flex;
	align-items:center;
	width:max-content;
	padding:7px 12px;
	border-radius:999px;
	background:#e8f3ec;
	color:#1c6540;
	border:1px solid rgba(15,95,61,.14);
	font-size:12px;
	font-weight:900;
	line-height:1;
}

.ggg-camp-button{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:44px;
	padding:0 20px;
	border-radius:999px;
	background:var(--ggg-camp-green);
	color:#fff!important;
	text-decoration:none;
	font-size:14px;
	font-weight:900;
	box-shadow:0 12px 26px rgba(15,95,61,.18);
	border:1px solid rgba(255,255,255,.9);
}

.ggg-camp-button--ghost{
	background:#fffdf8;
	color:var(--ggg-camp-green)!important;
	border:1px solid rgba(15,95,61,.22);
	box-shadow:none;
}

.ggg-camp-chip-row,
.ggg-v4-chip-row{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	margin-top:12px;
}

.ggg-camp-chip-row a,
.ggg-v4-chip-row a,
.ggg-v4-chip-row span,
.ggg-v4-chip-row em,
.ggg-chip{
	display:inline-flex;
	align-items:center;
	min-height:27px;
	padding:6px 10px;
	border-radius:999px;
	background:#e8f3ec;
	color:#1c6540;
	border:1px solid rgba(15,95,61,.14);
	text-decoration:none;
	font-size:11px;
	font-weight:900;
	line-height:1;
	font-style:normal;
}

.ggg-camp-archive-head{
	text-align:center;
	max-width:860px;
	margin:0 auto 34px;
}

.ggg-camp-archive-head h1{
	margin:0;
	font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;
	font-size:clamp(38px,4.4vw,58px);
	line-height:1.24;
	letter-spacing:.06em;
	color:#1b2f26;
}

.ggg-camp-archive-head p:not(.ggg-camp-eyebrow):not(.ggg-camp-pill){
	margin:16px auto 0;
	max-width:760px;
	font-size:16px;
	line-height:1.9;
	color:#5b6961;
	font-weight:700;
}

.ggg-camp-head-actions{
	display:flex;
	justify-content:center;
	flex-wrap:wrap;
	gap:12px;
	margin-top:22px;
}

/* 01 top PC/SP: do not replace the approved FV; just make sections closer to the mockup rhythm */
body.home .ggg-home-camp-main{
	width:min(1080px, calc(100% - 40px));
}

body.home .ggg-v4-section{
	margin:clamp(56px,6vw,86px) 0;
}

body.home .ggg-v4-section-head h2{
	font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;
	letter-spacing:.12em;
}

body.home .ggg-camp-spot-card,
body.home .ggg-camp-course-card,
body.home .ggg-camp-area-grid a{
	border-radius:18px;
}

/* 02 spot archive */
.ggg-camp-filter-box{
	margin:0 auto 28px;
	padding:22px 26px;
	border-radius:24px;
	background:rgba(255,253,248,.94);
	border:1px solid var(--ggg-camp-line);
	box-shadow:var(--ggg-camp-shadow);
}

.ggg-camp-filter-box h2{
	margin:0 0 14px;
	font-size:17px;
	color:var(--ggg-camp-ink);
}

.ggg-camp-filter-chips{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
}

.ggg-camp-filter-chips a{
	display:inline-flex;
	align-items:center;
	min-height:30px;
	padding:7px 12px;
	border-radius:999px;
	background:#e8f3ec;
	color:#1c6540;
	border:1px solid rgba(15,95,61,.14);
	text-decoration:none;
	font-size:12px;
	font-weight:900;
}

.ggg-camp-spot-archive-layout{
	display:grid;
	grid-template-columns:minmax(0, 1fr) 320px;
	gap:30px;
	align-items:start;
}

.ggg-camp-spot-list-grid{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:22px;
}

.ggg-camp-page--spot-archive .ggg-camp-spot-card{
	background:#fffdf8;
	border:1px solid var(--ggg-camp-line);
	border-radius:20px;
	overflow:hidden;
	box-shadow:var(--ggg-camp-shadow);
}

.ggg-camp-page--spot-archive .ggg-camp-spot-card a{
	display:grid;
	grid-template-columns:44% 1fr;
	min-height:224px;
	color:inherit;
	text-decoration:none;
}

.ggg-camp-page--spot-archive .ggg-camp-spot-card figure{
	margin:0;
	height:100%;
	background:#edf5ef;
}

.ggg-camp-page--spot-archive .ggg-camp-spot-card figure img{
	width:100%;
	height:100%;
	aspect-ratio:auto;
	object-fit:cover;
	display:block;
}

.ggg-camp-page--spot-archive .ggg-camp-spot-card .ggg-v4-card__body{
	padding:22px 22px 20px;
	display:flex;
	flex-direction:column;
	justify-content:center;
}

.ggg-camp-page--spot-archive .ggg-camp-spot-card h3{
	margin:0;
	font-size:22px;
	line-height:1.42;
}

.ggg-camp-card-meta{
	margin:4px 0 10px!important;
	font-size:12px!important;
	font-weight:800;
	color:#647269!important;
}

.ggg-camp-spot-side{
	display:grid;
	gap:20px;
	position:sticky;
	top:96px;
}

.ggg-camp-map-card,
.ggg-camp-side-panel{
	background:#fffdf8;
	border:1px solid var(--ggg-camp-line);
	border-radius:22px;
	box-shadow:var(--ggg-camp-shadow);
	padding:20px;
}

.ggg-camp-map-card h2,
.ggg-camp-side-panel h2{
	margin:0 0 12px;
	font-size:18px;
}

.ggg-camp-map-card__visual{
	position:relative;
	height:260px;
	border-radius:18px;
	overflow:hidden;
	background:
		linear-gradient(120deg, rgba(109,172,194,.22) 0 2px, transparent 2px 42px),
		linear-gradient(30deg, rgba(109,172,194,.18) 0 2px, transparent 2px 52px),
		#edf4df;
	border:1px solid rgba(15,95,61,.12);
}

.ggg-camp-map-card__visual span{
	position:absolute;
	width:12px;
	height:12px;
	border-radius:50%;
	background:#0b6039;
	box-shadow:0 0 0 6px rgba(11,96,57,.12);
}
.ggg-camp-map-card__visual span:nth-child(1){left:30%;top:24%}
.ggg-camp-map-card__visual span:nth-child(2){left:58%;top:42%}
.ggg-camp-map-card__visual span:nth-child(3){left:38%;top:68%}
.ggg-camp-map-card__visual span:nth-child(4){left:72%;top:72%}

.ggg-camp-side-panel .ggg-archive-tools{
	padding:0;
	margin:0;
	background:transparent;
	border:0;
	box-shadow:none;
}

.ggg-camp-side-panel ul{
	margin:0;
	padding-left:1.2em;
	line-height:2;
	font-weight:800;
	color:#4d6257;
}

/* 03 spot detail */
.ggg-camp-detail-hero{
	display:grid;
	grid-template-columns:minmax(0,.85fr) minmax(420px,1.15fr);
	gap:clamp(26px,4vw,54px);
	align-items:center;
	margin-bottom:34px;
	padding:clamp(24px,4vw,42px);
	background:#fffdf8;
	border:1px solid var(--ggg-camp-line);
	border-radius:30px;
	box-shadow:var(--ggg-camp-shadow);
}

.ggg-camp-detail-hero__text h1{
	margin:12px 0 14px;
	font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;
	font-size:clamp(36px,4.5vw,58px);
	line-height:1.24;
	letter-spacing:.06em;
	color:#133a2a;
}

.ggg-camp-detail-hero__text p{
	line-height:1.9;
	color:#51665b;
	font-weight:700;
}

.ggg-camp-detail-hero__image{
	margin:0;
	border-radius:22px;
	overflow:hidden;
	background:#edf5ef;
	box-shadow:0 16px 36px rgba(15,95,61,.10);
}

.ggg-camp-detail-hero__image img{
	width:100%;
	aspect-ratio:16/10;
	object-fit:cover;
	display:block;
}

.ggg-camp-detail-two{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:24px;
	margin-bottom:28px;
}

.ggg-camp-mini-gallery,
.ggg-camp-info-table,
.ggg-camp-content-panel,
.ggg-camp-note-panel,
.ggg-v4-panel,
.ggg-v4-section--nearby,
.ggg-v4-section--related-spots{
	background:#fffdf8;
	border:1px solid var(--ggg-camp-line);
	border-radius:24px;
	box-shadow:var(--ggg-camp-shadow);
	padding:clamp(22px,3vw,32px);
}

.ggg-camp-section-head{
	margin-bottom:16px;
}

.ggg-camp-section-head h2,
.ggg-camp-content-panel h2,
.ggg-camp-note-panel h2,
.ggg-v4-panel h2{
	margin:0 0 14px;
	font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;
	font-size:clamp(22px,2.2vw,30px);
	line-height:1.45;
	color:#153d2d;
}

.ggg-camp-mini-gallery__grid{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:12px;
}

.ggg-camp-mini-gallery__grid a{
	color:inherit;
	text-decoration:none;
	font-weight:900;
	font-size:12px;
}

.ggg-camp-mini-gallery__grid img{
	width:100%;
	aspect-ratio:4/3;
	object-fit:cover;
	border-radius:14px;
	display:block;
	margin-bottom:8px;
}

.ggg-camp-info-table dl{
	display:grid;
	grid-template-columns:110px 1fr;
	gap:12px 18px;
	margin:0;
}

.ggg-camp-info-table dt{
	color:#617066;
	font-weight:900;
}

.ggg-camp-info-table dd{
	margin:0;
	font-weight:800;
}

.ggg-camp-detail-main{
	display:grid;
	gap:24px;
}

.ggg-camp-content-panel p,
.ggg-camp-note-panel p,
.ggg-v4-panel p,
.ggg-v4-section--nearby p,
.ggg-v4-section--related-spots p{
	font-size:15.5px;
	line-height:2;
	color:#2f4338;
}

/* 04 karuta archive */
.ggg-camp-archive-head--simple{
	background:#fffdf8;
	border:1px solid var(--ggg-camp-line);
	border-radius:28px;
	box-shadow:var(--ggg-camp-shadow);
	padding:clamp(28px,4vw,46px);
	text-align:left;
	max-width:none;
}

.ggg-camp-karuta-archive-grid{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:24px;
	margin-top:26px;
}

.ggg-camp-page--karuta-archive .ggg-camp-karuta-card{
	background:#fffdf8;
	border:1px solid var(--ggg-camp-line);
	border-radius:22px;
	box-shadow:var(--ggg-camp-shadow);
	overflow:hidden;
}

.ggg-camp-page--karuta-archive .ggg-camp-karuta-card a{
	display:grid;
	grid-template-columns:150px 1fr;
	gap:20px;
	align-items:center;
	padding:18px;
	text-decoration:none;
	color:inherit;
}

.ggg-camp-page--karuta-archive .ggg-camp-karuta-card figure{
	margin:0;
	border-radius:16px;
	overflow:hidden;
	box-shadow:0 12px 26px rgba(15,95,61,.10);
	background:#f3f0e5;
}

.ggg-camp-page--karuta-archive .ggg-camp-karuta-card img{
	width:100%;
	aspect-ratio:9/13;
	object-fit:cover;
	display:block;
}

.ggg-camp-page--karuta-archive .ggg-camp-karuta-card h3{
	margin:6px 0 10px;
	font-size:20px;
	line-height:1.45;
	color:#103b29;
}

.ggg-camp-read-more{
	display:inline-flex;
	margin-top:12px;
	color:#916a0e;
	font-weight:900;
	font-size:12px;
}

/* 05 karuta detail */
.ggg-camp-karuta-hero{
	display:grid;
	grid-template-columns:minmax(260px,.78fr) minmax(0,1.22fr);
	gap:clamp(34px,5vw,70px);
	align-items:center;
	margin:0 0 48px;
	padding:clamp(30px,5vw,58px);
	background:#fffdf8;
	border:1px solid var(--ggg-camp-line);
	border-radius:30px;
	box-shadow:var(--ggg-camp-shadow);
}

.ggg-camp-karuta-hero figure{
	margin:0;
	border-radius:18px;
	overflow:hidden;
	box-shadow:0 18px 40px rgba(15,95,61,.14);
	background:#f3f0e5;
}

.ggg-camp-karuta-hero figure img{
	width:100%;
	aspect-ratio:9/13;
	object-fit:cover;
	display:block;
}

.ggg-camp-karuta-hero h1{
	margin:10px 0 16px;
	font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;
	font-size:clamp(40px,5vw,68px);
	line-height:1.18;
	color:#0b4c31;
	letter-spacing:.06em;
}

.ggg-camp-kana{
	margin:16px 0 0;
	color:#263a30;
	font-size:22px;
	font-weight:900;
	letter-spacing:.08em;
}

.ggg-camp-reading{
	font-size:18px;
	font-weight:900;
	color:#18392a;
}

.ggg-camp-reading-section{
	margin:44px 0;
	padding:0;
	background:transparent;
	border:0;
	box-shadow:none;
}

.ggg-camp-reading-section p{
	font-size:17px;
	line-height:2.15;
	color:#263a30;
}

.ggg-camp-note-panel{
	border-left:5px solid #e4b241;
}

.ggg-camp-note-panel--green{
	border-left-color:#5aa36a;
}

.ggg-camp-note-panel--orange{
	border-left-color:#d56b45;
}

.ggg-camp-bottom-cta{
	margin:48px 0 0;
	padding:24px 28px;
	border-radius:22px;
	background:#fffdf8;
	border:1px solid var(--ggg-camp-line);
	box-shadow:var(--ggg-camp-shadow);
}

.ggg-camp-bottom-cta h2{
	margin:0 0 8px;
	color:#103b29;
}

/* Related cards for both detail pages */
.ggg-v4-card-row,
.ggg-v4-card-row--related,
.ggg-v4-card-row--nearby{
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:18px;
}

.ggg-v4-static-card{
	display:block;
	text-decoration:none;
	color:inherit;
	background:#fff;
	border:1px solid var(--ggg-camp-line);
	border-radius:18px;
	padding:14px;
	box-shadow:0 12px 28px rgba(15,95,61,.06);
}

.ggg-v4-static-card img,
.ggg-v4-static-card figure img{
	width:100%;
	aspect-ratio:16/10;
	object-fit:cover;
	border-radius:12px;
	display:block;
	background:#edf5ef;
}

.ggg-v4-static-card h3{
	margin:10px 0 6px;
	color:#153d2d;
	font-size:16px;
}

/* Responsive */
@media (max-width: 1120px){
	.ggg-camp-spot-archive-layout{
		grid-template-columns:1fr;
	}
	.ggg-camp-spot-side{
		position:static;
		grid-template-columns:repeat(2, minmax(0,1fr));
	}
	.ggg-camp-detail-hero,
	.ggg-camp-karuta-hero{
		grid-template-columns:1fr;
	}
	.ggg-camp-detail-two{
		grid-template-columns:1fr;
	}
}

@media (max-width: 860px){
	.ggg-camp-page__inner,
	.ggg-camp-page__inner--narrow{
		width:min(100% - 28px, 680px);
	}
	.ggg-camp-spot-list-grid,
	.ggg-camp-karuta-archive-grid{
		grid-template-columns:1fr;
	}
	.ggg-camp-page--spot-archive .ggg-camp-spot-card a{
		display:block;
		min-height:0;
	}
	.ggg-camp-page--spot-archive .ggg-camp-spot-card figure img{
		height:auto;
		aspect-ratio:16/10;
	}
	.ggg-camp-page--karuta-archive .ggg-camp-karuta-card a{
		grid-template-columns:118px 1fr;
		gap:16px;
		padding:14px;
	}
	.ggg-v4-card-row,
	.ggg-v4-card-row--related,
	.ggg-v4-card-row--nearby{
		grid-template-columns:1fr 1fr;
	}
	.ggg-camp-spot-side{
		grid-template-columns:1fr;
	}
}

@media (max-width: 760px){
	.ggg-camp-page{
		padding-top:28px;
	}
	.ggg-camp-archive-head{
		text-align:left;
		margin-bottom:24px;
	}
	.ggg-camp-archive-head h1{
		font-size:32px;
	}
	.ggg-camp-filter-box{
		padding:18px;
		border-radius:20px;
	}
	.ggg-camp-detail-hero,
	.ggg-camp-karuta-hero{
		padding:20px;
		border-radius:24px;
	}
	.ggg-camp-detail-hero__text h1,
	.ggg-camp-karuta-hero h1{
		font-size:34px;
	}
	.ggg-camp-mini-gallery__grid{
		grid-template-columns:1fr;
	}
	.ggg-camp-info-table dl{
		grid-template-columns:1fr;
		gap:4px 0;
	}
	.ggg-camp-page--karuta-archive .ggg-camp-karuta-card a{
		grid-template-columns:98px 1fr;
	}
	body.home .ggg-fv-camp__title{
		font-size:32px!important;
	}
	body.home .ggg-fv-camp__lead{
		font-size:12px!important;
	}
}

@media (max-width: 480px){
	.ggg-v4-card-row,
	.ggg-v4-card-row--related,
	.ggg-v4-card-row--nearby{
		grid-template-columns:1fr;
	}
	.ggg-camp-page--karuta-archive .ggg-camp-karuta-card a{
		grid-template-columns:1fr;
	}
	.ggg-camp-page--karuta-archive .ggg-camp-karuta-card figure{
		max-width:180px;
	}
}




/* =========================================================
   GOGO群馬 Design Integrated v0.1.9
   Area image integration batch.
   Base: v0.1.7 stable line.
   Scope:
   - top area cards
   - area index fixed page
   - area taxonomy detail
   - final 5 watercolor area assets
========================================================= */

/* Top area cards: use final area watercolor images */
.ggg-camp-area--with-final-images .ggg-camp-area-grid a{
	position:relative;
	overflow:hidden;
	background:#fffdf8;
}

.ggg-camp-area--with-final-images .ggg-camp-area-grid figure{
	margin:0;
	position:relative;
	overflow:hidden;
	border-radius:16px 16px 10px 10px;
	background:#eef5ef;
}

.ggg-camp-area--with-final-images .ggg-camp-area-grid figure::after{
	content:"";
	position:absolute;
	inset:0;
	background:linear-gradient(to bottom, rgba(255,253,248,0) 54%, rgba(255,253,248,.78));
	pointer-events:none;
}

.ggg-camp-area--with-final-images .ggg-camp-area-grid img{
	width:100%;
	aspect-ratio:16/10;
	object-fit:cover;
	display:block;
	transform:scale(1.02);
}

.ggg-camp-area--with-final-images .ggg-camp-area-grid strong{
	margin-top:12px;
}

/* Area index page */
.ggg-area-index-page{
	padding-bottom:72px;
}

.ggg-area-index-hero{
	display:grid;
	grid-template-columns:minmax(0,1fr) minmax(320px,.75fr);
	gap:clamp(24px,4vw,46px);
	align-items:center;
}

.ggg-area-index-hero img{
	width:100%;
	aspect-ratio:16/10;
	object-fit:cover;
	border-radius:22px;
	box-shadow:0 16px 36px rgba(15,95,61,.10);
	background:#eef5ef;
}

.ggg-area-index-hero p:not(.ggg-v4-pill){
	margin-top:14px;
	line-height:1.9;
	color:#5b6961;
	font-weight:700;
}

.ggg-area-index-grid{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:24px;
	margin:34px 0 0;
}

.ggg-area-index-card{
	display:block;
	overflow:hidden;
	text-decoration:none;
	color:inherit;
	background:#fffdf8;
	border:1px solid rgba(15,95,61,.13);
	border-radius:24px;
	box-shadow:0 16px 38px rgba(15,95,61,.08);
	transition:transform .18s ease, box-shadow .18s ease;
}

.ggg-area-index-card:hover{
	transform:translateY(-3px);
	box-shadow:0 22px 48px rgba(15,95,61,.12);
}

.ggg-area-index-card img{
	width:100%;
	aspect-ratio:16/10;
	object-fit:cover;
	display:block;
	background:#eef5ef;
}

.ggg-area-index-card div{
	padding:20px 22px 24px;
}

.ggg-area-index-card h2{
	margin:8px 0 10px;
	font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;
	font-size:clamp(22px,2.2vw,30px);
	line-height:1.36;
	color:#123b2b;
}

.ggg-area-index-card p{
	line-height:1.85;
	color:#5b6961;
}

/* Area taxonomy detail hero */
.ggg-area-detail-hero{
	display:grid;
	grid-template-columns:minmax(0,1fr) minmax(360px,.8fr);
	gap:clamp(24px,4vw,50px);
	align-items:center;
	margin:clamp(24px,4vw,56px) auto 28px;
	padding:clamp(24px,4vw,42px);
	border-radius:30px;
	background:#fffdf8;
	border:1px solid rgba(15,95,61,.13);
	box-shadow:0 18px 46px rgba(15,95,61,.09);
}

.ggg-area-detail-hero h1{
	margin:12px 0 14px;
	font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;
	font-size:clamp(38px,4.6vw,60px);
	line-height:1.22;
	letter-spacing:.06em;
	color:#123b2b;
}

.ggg-area-detail-hero p:not(.ggg-v4-pill){
	font-size:16px;
	line-height:1.95;
	color:#566960;
	font-weight:700;
}

.ggg-area-detail-hero figure{
	margin:0;
	border-radius:22px;
	overflow:hidden;
	background:#eef5ef;
	box-shadow:0 16px 36px rgba(15,95,61,.10);
}

.ggg-area-detail-hero figure img{
	width:100%;
	aspect-ratio:16/10;
	object-fit:cover;
	display:block;
}

.ggg-area-detail-tabs{
	display:flex;
	justify-content:center;
	flex-wrap:wrap;
	gap:10px;
	margin:0 0 32px;
}

.ggg-area-detail-tabs a{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:38px;
	padding:8px 16px;
	border-radius:999px;
	background:#fffdf8;
	color:#0f6b3f;
	border:1px solid rgba(15,95,61,.18);
	text-decoration:none;
	font-weight:900;
	box-shadow:0 8px 20px rgba(15,95,61,.055);
}

.ggg-area-detail-grid{
	margin-top:28px;
}

@media (max-width: 980px){
	.ggg-area-index-hero,
	.ggg-area-detail-hero{
		grid-template-columns:1fr;
	}

	.ggg-area-index-grid{
		grid-template-columns:repeat(2,minmax(0,1fr));
	}
}

@media (max-width: 640px){
	.ggg-area-index-grid{
		grid-template-columns:1fr;
	}

	.ggg-area-detail-hero,
	.ggg-area-index-hero{
		padding:20px;
		border-radius:24px;
	}

	.ggg-area-detail-hero h1{
		font-size:34px;
	}
}




/* =========================================================
   GOGO群馬 Design Integrated v0.1.12
   /area/ polished visual adjustment.
========================================================= */

.ggg-area-index-page--polished{
	padding-bottom:clamp(78px, 9vw, 120px);
}

.ggg-area-index-hero--polished{
	position:relative;
	grid-template-columns:minmax(0, .98fr) minmax(380px, .82fr);
	gap:clamp(28px, 4.5vw, 64px);
	padding:clamp(34px, 5vw, 58px);
	overflow:hidden;
	background:
		radial-gradient(circle at 84% 18%, rgba(231,184,20,.12), transparent 260px),
		radial-gradient(circle at 10% 72%, rgba(15,107,63,.075), transparent 300px),
		linear-gradient(135deg, rgba(255,253,248,.94), rgba(249,240,214,.88));
}

.ggg-area-index-hero--polished::before,
.ggg-area-index-hero--polished::after{
	content:"";
	position:absolute;
	width:180px;
	height:90px;
	border-radius:999px;
	background:rgba(15,107,63,.055);
	filter:blur(8px);
	pointer-events:none;
}

.ggg-area-index-hero--polished::before{
	left:28px;
	bottom:24px;
	transform:rotate(-8deg);
}

.ggg-area-index-hero--polished::after{
	right:24px;
	top:26px;
	background:rgba(231,184,20,.08);
	transform:rotate(10deg);
}

.ggg-area-index-hero__text,
.ggg-area-index-hero__image{
	position:relative;
	z-index:1;
}

.ggg-area-index-hero--polished h1{
	margin-top:14px;
	font-size:clamp(40px, 4.8vw, 64px);
	line-height:1.18;
	letter-spacing:.08em;
}

.ggg-area-index-hero__chips{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	margin-top:22px;
}

.ggg-area-index-hero__chips span{
	display:inline-flex;
	align-items:center;
	min-height:30px;
	padding:7px 11px;
	border-radius:999px;
	background:rgba(232,243,236,.9);
	color:#1c6540;
	border:1px solid rgba(15,95,61,.13);
	font-size:11.5px;
	font-weight:900;
}

.ggg-area-index-hero__image{
	margin:0;
	padding:10px;
	border-radius:28px;
	background:rgba(255,253,248,.72);
	border:1px solid rgba(15,95,61,.10);
	box-shadow:0 20px 46px rgba(15,95,61,.13);
}

.ggg-area-index-hero__image img,
.ggg-area-index-hero--polished img{
	aspect-ratio:16/10;
	border-radius:20px;
	box-shadow:none;
}

.ggg-area-index-section{
	margin-top:clamp(42px, 5.5vw, 72px);
}

.ggg-area-index-section__head{
	text-align:center;
	max-width:760px;
	margin:0 auto 28px;
}

.ggg-area-index-section__head h2{
	margin:12px 0 10px;
	font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;
	font-size:clamp(28px, 3.3vw, 42px);
	line-height:1.35;
	letter-spacing:.06em;
	color:#123b2b;
}

.ggg-area-index-section__head p:not(.ggg-v4-mini-badge){
	line-height:1.9;
	color:#5b6961;
	font-weight:700;
}

.ggg-area-index-grid--polished{
	grid-template-columns:repeat(6, minmax(0, 1fr));
	gap:24px;
	align-items:stretch;
}

.ggg-area-index-card--polished{
	grid-column:span 2;
	border-radius:24px;
}

.ggg-area-index-card--toumou{
	grid-column:2 / span 2;
}

.ggg-area-index-card--agatsuma{
	grid-column:4 / span 2;
}

.ggg-area-index-card--polished figure{
	margin:0;
	position:relative;
	overflow:hidden;
	background:#eef5ef;
}

.ggg-area-index-card--polished figure::after{
	content:"";
	position:absolute;
	inset:0;
	background:linear-gradient(to bottom, rgba(255,253,248,0) 55%, rgba(255,253,248,.66));
	pointer-events:none;
}

.ggg-area-index-card--polished img{
	aspect-ratio:16/9.2;
	transform:scale(1.015);
}

.ggg-area-index-card--polished div{
	padding:20px 22px 22px;
	min-height:210px;
	display:flex;
	flex-direction:column;
}

.ggg-area-index-card--polished h2{
	font-size:clamp(23px, 2.1vw, 29px);
	margin:10px 0 10px;
}

.ggg-area-index-card--polished p:not(.ggg-v4-mini-badge){
	font-size:14px;
	line-height:1.9;
	margin:0;
}

.ggg-area-index-card__link{
	display:inline-flex;
	align-items:center;
	width:max-content;
	margin-top:auto;
	padding-top:16px;
	color:#0f6b3f;
	font-size:12px;
	font-weight:900;
}

.ggg-area-index-card__link::after{
	content:"→";
	margin-left:7px;
}

.ggg-area-index-next{
	display:grid;
	grid-template-columns:minmax(0, 1fr) auto;
	gap:28px;
	align-items:center;
	margin:clamp(46px, 6vw, 76px) 0 0;
	padding:clamp(24px, 3vw, 34px);
	background:#fffdf8;
	border:1px solid rgba(15,95,61,.13);
	border-radius:26px;
	box-shadow:0 16px 38px rgba(15,95,61,.08);
}

.ggg-area-index-next h2{
	margin:10px 0 10px;
	font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;
	font-size:clamp(24px, 2.6vw, 34px);
	color:#123b2b;
}

.ggg-area-index-next p:not(.ggg-v4-mini-badge){
	line-height:1.9;
	color:#5b6961;
	font-weight:700;
	margin:0;
}

.ggg-area-index-next nav{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
	justify-content:flex-end;
}

.ggg-area-index-next nav a{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:42px;
	padding:8px 16px;
	border-radius:999px;
	background:#0f6b3f;
	color:#fff;
	text-decoration:none;
	font-weight:900;
	box-shadow:0 10px 24px rgba(15,95,61,.16);
}

.ggg-area-index-next nav a:nth-child(2){
	background:#fffdf8;
	color:#0f6b3f;
	border:1px solid rgba(15,95,61,.22);
	box-shadow:none;
}

.ggg-area-index-next nav a:nth-child(3){
	background:#e6a33b;
	color:#fff;
}

/* Also slightly improve existing top area cards after images are visible */
body.home .ggg-camp-area--with-final-images .ggg-camp-area-grid a{
	box-shadow:0 16px 34px rgba(15,95,61,.08);
}

body.home .ggg-camp-area--with-final-images .ggg-camp-area-grid figure{
	border-radius:16px 16px 0 0;
}

body.home .ggg-camp-area--with-final-images .ggg-camp-area-grid img{
	aspect-ratio:16/10;
}

@media (max-width: 980px){
	.ggg-area-index-hero--polished{
		grid-template-columns:1fr;
	}

	.ggg-area-index-grid--polished{
		grid-template-columns:repeat(2, minmax(0, 1fr));
	}

	.ggg-area-index-card--polished,
	.ggg-area-index-card--toumou,
	.ggg-area-index-card--agatsuma{
		grid-column:auto;
	}

	.ggg-area-index-next{
		grid-template-columns:1fr;
	}

	.ggg-area-index-next nav{
		justify-content:flex-start;
	}
}

@media (max-width: 640px){
	.ggg-area-index-hero--polished{
		padding:22px;
	}

	.ggg-area-index-hero--polished h1{
		font-size:34px;
	}

	.ggg-area-index-grid--polished{
		grid-template-columns:1fr;
	}

	.ggg-area-index-card--polished div{
		min-height:auto;
	}

	.ggg-area-index-next nav{
		display:grid;
		grid-template-columns:1fr;
	}
}




/* =========================================================
   GOGO群馬 Design Integrated v0.1.13
   Course archive visual integration.
========================================================= */

.ggg-course-archive-hero{
	display:grid;
	grid-template-columns:minmax(0, .95fr) minmax(420px, .9fr);
	gap:clamp(30px, 5vw, 68px);
	align-items:center;
	margin:clamp(28px, 4.5vw, 62px) auto 30px;
	padding:clamp(30px, 5vw, 58px);
	border-radius:30px;
	background:
		radial-gradient(circle at 88% 18%, rgba(231,184,20,.14), transparent 270px),
		radial-gradient(circle at 8% 76%, rgba(15,107,63,.07), transparent 290px),
		linear-gradient(135deg, rgba(255,253,248,.96), rgba(249,240,214,.9));
	border:1px solid rgba(15,95,61,.13);
	box-shadow:0 18px 46px rgba(15,95,61,.09);
	overflow:hidden;
}

.ggg-course-archive-hero h1{
	margin:14px 0 16px;
	font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;
	font-size:clamp(40px, 4.8vw, 64px);
	line-height:1.2;
	letter-spacing:.07em;
	color:#123b2b;
}

.ggg-course-archive-hero p:not(.ggg-v4-pill){
	font-size:16px;
	line-height:1.95;
	color:#566960;
	font-weight:700;
}

.ggg-course-archive-hero__actions{
	display:flex;
	flex-wrap:wrap;
	gap:12px;
	margin-top:22px;
}

.ggg-course-archive-hero__actions a{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:42px;
	padding:8px 17px;
	border-radius:999px;
	background:#0f6b3f;
	color:#fff;
	text-decoration:none;
	font-weight:900;
	box-shadow:0 10px 24px rgba(15,95,61,.16);
}

.ggg-course-archive-hero__actions a:nth-child(2){
	background:#fffdf8;
	color:#0f6b3f;
	border:1px solid rgba(15,95,61,.22);
	box-shadow:none;
}

.ggg-course-archive-hero__image{
	margin:0;
	padding:10px;
	border-radius:28px;
	background:rgba(255,253,248,.72);
	border:1px solid rgba(15,95,61,.10);
	box-shadow:0 20px 46px rgba(15,95,61,.13);
}

.ggg-course-archive-hero__image img{
	width:100%;
	aspect-ratio:16/9;
	object-fit:cover;
	border-radius:20px;
	display:block;
	background:#eef5ef;
}

.ggg-course-archive-filter{
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	gap:10px;
	margin:0 auto clamp(38px, 5vw, 64px);
	padding:17px 20px;
	max-width:920px;
	border-radius:999px;
	background:#fffdf8;
	border:1px solid rgba(15,95,61,.13);
	box-shadow:0 14px 34px rgba(15,95,61,.07);
}

.ggg-course-archive-filter a{
	display:inline-flex;
	align-items:center;
	min-height:30px;
	padding:7px 12px;
	border-radius:999px;
	background:#e8f3ec;
	color:#1c6540;
	border:1px solid rgba(15,95,61,.13);
	text-decoration:none;
	font-size:12px;
	font-weight:900;
}

.ggg-course-archive-section__head{
	text-align:center;
	max-width:760px;
	margin:0 auto 30px;
}

.ggg-course-archive-section__head h2{
	margin:12px 0 10px;
	font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;
	font-size:clamp(28px, 3.3vw, 42px);
	line-height:1.35;
	letter-spacing:.06em;
	color:#123b2b;
}

.ggg-course-archive-section__head p:not(.ggg-v4-mini-badge){
	line-height:1.9;
	color:#5b6961;
	font-weight:700;
}

.ggg-course-archive-grid{
	display:grid;
	grid-template-columns:repeat(2, minmax(0, 1fr));
	gap:26px;
	margin-bottom:42px;
}

.ggg-course-card-final{
	background:#fffdf8;
	border:1px solid rgba(15,95,61,.13);
	border-radius:24px;
	overflow:hidden;
	box-shadow:0 16px 38px rgba(15,95,61,.08);
	transition:transform .18s ease, box-shadow .18s ease;
}

.ggg-course-card-final:hover{
	transform:translateY(-3px);
	box-shadow:0 22px 48px rgba(15,95,61,.12);
}

.ggg-course-card-final a{
	display:block;
	text-decoration:none;
	color:inherit;
}

.ggg-course-card-final__thumbs{
	display:grid;
	grid-template-columns:1.1fr .9fr;
	gap:8px;
	padding:12px 12px 0;
}

.ggg-course-card-final__thumbs img{
	width:100%;
	aspect-ratio:16/10;
	object-fit:cover;
	display:block;
	background:#eef5ef;
}

.ggg-course-card-final__thumbs img:first-child{
	border-radius:18px 6px 6px 6px;
}

.ggg-course-card-final__thumbs img:nth-child(2){
	border-radius:6px 18px 6px 6px;
}

.ggg-course-card-final__body{
	padding:20px 22px 22px;
}

.ggg-course-card-final h3{
	margin:10px 0 10px;
	font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;
	font-size:clamp(21px, 2.2vw, 28px);
	line-height:1.42;
	color:#123b2b;
}

.ggg-course-card-final p:not(.ggg-v4-mini-badge){
	margin:0;
	font-size:14px;
	line-height:1.85;
	color:#5b6961;
}

.ggg-course-card-final__steps{
	list-style:none;
	margin:16px 0;
	padding:0;
	display:grid;
	gap:8px;
}

.ggg-course-card-final__steps li{
	position:relative;
	padding-left:22px;
	font-size:13px;
	font-weight:800;
	color:#40584c;
}

.ggg-course-card-final__steps li::before{
	content:"";
	position:absolute;
	left:2px;
	top:.55em;
	width:9px;
	height:9px;
	border-radius:50%;
	background:#0f6b3f;
	box-shadow:0 0 0 5px rgba(15,107,63,.10);
}

.ggg-course-card-final__meta{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	margin-top:14px;
}

.ggg-course-card-final__meta span{
	display:inline-flex;
	align-items:center;
	min-height:28px;
	padding:6px 10px;
	border-radius:999px;
	background:#e8f3ec;
	color:#1c6540;
	border:1px solid rgba(15,95,61,.13);
	font-size:11px;
	font-weight:900;
}

.ggg-course-archive-next{
	display:grid;
	grid-template-columns:minmax(0, 1fr) auto;
	gap:28px;
	align-items:center;
	margin:clamp(46px, 6vw, 76px) 0 clamp(74px, 8vw, 112px);
	padding:clamp(24px, 3vw, 34px);
	background:#fffdf8;
	border:1px solid rgba(15,95,61,.13);
	border-radius:26px;
	box-shadow:0 16px 38px rgba(15,95,61,.08);
}

.ggg-course-archive-next h2{
	margin:10px 0 10px;
	font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;
	font-size:clamp(24px, 2.6vw, 34px);
	color:#123b2b;
}

.ggg-course-archive-next p:not(.ggg-v4-mini-badge){
	line-height:1.9;
	color:#5b6961;
	font-weight:700;
	margin:0;
}

.ggg-course-archive-next nav{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
	justify-content:flex-end;
}

.ggg-course-archive-next nav a{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:42px;
	padding:8px 16px;
	border-radius:999px;
	background:#0f6b3f;
	color:#fff;
	text-decoration:none;
	font-weight:900;
	box-shadow:0 10px 24px rgba(15,95,61,.16);
}

.ggg-course-archive-next nav a:nth-child(2){
	background:#fffdf8;
	color:#0f6b3f;
	border:1px solid rgba(15,95,61,.22);
	box-shadow:none;
}

.ggg-course-archive-next nav a:nth-child(3){
	background:#e6a33b;
}

body.home .ggg-camp-course-card__thumbs img{
	object-fit:cover;
}

@media (max-width: 980px){
	.ggg-course-archive-hero{
		grid-template-columns:1fr;
	}

	.ggg-course-archive-grid{
		grid-template-columns:1fr;
	}

	.ggg-course-archive-next{
		grid-template-columns:1fr;
	}

	.ggg-course-archive-next nav{
		justify-content:flex-start;
	}
}

@media (max-width: 640px){
	.ggg-course-archive-hero{
		padding:22px;
		border-radius:24px;
	}

	.ggg-course-archive-hero h1{
		font-size:34px;
	}

	.ggg-course-archive-filter{
		justify-content:flex-start;
		border-radius:22px;
	}

	.ggg-course-card-final__thumbs{
		grid-template-columns:1fr 1fr;
		gap:6px;
	}

	.ggg-course-archive-next nav{
		display:grid;
		grid-template-columns:1fr;
	}
}

