.gsm-page {
  box-sizing: border-box;
}

.gsm-page *,
.gsm-page *::before,
.gsm-page *::after {
  box-sizing: border-box;
}

.gsm-page {
  overflow-x: hidden;
}

.gsm-page .breadcrumb {
  background: #fff;
  border-bottom: 1px solid #e0d8cc;
  padding: 12px 24px;
  font-size: 0.78rem;
  color: #888;
}

.gsm-page .breadcrumb a {
  color: #2d6a4f;
}

.gsm-page .breadcrumb span {
  margin: 0 8px;
}

.gsm-page .page-hero {
  position: relative;
  overflow: hidden;
  padding: 96px 24px 88px;
  text-align: center;
  color: #fff;
  min-height: 320px;
  background: #1a4030 url("http://goto-shizenno-megumi.net/wp-content/uploads/2026/04/toppage.png") center center / cover no-repeat !important;
}

.gsm-page .page-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(16,44,33,0.62) 0%, rgba(32,82,58,0.48) 48%, rgba(18,39,31,0.64) 100%);
}

.gsm-page .page-hero > * {
  position: relative;
}

.gsm-page .page-hero h1 {
  font-family: "Noto Serif JP", serif;
  font-size: clamp(2rem, 5vw, 3.2rem);
  margin: 0 0 18px;
  color: #f8f3e7;
  text-shadow: 0 2px 8px rgba(0,0,0,0.45);
}

.gsm-page .page-hero p {
  font-size: 1rem;
  line-height: 1.9;
  color: rgba(255,255,255,0.92);
  max-width: 760px;
  margin: 0 auto;
}

.gsm-page-green .page-hero {
  background: #1a4030 url("http://goto-shizenno-megumi.net/wp-content/uploads/2026/04/toppage.png") center center / cover no-repeat !important;
}

.gsm-page-brown .page-hero {
  background: #8b5e3c url("http://goto-shizenno-megumi.net/wp-content/uploads/2026/04/toppage.png") center center / cover no-repeat !important;
}

.gsm-page-brown .page-hero::before {
  background: linear-gradient(135deg, rgba(91,53,24,0.70) 0%, rgba(139,94,60,0.58) 48%, rgba(84,48,22,0.72) 100%);
}

.gsm-page .section {
  padding: 72px 24px;
}

.gsm-page .section-inner {
  max-width: 900px;
  margin: 0 auto;
}

.gsm-page .section-title {
  font-family: "Noto Serif JP", serif;
  font-size: 1.7rem;
  font-weight: 700;
  color: #1a2e1e;
  margin: 0 0 8px;
}

.gsm-page .divider {
  width: 40px;
  height: 3px;
  background: #2d6a4f;
  margin: 12px 0 28px;
}

.gsm-page .btn {
  display: inline-block;
  background: #2d6a4f;
  color: #fff;
  padding: 14px 28px;
  border-radius: 6px;
  font-weight: 700;
  text-decoration: none;
}

.gsm-page .btn-outline {
  display: inline-block;
  background: #fff;
  color: #2d6a4f;
  padding: 12px 24px;
  border-radius: 6px;
  font-weight: 700;
  border: 2px solid #2d6a4f;
  text-decoration: none;
}

.gsm-page-about .story-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: start;
}

.gsm-page-about .section {
  padding-top: 40px;
  padding-bottom: 40px;
}

.gsm-page-about .section-title {
  margin-bottom: 0;
}

.gsm-page-about .divider {
  margin: 10px 0 20px;
}

