/*
Theme Name: PLX Organization Profile
Description: 団体紹介ページ専用のシンプルなWordPressテーマ。PLX Organization Managerが必要です。
Version: 1.1.0
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: plx-organization
License: Proprietary
*/
:root {
  --ink: #1d3030;
  --deep: #284f48;
  --muted: #687a78;
  --subtle: #8a9893;
  --line: #dce4df;
  --paper: #fdfefb;
  --tint: #f4f7f4;
  --btn: #315d51;
  --font: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "Meiryo", sans-serif;
}
*, *::before, *::after {box-sizing: border-box;}
html {scroll-behavior: smooth;}
body {margin: 0; background: var(--paper); color: var(--ink); font-family: var(--font); -webkit-font-smoothing: antialiased; line-height: 1.85; font-size: 15px;}
img {display: block; max-width: 100%;}
a {color: var(--deep); text-underline-offset: .25em;}
a:hover {text-decoration-thickness: 2px;}
:focus-visible {outline: 3px solid #7eac9a; outline-offset: 4px;}
.container {width: min(1136px, calc(100% - 96px)); margin-inline: auto;}
.skip-link {position: absolute; top: -80px; left: 16px; z-index: 5; background: var(--deep); color: white; padding: 9px 16px; border-radius: 6px;}
.skip-link:focus {top: 10px;}
.site-header {background: var(--paper);}
.header-inner {min-height: 150px; display: flex; justify-content: space-between; align-items: center; gap: 24px; padding-block: 31px;}
.identity {min-width: 0;}
.identity-label {display: flex; align-items: center; gap: 10px; margin-bottom: 11px; font-size: 10px; line-height: 1.4; letter-spacing: .19em; font-weight: 700; color: #7c9690;}
.identity-mark {display: inline-block; width: 19px; height: 5px; background: #7fa18e; border-radius: 1px;}
h1, h2, p, figure, dl, dd {margin: 0;}
h1 {font-weight: 700; letter-spacing: .035em; line-height: 1.5; font-size: clamp(24px, 2.9vw, 35px);}
.hero {width: 100%; height: clamp(290px, 33vw, 438px); background: #c7d9ca; overflow: hidden;}
.hero img {width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%;}
.section {padding-block: 89px 94px;}
.section-grid {display: grid; grid-template-columns: minmax(230px, .92fr) minmax(0, 1.62fr); column-gap: clamp(54px, 7.1vw, 106px); align-items: start;}
.section-heading {padding-top: 3px;}
.eyebrow {display: flex; align-items: center; gap: 16px; color: #779288; font-size: 10px; letter-spacing: .13em; font-weight: 700; line-height: 1.4; margin-bottom: 22px; white-space: nowrap;}
.section-number {font-size: 11px; letter-spacing: .03em; color: #859991;}
h2 {font-size: clamp(25px, 2.7vw, 32px); letter-spacing: .05em; line-height: 1.55; font-weight: 700;}
.heading-note {font-size: 13px; line-height: 1.95; color: var(--muted); margin-top: 17px;}
.section-body {min-width: 0;}
.intro-section {padding-block: 90px 96px;}
.intro-content {width: 100%; max-width: 1050px;}
.lead-text {font-size: clamp(19px, 2.1vw, 25px); font-weight: 600; line-height: 1.95; letter-spacing: .047em; color: #253d39;}
.body-text {line-height: 2.23; font-size: 15px; letter-spacing: .014em; color: #435753;}
.intro-content .lead-text + .body-text {margin-top: 28px;}
.products-section {background: var(--tint); padding-block: 100px 105px;}
.table-scroll {overflow-x: auto; background: white; border: 1px solid #e1e9e4; border-radius: 4px; scrollbar-width: thin;}
.products-table {width: 100%; border-collapse: collapse; min-width: 610px; text-align: left; font-size: 13px; line-height: 1.75;}
.products-table thead {background: #e9efea; color: #344c46;}
.products-table th {font-weight: 700; font-size: 12px;}
.products-table th, .products-table td {vertical-align: top; padding: 17px 18px; border-bottom: 1px solid #e8eee9;}
.products-table td:first-child {font-weight: 650; color: #293f39;}
.products-table td:last-child {white-space: nowrap;}
.products-table tr:last-child td {border-bottom: 0;}
.products-table tbody tr:hover {background: #fafcf9;}
.table-hint {margin-top: 11px; color: #82918b; font-size: 11px; line-height: 1.6;}
.purchase-section {padding-block: 102px 105px; border-bottom: 1px solid var(--line);}
.purchase-copy {margin-top: -4px;}
.primary-button {display: inline-flex; justify-content: space-between; align-items: center; gap: 35px; min-width: 266px; min-height: 60px; margin-top: 30px; padding: 15px 22px 15px 26px; background: var(--btn); color: white; text-decoration: none; font-weight: 700; font-size: 14px; letter-spacing: .04em; border: 1px solid var(--btn); border-radius: 3px; transition: background .15s ease, transform .15s ease;}
.primary-button:hover {color: white; background: #244a41; transform: translateY(-1px);}
.primary-button svg {flex: none;}
.legal-section {padding-block: 102px 118px;}
.legal-list {border-top: 1px solid #c8d4cc;}
.legal-row {display: grid; grid-template-columns: minmax(155px, 32%) minmax(0, 1fr); align-items: start; border-bottom: 1px solid #e1e8e2; gap: 24px; padding-block: 19px 20px; font-size: 13px; line-height: 1.9;}
.legal-row dt {color: #677e76; font-weight: 700;}
.legal-row dd {color: #354b45; overflow-wrap: anywhere;}
.legal-row a {word-break: break-word;}
.site-footer {background: #f4f7f4; border-top: 1px solid #e5ebe6;}
.footer-inner {padding-block: 29px; display: flex; align-items: center; justify-content: space-between; gap: 18px;}
.footer-org {font-size: 12px; font-weight: 700; letter-spacing: .03em;}
.footer-copyright {font-size: 11px; color: #84948d; white-space: nowrap;}
.demo-note {text-align: center; padding: 15px 20px 20px; font-size: 10px; color: #98a69e;}
/* Variant: no hero image. The first section simply follows the header. */
.without-hero .intro-section {padding-top: 76px;}
.without-hero .site-header {border-bottom: 1px solid var(--line);}
@media (max-width: 1000px) {
  .container {width: min(100% - 64px, 1136px);}
  .section-grid {grid-template-columns: minmax(180px, .87fr) minmax(0, 1.5fr); column-gap: 48px;}
  .section {padding-block: 76px 80px;}
  .intro-section {padding-block: 85px 90px;}
  .products-section {padding-block: 84px 88px;}
  .purchase-section {padding-block: 88px 90px;}
  .legal-section {padding-block: 86px 98px;}
  .hero {height: clamp(280px, 37vw, 390px);}
}
@media (max-width: 720px) {
  body {font-size: 14px;}
  .container {width: calc(100% - 40px);}
  .header-inner {min-height: 111px; padding-block: 22px; align-items: flex-start;}
  .identity-label {font-size: 9px; margin-bottom: 10px;}
  h1 {font-size: clamp(21px, 5.9vw, 27px); letter-spacing: .02em; line-height: 1.55;}
  .hero {height: clamp(235px, 60vw, 330px);}
  .hero img {object-position: 50% 50%;}
  .section, .intro-section, .products-section, .purchase-section, .legal-section {padding-block: 65px 70px;}
  .section-grid {display: block;}
  .section-heading {margin-bottom: 27px; padding-top: 0;}
  .eyebrow {margin-bottom: 12px; font-size: 10px; gap: 11px;}
  h2 {font-size: 25px; letter-spacing: .03em;}
  .heading-note {margin-top: 12px;}
  .lead-text {font-size: 19px; line-height: 1.9; letter-spacing: .025em;}
  .intro-content .lead-text + .body-text {margin-top: 24px;}
  .body-text {font-size: 14px; line-height: 2.1;}
  .products-table {min-width: 570px;}
  .products-table th, .products-table td {padding: 16px;}
  .primary-button {width: 100%; margin-top: 27px; min-height: 59px;}
  .legal-row {grid-template-columns: minmax(0, 1fr); gap: 3px; padding-block: 16px 17px;}
  .legal-row dt {font-size: 12px;}
  .legal-row dd {font-size: 13px;}
  .desktop-break {display: none;}
  .footer-inner {padding-block: 26px; flex-direction: column; align-items: flex-start; gap: 4px;}
  .demo-note {text-align: left; padding-inline: 20px; line-height: 1.65;}
}
@media (prefers-reduced-motion: reduce) {
  html {scroll-behavior: auto;}
  .primary-button {transition: none;}
}

/* Dynamic organization pages: no-hero and 404 display */
body.without-hero .site-header {border-bottom: 1px solid var(--line);}
body.without-hero .intro-section {padding-top: 76px;}
.intro-content .body-text + .body-text {margin-top: 18px;}
.products-table td:last-child {white-space: normal;}
.not-found {min-height: 60vh; display: flex; align-items: center; padding-block: 100px;}
.not-found h1 {margin-top: 20px;}
.not-found p {margin-top: 16px; color: var(--muted);}
@media(max-width: 720px) {.not-found {padding-block: 80px;} }
