@charset "UTF-8";

/* ==========================================
  Reset
========================================== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{font-size:62.5%;-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;}
body{min-height:100vh;font-family:var(--font-family-main);font-size:var(--font-size-text);line-height:1.7;color:var(--color-text);background:var(--color-bg);}
h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit;line-height:1.3;}
ul,ol{list-style:none;}
a{color:var(--color-link);text-decoration:none;transition:color var(--transition-speed) var(--easing);}
a:hover{color:var(--color-link-hover);text-decoration:underline;}
img,picture,video,svg{display:block;max-width:100%;height:auto;}
button,input,textarea,select{font:inherit;color:inherit;background:none;border:none;}
button{cursor:pointer;}
table{border-collapse:collapse;border-spacing:0;}
[hidden]{display:none !important;}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;}

/* ==========================================
  Root
========================================== */
:root {
  /* 配色 */
  --color-primary: #06306c;
  --color-primary-light: #084a94;
  --color-primary-dark: #04244f;
  --color-secondary: #d3381c;
  --color-accent: #82c43c;
  --color-accent-dark: #6eb02e;
  --color-accent-solid: #4e7a1c;
  --color-accent-solid-dark: #456b19;
  --color-premium: #e8a000;
  --color-bg: #ffffff;
  --color-bg2: #f7f7f7;
  --color-header-bg: #ffffff;
  --color-footer-bg: #06306c;
  --color-text: #1f2937;
  --color-text2: #6b7280;
  --color-border: #e5e7eb;
  --color-link: #06306c;
  --color-link-hover: #084a94;
  /* 書体 */
  --font-family-main: "Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",YuGothic,Meiryo,sans-serif;
  /* 文字サイズ（1rem = 10px） */
  --font-size-caption: 1.3rem;
  --font-size-small: 1.4rem;
  --font-size-text: 1.6rem;
  --font-size-lead: 1.8rem;
  --font-size-subttl: 2.0rem;
  --font-size-ttl: 2.0rem;
  --font-size-page: 2.4rem;
  --font-size-hero: 2.6rem;
  /* 余白 */
  --space-xs: 4px;
  --space-sm: 8px;
  --space-md: 16px;
  --space-lg: 24px;
  --space-xl: 32px;
  --section-py: 48px;
  --container-max-width: 1200px;
  --container-padding: 16px;
  /* 装飾 */
  --border-radius: 5px;
  --border-radius-lg: 8px;
  --border-radius-pill: 50px;
  --shadow: 0 1px 3px rgba(0,0,0,.1);
  --shadow-lg: 0 4px 6px rgba(0,0,0,.1);
  --shadow-card: 0 2px 8px rgba(0,0,0,.08);
  --shadow-hover: 0 4px 16px rgba(0,0,0,.1);
  --transition-speed: 300ms;
  --easing: ease-in-out;
  --header-height: 56px;
}
@media (min-width:768px) {
  :root {
    --font-size-ttl: 2.4rem;
    --font-size-page: 3.0rem;
    --font-size-hero: 3.0rem;
    --space-lg: 32px;
    --space-xl: 48px;
    --section-py: 64px;
    --container-padding: 24px;
    --header-height: 64px;
  }
}
@media (min-width:1024px) {
  :root {
    --font-size-ttl: 2.8rem;
    --font-size-page: 3.6rem;
    --font-size-hero: 3.5rem;
    --space-lg: 40px;
    --space-xl: 64px;
    --section-py: 80px;
    --container-padding: 40px;
  }
}

/* ==========================================
  Utility
========================================== */
.is-accent{color:var(--color-accent);}
.is-nowrap{white-space:nowrap;}
.u-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* ==========================================
  Layout
========================================== */
.l-main{min-height:60vh;background:var(--color-bg);}