.gsm-page-about .story-img {
  aspect-ratio: 4 / 3;
  background: linear-gradient(135deg, #2d6a4f, #52b788);
  border-radius: 12px;
  overflow: hidden;
}

.gsm-page-about .story-img img,
.gsm-page-about .media-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.gsm-page-about .media-photo {
  width: 100%;
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 24px;
}

.gsm-page-about .media-photo img {
  height: auto;
  object-fit: contain;
}

.gsm-page-about .desktop-only {
  display: block !important;
}

.gsm-page-about .mobile-only {
  display: none !important;
}

.gsm-page-about .text-card,
.gsm-page-about .award-card {
  border-radius: 12px;
  padding: 28px;
}

.gsm-page-about .text-card {
  background: #fff;
  border: 1px solid #e0d8cc;
}

.gsm-page-about .award-card {
  background: #faf7f0;
  border: 1px solid #e0d8cc;
}

.gsm-page-about .text-card p,
.gsm-page-about .award-card p {
  font-size: 0.9rem;
  color: #444;
  line-height: 2;
  margin: 0 0 16px;
}

.gsm-page-about .news-link {
  color: #2d6a4f;
  font-weight: 700;
  word-break: break-all;
}

.gsm-page-contact .section-inner {
  max-width: 700px;
}

.gsm-page-contact .contact-methods {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-bottom: 48px;
}

.gsm-page-contact .contact-method {
  background: #fff;
  border: 1px solid #e0d8cc;
  border-radius: 10px;
  padding: 20px;
  text-align: center;
}

.gsm-page-contact .contact-method-icon {
  font-size: 2rem;
  margin-bottom: 10px;
}

.gsm-page-contact .contact-method-title {
  font-weight: 700;
  font-size: 0.88rem;
  margin-bottom: 6px;
}

.gsm-page-contact .contact-method-desc {
  font-size: 0.78rem;
  color: #666;
  line-height: 1.6;
}

.gsm-page-contact .form-group {
  margin-bottom: 24px;
}

.gsm-page-contact .form-label {
  display: block;
  font-size: 0.88rem;
  font-weight: 700;
  margin-bottom: 8px;
}

.gsm-page-contact .required {
  color: #e63946;
  font-size: 0.72rem;
  margin-left: 6px;
}

.gsm-page-contact .form-input,
.gsm-page-contact .form-select,
.gsm-page-contact .form-textarea {
  width: 100%;
  padding: 14px 16px;
  border: 2px solid #e0d8cc;
  border-radius: 6px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.9rem;
  background: #fff;
}

.gsm-page-contact .form-textarea {
  resize: vertical;
  min-height: 160px;
}

.gsm-page-contact .form-submit {
  display: block;
  width: 100%;
  background: #2d6a4f;
  color: #fff;
  padding: 16px;
  border-radius: 8px;
  font-size: 1rem;
  font-weight: 700;
  text-align: center;
  border: none;
}

.gsm-page-contact .privacy-note {
  font-size: 0.78rem;
  color: #888;
  text-align: center;
  margin-top: 16px;
}

.gsm-page-contact .privacy-note a {
  color: #2d6a4f;
}

.gsm-page-furusato .section-inner,
.gsm-page-shop .section-inner {
  max-width: 1000px;
}

.gsm-page-furusato .lead {
  line-height: 2;
  color: #444;
  margin-bottom: 32px;
}

.gsm-page-furusato .link-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 20px;
}

.gsm-page-furusato .link-card,
.gsm-page-blog .item,
.gsm-page-recipe .item,
.gsm-page-shop .card {
  background: #fff;
  border: 1px solid #e0d8cc;
  border-radius: 12px;
  padding: 28px;
}

.gsm-page-furusato .link-card h3 {
  font-size: 1.05rem;
  font-weight: 700;
  margin: 0 0 10px;
  color: #1a2e1e;
}

.gsm-page-furusato .link-card p,
.gsm-page-shop .card p,
.gsm-page-blog .item p {
  font-size: 0.9rem;
  line-height: 1.8;
  color: #555;
  margin: 0 0 20px;
}

.gsm-page-furusato .note {
  margin-top: 28px;
  padding: 18px 22px;
  background: #faf7f0;
  border: 1px solid #e0d8cc;
  border-radius: 10px;
  font-size: 0.88rem;
  line-height: 1.8;
  color: #555;
}

.gsm-page-blog .list {
  display: grid;
  gap: 20px;
}

.gsm-page-news .section-inner {
  max-width: 960px;
}

.gsm-page-news .news-list {
  display: grid;
  gap: 20px;
}

.gsm-page-news .news-card {
  background: #fff;
  border: 1px solid #e0d8cc;
  border-radius: 12px;
  padding: 28px;
}

.gsm-page-news .news-date {
  font-size: 0.78rem;
  color: #888;
  margin: 0 0 10px;
  letter-spacing: 0.08em;
}

.gsm-page-news .news-title {
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.6;
  margin: 0 0 14px;
}

.gsm-page-news .news-title a {
  color: #1a2e1e;
  text-decoration: none;
}

.gsm-page-news .news-title a:hover {
  color: #2d6a4f;
}

.gsm-page-news .news-excerpt {
  font-size: 0.9rem;
  line-height: 1.9;
  color: #555;
  margin-bottom: 18px;
}

.gsm-page-news .news-link-btn {
  display: inline-block;
  background: #2d6a4f;
  color: #fff;
  padding: 12px 22px;
  border-radius: 6px;
  font-weight: 700;
  text-decoration: none;
}

.gsm-page-news .news-empty {
  background: #fff;
  border: 1px solid #e0d8cc;
  border-radius: 12px;
  padding: 28px;
  color: #555;
}

.gsm-page-blog .item h3,
.gsm-page-recipe .item h3,
.gsm-page-shop .card h3 {
  margin: 0 0 8px;
}

.gsm-page-shop .grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.gsm-page-shop .card p {
  font-size: 0.85rem;
  margin-bottom: 0;
}

.gsm-page-shop .price-list {
  margin-top: 12px;
  padding-left: 18px;
  color: #444;
}

.gsm-page-shop .price-list li {
  margin-bottom: 6px;
}

.gsm-page-shop .btn {
  display: block;
  text-align: center;
  padding: 10px;
  margin-top: 14px;
}

.gsm-page-story .section-title {
  font-size: 1.7rem;
}

.gsm-page-story .story-text {
  line-height: 2;
  color: #444;
}

.gsm-page-privacy .section-inner p,
.gsm-page-story .story-text,
.gsm-page-recipe .item p {
  line-height: 2;
  color: #444;
}

.gsm-page-tokushoho .table {
  width: 100%;
  border-collapse: collapse;
}

.gsm-page-tokushoho .table th,
.gsm-page-tokushoho .table td {
  border: 1px solid #e0d8cc;
  padding: 14px;
  text-align: left;
}

.gsm-page-tokushoho .table th {
  width: 220px;
  background: #f5fbf7;
}

body.single-post .wp-block-post-content article {
  max-width: 900px;
  margin: 0 auto;
}

body.single-post .wp-block-post-content article > *:first-child {
  margin-top: 0;
}

body.single-post .wp-block-post-content article p,
body.single-post .entry-content.wp-block-post-content article p {
  font-size: 1rem;
  line-height: 2;
  color: #444;
  margin: 0 0 1.5rem;
}

body.single-post .wp-block-post-content article h2,
body.single-post .entry-content.wp-block-post-content article h2,
body.single-post .wp-block-post-content h2,
body.single-post .entry-content h2 {
  font-family: "Noto Serif JP", serif;
  font-size: 1.7rem;
  font-weight: 700;
  color: #1a2e1e;
  margin: 56px 0 18px;
  line-height: 1.4;
  position: relative;
  padding-bottom: 16px;
}

body.single-post .wp-block-post-content article h2::after,
body.single-post .entry-content.wp-block-post-content article h2::after,
body.single-post .wp-block-post-content .divider,
body.single-post .entry-content .divider {
  content: "";
  width: 40px;
  height: 3px;
  background: #2d6a4f;
  margin: 0;
  display: block;
}

body.single-post .wp-block-post-content article figure,
body.single-post .entry-content.wp-block-post-content article figure {
  margin: 28px 0;
}

body.single-post .wp-block-post-content article img,
body.single-post .entry-content.wp-block-post-content article img {
  max-width: 100%;
  height: auto;
  border-radius: 12px;
}

body.single-post .wp-block-post-content article ul,
body.single-post .wp-block-post-content article ol,
body.single-post .entry-content.wp-block-post-content article ul,
body.single-post .entry-content.wp-block-post-content article ol {
  margin: 0 0 1.5rem;
  padding-left: 1.5rem;
  color: #444;
  line-height: 2;
}

@media (max-width: 768px) {
  .gsm-page .breadcrumb,
  .gsm-page .page-hero,
  .gsm-page .section {
    padding-left: 16px;
    padding-right: 16px;
  }

  .gsm-page .page-hero {
    padding-top: 80px;
    padding-bottom: 72px;
  }

  .gsm-page-about .story-grid,
  .gsm-page-contact .contact-methods,
  .gsm-page-shop .grid {
    grid-template-columns: 1fr;
  }

  .gsm-page-about .desktop-only {
    display: none !important;
  }

  .gsm-page-about .mobile-only {
    display: block !important;
  }

  .gsm-page-about .text-card,
  .gsm-page-about .award-card,
  .gsm-page-furusato .link-card,
  .gsm-page-blog .item,
  .gsm-page-news .news-card,
  .gsm-page-recipe .item,
  .gsm-page-shop .card {
    padding: 20px;
  }

  .gsm-page-contact .form-input,
  .gsm-page-contact .form-select,
  .gsm-page-contact .form-textarea {
    padding: 12px 14px;
  }

  body.single-post .wp-block-post-content article p,
  body.single-post .entry-content.wp-block-post-content article p {
    font-size: 0.95rem;
  }

  body.single-post .wp-block-post-content article h2,
  body.single-post .entry-content.wp-block-post-content article h2,
  body.single-post .wp-block-post-content h2,
  body.single-post .entry-content h2 {
    font-size: 1.45rem;
    margin-top: 40px;
  }
}