/* ==========================================
  Header
========================================== */
.c-header{background:var(--color-header-bg);position:sticky;top:0;z-index:1000;box-shadow:0 2px 4px rgba(0,0,0,.08);}
.c-header__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);max-width:var(--container-max-width);margin:0 auto;padding:8px 12px;min-height:var(--header-height);}
.c-header__logo{display:flex;align-items:center;flex-shrink:0;}
.c-header__logo:hover{opacity:.8;text-decoration:none;}
.c-header__logo-img{height:38px;width:auto;object-fit:contain;}
.c-header__nav{display:flex;align-items:center;gap:var(--space-md);margin-left:auto;}
.c-header__nav a{display:inline-flex;align-items:center;gap:6px;color:var(--color-text);font-size:var(--font-size-caption);font-weight:600;}
.c-header__nav a:hover{color:var(--color-primary);text-decoration:none;}
.c-header__nav a i{color:var(--color-primary);}
.c-header__cta{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;background:var(--color-accent-solid);color:#fff;font-size:var(--font-size-caption);font-weight:700;border-radius:var(--border-radius);box-shadow:0 2px 8px rgba(78,122,28,.3);transition:all var(--transition-speed) var(--easing);}
.c-header__cta:hover{background:var(--color-accent-solid-dark);color:#fff;text-decoration:none;transform:translateY(-2px);box-shadow:0 4px 12px rgba(130,196,60,.4);}
.c-header__cta i{color:#fff;}
@media (min-width:768px) {
  .c-header__inner{padding:8px var(--container-padding);}
  .c-header__logo-img{height:48px;}
  .c-header__nav{gap:var(--space-lg);}
  .c-header__nav a{font-size:var(--font-size-small);}
  .c-header__cta{padding:12px 24px;font-size:var(--font-size-small);}
}

/* ==========================================
  Footer
========================================== */
.c-footer{background:var(--color-footer-bg);color:#fff;}
.c-footer__inner{max-width:var(--container-max-width);margin:0 auto;padding:var(--space-xl) var(--container-padding) var(--space-lg);}
.c-footer__brand{margin-bottom:var(--space-md);}
.c-footer__brand-logo{height:40px;width:auto;object-fit:contain;background:#fff;padding:8px 12px;border-radius:var(--border-radius);box-sizing:content-box;}
.c-footer__cols{display:grid;grid-template-columns:1fr;gap:var(--space-lg);margin-bottom:var(--space-lg);}
.c-footer__col p{font-size:var(--font-size-caption);line-height:1.6;opacity:.9;}
.c-footer__col h3{font-size:var(--font-size-small);font-weight:700;color:#fff;margin-bottom:10px;letter-spacing:.04em;}
.c-footer__col ul{display:flex;flex-direction:column;gap:10px;}
.c-footer__col a{display:inline-flex;align-items:center;gap:8px;color:#fff;font-size:var(--font-size-caption);font-weight:400;}
.c-footer__col a:hover{opacity:.8;color:#fff;text-decoration:none;}
.c-footer__company{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-md);padding:var(--space-md) 0;border-top:1px solid rgba(255,255,255,.2);}
.c-footer__company-link{display:inline-block;transition:opacity var(--transition-speed) var(--easing);}
.c-footer__company-link:hover{opacity:.85;}
.c-footer__company-logo{height:44px;width:auto;object-fit:contain;border-radius:var(--border-radius);}
.c-footer__company-name{font-size:var(--font-size-caption);opacity:.9;}
.c-footer__company-name a{color:#fff;text-decoration:underline;}
.c-footer__bottom{border-top:1px solid rgba(255,255,255,.2);padding-top:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md);text-align:center;}
.c-footer__copy{font-size:var(--font-size-caption);opacity:.8;}
.c-footer__nav{display:flex;flex-wrap:wrap;gap:var(--space-md);justify-content:center;}
.c-footer__nav a{color:#fff;font-size:var(--font-size-caption);}
.c-footer__nav a:hover{opacity:.8;color:#fff;}
@media (min-width:768px) {
  .c-footer__cols{grid-template-columns:1.6fr 1fr 1fr 1fr;gap:var(--space-xl);}
  .c-footer__company{flex-direction:row;align-items:center;gap:var(--space-lg);}
}

/* ==========================================
  Breadcrumb
========================================== */
.c-breadcrumb{background:var(--color-bg2);padding:12px 0;}
.c-breadcrumb ol{display:flex;flex-wrap:wrap;gap:6px;max-width:var(--container-max-width);margin:0 auto;padding:0 var(--container-padding);font-size:1.2rem;color:var(--color-text2);}
.c-breadcrumb li{display:flex;align-items:center;}
.c-breadcrumb li::after{content:"/";margin-left:6px;color:var(--color-border);}
.c-breadcrumb li:last-child::after{content:none;}
.c-breadcrumb a{color:var(--color-text2);}
.c-breadcrumb a:hover{color:var(--color-primary);}
@media (min-width:768px) {
  .c-breadcrumb{padding:16px 0;}
  .c-breadcrumb ol{gap:8px;font-size:var(--font-size-caption);}
  .c-breadcrumb li::after{margin-left:8px;}
}

/* ==========================================
  Page Title
========================================== */
.p-page-title{font-size:var(--font-size-page);font-weight:700;line-height:1.3;color:var(--color-text);padding-left:var(--space-md);border-left:5px solid var(--color-primary);margin-bottom:var(--space-lg);}

/* ==========================================
  Hero
========================================== */
.p-hero{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-light) 100%);color:#fff;padding:var(--section-py) 0;}
.p-hero__inner{max-width:1000px;margin:0 auto;padding:0 var(--container-padding);text-align:center;}
.p-hero__title{font-size:var(--font-size-hero);font-weight:900;line-height:1.4;margin-bottom:var(--space-md);}
.p-hero__lead{display:inline-flex;align-items:center;gap:8px;font-size:var(--font-size-small);margin-bottom:var(--space-lg);opacity:.95;}
.p-hero__lead i{color:var(--color-accent);}
.p-hero__form{background:#fff;border-radius:var(--border-radius-lg);padding:var(--space-md);box-shadow:var(--shadow-card);}
.p-hero__form-row{display:flex;flex-direction:column;gap:12px;}
.p-hero__field{position:relative;display:flex;align-items:center;}
.p-hero__field i{position:absolute;left:12px;color:var(--color-text2);pointer-events:none;}
.p-hero__input,.p-hero__select{width:100%;padding:12px 12px 12px 36px;font-size:var(--font-size-text);color:var(--color-text);background:#fff;border:1px solid var(--color-border);border-radius:var(--border-radius);transition:border-color var(--transition-speed) var(--easing);}
.p-hero__select{appearance:none;cursor:pointer;}
.p-hero__input:focus,.p-hero__select:focus{border-color:var(--color-accent);outline:none;}
.p-hero__submit{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 32px;font-size:var(--font-size-text);font-weight:700;color:#fff;background:var(--color-accent-solid);border-radius:var(--border-radius-pill);box-shadow:0 4px 12px rgba(78,122,28,.3);transition:all var(--transition-speed) var(--easing);}
.p-hero__submit:hover{background:var(--color-accent-solid-dark);transform:translateY(-2px);box-shadow:0 6px 16px rgba(130,196,60,.4);}
@media (min-width:768px) {
  .p-hero__form{padding:var(--space-lg);}
  .p-hero__form-row{flex-direction:row;align-items:center;gap:var(--space-md);}
  .p-hero__field{flex:1 1 220px;}
  .p-hero__field--q{flex:2 1 320px;}
  .p-hero__submit{flex:0 0 auto;}
}

/* ==========================================
  Section
========================================== */
.p-section{padding:var(--section-py) 0;background:var(--color-bg);}
.p-section--alt{background:var(--color-bg2);}
.p-section__inner{max-width:var(--container-max-width);margin:0 auto;padding:0 var(--container-padding);}
.p-section__title{display:flex;align-items:center;justify-content:center;gap:10px;font-size:var(--font-size-ttl);font-weight:700;color:var(--color-text);text-align:center;margin-bottom:var(--space-xl);}
.p-section__title i{color:var(--color-accent-solid);}
.p-section__lead{font-size:var(--font-size-small);color:var(--color-text2);text-align:center;margin:calc(-1 * var(--space-md)) 0 var(--space-lg);}

/* ==========================================
  Grid
========================================== */
.p-grid{display:grid;grid-template-columns:1fr;gap:var(--space-md);}
@media (min-width:640px) {
  .p-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-lg);}
}
@media (min-width:1024px) {
  .p-grid{grid-template-columns:repeat(3,1fr);}
}

/* ==========================================
  Office Card
========================================== */
.c-office-card{position:relative;display:flex;flex-direction:column;gap:6px;background:#fff;border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:20px;transition:all var(--transition-speed) var(--easing);}
.c-office-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-4px);}
.c-office-card--premium{border-color:var(--color-premium);box-shadow:0 0 0 1px rgba(232,160,0,.25);}
.c-office-card__title{font-size:var(--font-size-lead);font-weight:700;line-height:1.4;margin-bottom:2px;}
.c-office-card__title a{color:var(--color-text);}
.c-office-card__title a:hover{color:var(--color-primary);text-decoration:none;}
.c-office-card__rep{font-size:var(--font-size-small);color:var(--color-text2);}
.c-office-card__addr,.c-office-card__station{display:flex;align-items:flex-start;gap:6px;font-size:var(--font-size-caption);color:var(--color-text);}
.c-office-card__rep i,.c-office-card__addr i,.c-office-card__station i{color:var(--color-text2);margin-top:.3em;}
.c-office-card__rep{display:flex;align-items:center;gap:6px;}
@media (min-width:768px) {
  .c-office-card{padding:24px;}
  .c-office-card__title{font-size:2rem;}
}

/* ==========================================
  Badge
========================================== */
.c-badge{display:inline-block;align-self:flex-start;padding:4px 12px;font-size:1.2rem;font-weight:700;border-radius:3px;background:var(--color-bg2);color:var(--color-text);}
.c-badge--premium{background:var(--color-premium);color:var(--color-text);}

/* ==========================================
  Tag list
========================================== */
.c-tag-list{display:flex;flex-wrap:wrap;gap:8px;}
.c-tag{display:inline-block;padding:6px 14px;font-size:1.2rem;font-weight:700;color:#fff;background:var(--color-accent-solid);border-radius:4px;transition:background var(--transition-speed) var(--easing);}
.c-tag:hover{background:var(--color-accent-solid-dark);color:#fff;text-decoration:none;}

/* ==========================================
  Pref / Spec list
========================================== */
.p-pref-list,.p-spec-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;}
.p-pref-list a,.p-spec-list a{display:flex;align-items:center;justify-content:space-between;gap:8px;height:100%;padding:14px 16px;background:#fff;border:1px solid var(--color-border);border-radius:var(--border-radius-lg);font-size:var(--font-size-small);font-weight:700;color:var(--color-text);transition:all var(--transition-speed) var(--easing);}
.p-pref-list a:hover,.p-spec-list a:hover{border-color:var(--color-accent);box-shadow:var(--shadow-hover);transform:translateY(-2px);color:var(--color-primary);text-decoration:none;}
.p-pref-list__count,.p-spec-list__count{font-size:1.2rem;font-weight:400;color:var(--color-text2);}
.p-pref-list__more{margin-top:var(--space-md);}
.p-pref-list__more summary{cursor:pointer;font-size:var(--font-size-small);font-weight:700;color:var(--color-primary);padding:10px 0;}
.p-pref-list--all{margin-top:var(--space-md);}
.p-spec-list a i{color:var(--color-accent-solid);margin-right:6px;}
@media (min-width:640px) {
  .p-pref-list,.p-spec-list{grid-template-columns:repeat(3,1fr);gap:var(--space-md);}
}
@media (min-width:1024px) {
  .p-pref-list,.p-spec-list{grid-template-columns:repeat(4,1fr);}
}

/* ==========================================
  Search Form
========================================== */
.c-search-form{display:flex;flex-direction:column;gap:12px;background:#fff;border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--space-md);margin-bottom:var(--space-lg);box-shadow:var(--shadow-card);}
.c-search-form input,.c-search-form select{width:100%;padding:12px;font-size:var(--font-size-text);color:var(--color-text);background:#fff;border:1px solid var(--color-border);border-radius:var(--border-radius);transition:border-color var(--transition-speed) var(--easing);}
.c-search-form input:focus,.c-search-form select:focus{border-color:var(--color-accent);outline:none;}
.c-search-form button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 32px;font-size:var(--font-size-text);font-weight:700;color:#fff;background:var(--color-accent-solid);border-radius:var(--border-radius-pill);box-shadow:0 4px 12px rgba(78,122,28,.3);transition:all var(--transition-speed) var(--easing);}
.c-search-form button:hover{background:var(--color-accent-solid-dark);transform:translateY(-2px);}
@media (min-width:768px) {
  .c-search-form{flex-direction:row;align-items:center;gap:var(--space-md);padding:var(--space-lg);}
  .c-search-form input,.c-search-form select{flex:1;}
  .c-search-form button{flex:0 0 auto;}
}

/* ==========================================
  Pagination
========================================== */
.c-pagination{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:var(--space-xl);}
.c-pagination a,.c-pagination__current{display:flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 12px;font-size:var(--font-size-caption);border:1px solid var(--color-border);border-radius:var(--border-radius);background:#fff;color:var(--color-text);transition:background var(--transition-speed),color var(--transition-speed);}
.c-pagination a:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary);text-decoration:none;}
.c-pagination__current{background:var(--color-primary);color:#fff;border-color:var(--color-primary);font-weight:700;}
@media (min-width:768px) {
  .c-pagination a,.c-pagination__current{min-width:40px;height:40px;font-size:var(--font-size-small);}
}

/* ==========================================
  City Nav / Filter Nav / Related Nav
========================================== */
.c-city-nav,.c-filter-nav,.c-related{background:var(--color-bg2);border-radius:var(--border-radius-lg);padding:var(--space-md);margin-bottom:var(--space-lg);}
.c-city-nav__title,.c-filter-nav__title,.c-related__title{font-size:var(--font-size-small);font-weight:700;color:var(--color-text);margin-bottom:12px;}
.c-city-nav ul,.c-filter-nav ul,.c-related__list{display:flex;flex-wrap:wrap;gap:8px;}
.c-city-nav a,.c-filter-nav a{display:inline-block;padding:6px 12px;font-size:var(--font-size-caption);background:#fff;border:1px solid var(--color-border);border-radius:var(--border-radius);color:var(--color-text);transition:all var(--transition-speed) var(--easing);}
.c-city-nav a:hover,.c-filter-nav a:hover{background:var(--color-accent-solid);border-color:var(--color-accent-solid);color:#fff;text-decoration:none;}
.c-city-nav a.is-current,.c-filter-nav a.is-current{background:var(--color-accent-solid);border-color:var(--color-accent-solid);color:#fff;font-weight:700;}
.c-related__list{flex-direction:column;gap:10px;}
.c-related__list a{font-size:var(--font-size-small);color:var(--color-link);}

/* ==========================================
  Office Detail
========================================== */
.p-office{max-width:960px;margin:0 auto;padding:var(--space-xl) var(--container-padding);}
.p-office__header{background:#fff;border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--space-lg);margin-bottom:var(--space-lg);}
.p-office__header--premium{border-color:var(--color-premium);box-shadow:0 0 0 1px rgba(232,160,0,.25);}
.p-office__logo{max-width:200px;margin:12px 0;}
.p-office__title{font-size:var(--font-size-ttl);font-weight:700;line-height:1.4;color:var(--color-text);margin-bottom:12px;}
.p-office__rep{font-size:var(--font-size-small);color:var(--color-text2);}
.p-office__section{background:#fff;border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--space-lg);margin-bottom:var(--space-md);}
.p-office__h2{font-size:var(--font-size-subttl);font-weight:700;color:var(--color-primary);margin-bottom:var(--space-md);padding-bottom:12px;border-bottom:2px solid var(--color-primary);}
.p-office__section p{font-size:var(--font-size-text);line-height:1.8;}
.p-office__dl{display:grid;grid-template-columns:1fr;gap:4px;}
.p-office__dl dt{font-size:var(--font-size-caption);font-weight:700;color:var(--color-text2);margin-top:12px;}
.p-office__dl dt:first-child{margin-top:0;}
.p-office__dl dd{font-size:var(--font-size-text);line-height:1.7;padding-bottom:8px;border-bottom:1px dashed var(--color-border);}
.p-office__dl dd:last-child{border-bottom:none;}
.p-office__map{position:relative;width:100%;aspect-ratio:16/9;border-radius:var(--border-radius);overflow:hidden;}
.p-office__map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.p-office__note{font-size:var(--font-size-caption);color:var(--color-text2);background:var(--color-bg2);border-radius:var(--border-radius);padding:var(--space-md);margin-bottom:var(--space-md);}
.p-office__related .c-related__list{gap:10px;}
@media (min-width:768px) {
  .p-office__header,.p-office__section{padding:var(--space-xl);}
  .p-office__dl{grid-template-columns:160px 1fr;gap:0;}
  .p-office__dl dt{margin-top:0;padding:12px 0;border-bottom:1px dashed var(--color-border);}
  .p-office__dl dd{padding:12px 0;}
  .p-office__dl dt:last-of-type,.p-office__dl dd:last-of-type{border-bottom:none;}
}

/* ==========================================
  Buttons
========================================== */
.c-btn-cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 32px;font-size:var(--font-size-text);font-weight:700;color:#fff;background:var(--color-accent-solid);border:1px solid var(--color-accent-solid);border-radius:var(--border-radius-pill);box-shadow:0 4px 12px rgba(78,122,28,.3);transition:all var(--transition-speed) var(--easing);}
.c-btn-cta:hover{background:var(--color-accent-solid-dark);border-color:var(--color-accent-solid-dark);color:#fff;text-decoration:none;transform:translateY(-2px);box-shadow:0 6px 16px rgba(78,122,28,.4);}
.c-btn-outline{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;font-size:var(--font-size-small);font-weight:700;color:var(--color-text);background:#fff;border:1px solid var(--color-border);border-radius:var(--border-radius);transition:all var(--transition-speed) var(--easing);}
.c-btn-outline:hover{background:var(--color-bg2);color:var(--color-primary);text-decoration:none;}
.c-link{color:var(--color-link);text-decoration:underline;}
.c-link:hover{color:var(--color-link-hover);}

/* ==========================================
  Points (トップの特長カード)
========================================== */
.p-points{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;}
.p-points__item{display:flex;flex-direction:column;align-items:center;text-align:center;background:#fff;border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:16px;transition:all var(--transition-speed) var(--easing);}
.p-points__item:hover{box-shadow:var(--shadow-hover);transform:translateY(-4px);}
.p-points__title{display:inline-block;padding:4px 16px;background:var(--color-primary);color:#fff;font-size:1.2rem;font-weight:700;border-radius:20px;margin-bottom:12px;}
.p-points__icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:var(--color-accent-solid);color:#fff;font-size:2rem;border-radius:50%;margin-bottom:12px;}
.p-points__text{font-size:var(--font-size-caption);line-height:1.6;color:var(--color-text);}
@media (min-width:768px) {
  .p-points{grid-template-columns:repeat(4,1fr);gap:var(--space-lg);}
  .p-points__item{padding:var(--space-lg);}
  .p-points__icon{width:64px;height:64px;font-size:2.8rem;}
  .p-points__text{font-size:var(--font-size-small);}
}

/* ==========================================
  Finder (探し方カード)
========================================== */
.p-finder{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;}
.p-finder__item{display:flex;flex-direction:column;align-items:center;text-align:center;background:#fff;border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:16px;transition:all var(--transition-speed) var(--easing);}
.p-finder__item:hover{box-shadow:var(--shadow-hover);transform:translateY(-4px);text-decoration:none;}
.p-finder__icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:var(--color-accent-solid);color:#fff;font-size:2rem;border-radius:50%;margin-bottom:12px;}
.p-finder__label{font-size:var(--font-size-small);font-weight:700;color:var(--color-text);margin-bottom:4px;}
.p-finder__sub{font-size:1.2rem;color:var(--color-text2);}
@media (min-width:768px) {
  .p-finder{grid-template-columns:repeat(4,1fr);gap:var(--space-lg);}
  .p-finder__item{padding:var(--space-lg);}
  .p-finder__icon{width:64px;height:64px;font-size:2.8rem;}
  .p-finder__label{font-size:var(--font-size-lead);}
}

/* ==========================================
  CTA バンド
========================================== */
.p-cta{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-light) 100%);color:#fff;text-align:center;padding:var(--section-py) var(--container-padding);}
.p-cta__title{font-size:var(--font-size-ttl);font-weight:700;margin-bottom:var(--space-md);}
.p-cta__lead{font-size:var(--font-size-small);margin-bottom:var(--space-lg);opacity:.9;}
.p-cta .c-btn-cta{background:#fff;border-color:#fff;color:var(--color-primary);box-shadow:var(--shadow-lg);}
.p-cta .c-btn-cta:hover{background:#fff;border-color:#fff;color:var(--color-primary);opacity:.9;}

/* ==========================================
  Page (固定ページ共通)
========================================== */
.p-page{padding:var(--section-py) 0;background:var(--color-bg);}
.p-page__inner{max-width:840px;margin:0 auto;padding:0 var(--container-padding);}
.p-page__lead{font-size:var(--font-size-small);line-height:1.9;color:var(--color-text2);margin-bottom:var(--space-xl);}

/* ==========================================
  Legal (規約・ポリシー本文)
========================================== */
.p-legal{font-size:var(--font-size-small);line-height:1.9;}
.p-legal p{margin-bottom:var(--space-md);}
.p-legal__h2{font-size:var(--font-size-lead);font-weight:700;color:var(--color-primary);margin:var(--space-xl) 0 var(--space-md);padding-left:12px;border-left:4px solid var(--color-primary);}
.p-legal__ol{list-style:decimal;padding-left:1.6em;margin-bottom:var(--space-md);}
.p-legal__ol>li{margin-bottom:10px;}
.p-legal__ul{list-style:disc;padding-left:1.4em;margin:8px 0;}
.p-legal__ul>li{margin-bottom:6px;}
.p-legal__cta{margin:var(--space-lg) 0;text-align:center;}
.p-legal__date{margin-top:var(--space-xl);padding-top:var(--space-md);border-top:1px solid var(--color-border);font-size:var(--font-size-caption);color:var(--color-text2);}
.p-legal__todo{display:inline-block;background:#fff8e1;color:#8a5f00;border:1px dashed var(--color-premium);border-radius:var(--border-radius);padding:2px 8px;font-size:1.2rem;}

/* ==========================================
  Company (運営会社)
========================================== */
.p-company__logo{margin-bottom:var(--space-xl);}
.p-company__logo img{height:56px;width:auto;object-fit:contain;}
.p-company__actions{display:flex;flex-direction:column;gap:12px;margin-top:var(--space-xl);}
@media (min-width:640px) {
  .p-company__actions{flex-direction:row;flex-wrap:wrap;align-items:center;}
}

/* ==========================================
  Form (お問い合わせ)
========================================== */
.c-form{display:flex;flex-direction:column;gap:var(--space-lg);}
.contact-block{display:flex;flex-direction:column;gap:var(--space-lg);}
.c-form__row{display:flex;flex-direction:column;gap:8px;}
.c-form__label{font-size:var(--font-size-small);font-weight:700;color:var(--color-text);}
.c-form__control{width:100%;padding:12px;font-size:var(--font-size-text);line-height:1.6;color:var(--color-text);background:#fff;border:1px solid var(--color-border);border-radius:var(--border-radius);transition:border-color var(--transition-speed) var(--easing);}
.c-form__control:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px rgba(6,48,108,.12);}
textarea.c-form__control{font-family:inherit;resize:vertical;min-height:160px;}
select.c-form__control{appearance:none;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--color-text2) 50%),linear-gradient(135deg,var(--color-text2) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:36px;}
.c-form__req{display:inline-block;margin-left:6px;padding:2px 8px;font-size:1.1rem;font-weight:700;color:#fff;background:var(--color-secondary);border-radius:3px;vertical-align:middle;}
.c-form__help{font-size:1.2rem;line-height:1.7;color:var(--color-text2);}
.c-form__help--center{text-align:center;}
.c-form__group{border:0;display:flex;flex-direction:column;gap:10px;}
.c-form__legend{font-size:var(--font-size-small);font-weight:700;color:var(--color-text);padding:0;margin-bottom:2px;}
.c-form__radios,.c-form__checks{display:flex;flex-direction:column;gap:8px;}
.c-form__choice{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;font-size:var(--font-size-small);line-height:1.6;background:#fff;border:1px solid var(--color-border);border-radius:var(--border-radius);cursor:pointer;transition:all var(--transition-speed) var(--easing);}
.c-form__choice:hover{border-color:var(--color-primary);background:var(--color-bg2);}
.c-form__choice input{width:18px;height:18px;flex:0 0 18px;margin-top:.15em;accent-color:var(--color-primary);cursor:pointer;}
.c-form__choice:has(input:checked){border-color:var(--color-primary);background:#f2f6fc;box-shadow:0 0 0 1px var(--color-primary);}
.c-form__row--agree .c-form__choice{background:var(--color-bg2);}
.c-form__notice{background:#fff8e1;border:1px solid var(--color-premium);border-radius:var(--border-radius-lg);padding:var(--space-md);}
.c-form__notice-text{font-size:var(--font-size-small);line-height:1.9;color:var(--color-text);margin-bottom:var(--space-md);}
.c-form__notice-heading{font-size:var(--font-size-caption);font-weight:700;color:var(--color-text);margin:var(--space-md) 0 8px;}
.c-form__notice-links p{font-size:var(--font-size-caption);}
.c-form__error{padding:12px 14px;font-size:var(--font-size-small);font-weight:700;color:#a71d2a;background:#fdecea;border:1px solid #f5c2c0;border-radius:var(--border-radius);}
.c-form__actions{display:flex;justify-content:center;}
.c-form__actions .c-btn-cta{width:100%;}
/* honeypot：人間には見えない位置に飛ばす。display:none だと入力しないボットに検知される */
.c-form__hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;}
.c-form.is-validated .c-form__control:invalid{border-color:var(--color-secondary);background:#fffafa;}
@media (min-width:640px) {
  .c-form__radios,.c-form__checks{flex-direction:row;flex-wrap:wrap;}
  .c-form__choice{flex:0 1 auto;}
  .c-form__actions .c-btn-cta{width:auto;min-width:280px;}
}

/* ==========================================
  Chip (小さめのリンクタグ)
========================================== */
.c-tag-list--plain{gap:6px;}
.c-chip{display:inline-block;padding:4px 10px;font-size:1.2rem;color:var(--color-text);background:#fff;border:1px solid var(--color-border);border-radius:var(--border-radius);transition:all var(--transition-speed) var(--easing);}
.c-chip:hover{background:var(--color-primary);border-color:var(--color-primary);color:#fff;text-decoration:none;}

/* ==========================================
  Done (送信完了)
========================================== */
.p-done{text-align:center;background:#fff;border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--space-xl) var(--space-md);}
.p-done__icon{font-size:5.6rem;color:var(--color-accent-solid);margin-bottom:var(--space-md);}
.p-done__title{font-size:var(--font-size-ttl);font-weight:700;color:var(--color-text);margin-bottom:var(--space-md);}
.p-done__lead{font-size:var(--font-size-small);line-height:1.9;margin-bottom:var(--space-md);}
.p-done__note{font-size:1.2rem;line-height:1.9;color:var(--color-text2);text-align:left;background:var(--color-bg2);border-radius:var(--border-radius);padding:var(--space-md);margin-bottom:var(--space-lg);}
.p-done__actions{display:flex;flex-direction:column;gap:12px;align-items:center;}
@media (min-width:640px) {
  .p-done{padding:var(--space-xl);}
  .p-done__actions{flex-direction:row;justify-content:center;}
}

/* ==========================================
  Premium Hero (広告掲載ページ)
========================================== */
.p-premium-hero{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-light) 100%);color:#fff;text-align:center;padding:var(--section-py) 0;}
.p-premium-hero__inner{max-width:880px;margin:0 auto;padding:0 var(--container-padding);}
.p-premium-hero__badge{display:inline-flex;align-items:center;gap:8px;padding:8px 20px;margin-bottom:var(--space-md);font-size:var(--font-size-small);font-weight:700;color:var(--color-text);background:var(--color-premium);border-radius:var(--border-radius-pill);box-shadow:0 4px 12px rgba(232,160,0,.4);}
.p-premium-hero__title{font-size:var(--font-size-hero);font-weight:900;line-height:1.4;margin-bottom:var(--space-md);}
.p-premium-hero__lead{font-size:var(--font-size-small);line-height:1.9;margin-bottom:var(--space-lg);opacity:.95;}
.p-premium-hero__note{margin-top:var(--space-md);font-size:var(--font-size-caption);opacity:.9;}
.c-btn-cta--invert{background:#fff;border-color:#fff;color:var(--color-primary);box-shadow:var(--shadow-lg);}
.c-btn-cta--invert:hover{background:#fff;border-color:#fff;color:var(--color-primary);opacity:.9;}

/* ==========================================
  Premium (広告掲載ページ 本文)
========================================== */
.p-premium__narrow{max-width:840px;}
.p-premium__problem{font-size:var(--font-size-small);line-height:1.9;background:#fff;border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--space-lg);}
.p-premium__problem p{margin-bottom:var(--space-md);}
.p-premium__problem p:last-child{margin-bottom:0;}

/* ==========================================
  Benefits (4つの特典)
========================================== */
.p-benefits{display:grid;grid-template-columns:1fr;gap:var(--space-md);}
.p-benefits__item{position:relative;background:#fff;border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--space-lg);padding-top:var(--space-xl);text-align:center;transition:all var(--transition-speed) var(--easing);}
.p-benefits__item:hover{box-shadow:var(--shadow-hover);transform:translateY(-4px);}
.p-benefits__num{position:absolute;top:-14px;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--color-primary);color:#fff;font-size:var(--font-size-small);font-weight:700;border-radius:50%;}
.p-benefits__icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;margin:0 auto var(--space-md);background:var(--color-accent-solid);color:#fff;font-size:2.4rem;border-radius:50%;}
.p-benefits__title{font-size:var(--font-size-lead);font-weight:700;color:var(--color-text);margin-bottom:10px;line-height:1.5;}
.p-benefits__text{font-size:var(--font-size-caption);line-height:1.8;color:var(--color-text2);text-align:left;}
@media (min-width:768px) {
  .p-benefits{grid-template-columns:repeat(2,1fr);gap:var(--space-lg);}
}
@media (min-width:1024px) {
  .p-benefits{grid-template-columns:repeat(4,1fr);}
}

/* ==========================================
  Price (料金)
========================================== */
.p-price{background:#fff;border:2px solid var(--color-primary);border-radius:var(--border-radius-lg);padding:var(--space-xl) var(--space-md);text-align:center;}
.p-price__label{display:inline-block;padding:6px 20px;margin-bottom:var(--space-md);background:var(--color-primary);color:#fff;font-size:var(--font-size-caption);font-weight:700;border-radius:var(--border-radius-pill);}
.p-price__amount{display:flex;align-items:baseline;justify-content:center;gap:4px;color:var(--color-primary);margin-bottom:12px;}
.p-price__num{font-size:4.8rem;font-weight:900;line-height:1;letter-spacing:-.02em;}
.p-price__unit{font-size:var(--font-size-lead);font-weight:700;}
.p-price__free{display:inline-flex;align-items:center;gap:8px;padding:6px 18px;margin-bottom:var(--space-md);background:var(--color-premium);color:var(--color-text);font-size:var(--font-size-small);font-weight:700;border-radius:var(--border-radius-pill);}
.p-price__note{font-size:var(--font-size-caption);line-height:1.9;color:var(--color-text2);margin-bottom:var(--space-lg);}
@media (min-width:768px) {
  .p-price{padding:var(--space-xl);}
  .p-price__num{font-size:6.4rem;}
}

/* ==========================================
  FAQ
========================================== */
.p-faq{display:flex;flex-direction:column;gap:var(--space-md);}
.p-faq__item{background:#fff;border:1px solid var(--color-border);border-radius:var(--border-radius-lg);overflow:hidden;}
.p-faq__q{display:flex;align-items:flex-start;gap:12px;padding:var(--space-md);font-size:var(--font-size-small);font-weight:700;line-height:1.6;color:var(--color-text);}
.p-faq__a{display:flex;align-items:flex-start;gap:12px;padding:var(--space-md);background:var(--color-bg2);border-top:1px solid var(--color-border);}
.p-faq__a p{font-size:var(--font-size-caption);line-height:1.9;color:var(--color-text);}
.p-faq__mark{display:flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;height:28px;font-size:var(--font-size-small);font-weight:700;color:#fff;border-radius:50%;}
.p-faq__mark--q{background:var(--color-primary);}
.p-faq__mark--a{background:var(--color-accent-solid);}

/* ==========================================
  Office CTA (無料掲載の事務所詳細ページ)
========================================== */
.p-office-cta{background:var(--color-bg2);}
.p-office-cta__text{font-size:var(--font-size-caption);line-height:1.9;color:var(--color-text);margin-bottom:var(--space-md);}
.p-office-cta__actions{display:flex;flex-direction:column;gap:12px;}
.p-office-cta__actions .c-btn-outline,.p-office-cta__actions .c-btn-cta{width:100%;}
@media (min-width:640px) {
  .p-office-cta__actions{flex-direction:row;flex-wrap:wrap;align-items:center;}
  .p-office-cta__actions .c-btn-outline,.p-office-cta__actions .c-btn-cta{width:auto;}
}

/* ==========================================
  Feature (特集ページ)
========================================== */
.p-feature__lead{font-size:var(--font-size-small);line-height:1.9;background:var(--color-bg2);border-radius:var(--border-radius-lg);padding:var(--space-lg);margin-bottom:var(--space-xl);}
.p-feature__lead p{margin-bottom:var(--space-md);}
.p-feature__lead p:last-child{margin-bottom:0;}
.p-feature__h2{display:flex;align-items:center;gap:10px;font-size:var(--font-size-subttl);font-weight:700;color:var(--color-primary);margin-bottom:var(--space-lg);padding-bottom:12px;border-bottom:2px solid var(--color-primary);}
.p-feature__list{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-xl);}
.p-feature__body{font-size:var(--font-size-small);line-height:1.9;margin-bottom:var(--space-xl);}
.p-feature__body h3{font-size:var(--font-size-lead);font-weight:700;color:var(--color-primary);margin:var(--space-lg) 0 var(--space-md);padding-left:12px;border-left:4px solid var(--color-primary);}
.p-feature__body h4{font-size:var(--font-size-text);font-weight:700;margin:var(--space-md) 0 8px;}
.p-feature__body p{margin-bottom:var(--space-md);}
.p-feature__body ul{list-style:disc;padding-left:1.4em;margin-bottom:var(--space-md);}
.p-feature__body ol{list-style:decimal;padding-left:1.6em;margin-bottom:var(--space-md);}
.p-feature__body li{margin-bottom:6px;}
.p-feature__body img{margin:var(--space-md) 0;border-radius:var(--border-radius);}
.p-feature__body table{width:100%;border:1px solid var(--color-border);margin:var(--space-md) 0;}
.p-feature__body th,.p-feature__body td{padding:12px;border:1px solid var(--color-border);text-align:left;}
.p-feature__body th{background:var(--color-bg2);font-weight:700;}
.p-feature__related{margin-top:var(--space-xl);}

/* ==========================================
  Feature Card (特集ページの事務所カード)
========================================== */
.p-feature-card{position:relative;background:#fff;border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--space-lg);display:flex;flex-direction:column;gap:8px;transition:all var(--transition-speed) var(--easing);}
.p-feature-card:hover{box-shadow:var(--shadow-hover);}
.p-feature-card__title{font-size:var(--font-size-lead);font-weight:700;line-height:1.4;}
.p-feature-card__title a{color:var(--color-text);}
.p-feature-card__title a:hover{color:var(--color-primary);text-decoration:none;}
.p-feature-card__rep{display:flex;align-items:center;gap:6px;font-size:var(--font-size-small);color:var(--color-text2);}
.p-feature-card__addr,.p-feature-card__station{display:flex;align-items:flex-start;gap:6px;font-size:var(--font-size-caption);color:var(--color-text);}
.p-feature-card__rep i,.p-feature-card__addr i,.p-feature-card__station i{color:var(--color-text2);margin-top:.3em;}
.p-feature-card__tags{margin-top:4px;}
.c-tag--static{cursor:default;}
.p-feature-card__comment{margin-top:8px;padding:var(--space-md);background:var(--color-bg2);border-left:4px solid var(--color-accent-solid);border-radius:0 var(--border-radius) var(--border-radius) 0;}
.p-feature-card__comment p{font-size:var(--font-size-caption);line-height:1.9;color:var(--color-text);}
.p-feature-card__more{margin-top:8px;}
@media (min-width:640px) {
  .p-feature-card__more .c-btn-outline{width:auto;}
}

/* ==========================================
  Feature Index (特集一覧)
========================================== */
.p-feature-index{display:grid;grid-template-columns:1fr;gap:var(--space-md);}
.p-feature-index__link{display:flex;flex-direction:column;gap:8px;height:100%;padding:var(--space-lg);background:#fff;border:1px solid var(--color-border);border-radius:var(--border-radius-lg);transition:all var(--transition-speed) var(--easing);}
.p-feature-index__link:hover{border-color:var(--color-accent-solid);box-shadow:var(--shadow-hover);transform:translateY(-4px);text-decoration:none;}
.p-feature-index__title{font-size:var(--font-size-lead);font-weight:700;color:var(--color-text);line-height:1.5;}
.p-feature-index__desc{font-size:var(--font-size-caption);line-height:1.8;color:var(--color-text2);}
.p-feature-index__more{font-size:var(--font-size-caption);font-weight:700;color:var(--color-primary);margin-top:auto;}
@media (min-width:768px) {
  .p-feature-index{grid-template-columns:repeat(2,1fr);gap:var(--space-lg);}
}

/* ==========================================
  Office Custom HTML (premium_html の出力)
========================================== */
.p-office__custom{font-size:var(--font-size-small);line-height:1.9;}
.p-office__custom h3{font-size:var(--font-size-lead);font-weight:700;color:var(--color-primary);margin:var(--space-lg) 0 var(--space-md);padding-left:12px;border-left:4px solid var(--color-primary);}
.p-office__custom h3:first-child{margin-top:0;}
.p-office__custom h4{font-size:var(--font-size-text);font-weight:700;margin:var(--space-md) 0 8px;}
.p-office__custom p{margin-bottom:var(--space-md);}
.p-office__custom ul{list-style:disc;padding-left:1.4em;margin-bottom:var(--space-md);}
.p-office__custom ol{list-style:decimal;padding-left:1.6em;margin-bottom:var(--space-md);}
.p-office__custom li{margin-bottom:6px;}
.p-office__custom img{margin:var(--space-md) 0;border-radius:var(--border-radius);}
.p-office__custom table{width:100%;border:1px solid var(--color-border);margin:var(--space-md) 0;}
.p-office__custom th,.p-office__custom td{padding:12px;border:1px solid var(--color-border);text-align:left;}
.p-office__custom th{background:var(--color-bg2);font-weight:700;}
.p-office__custom hr{border:0;border-top:1px solid var(--color-border);margin:var(--space-lg) 0;}

/* ==========================================
  Admin 追加分（特集ページ管理）
========================================== */
.c-badge--published{background:var(--color-accent-solid);color:#fff;}
.c-admin-form textarea.is-code{font-family:Menlo,Consolas,"Courier New",monospace;font-size:var(--font-size-caption);line-height:1.7;white-space:pre;overflow-wrap:normal;overflow-x:auto;}
.c-admin-note code{background:var(--color-bg2);border:1px solid var(--color-border);border-radius:3px;padding:1px 5px;font-family:Menlo,Consolas,monospace;font-size:.92em;}
.c-admin-table textarea{width:100%;min-width:220px;padding:6px 8px;font-size:var(--font-size-caption);border:1px solid var(--color-border);border-radius:var(--border-radius);font-family:inherit;}
.c-admin-table input[type="number"]{width:72px;padding:6px 8px;font-size:var(--font-size-caption);border:1px solid var(--color-border);border-radius:var(--border-radius);}

/* ==========================================
  Table
========================================== */
.c-table{width:100%;border:1px solid var(--color-border);font-size:var(--font-size-caption);background:#fff;}
.c-table th,.c-table td{padding:12px;border:1px solid var(--color-border);text-align:left;line-height:1.6;}
.c-table th{background:var(--color-bg2);font-weight:700;color:var(--color-text);}
.c-table__scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:var(--space-lg);}
@media (min-width:768px) {
  .c-table{font-size:var(--font-size-small);}
  .c-table th,.c-table td{padding:var(--space-md);}
}

/* ==========================================
  Compare Table (無料 vs 有料)
========================================== */
.c-table--compare th[scope="row"]{width:34%;background:var(--color-bg2);font-weight:700;}
.c-table--compare thead th{text-align:center;font-size:var(--font-size-small);}
.c-table--compare thead th.is-highlight{background:var(--color-primary);color:#fff;}
.c-table--compare td{text-align:center;vertical-align:middle;}
.c-table--compare td.is-highlight{background:#f2f6fc;font-weight:700;color:var(--color-primary);}
.c-mark{display:inline-block;font-size:2.2rem;line-height:1;font-weight:700;}
.c-mark--ok{color:var(--color-accent-solid);}
.c-mark--no{color:var(--color-text2);}

/* ==========================================
  Misc
========================================== */
.c-empty{background:var(--color-bg2);border-radius:var(--border-radius-lg);padding:var(--space-xl) var(--space-md);text-align:center;font-size:var(--font-size-small);color:var(--color-text2);}
.c-muted{color:var(--color-text2);font-size:var(--font-size-caption);}

/* ==========================================
  Admin Header
========================================== */
.c-admin-header{background:#1c2433;color:#fff;}
.c-admin-header__inner{display:flex;flex-direction:column;gap:8px;max-width:var(--container-max-width);margin:0 auto;padding:12px var(--container-padding);}
.c-admin-header__brand{color:#fff;font-weight:700;font-size:var(--font-size-lead);}
.c-admin-header__brand:hover{color:#fff;text-decoration:none;opacity:.9;}
.c-admin-header__nav{display:flex;flex-wrap:wrap;gap:12px;align-items:center;}
.c-admin-header__nav a{color:#cfd6e2;font-size:var(--font-size-small);}
.c-admin-header__nav a:hover{color:#fff;text-decoration:underline;}
.c-admin-header__logout button{color:#cfd6e2;font-size:var(--font-size-small);text-decoration:underline;}
.c-admin-header__logout button:hover{color:#fff;}
@media (min-width:768px) {
  .c-admin-header__inner{flex-direction:row;align-items:center;justify-content:space-between;}
}

/* ==========================================
  Admin Layout
========================================== */
.l-admin-main{max-width:var(--container-max-width);margin:0 auto;padding:var(--space-lg) var(--container-padding);}
.p-admin-section{background:#fff;border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--space-lg);margin-bottom:var(--space-lg);}
.p-admin-section__head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:var(--space-md);}
.p-admin-title{font-size:var(--font-size-subttl);font-weight:700;color:var(--color-primary);margin-bottom:var(--space-md);}
.p-admin-h2{font-size:var(--font-size-lead);font-weight:700;color:var(--color-primary);margin:var(--space-lg) 0 12px;padding-bottom:6px;border-bottom:2px solid var(--color-border);}

/* ==========================================
  Admin Stats
========================================== */
.p-admin-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:var(--space-lg);}
.c-stat{background:var(--color-bg2);border:1px solid var(--color-border);border-radius:var(--border-radius);padding:var(--space-md);text-align:center;}
.c-stat__label{display:block;font-size:var(--font-size-small);color:var(--color-text2);margin-bottom:4px;}
.c-stat__value{display:block;font-size:2.8rem;font-weight:700;color:var(--color-primary);}
.c-stat--link{display:block;text-decoration:none;transition:box-shadow .2s,transform .2s;}
.c-stat--link:hover{box-shadow:var(--shadow-card);transform:translateY(-1px);text-decoration:none;}
.p-admin-quick{display:flex;flex-wrap:wrap;gap:8px;}
@media (min-width:640px) {
  .p-admin-stats{grid-template-columns:repeat(4,1fr);}
}

/* ==========================================
  Admin Form
========================================== */
.c-admin-form{display:flex;flex-direction:column;gap:12px;}
.c-admin-form label{display:flex;flex-direction:column;gap:4px;font-size:var(--font-size-small);color:var(--color-text2);}
.c-admin-form input,.c-admin-form select,.c-admin-form textarea{padding:10px;border:1px solid var(--color-border);border-radius:var(--border-radius);font-size:var(--font-size-text);color:var(--color-text);background:#fff;}
.c-admin-form textarea{font-family:inherit;line-height:1.7;}
.c-admin-form__grid{display:grid;grid-template-columns:1fr;gap:12px;}
.c-admin-form__full{display:flex;flex-direction:column;gap:4px;font-size:var(--font-size-small);color:var(--color-text2);}
.c-admin-form__actions{display:flex;gap:8px;margin-top:12px;}
.c-admin-form--inline{flex-direction:row;flex-wrap:wrap;align-items:flex-end;}
.c-admin-form--inline label{flex:0 0 auto;}
.c-admin-filter{display:flex;gap:8px;margin-bottom:var(--space-md);}
.c-admin-filter input{flex:1;padding:10px 12px;font-size:var(--font-size-text);border:1px solid var(--color-border);border-radius:var(--border-radius);}
@media (min-width:768px) {
  .c-admin-form__grid{grid-template-columns:1fr 1fr;}
}

/* ==========================================
  Admin Table
========================================== */
.c-admin-table{width:100%;border-collapse:collapse;font-size:var(--font-size-caption);}
.c-admin-table th,.c-admin-table td{padding:10px;border-bottom:1px solid var(--color-border);text-align:left;}
.c-admin-table th{background:var(--color-bg2);font-weight:700;color:var(--color-primary);}
.c-admin-table tr:hover td{background:#f9fbfd;}

/* ==========================================
  Admin Buttons / Alerts
========================================== */
.c-btn{display:inline-block;padding:10px 16px;background:#fff;color:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--border-radius);font-size:var(--font-size-small);font-weight:700;cursor:pointer;text-decoration:none;transition:all var(--transition-speed) var(--easing);}
.c-btn:hover{background:var(--color-primary);color:#fff;text-decoration:none;}
.c-btn--primary{background:var(--color-primary);color:#fff;}
.c-btn--primary:hover{background:var(--color-primary-light);color:#fff;}
.c-btn--danger{background:#fff;color:#c0392b;border-color:#c0392b;}
.c-btn--danger:hover{background:#c0392b;color:#fff;}
.c-alert{padding:12px 14px;border-radius:var(--border-radius);margin-bottom:12px;font-size:var(--font-size-small);}
.c-alert--ok{background:#e8f5e9;color:#1b5e20;border:1px solid #a5d6a7;}
.c-alert--error{background:#fdecea;color:#a71d2a;border:1px solid #f5c2c0;}
.c-admin-divider{border:0;border-top:1px solid var(--color-border);margin:var(--space-xl) 0;}
.c-admin-note{font-size:1.2rem;color:var(--color-text2);margin-top:8px;line-height:1.7;}
.c-admin-log{background:#1c2433;color:#cfd6e2;padding:12px;border-radius:var(--border-radius);font-family:Menlo,Consolas,monospace;font-size:var(--font-size-caption);white-space:pre-wrap;}
.p-admin-logo-preview{max-width:200px;border:1px solid var(--color-border);border-radius:var(--border-radius);}

/* ==========================================
  Admin Login
========================================== */
.p-admin-login{max-width:400px;margin:60px auto;background:#fff;border:1px solid var(--color-border);border-radius:var(--border-radius-lg);padding:var(--space-xl);}
.p-admin-login__title{font-size:var(--font-size-subttl);font-weight:700;color:var(--color-primary);margin-bottom:var(--space-lg);text-align:center;}

/* ==========================================
  Admin Bars (PV推移の簡易バー)
========================================== */
.c-bars__cell{position:relative;min-width:200px;}
.c-bars__bar{display:inline-block;height:14px;background:var(--color-primary);border-radius:3px;vertical-align:middle;min-width:2px;}
.c-bars__num{margin-left:8px;font-variant-numeric:tabular-nums;color:var(--color-text2);}
