/*
Theme Name: itot Modern 06
Description: 05モダン化・WC対応親テーマ
Author: Cocolomachi
Version: 1.0.0
Text Domain: itot-modern
*/

/* =================================================================
   0. Design Tokens
   ================================================================= */
:root {
  /* brand */
  --itot-primary:            #006837;
  --itot-primary-light:      #00a100;
  --itot-primary-mid:        #1d6b57;
  --itot-palette-earth:      #534741;
  --itot-accent:             #9c8f4d;
  --itot-accent-hover:       #8a7d3f;
  --itot-accent-warm:        #e37b29;

  /* text */
  --itot-text:               #333333;
  --itot-text-light:         #666666;
  --itot-text-muted:         #808080;
  --itot-text-strong:        #000000;
  --itot-text-soft:          #777777;
  --itot-text-subtle:        #555555;
  --itot-text-caption:       #696969;
  --itot-text-deep:          #222222;
  --itot-text-brown:         #2f2618;
  --itot-text-brown-deep:    #1f170d;
  --itot-text-inverse:       #ffffff;

  /* background */
  --itot-bg:                 #f4f6f9;
  --itot-bg-white:           #ffffff;
  --itot-bg-dark:            #111111;
  --itot-bg-card-dim:        #d0d0d0;
  --itot-bg-card:            #ffffff;
  --itot-bg-card-soft:       #eeeeee;
  --itot-bg-card-muted:      #fafafa;
  --itot-bg-lifeinfo:        #f9f6f0;
  --itot-bg-footer-pr:       #9a875f;
  --itot-bg-pr-prompt:       #cec3a5;
  --itot-bg-placeholder:     #dddddd;

  /* borders */
  --itot-border:             #cccccc;
  --itot-border-light:       #f0f0f0;
  --itot-border-mid:         #d7d7d7;
  --itot-border-soft:        #d9d9d9;
  --itot-border-ui:          #cfcfcf;
  --itot-border-dotted:      #bfbfbf;
  --itot-border-card-hover:  #bbbbbb;
  --itot-border-pickup:      #d8d8d8;
  --itot-border-pickup-hover:#c0c0c0;

  /* shadows / overlay */
  --itot-shadow:             3px 3px 0 0 #cccccc;
  --itot-shadow-soft:        0 2px 6px rgba(0,0,0,0.10);
  --itot-shadow-ui:          0 1px 3px rgba(0,0,0,0.12);
  --itot-shadow-float:       0 2px 8px rgba(0,0,0,0.2);
  --itot-shadow-header:      0 1px 4px rgba(0,0,0,0.08);
  --itot-shadow-menu:        0 4px 12px rgba(0,0,0,0.1);

  --itot-overlay-dark:       rgba(0,0,0,0.3);
  --itot-overlay-dark-03:    rgba(0,0,0,0.03);
  --itot-overlay-dark-50:    rgba(0,0,0,0.5);
  --itot-overlay-dark-60:    rgba(0,0,0,0.6);
  --itot-overlay-white-15:   rgba(255,255,255,0.15);
  --itot-overlay-white-30:   rgba(255,255,255,0.3);
  --itot-overlay-white-35:   rgba(255,255,255,0.35);
  --itot-overlay-white-90:   rgba(255,255,255,0.9);
  --itot-border-pr-divider:  rgba(120,95,95,0.28);
  --itot-shadow-drawer:      -4px 0 12px rgba(0,0,0,0.1);
  --itot-shadow-badge:       0 2px 6px rgba(0,0,0,0.12);
  --itot-shadow-sidebar:     0 2px 6px rgba(0,0,0,0.08);

  /* badges / statuses */
  --itot-badge-alert:        #e24a56;
  --itot-badge-pr:           #d65d3a;
  --itot-status-red:         #e85a5a;
  --itot-status-green:       #18a24a;
  --itot-status-green-2:     #19a34a;
  --itot-status-lime:        #89b923;
  --itot-status-yellow:      #e8c040;
  --itot-status-orange:      #db4805;
  --itot-status-orange-2:    #d97f36;

  /* legacy category tags */
  --itot-tag-interview:      #00a0e9;
  --itot-tag-report:         #f0ad00;
  --itot-tag-lifestyle:      #17a741;
  --itot-tag-column:         #e4313a;

  /* typography / layout */
  --itot-font-body:          '游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',serif;
  --itot-font-serif:         'Noto Serif JP','游明朝','Yu Mincho','Hiragino Mincho Pro',serif;
  --itot-font-en:            'Hind',sans-serif;
  --itot-font-display:       'Shippori Mincho','Noto Serif JP',serif;
  --itot-base-width:         1400px;
  --itot-header-h:           70px;
  --itot-radius:             4px;
  --itot-radius-btn:         5px;
  --itot-transition:         0.3s ease;
}

/* =================================================================
   1. Reset & Base
   ================================================================= */
*, *::before, *::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; word-break:normal; scroll-behavior:smooth; }
body {
  margin:0;
  padding:0;
  font-family:var(--itot-font-body);
  font-size:15px;
  line-height:1.8;
  color:var(--itot-text);
  background-color:var(--itot-bg);
}
@media (max-width:1024px) {
  body { font-size:14px; }
}
img { max-width:100%; height:auto; display:block; image-rendering:auto; }
a { color:inherit; text-decoration:none; transition:opacity var(--itot-transition); }
a:hover { opacity:0.8; }
ul, ol { margin:0; padding:0; list-style:none; }
h1, h2, h3, h4, h5, h6 { margin:0; }

/* =================================================================
   2. WordPress Core / Utilities
   ================================================================= */
.alignleft { float:left; margin:.5em 1em .5em 0; }
.alignright { float:right; margin:.5em 0 .5em 1em; }
.aligncenter { clear:both; display:block; margin:0 auto; }
.clear,
.clearfix::after { content:""; display:table; clear:both; }
.base { max-width:var(--itot-base-width); margin:0 auto; padding:0 20px; }

/* =================================================================
   3. Header
   ================================================================= */
.l-header,
.wrap-header {
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height:var(--itot-header-h);
  background-color:var(--itot-bg-white);
  z-index:99999;
  box-shadow:var(--itot-shadow-header);
}
.l-header__inner,
.inner-header {
  display:flex;
  justify-content:space-between;
  align-items:center;
  height:var(--itot-header-h);
  max-width:var(--itot-base-width);
  margin:0 auto;
  padding:0 20px;
}

/* =================================================================
   4. Logo
   ================================================================= */
.l-header__logo,
.box-logo { flex-shrink:0; }
.l-header__logo a,
.box-logo a { display:flex; align-items:center; gap:10px; text-decoration:none; }
.l-header__logo img,
.box-logo img { height:36px; width:auto; flex-shrink:0; }
.box-logo__text { display:flex; flex-direction:column; justify-content:center; min-width:0; }
.header_logo01 { white-space:nowrap; font-size:17px; line-height:1.3; font-weight:500; text-align:left; }
.header_logo02 { white-space:nowrap; font-size:12px; line-height:1.3; color:var(--itot-text-muted); text-align:left; }
@media (max-width:767px) {
  .header_logo01 { font-size:14px; }
  .header_logo02 { font-size:10px; }
}

/* =================================================================
   5. PC Nav
   ================================================================= */
.nav-style { display:flex; align-items:center; margin-left:auto; }
.nav-style > li { position:relative; }
.nav-style > li > a::before,
ul#menu-header > li > a::before { display:none; content:none; }

.nav-style > li > a {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:6px 20px;
  height:var(--itot-header-h);
  color:var(--itot-text);
  font-weight:500;
  font-size:14px;
  text-align:center;
  line-height:1.4;
  white-space:nowrap;
  transition:background-color var(--itot-transition);
}
.nav-style > li > a:hover {
  background-color:var(--itot-overlay-dark-03);
  opacity:1;
}
.nav-style > li > a > span.nav-ja {
  display:block;
  font-size:10px;
  color:var(--itot-text-muted);
  font-weight:400;
  padding:0;
  margin-top:2px;
}

.sub-menu {
  display:none;
  position:absolute;
  top:100%;
  left:0;
  background-color:var(--itot-bg-white);
  min-width:100%;
  z-index:10;
  box-shadow:var(--itot-shadow-menu);
}
.sub-menu li { padding:0; }
.sub-menu li a {
  display:block;
  padding:10px 20px;
  color:var(--itot-text);
  line-height:1.6;
  font-size:14px;
  white-space:nowrap;
  transition:background-color var(--itot-transition);
}
.sub-menu li a:hover {
  background-color:var(--itot-bg-pr-prompt);
  opacity:1;
}

.menu-item-has-children { padding-right:10px; }
.nav-style > li.menu-item-has-children > a {
  position:relative;
  padding-right:30px;
}
.nav-style > li.menu-item-has-children > a::after,
.menu-item-has-children > a::after {
  position:absolute;
  display:block;
  right:10px;
  top:0;
  bottom:0;
  margin:auto;
  height:1em;
  line-height:1em;
  content:"\f067";
  font-family:"Font Awesome 5 Pro",FontAwesome;
}
.menu-item-has-children > a.down::after { content:"\f068"; }
.menu-item-has-children > a.up::after { content:"\f067"; }

@media (min-width:1025px) {
  .nav-style > li.menu-item-has-children:hover > a::after,
  .nav-style > li.menu-item-has-children.is-submenu-open > a::after {
    content:"\f068";
  }
  .nav-style > li:hover > .sub-menu,
  .nav-style > li.is-submenu-open > .sub-menu {
    display:block;
  }
}
@media (max-width:1024px) {
  .nav-style { display:none; }
  #site-navigation .menu-item-has-children.is-submenu-open > a::after { content:"\f068"; }
}

/* =================================================================
   6. Hamburger & Mobile Menu
   ================================================================= */
.menu-toggle {
  display:none;
  background:none;
  border:none;
  cursor:pointer;
  padding:0;
  margin-left:auto;
  color:var(--itot-text);
  z-index:100001;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
}
.menu-toggle__label { display:none; }

.menu-toggle__icon {
  position:relative;
  display:block;
  width:38px;
  height:3px;
  background-color:var(--itot-text);
  border-radius:1px;
}
.menu-toggle__icon::before,
.menu-toggle__icon::after {
  content:"";
  position:absolute;
  left:0;
  width:38px;
  height:3px;
  background-color:var(--itot-text);
  border-radius:1px;
}
.menu-toggle__icon::before { top:-10px; }
.menu-toggle__icon::after  { top:10px; }

@media (max-width:1024px) {
  .menu-toggle { display:flex; }

  #site-navigation {
    position:fixed;
    top:var(--itot-header-h);
    right:-100%;
    width:280px;
    height:calc(100vh - var(--itot-header-h));
    background-color:var(--itot-bg-white);
    overflow-y:auto;
    transition:right var(--itot-transition);
    z-index:99998;
    box-shadow:var(--itot-shadow-drawer);
  }

  #site-navigation.is-open { right:0; }

  #site-navigation.is-open .nav-style,
  #site-navigation.is-open ul#menu-header {
    display:block;
  }

  .nav-style > li > a {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    text-align:left;
    height:auto;
    padding:14px 20px;
    border-bottom:1px solid var(--itot-border-light);
  }

  .sub-menu {
    position:relative;
    box-shadow:none;
    display:none;
    background-color:var(--itot-bg-card-muted);
  }

  .menu-item-has-children.is-submenu-open > .sub-menu,
  li.is-submenu-open > .sub-menu,
  li.hover > .sub-menu {
    display:block;
  }

  .sub-menu li a {
    padding:12px 20px 12px 36px;
    font-size:14px;
  }

  .menu-item-has-children { padding-right:0; }
  .menu-item-has-children > a { padding-right:40px; }
}

/* =================================================================
   7. Main Content Area
   ================================================================= */
.def_post {
  padding-top:var(--itot-header-h);
  background-color:var(--itot-bg);
  padding-bottom:30px;
}
div.def_post.section { overflow:visible; }

.home .def_post {
  background-color:var(--itot-bg);
  padding-top:0;
  padding-bottom:0;
}
.home div.def_post.section { overflow:visible; }

#itot_container {
  max-width:var(--itot-base-width);
  margin:0 auto;
  padding:0 20px;
}
.home #itot_container {
  max-width:none;
  padding:0;
  overflow:visible;
}

/* =================================================================
   8. Hero / Slider
   ================================================================= */
#itot_container .p-home__hero,
section.p-home__section.p-home__hero {
  position:relative;
  overflow:visible;
  max-width:none;
  padding:0;
  margin:0;
  width:100%;
}

.wrp-slide01 {
  position:relative;
  width:100%;
  height:500px;
  margin:0;
  padding:0;
  overflow:hidden;
}

h1.townname,
div.townname { text-align:center; }

.p-home__hero .metaslider,
.p-home__hero .metaslider .flexslider,
.p-home__hero .metaslider .slides,
.p-home__hero .metaslider .slides > li {
  height:500px;
}

.p-home__hero .metaslider,
.p-home__hero .flexslider {
  margin:0;
  padding:0;
  border:0;
  box-shadow:none;
}
.p-home__hero .metaslider .slides,
.p-home__hero .flexslider .slides {
  margin:0;
  padding:0;
}
.p-home__hero .metaslider .slides > li {
  position:relative;
  overflow:hidden;
}
.p-home__hero .metaslider .slides img {
  display:block;
  width:100%;
  height:500px;
  object-fit:cover;
}
.p-home__hero .caption-wrap {
  left:0;
  right:0;
  bottom:0;
  width:100%;
  margin:0;
  background:transparent;
}
.p-home__hero .caption,
.p-home__hero .flex-control-nav,
.p-home__hero .flex-direction-nav {
  margin:0;
  padding:0;
  background:transparent;
}

/* PR帯 */
.pr_prompt {
  position:relative;
  z-index:2;
  display:block;
  width:100%;
  margin:0;
  background-color:var(--itot-bg-pr-prompt);
}
.pr_prompt a {
  display:block;
  margin:0;
  padding:10px 0;
  text-align:center;
  color:var(--itot-text);
  text-decoration:none;
  background-color:var(--itot-bg-pr-prompt);
}
.pr_prompt span {
  display:inline-block;
  color:var(--itot-text-inverse);
  background:var(--itot-badge-alert);
  border-radius:4px;
  padding:2px 5px;
  margin-right:5px;
  vertical-align:middle;
}
.pr_prompt img {
  display:inline-block;
  vertical-align:middle;
  margin-left:6px;
  width:auto;
  height:auto;
  max-width:none;
}

@media (max-width:767px) {
  .wrp-slide01 { height:430px; }
  .p-home__hero .metaslider,
  .p-home__hero .metaslider .flexslider,
  .p-home__hero .metaslider .slides,
  .p-home__hero .metaslider .slides > li {
    height:430px;
  }
  .p-home__hero .metaslider .slides img { height:430px; }
}

/* HERO overlay */
.wrp-slide01 .on-txt {
  position:absolute;
  inset:0;
  z-index:11;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:0 20px;
}
.wrp-slide01 .sitetitle {
  width:100%;
  max-width:1000px;
  margin:0 auto;
}
.wrp-slide01 .townname,
.wrp-slide01 .townname a {
  display:block;
  text-decoration:none;
}
.wrp-slide01 .hero-powered {
  display:block;
  margin:0 auto 18px;
  width:auto;
  max-width:150px;
}

.on-txt .title03 { display:block; font-size:64px; line-height:1.35; margin:0;
  /* 縁取り：背景写真でも読みやすくする（盛岡サイトと同方式：8方向30%） */
  text-shadow:
     2px  2px 2px rgba(0,0,0,0.30),
    -2px  2px 2px rgba(0,0,0,0.30),
     2px -2px 2px rgba(0,0,0,0.30),
    -2px -2px 2px rgba(0,0,0,0.30),
     2px  0px 2px rgba(0,0,0,0.30),
     0px  2px 2px rgba(0,0,0,0.30),
    -2px  0px 2px rgba(0,0,0,0.30),
     0px -2px 2px rgba(0,0,0,0.30);
}
.on-txt .title04 { display:block; font-size:24px; margin-top:18px;
  text-shadow:
     2px  2px 2px rgba(0,0,0,0.30),
    -2px  2px 2px rgba(0,0,0,0.30),
     2px -2px 2px rgba(0,0,0,0.30),
    -2px -2px 2px rgba(0,0,0,0.30),
     2px  0px 2px rgba(0,0,0,0.30),
     0px  2px 2px rgba(0,0,0,0.30),
    -2px  0px 2px rgba(0,0,0,0.30),
     0px -2px 2px rgba(0,0,0,0.30);
}
.on-txt .hero-sub { margin-top:28px; }
.on-txt .hero-sub p { font-size:26px; line-height:1.85; margin:0;
  text-shadow:
     2px  2px 2px rgba(0,0,0,0.30),
    -2px  2px 2px rgba(0,0,0,0.30),
     2px -2px 2px rgba(0,0,0,0.30),
    -2px -2px 2px rgba(0,0,0,0.30),
     2px  0px 2px rgba(0,0,0,0.30),
     0px  2px 2px rgba(0,0,0,0.30),
    -2px  0px 2px rgba(0,0,0,0.30),
     0px -2px 2px rgba(0,0,0,0.30);
}

@media (max-width:1024px) {
  .on-txt .title03 { font-size:52px; }
  .on-txt .hero-sub p { font-size:22px; }
}
@media (max-width:767px) {
  .wrp-slide01 .on-txt { padding:0 16px; }
  .on-txt .title03 { font-size:34px; }
  .on-txt .title04 { font-size:16px; margin-top:12px; }
  .on-txt .hero-sub { margin-top:18px; }
  .on-txt .hero-sub p { font-size:18px; }
  .wrp-slide01 .hero-powered { max-width:110px; margin-bottom:12px; }
}

/* PR prompt alt */
.p-home__prPrompt {
  background-color:var(--itot-bg-pr-prompt);
  width:100%;
}
.p-home__prLink {
  display:block;
  text-align:center;
  padding:18px 0;
  font-size:15px;
  color:var(--itot-text);
  letter-spacing:.05em;
}
.p-home__prLink span {
  display:inline-block;
  color:var(--itot-text-inverse);
  background:var(--itot-badge-alert);
  border-radius:var(--itot-radius);
  padding:2px 8px;
  margin-right:6px;
  font-weight:500;
}

/* =================================================================
   9. Home Sections
   ================================================================= */
body.home { overflow-x:hidden; }
.p-home { overflow:visible; }

.p-home__section {
  padding:80px 20px;
  max-width:var(--itot-base-width);
  margin:0 auto;
}
@media (max-width:767px) {
  .p-home__section { padding:50px 15px; }
}

#itot_container .p-home__section--column {
  padding-top:90px;
  max-width:none;
  background-color:var(--itot-bg);
  width:100%;
  margin-left:0;
  margin-right:0;
  padding-left:0;
  padding-right:0;
}
.p-home__section--column .p-home__sectionHeader,
.p-home__section--column .p-home__grid,
.p-home__section--column .p-home__sectionFooter {
  max-width:var(--itot-base-width);
  margin-left:auto;
  margin-right:auto;
  padding-left:20px;
  padding-right:20px;
}

#itot_container .p-home__section--features,
.wrap-block14.p-home__section--features {
  max-width:none;
  padding-left:0;
  padding-right:0;
  background-color:var(--itot-bg-white);
  width:100%;
  margin-left:0;
  margin-right:0;
}

#itot_container .p-home__section--pickup {
  max-width:none;
  padding:80px 0;
  width:100%;
  margin-left:0;
  margin-right:0;
}
.p-home__section--pickup .p-home__sectionHeader,
.p-home__section--pickup .p-home__sectionFooter {
  max-width:var(--itot-base-width);
  margin-left:auto;
  margin-right:auto;
  padding:0 20px;
}
.p-home__section--pickup .p-home__grid {
  max-width:var(--itot-base-width);
  margin:0 auto;
  padding:0 20px;
}

#itot_container .p-home__section--lifeinfo {
  max-width:none;
  background-color:var(--itot-bg-lifeinfo);
  padding:80px 0 100px;
  width:100%;
  margin-left:0;
  margin-right:0;
}
.p-home__section--lifeinfo .p-home__sectionHeader {
  max-width:var(--itot-base-width);
  margin-left:auto;
  margin-right:auto;
  padding:0 20px;
}

.p-home__sectionHeader { text-align:center; margin-bottom:50px; }

.p-home__sectionTitle {
  display:flex;
  flex-direction:column-reverse;
  align-items:center;
  gap:6px;
  font-family:var(--itot-font-serif);
  font-size:26px;
  font-weight:500;
  color:var(--itot-accent);
  letter-spacing:.06em;
  line-height:1.4;
}
.p-home__sectionTitleEn {
  display:block;
  font-family:var(--itot-font-en);
  font-size:14px;
  font-weight:400;
  letter-spacing:.15em;
  color:var(--itot-text-muted);
  line-height:1;
  margin-bottom:0;
}
.p-home__sectionTitleEn::first-letter { color:inherit; }

@media (max-width:767px) {
  .p-home__sectionHeader { margin-bottom:30px; }
  .p-home__sectionTitle { font-size:20px; }
  .p-home__sectionTitleEn { font-size:12px; }
}

.p-home__sectionFooter { text-align:center; margin-top:10px; }
.p-home__moreLink {
  display:inline-block;
  font-family:var(--itot-font-body);
  font-size:18px;
  color:var(--itot-text-inverse);
  background-color:var(--itot-accent);
  padding:14px 30px 14px 40px;
  width:355px;
  max-width:100%;
  text-align:center;
  letter-spacing:.1em;
  border-radius:var(--itot-radius-btn);
  transition:opacity var(--itot-transition);
}
.p-home__moreLink:hover {
  opacity:0.8;
  color:var(--itot-text-inverse);
}
@media (max-width:767px) {
  .p-home__moreLink { width:300px; font-size:16px; padding:12px 20px; }
}

.p-home__grid { display:flex; flex-wrap:wrap; gap:30px; }
.p-home__grid--cards .c-card { width:calc(50% - 15px); }
.p-home__section--pickup .p-home__grid--cards .c-card { width:calc(25% - 23px); }

@media (max-width:1024px) {
  .p-home__section--pickup .p-home__grid--cards .c-card { width:calc(50% - 15px); }
}
@media (max-width:767px) {
  .p-home__grid { gap:20px; }
  .p-home__grid--cards .c-card,
  .p-home__section--pickup .p-home__grid--cards .c-card { width:100%; }
}

.p-home__lifeList {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:24px;
  max-width:var(--itot-base-width);
  margin:0 auto;
  padding:0 20px;
}
.p-home__lifeItem,
.p-home__lifeList > li { flex:0 0 auto; }

.p-home__lifeLink,
.p-home__lifeList > li > a {
  position:relative;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  width:160px;
  height:160px;
  background-color:var(--itot-bg-footer-pr);
  color:var(--itot-text-inverse);
  font-family:var(--itot-font-serif);
  font-size:14px;
  font-weight:500;
  letter-spacing:.05em;
  line-height:1.5;
  border:none;
  border-radius:2px;
  box-shadow:none;
  transition:opacity var(--itot-transition);
  padding:140px 14px 10px;
  overflow:hidden;
  text-align:center;
  word-break:keep-all;
  overflow-wrap:break-word;
  z-index:1;
}

.p-home__lifeLink:hover,
.p-home__lifeList > li > a:hover {
  opacity:0.8;
  color:var(--itot-text-inverse);
}
/* ベーススタイル（::before） */
.p-home__lifeList > li > a::before {
  content:"";
  position:absolute;
  top:0;
  left:50%;
  transform:translateX(-50%);
  width:140px;
  height:140px;
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
  pointer-events:none;
}
.p-home__lifeList > li > a > span,
.p-home__lifeList > li > a { z-index:1; line-height:1.2; }

.p-home__lifeList > li:nth-child(1) > a::before { background-image:url("./img/top/i_pub.png"); }
.p-home__lifeList > li:nth-child(2) > a::before { background-image:url("./img/top/i_child.png"); }
.p-home__lifeList > li:nth-child(3) > a::before { background-image:url("./img/top/i_park.png"); }
.p-home__lifeList > li:nth-child(4) > a::before { background-image:url("./img/top/i_shopping.png"); }
.p-home__lifeList > li:nth-child(5) > a::before { background-image:url("./img/top/i_gourmet.png"); }

/* スマホ：5タイルを横1列に収める（ベーススタイルの後に置かないと上書きされない）*/
@media (max-width:767px) {
  .p-home__lifeList {
    flex-wrap: nowrap;
    justify-content: center;
    gap: 8px;
    padding: 0 12px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .p-home__lifeItem,
  .p-home__lifeList > li { flex: 0 0 auto; }

  .p-home__lifeLink,
  .p-home__lifeList > li > a {
    width: calc((100vw - 24px - 4 * 8px) / 5);
    /* 高さ = アイコンエリア(幅×0.65) + テキスト3行分(42px) + 下余白(6px) */
    /* → 全タイルに同じ高さを直接指定して高さを統一する */
    height: calc((100vw - 24px - 4 * 8px) / 5 * 0.65 + 48px);
    min-width: 58px;
    max-width: 100px;
    font-size: 10px;
    padding-top: calc((100vw - 24px - 4 * 8px) / 5 * 0.65);
    padding-bottom: 6px;
    padding-left: 4px;
    padding-right: 4px;
    overflow: hidden;
    word-break: break-all;
  }

  /* アイコン（::before）はタイル幅基準の正方形 */
  .p-home__lifeList > li > a::before {
    width:  calc((100vw - 24px - 4 * 8px) / 5 * 0.65);
    height: calc((100vw - 24px - 4 * 8px) / 5 * 0.65);
    min-width: 36px; min-height: 36px;
    max-width: 65px; max-height: 65px;
  }
}

.p-home__note {
  padding:30px;
  text-align:center;
  color:var(--itot-text-muted);
  font-size:14px;
}
.p-home__featureTitle a { color:var(--itot-text); transition:opacity var(--itot-transition); }
.p-home__featureTitle a:hover { opacity:0.7; }
.p-home__featureExcerpt { font-size:14px; line-height:1.8; color:var(--itot-text-light); }

/* =================================================================
   10. Card Component
   ================================================================= */
.c-card {
  position:relative;
  background:var(--itot-bg-card);
  border:1px solid var(--itot-border-light);
  border-radius:var(--itot-radius);
  box-shadow:var(--itot-shadow);
  overflow:hidden;
  transition:transform var(--itot-transition), box-shadow var(--itot-transition);
}
.c-card:hover {
  transform:translateY(-2px);
  box-shadow:4px 4px 0 0 var(--itot-border-card-hover);
}
.c-card__tag {
  position:absolute;
  top:0;
  left:0;
  z-index:3;
  background-color:var(--itot-accent);
  color:var(--itot-text-inverse);
  font-size:11px;
  font-weight:500;
  padding:4px 14px;
  letter-spacing:.05em;
  line-height:1.4;
}
.c-card__media { overflow:hidden; background:var(--itot-bg-card-soft); }
.c-card__mediaLink { display:block; overflow:hidden; }
.c-card__image {
  width:100%;
  aspect-ratio:3/2;
  object-fit:cover;
  transition:transform .5s ease;
}
.c-card:hover .c-card__image { transform:scale(1.03); }
.c-card__image--empty {
  width:100%;
  aspect-ratio:3/2;
  background:linear-gradient(135deg, var(--itot-bg-card-soft), var(--itot-bg-card-dim));
}
.c-card__body { padding:12px 14px 16px; }
.c-card__eyebrow {
  font-size:12px;
  color:var(--itot-text);
  margin:0 0 4px;
  line-height:1.5;
  font-weight:500;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.c-card__title {
  display:block;
  font-family:var(--itot-font-serif);
  font-size:15px;
  font-weight:500;
  line-height:1.6;
  margin:0;
  color:var(--itot-text);
}
.c-card__titleLink {
  color:inherit;
  text-decoration:none;
  transition:opacity var(--itot-transition);
}
.c-card__titleLink:hover { opacity:0.7; }

.c-card__map {
  display:inline-block;
  vertical-align:baseline;
  margin-left:8px;
  position:relative;
  top:6px;
}
.c-card__mapLink {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  padding:1px 12px 1px 8px;
  background:var(--itot-text-strong);
  color:var(--itot-text-inverse);
  border-radius:999px;
  text-decoration:none;
  line-height:1;
  vertical-align:baseline;
}
.c-card__mapIcon {
  display:block;
  width:18px;
  height:22px;
  object-fit:contain;
  flex-shrink:0;
}
.c-card__mapText {
  display:block;
  font-size:10px;
  font-weight:700;
  letter-spacing:.04em;
  line-height:1;
  color:var(--itot-text-inverse);
}
.c-card__mapLink:hover {
  opacity:0.7;
  color:var(--itot-text-inverse);
}

.c-card__excerpt {
  font-size:13px;
  line-height:1.8;
  color:var(--itot-text);
  margin:8px 0 0;
  overflow:hidden;
  display:-webkit-box;
  -webkit-line-clamp:5;
  -webkit-box-orient:vertical;
}
.c-card__excerptMore {
  display:inline-block;
  margin-left:4px;
  font-size:12px;
  color:var(--itot-primary);
  text-decoration:none;
  white-space:nowrap;
}
.c-card__excerptMore::before {
  content:"\f105";
  font-family:"FontAwesome";
  margin-right:3px;
}
.c-card__excerptMore:hover { text-decoration:underline; }

.c-card__shopData {
  font-size:12px;
  line-height:1.7;
  color:var(--itot-text);
  margin:12px 0 0;
  padding-top:10px;
  border-top:1px dashed var(--itot-border);
  word-break:break-all;
}
.c-card__shopData a {
  color:var(--itot-text);
  text-decoration:underline;
  font-size:12px;
  word-break:break-all;
}
.c-card__shopData a:hover {
  opacity:0.7;
  color:var(--itot-text);
}

.c-card__info {
  border-top:1px dashed var(--itot-border);
  margin-top:10px;
  padding-top:10px;
  font-size:11px;
  line-height:1.7;
  color:var(--itot-text);
}
.c-card__infoLine {
  margin:0 0 4px;
  padding:0;
  line-height:1.7;
  color:var(--itot-text);
  word-break:break-word;
  overflow-wrap:anywhere;
}
.c-card__infoLine:last-child { margin-bottom:0; }

.c-card__infoLink {
  color:var(--itot-text);
  text-decoration:underline;
  font-size:11px;
  word-break:break-all;
  overflow-wrap:anywhere;
}
.c-card__infoLink:hover {
  opacity:0.7;
  color:var(--itot-text);
}

.c-card__infoList,
.c-card__infoTerm,
.c-card__infoDesc { all:unset; }

.c-card--nolink { opacity:1; }
.c-card--nolink:hover { transform:none; box-shadow:var(--itot-shadow); }

/* カード全体クリック化：.c-card--link のタイトルリンクを全体に広げる */
.c-card--link { position:relative; }
.c-card--link .c-card__titleLink::after {
  content:'';
  position:absolute;
  inset:0;
  z-index:1;
}

.home .c-card__title { font-size:16px; margin-top:4px; line-height:1.5; }
.home .c-card__eyebrow { font-size:12px; }

@media (max-width:767px) {
  .home .c-card__title { font-size:14px; }
  .home .c-card__eyebrow { font-size:11px; line-height:1.4; }
}

.p-home__section--pickup .c-card {
  box-shadow:2px 2px 0 0 var(--itot-border-pickup);
  border-color:transparent;
}
.p-home__section--pickup .c-card:hover {
  box-shadow:3px 3px 0 0 var(--itot-border-pickup-hover);
}

/* =================================================================
   11. Category Page
   ================================================================= */
.p-category { padding-top:0; }
.p-category__header { padding:40px 20px 30px; }
.p-category__header.header_bg {
  width:100vw;
  margin-left:calc(-50vw + 50%);
  padding:110px 20px;
  position:relative;
  background-size:cover;
  background-repeat:no-repeat;
  background-position:center 50%;
  text-align:center;
}
.p-category__header.header_bg::after {
  content:"";
  position:absolute;
  inset:0;
  background:var(--itot-overlay-dark);
  pointer-events:none;
}
.p-category__header.header_bg > * {
  position:relative;
  z-index:1;
}
.p-category__title {
  font-family:var(--itot-font-serif);
  font-size:28px;
  font-weight:500;
  text-align:center;
  margin-bottom:10px;
  color:var(--itot-text);
}
.p-category__header.header_bg .p-category__title {
  color:var(--itot-text-inverse);
  text-shadow:0 1px 6px var(--itot-overlay-dark-50);
}
.p-category__description {
  max-width:800px;
  margin:0 auto;
  text-align:center;
  font-size:15px;
  color:var(--itot-text-light);
  line-height:2;
}
.p-category__header.header_bg .p-category__description {
  color:var(--itot-overlay-white-90);
}

@media (max-width:767px) {
  .p-category__header.header_bg { padding:70px 15px; }
  .p-category__title { font-size:22px; }
}

.header_bg .section_title,
.header_bg .lead {
  color:var(--itot-text-inverse);
  text-shadow:
    var(--itot-text) 3px 3px 5px,
    var(--itot-text) -3px 3px 5px,
    var(--itot-text) 3px -3px 5px,
    var(--itot-text) -3px -3px 5px;
}

.bg_pickup      { background-image:url("img/bg_pickup.jpg"); }
.bg_column      { background-image:url("img/bg_column.jpg"); }
.bg_interview   { background-image:url("img/bg_interview.jpg"); }
.bg_report      { background-image:url("img/bg_report.jpg"); }
.bg_culture     { background-image:url("img/bg_culture.jpg"); }
.bg_gourmet     { background-image:url("img/bg_gurmet.jpg"); }
.bg_education   { background-image:url("img/bg_education.jpg"); }
.bg_park        { background-image:url("img/bg_park.jpg"); }
.bg_sports      { background-image:url("img/bg_sports.jpg"); }
.bg_shopping,
.bg_shop        { background-image:url("img/bg_shop.jpg"); }
.bg_public      { background-image:url("img/bg_public.jpg"); }
.bg_life,
.bg_lifestyle   { background-image:url("img/bg_life.jpg"); }
.bg_development { background-image:url("img/bg_development.jpg"); }

.category_lead {
  line-height:2;
  font-size:17px;
  margin:3em 0;
}

.p-category__grid {
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  max-width:var(--itot-base-width);
  margin:0 auto;
  padding:16px 20px 24px;
}
.p-category__grid .c-card { width:calc(33.333% - 14px); }
.p-category__grid.clearfix::after { display:none; }

@media (max-width:1024px) {
  .p-category__grid .c-card { width:calc(50% - 10px); }
}
@media (max-width:600px) {
  .p-category__grid .c-card { width:100%; }
  .p-category__grid { gap:16px; padding:12px 15px 20px; }
}
.p-category__note {
  text-align:center;
  padding:40px;
  color:var(--itot-text-muted);
}

.p-category__section--map {
  max-width:var(--itot-base-width);
  margin:0 auto;
  padding:0 20px;
}
#map_area {
  width:100%;
  min-height:400px;
  border-radius:var(--itot-radius);
  overflow:hidden;
}
#map_area:empty {
  min-height:0;
  height:0;
  padding:0;
  margin:0;
}
@media (max-width:767px) {
  #map_area { min-height:280px; }
}

/* =================================================================
   12. Breadcrumbs
   ================================================================= */
.p-category__breadcrumbs,
.p-single__breadcrumbs {
  max-width:1400px;
  margin:0 auto;
  padding:0 20px;
}
.p-category__breadcrumbsList,
.p-single__breadcrumbsList {
  display:flex;
  flex-wrap:wrap;
  font-size:13px;
  color:var(--itot-text-light);
  padding:12px 0;
  list-style:none;
  margin:0;
  gap:0;
}
.p-category__breadcrumbsItem,
.p-single__breadcrumbsItem { padding:5px 5px; }

.p-category__breadcrumbsItem:not(:last-child)::after,
.p-single__breadcrumbsItem:not(:last-child)::after {
  content:">";
  margin-left:8px;
  color:var(--itot-text-muted);
  font-size:11px;
}

.p-category__breadcrumbsLink,
.p-single__breadcrumbsLink {
  color:var(--itot-primary);
  text-decoration:none;
}
.p-category__breadcrumbsLink:hover,
.p-single__breadcrumbsLink:hover {
  text-decoration:underline;
  opacity:1;
}
.p-category__breadcrumbsCurrent,
.p-single__breadcrumbsCurrent {
  color:var(--itot-text-muted);
}

@media (max-width:767px) {
  .p-category__breadcrumbs,
  .p-single__breadcrumbs { padding:0 15px; }
  .p-category__breadcrumbsList,
  .p-single__breadcrumbsList { font-size:12px; padding:10px 0; }
}

/* =================================================================
   13. Single / Article Page
   ================================================================= */
.p-single {
  padding-top:20px;
  background-color:var(--itot-bg);
  overflow:hidden;
  padding-bottom:30px;
}
.p-single__layout {
  display:flex;
  gap:20px;
  max-width:1400px;
  margin:0 auto;
  padding:0 20px 60px;
  align-items:flex-start;
}
.p-single__main { flex:1; min-width:0; }
.p-single__sidebar { width:290px; flex-shrink:0; }

@media (max-width:900px) {
  .p-single__layout { flex-direction:column; gap:30px; }
  .p-single__sidebar { width:100%; }
}

.p-single__article {
  background:var(--itot-bg-white);
  border-radius:4px;
  padding:0;
  margin-bottom:0;
  box-shadow:var(--itot-shadow-soft);
}
.p-single__header {
  padding:40px 40px 20px;
  margin-bottom:0;
  background:transparent;
  border-radius:0;
  box-shadow:none;
}
.p-single__title {
  font-family:var(--itot-font-serif);
  font-size:2.2em;
  font-weight:500;
  line-height:1.45;
  margin:0 0 24px;
  color:var(--itot-text-strong);
}
.p-single__share {
  display:flex;
  gap:10px;
  margin-bottom:0;
}
.p-single__shareLink {
  display:inline-block;
  padding:6px 14px;
  border-radius:14px;
  font-size:13px;
  font-weight:700;
  color:var(--itot-text-inverse);
  text-decoration:none;
  transition:opacity var(--itot-transition);
  line-height:1.2;
}
.p-single__shareLink:hover {
  opacity:0.8;
  color:var(--itot-text-inverse);
}
.p-single__shareLink--x { background-color:var(--itot-text-strong); }

.p-single__content {
  font-family:var(--itot-font-body);
  font-size:14px;
  line-height:2;
  color:var(--itot-text);
  background:transparent;
  border-radius:0;
  padding:0 40px 40px;
  margin-bottom:0;
  box-shadow:none;
}
/* キャッチコピー（itot_catchcopy / rc_catch） */
.p-single__catchcopy {
  font-family: var(--itot-font-body);
  font-size: 1em;
  line-height: 1.8;
  color: var(--itot-text);
  background: #f7f5f0;
  border-left: 3px solid var(--itot-accent, #b59a6a);
  padding: 0.75em 1em;
  margin: 0 0 1.5em;
}

.p-single__content h2 {
  font-family:var(--itot-font-serif);
  font-size:2em;
  font-weight:500;
  border-left:none;
  border-bottom:2px solid var(--itot-text-soft);
  padding:0 0 10px;
  margin:1.8em 0 1em;
  line-height:1.5;
  color:var(--itot-text-strong);
}
.p-single__content h3 {
  font-family:var(--itot-font-serif);
  font-size:1.35em;
  font-weight:500;
  margin:1.8em 0 .8em;
  line-height:1.6;
  color:var(--itot-text-strong);
}
.p-single__content p { margin:0 0 1.5em; }
.p-single__content img {
  border-radius:4px;
  margin:1.2em 0;
  max-width:100%;
  height:auto;
}
.p-single__content a {
  color:var(--itot-text);
  text-decoration:underline;
}
.p-single__content a:hover { opacity:0.8; }

.p-single__articleNote {
  margin-top:28px;
  padding-top:18px;
  border-top:1px dotted var(--itot-text-light);
}
.p-single__articleNoteText {
  margin:0;
  font-size:14px;
  line-height:1.8;
  color:var(--itot-text-deep);
}
.p-single__articleNoteIcon {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:16px;
  height:16px;
  margin-right:8px;
  border-radius:50%;
  background:var(--itot-status-green);
  color:var(--itot-text-inverse);
  font-size:11px;
  font-weight:700;
  line-height:1;
  vertical-align:middle;
}

.p-single__section {
  background:var(--itot-bg-white);
  border:1px solid var(--itot-border-mid);
  border-radius:0;
  padding:18px 18px 22px;
  margin-top:18px;
  margin-bottom:0;
  box-shadow:var(--itot-shadow-soft);
}
.p-single__sectionTitle {
  font-family:var(--itot-font-serif);
  font-size:22px;
  font-weight:500;
  padding-bottom:12px;
  margin-bottom:20px;
  border-bottom:2px solid var(--itot-accent);
  color:var(--itot-text);
}
.p-single__sectionTitle--icon {
  position:relative;
  padding-left:24px;
  padding-bottom:0;
  border-bottom:none;
  font-size:18px;
  margin-bottom:14px;
  line-height:1.6;
  color:var(--itot-text);
}
.p-single__sectionTitle--icon::before {
  content:"";
  position:absolute;
  left:0;
  top:.42em;
  width:14px;
  height:14px;
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
}
.p-single__sectionTitle--inquiry::before { background-image:url("./img/i_contact.png"); }
.p-single__sectionTitle--related::before { background-image:url("./img/i_relation.png"); }

.p-single__section--inquiry {
  margin-top:18px;
  border:1px solid var(--itot-border-mid);
  background:var(--itot-bg-white);
}
.p-single__inquiryText {
  font-size:13px;
  line-height:1.9;
  color:var(--itot-text-subtle);
}
.p-single__inquiryAction {
  text-align:center;
  margin-top:18px;
}
.p-single__inquiryAction a,
.p-single__inquiryLink {
  display:inline-block;
  min-width:110px;
  padding:7px 18px;
  border:1px solid var(--itot-border-ui);
  border-radius:4px;
  background:linear-gradient(var(--itot-bg-card-muted), var(--itot-bg-card-soft)); /* #ececec → bg-card-soft (#eeeeee) 近似 */
  box-shadow:var(--itot-shadow-ui);
  font-size:12px;
  color:var(--itot-text-soft);
  text-decoration:none;
}
.p-single__inquiryAction a:hover,
.p-single__inquiryLink:hover {
  opacity:.85;
  color:var(--itot-text-soft);
}

.p-single__section--related { margin-top:22px; }

.p-single__relatedList--stack {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:22px 18px;
  margin:0;
  padding:0;
}
.p-single__relatedList--stack .p-single__relatedItem { margin:0; padding:0; }
.p-single__relatedLink--stack {
  display:block;
  width:100%;
  text-decoration:none;
  color:var(--itot-text);
  background:none;
  border-radius:0;
  overflow:visible;
  box-shadow:none;
  transform:none;
}
.p-single__relatedLink--stack:hover {
  opacity:.8;
  box-shadow:none;
  transform:none;
}
.p-single__relatedLink--stack .p-single__relatedThumb {
  width:100%;
  aspect-ratio:4 / 3;
  background:var(--itot-bg-card-soft);
  border-radius:0;
  overflow:hidden;
  margin-bottom:8px;
}
.p-single__relatedImg {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.p-single__relatedLink--stack .p-single__relatedText { padding:0; }
.p-single__relatedLink--stack .p-single__relatedTitle {
  font-size:12px;
  line-height:1.6;
  text-decoration:underline;
  display:block;
}

@media (max-width:767px) {
  .p-single__layout { padding:0 15px 40px; }
  .p-single__header { padding:24px 20px 16px; }
  .p-single__content { padding:0 20px 24px; font-size:15px; }
  .p-single__section {
    padding:18px 18px 22px;
    margin-top:18px;
    box-shadow:var(--itot-shadow-soft);
  }
  .p-single__title { font-size:1.9em; line-height:1.5; }
  .p-single__content h2 { font-size:1.6em; }
  .p-single__sectionTitle--icon { padding-left:22px; font-size:17px; }
  .p-single__sectionTitle--icon::before { width:12px; height:12px; }
  .p-single__relatedList--stack {
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:16px 10px;
  }
  .p-single__relatedLink--stack .p-single__relatedTitle {
    font-size:11px;
    line-height:1.5;
  }
}

/* =================================================================
   14. Footer
   ================================================================= */
.p-footer { margin-top:0; }

/* --- 14.1 PR Section (PR帯：統合・整理済み) --- */
.p-footer__pr {
  width: 100%;
  background-color: #7ea39c;
  padding: 58px 0 48px;
  overflow: hidden;
}

.p-footer__prInner {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 24px;
}

.p-footer__prItem {
  display: block;
  width: 100%;
  padding: 36px 0;
}
.p-footer__prItem:first-child { padding-top: 0; }
.p-footer__prItem:not(:last-child) {
  border-bottom: 1px solid var(--itot-overlay-white-35);
}

.p-footer__prBox {
  display: grid;
  grid-template-columns: 460px 1fr;
  column-gap: 56px;
  align-items: start;
}

/* 左右反転レイアウト */
.p-footer__prItem:nth-child(even) .p-footer__prBox {
  grid-template-columns: 1fr 460px;
}
.p-footer__prItem:nth-child(even) .p-footer__prImage { order: 2; }
.p-footer__prItem:nth-child(even) .p-footer__prText  { order: 1; }

.p-footer__prImage { width: 100%; max-width: 460px; overflow: hidden; }
.p-footer__prImage img {
  display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover;
  transition: transform .45s ease;
}
.p-footer__prItem:hover .p-footer__prImage img { transform: scale(1.05); }

.p-footer__prText { width: 100%; display: flex; flex-direction: column; }
.p-footer__prBadge {
  display: inline-block; background: var(--itot-badge-alert, #ef5d67);
  color: #fff; font-size: 14px; padding: 4px 7px; border-radius: 2px; margin-bottom: 14px;
  width: fit-content;
}
.p-footer__prCatch { margin: 0 0 18px; font-size: 15px; line-height: 2; color: var(--itot-text); }
.p-footer__prTitle { margin: 0 0 32px; font-size: 22px; line-height: 1.7; font-weight: 400; }
.p-footer__prTitleLink { color: var(--itot-text); text-decoration: underline; text-underline-offset: 3px; }

.p-footer__prButtonWrap { width: 100%; text-align: center; }
.p-footer__prButton {
  display: inline-block; width: 355px; max-width: 100%; background: #000; color: #fff;
  padding: 15px 20px; font-size: 18px; text-decoration: none; border-radius: 4px; transition: 0.3s;
}
.p-footer__prButton:hover { opacity: 0.8; color: #fff; }

/* --- 14.2 Footer Navigation (ナビ機能：復元) --- */
.p-footer__nav {
  max-width: var(--itot-base-width);
  margin: 30px auto;
  padding: 0 20px;
  text-align: left;
}
.p-footer__navList { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.p-footer__navList > li {
  position: relative;
  display: block;
  border-bottom: 1px solid var(--itot-border);
}
.p-footer__navList > li:first-child { border-top: 1px solid var(--itot-border); }

.p-footer__navList > li > a {
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding: 12px 40px 12px 20px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  color: var(--itot-text);
  text-decoration: none;
  transition: background-color var(--itot-transition);
}
.p-footer__navList > li > a:hover { background-color: var(--itot-bg); opacity: 1; }

/* サブメニューがある場合のアイコン（＋/ー） */
.p-footer__navList .menu-item-has-children > a { position: relative; }
.p-footer__navList .menu-item-has-children > a::after {
  position: absolute;
  display: block;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
  height: 1em;
  line-height: 1em;
  content: "\f067"; /* ＋アイコン */
  font-family: "Font Awesome 5 Pro", FontAwesome;
}
.p-footer__navList .menu-item-has-children:hover > a::after,
.p-footer__navList .menu-item-has-children.is-submenu-open > a::after {
  content: "\f068"; /* ーアイコン */
}

/* サブメニュー本体 */
.p-footer__navList .sub-menu {
  display: none;
  position: static;
  background: transparent;
  box-shadow: none;
  list-style: none;
  padding: 4px 0 10px;
  margin: 0;
  width: 100%;
}
.p-footer__navList .menu-item-has-children:hover > .sub-menu,
.p-footer__navList .menu-item-has-children.is-submenu-open > .sub-menu {
  display: block;
}
.p-footer__navList .sub-menu li { display: block; }
.p-footer__navList .sub-menu li a {
  display: block;
  padding: 8px 20px 8px 36px;
  font-size: 13px;
  color: var(--itot-text-light);
  text-decoration: none;
}
.p-footer__navList .sub-menu li a:hover { background-color: var(--itot-bg); }

/* --- 14.3 SNS, Copyright, ToTop --- */
.p-footer__sns { padding: 20px 0 10px; text-align: center; }
.p-footer__snsList { 
  display: flex; 
  justify-content: center; 
  gap: 16px; 
  list-style: none; 
  padding: 0; 
  margin: 0;
}
.p-footer__snsIcon { width: 40px; height: 40px; border-radius: 50%; }

.p-footer__copyright {
  background-color: var(--itot-bg-white);
  padding: 20px 0;
  border-top: 1px solid var(--itot-border-light);
}

.p-footer__copyrightInner {
  display: flex; 
  justify-content: space-between; /* 左と右に振り分け */
  align-items: center;
  max-width: var(--itot-base-width); 
  margin: 0 auto; 
  padding: 0 20px; 
  font-size: 12px;
  color: var(--itot-text-strong);
}

.p-footer__copyrightRight {
  display: flex; /* ここでリンクを横並びにする */
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
  padding: 0;
}

.p-footer__copyrightItem {
  line-height: 1;
}

.p-footer__copyrightLink {
  display: block;
  padding: 0 15px;
  border-left: 1px solid var(--itot-border); /* 縦棒の仕切り */
  color: var(--itot-text-strong);
  text-decoration: none;
  line-height: 1.4;
}

/* 最初の項目の縦棒を消す */
.p-footer__copyrightItem:first-child .p-footer__copyrightLink {
  border-left: none;
  padding-left: 0;
}

.p-footer__copyrightLink:hover {
  text-decoration: underline;
  opacity: 1;
}

/* トップへ戻るボタン */
.p-footer__toTop { position: fixed; bottom: 30px; right: 30px; z-index: 100; transition: 0.3s; }
.p-footer__toTopLink {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  width: 56px; height: 56px; border-radius: 50%; background: var(--itot-accent); color: #fff;
  box-shadow: var(--itot-shadow-float); text-decoration: none;
}

/* --- 14.4 Slick Slider Styles (スライダー併用時の挙動) --- */
.p-footer__prTrack.js-slider { position: relative; padding: 0 56px; }
.p-footer__prTrack.js-slider .slick-list { overflow: visible; }
.p-footer__prTrack.js-slider .slick-dots { position: absolute; left: 0; right: 0; bottom: -36px; text-align: center; }
.p-footer__prTrack.js-slider .slick-dots li { display: inline-block; margin: 0 4px; }
.p-footer__prTrack.js-slider .slick-dots li button:before {
  content: ""; display: block; width: 10px; height: 10px; border-radius: 50%; background: rgba(255,255,255,0.45);
}
.p-footer__prTrack.js-slider .slick-dots li.slick-active button:before { background: #fff; }

/* --- 14.5 Responsive --- */
@media (max-width: 767px) {
  .p-footer__pr {
    padding: 40px 0 32px;
  }

  .p-footer__prInner {
    padding: 0 16px;
  }

  .p-footer__prItem {
    padding: 24px 0;
  }

  .p-footer__prBox {
    display: grid;
    grid-template-columns: 1fr;
    row-gap: 20px;
  }

  .p-footer__prItem:nth-child(even) .p-footer__prBox {
    grid-template-columns: 1fr;
  }

  .p-footer__prItem:nth-child(even) .p-footer__prImage,
  .p-footer__prItem:nth-child(even) .p-footer__prText {
    order: initial;
  }

  .p-footer__prImage {
    max-width: 100%;
  }

  .p-footer__prText {
    width: 100%;
  }

  .p-footer__prCatch {
    font-size: 14px;
    line-height: 1.8;
    margin: 0 0 14px;
  }

  .p-footer__prTitle {
    font-size: 20px;
    line-height: 1.6;
    margin: 0 0 20px;
  }

  .p-footer__prButtonWrap {
    text-align: left;
  }

  .p-footer__prButton {
    display: block;
    width: 100%;
    max-width: 100%;
    text-align: center;
  }
  
  .p-footer__copyrightInner {
    flex-direction: column; /* スマホでは縦並び */
    text-align: center;
    gap: 15px;
  }
  
  .p-footer__copyrightRight {
    justify-content: center; /* 中央寄せ */
    order: -1; /* リンクを先に表示（任意） */
  }

  .p-footer__copyrightLink {
    padding: 0 10px;
    margin-bottom: 5px;
    border-left: 1px solid var(--itot-border);
  }
}

/* =================================================================
   15. Morebtn
   ================================================================= */
.morebtn {
  font-size:18px;
  display:block;
  color:var(--itot-text-inverse);
  font-family:var(--itot-font-body);
  padding:12px 0 12px 30px;
  width:355px;
  max-width:100%;
  text-align:center;
  margin:40px auto 0;
  background-color:var(--itot-accent);
  letter-spacing:.1em;
  border-radius:var(--itot-radius-btn);
  transition:opacity var(--itot-transition);
}
.morebtn:hover {
  color:var(--itot-text-inverse);
  opacity:0.8;
}
.morebtn img {
  vertical-align:baseline;
  display:inline-block;
}
.morebtn.bgblack { background-color:var(--itot-text-strong); }

@media (max-width:767px) {
  .morebtn {
    margin:25px auto 0;
    width:355px;
    max-width:100%;
  }
}

/* =================================================================
   16. Common Section Titles
   ================================================================= */
.com-tit {
  font-size:32px;
  color:var(--itot-text);
  font-weight:500;
  letter-spacing:.1em;
  text-align:center;
  font-family:var(--itot-font-en);
  display:block;
  line-height:1;
}
.com-tit::first-letter { color:var(--itot-primary-light); }

@media (max-width:767px) {
  .com-tit { font-size:26px; }
}
.com-sub-tit { padding-top:10px; display:inline-block; }
.tit-com02 {
  font-family:var(--itot-font-serif);
  font-weight:500;
  font-size:28px;
  z-index:3;
  position:relative;
}
.tit-com02::after {
  position:absolute;
  content:"";
  margin:auto;
  left:0;
  right:0;
  top:-40px;
  height:30px;
  width:1px;
  background-color:var(--itot-text-inverse);
}
@media (max-width:767px) {
  .tit-com02 { font-size:24px; }
}
.wrp-tit {
  font-size:24px;
  margin:0 auto 20px;
  color:var(--itot-accent);
  text-align:center;
}
.wrp-tit span {
  font-size:12px;
  display:block;
  margin:15px 0 0;
}
@media (max-width:767px) {
  .wrp-tit {
    font-size:18px;
    margin:0 auto 10px;
  }
}


/* =================================================================
   18. Entry / Thumbnails
   ================================================================= */
.entry-thumbs a {
  aspect-ratio:800/533;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--itot-border);
  text-align:center;
  overflow:hidden;
}
.thumbs:before { content:"\f105"; font-family:"Font Awesome 5 Pro",FontAwesome; }
.entryFooter { display:none; }
.amaz { overflow:hidden; }

/* =================================================================
   19. Map / Misc
   ================================================================= */
.map_box { margin-top:40px; }
.deco01 {
  text-align:center;
  margin-top:25px;
  margin-bottom:25px;
  background:url(./img/top/deco01.png) no-repeat center 50%;
  height:10px;
}

/* =================================================================
   20. Pagination
   ================================================================= */
.p-category__pagination {
  max-width:var(--itot-base-width);
  margin:0 auto;
  padding:0 20px;
}
.nav-links {
  display:flex;
  justify-content:center;
  gap:6px;
  padding:40px 0;
}
.nav-links .page-numbers {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:40px;
  height:40px;
  padding:0 12px;
  border:1px solid var(--itot-border);
  border-radius:var(--itot-radius);
  font-size:14px;
  color:var(--itot-text);
  background:var(--itot-bg-white);
  transition:all var(--itot-transition);
}
.nav-links .page-numbers.current,
.nav-links .page-numbers:hover {
  background-color:var(--itot-accent);
  color:var(--itot-text-inverse);
  border-color:var(--itot-accent);
  opacity:1;
}


/* =================================================================
   22. Fade-in / Back-to-top
   ================================================================= */
.fadein { opacity:0; transition:.5s; transform:translateY(20px); }
.fadein.is-visible { opacity:1; transform:translateY(0); }

.pTop {
  position:fixed;
  bottom:30px;
  right:30px;
  z-index:9999;
  opacity:0;
  visibility:hidden;
  transition:opacity var(--itot-transition), visibility var(--itot-transition);
}
.pTop.visible { opacity:1; visibility:visible; }
.pTop a {
  display:flex;
  align-items:center;
  justify-content:center;
  width:52px;
  height:52px;
  background-color:var(--itot-accent);
  color:var(--itot-text-inverse);
  border-radius:50%;
  box-shadow:var(--itot-shadow-float);
  transition:background-color var(--itot-transition);
  font-size:20px;
}
.pTop a:hover {
  background-color:var(--itot-accent-hover);
  opacity:1;
}

/* =================================================================
   23. Block Components
   ================================================================= */
.wrap-block01 .block01 {
  padding:50px 20px;
  text-align:center;
  margin:0 auto;
  position:relative;
  z-index:3;
}
.wrap-block01 .block01 .tit {
  font-size:32px;
  font-family:var(--itot-font-en);
  display:block;
  line-height:1;
  font-weight:bold;
  text-align:center;
}
.wrap-block01 .block01 .sub-tit {
  font-size:24px;
  font-family:var(--itot-font-serif);
  display:block;
  padding:50px 0 20px;
  color:var(--itot-primary);
  font-weight:500;
}
.wrap-block01 .block01 h2 { font-size:18px; margin-bottom:30px; line-height:1.6; }
.wrap-block01 .block01 .txt { display:block; font-size:15px; line-height:2; letter-spacing:.1em; }

@media (max-width:767px) {
  .wrap-block01 .block01 { padding:60px 20px; }
  .wrap-block01 .block01 .sub-tit { font-size:17px; }
  .wrap-block01 .block01 h2 { font-size:15px; margin-bottom:15px; }
  .wrap-block01 .block01 .txt { font-size:12px; text-align:left; }
  .wrap-block01 .block01 .txt br { display:none; }
}

.wrap-block04 .com-titbox { text-align:center; padding:0 0 20px; }
.wrap-block04 .block-listbox {
  padding:50px;
  text-align:center;
  background:var(--itot-bg-card-soft);
  max-width:var(--itot-base-width);
  margin:0 auto;
}
.wrap-block04 .block-listbox .wrap-listbox {
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  margin:30px auto 0;
}
.wrap-block04 .block-listbox .wrap-listbox li {
  transition:var(--itot-transition);
  margin-bottom:20px;
}
.wrap-block04 .block-listbox .wrap-listbox li span {
  font-size:13px;
  margin-top:7px;
  display:block;
  text-align:center;
}
.wrap-block04 .block-listbox .wrap-listbox li:hover {
  cursor:pointer;
  opacity:0.6;
}
@media (max-width:900px) {
  .wrap-block04 .block-listbox .wrap-listbox li { width:30%; margin-bottom:20px; }
  .wrap-block04 .block-listbox .wrap-listbox:after {
    content:"";
    display:block;
    width:30%;
    height:0;
  }
}
@media (max-width:767px) {
  .wrap-block04 .block-listbox { padding:50px 0; }
}

.wrap-block06 { position:relative; padding:100px 0; }
.wrap-block06 .com-titbox { text-align:center; padding:0 0 50px; }
.wrap-block06 .wrp-titcom { padding:80px 0 50px; }
.wrap-block06 .wrp-list {
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  position:relative;
  z-index:1;
}
.wrap-block06 .wrp-list .list-box {
  width:32%;
  color:var(--itot-text);
  background-color:var(--itot-bg-white);
  margin:0 0 30px;
}
.wrap-block06 .wrp-list .list-box .thumimg { background-color:var(--itot-bg-white); }
.wrap-block06 .wrp-list .list-box .thumimg img { aspect-ratio:3/2; object-fit:cover; }
.wrap-block06 .wrp-list .list-box .thumimg img:hover { opacity:0.8; }
.wrap-block06 .wrp-list .list-box .txt-box { padding:20px 20px 30px; }
.wrap-block06 .wrp-list .list-box .txt-box .tit { font-size:18px; font-weight:500; }
.wrap-block06 .wrp-list .list-box .txt-box .txt {
  font-size:14px;
  padding:0 0 15px;
  line-height:1.6;
}
.wrap-block06 .wrp-list .list-box .txt-box .btnlink {
  display:flex;
  justify-content:end;
  text-decoration:underline;
  color:var(--itot-text-inverse);
}
@media (max-width:767px) {
  .wrap-block06 .wrp-list .list-box { width:100%; margin:0 0 30px; }
}

.wrap-block06 .base {
  max-width:var(--itot-base-width);
  margin:0 auto;
  padding:0 20px;
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
}
.wrap-block06 .base:after,
.wrap-block06 .base:before {
  content:"";
  display:block;
  width:23%;
  height:0;
}
.wrap-block06 .base:before { order:1; }

.wrap-block06 .btnlist {
  width:215px;
  padding:10px 0;
  text-align:center;
  color:var(--itot-text-inverse);
  border:1px solid var(--itot-palette-earth);
  display:block;
  margin:50px auto 0;
  background-color:var(--itot-text-strong);
  position:relative;
  z-index:1;
  transition:.5s;
}
.wrap-block06 .btnlist:hover {
  background-color:var(--itot-palette-earth);
  color:var(--itot-text-inverse);
}
@media (max-width:767px) {
  .wrap-block06 .btnlist { margin:20px auto 0; }
}

.wrap-block14 { position:relative; padding:100px 0 0; }
@media (max-width:767px) {
  .wrap-block14 { padding:50px 0; }
}
.wrap-block14 .block-tit { margin-bottom:50px; position:relative; }
@media (max-width:767px) {
  .wrap-block14 .block-tit { margin-bottom:40px; }
}
.wrap-block14 .wrp-box { position:relative; z-index:1; }
.wrap-block14 .wrp-box .box { display:flex; margin:0 0 70px; }
.wrap-block14 .wrp-box .box:last-child { margin:0; }
.wrap-block14 .wrp-box .box:nth-child(even) { flex-direction:row-reverse; }

@media (max-width:767px) {
  .wrap-block14 .wrp-box .box { margin:0 0 40px; flex-wrap:wrap; }
  .wrap-block14 .wrp-box .box:nth-child(even) { flex-direction:row; }
}
.wrap-block14 .wrp-box .box .imgbox { width:55%; }
@media (max-width:767px) {
  .wrap-block14 .wrp-box .box .imgbox { width:100%; }
}
@media (min-width:768px) {
  .wrap-block14 .wrp-box .box .imgbox img {
    width:100%;
    height:100%;
    min-height:400px;
    object-fit:cover;
  }
}
@media (max-width:767px) {
  .wrap-block14 .wrp-box .box .imgbox img { width:100%; height:100%; }
}

.wrap-block14 .wrp-box .box .txtbox {
  width:45%;
  display:flex;
  justify-content:center;
  flex-direction:column;
  padding:30px 60px;
  background-color:var(--itot-bg-card-soft);
  position:relative;
}
.wrap-block14 .wrp-box .box:nth-child(odd) .txtbox {
  background-color:var(--itot-bg-card-soft);
}
@media (max-width:767px) {
  .wrap-block14 .wrp-box .box .txtbox { width:100%; padding:20px; }
}
.wrap-block14 .wrp-box .box .txtbox .bar01 {
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:5px;
  background-color:var(--itot-status-yellow);
}
.wrap-block14 .wrp-box .box .txtbox .bar02 {
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:5px;
  background-color:var(--itot-status-orange);
}
.wrap-block14 .wrp-box .box .txtbox .tit {
  font-size:18px;
  font-weight:500;
  padding:0 0 30px;
  line-height:1.6;
}
@media (max-width:767px) {
  .wrap-block14 .wrp-box .box .txtbox .tit { font-size:15px; padding:0 0 20px; }
}
.wrap-block14 .wrp-box .box .txtbox .txt { line-height:1.8; }
.wrap-block14 .wrp-box .box .txtbox .wrp-btn { text-align:right; }
@media (max-width:767px) {
  .wrap-block14 .wrp-box .box .txtbox .wrp-btn { text-align:center; }
}
.wrap-block14 .wrp-box .box .txtbox .btn-arrow {
  width:170px;
  display:inline-block;
  padding:10px 0;
  color:var(--itot-text-inverse);
  background-color:var(--itot-text-strong);
  position:relative;
  line-height:1;
  text-align:center;
}
.wrap-block14 .wrp-box .box .txtbox .btn-arrow:hover {
  background-color:var(--itot-status-orange-2);
  color:var(--itot-text-inverse);
  opacity:1;
}

.wrap-block17 { position:relative; padding:100px 0; }
@media (max-width:767px) {
  .wrap-block17 { padding:50px 0; }
}
.wrap-block17 .wrp-banner {
  background-image:url("img/top/block17-bg.jpg");
  background-size:1100px auto;
  background-position:center;
  display:block;
  max-width:1100px;
  margin:0 auto;
}
.wrap-block17 .wrp-banner:hover { opacity:0.8; }
.wrap-block17 .wrp-banner .txt-box {
  width:390px;
  height:350px;
  margin:0 auto;
  display:flex;
  justify-content:center;
  align-items:center;
  flex-direction:column;
  text-align:center;
  color:var(--itot-text-inverse);
  background-color:var(--itot-status-lime);
}
@media (max-width:767px) {
  .wrap-block17 .wrp-banner .txt-box { width:70%; height:320px; }
}
.wrap-block17 .wrp-banner .txt-box .tit {
  font-size:46px;
  font-family:var(--itot-font-en);
  line-height:1.2;
  letter-spacing:.1em;
}
@media (max-width:767px) {
  .wrap-block17 .wrp-banner .txt-box .tit { font-size:40px; }
}
.wrap-block17 .wrp-banner .txt-box .s-txt { font-size:18px; padding-top:5px; }
@media (max-width:767px) {
  .wrap-block17 .wrp-banner .txt-box .s-txt { font-size:16px; }
}
.wrap-block17 .wrp-banner .txt-box .txt {
  font-size:18px;
  line-height:2;
  padding:30px 0 0;
}
@media (max-width:767px) {
  .wrap-block17 .wrp-banner .txt-box .txt { font-size:15px; }
}
.wrp-movie {
  display:flex;
  justify-content:center;
  padding:50px 0 100px;
}
@media (max-width:767px) {
  .wrp-movie { padding:20px 0; }
}
.wrp-movie a { max-width:550px; }
@media (max-width:767px) {
  .wrp-movie a { max-width:80%; margin:0 auto; }
}

/* =================================================================
   24. Misc Hero Helpers
   ================================================================= */
.wrp-slide01 .on-txt img { max-width:300px; }
@media (max-width:767px) {
  .wrp-slide01 .on-txt img { max-width:250px; }
}


/* =================================================================
   26. Admin bar
   ================================================================= */
body.admin-bar .l-header,
body.admin-bar .wrap-header { top:32px; }
body.admin-bar div.def_post { padding-top:var(--itot-header-h); }
body.home.admin-bar div.def_post { padding-top:var(--itot-header-h); }

@media (max-width:782px) {
  body.admin-bar .l-header,
  body.admin-bar .wrap-header { top:46px; }
  body.admin-bar div.def_post { padding-top:var(--itot-header-h); }
}


/* =================================================================
   28. wrap-block14 title
   ================================================================= */
.block-tit { margin-bottom:0; position:relative; }
.block-tit .p-home__sectionHeader { text-align:center; margin-bottom:0; }
.block-tit .p-home__sectionTitle { display:flex; text-align:center; }
.block-tit .p-home__sectionTitleEn { display:block; margin-top:10px; margin-bottom:0; }

/* =================================================================
   29. PICK UP legacy style
   ================================================================= */
.p-home__pickupList {
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:30px 0;
}
.p-home__pickupItem {
  width:calc(25% - 15px);
  margin:0;
  padding:0;
  background:transparent;
  border:none;
  box-shadow:none;
}
.p-home__pickupItem .entry-thumbs { margin-bottom:10px; }
.p-home__pickupItem .entry-thumbs a {
  display:block;
  aspect-ratio:800 / 533;
  overflow:hidden;
  background:var(--itot-border);
  text-align:center;
}
.p-home__pickupItem .entry-thumbs img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.p-home__pickupItem .entry-text-cont { padding:0; }
.p-home__pickupItem .catch {
  font-size:0.8em;
  line-height:1.4;
  text-align:left;
  margin-bottom:6px;
  display:block;
  color:var(--itot-text-light);
}
.p-home__pickupItem h2 {
  font-size:1.1em;
  line-height:1.4;
  margin:0;
  font-family:'游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',serif;
  font-weight: 400;
}
.p-home__pickupItem h2 a {
  text-decoration:none;
  color:var(--itot-text-strong);
}
.p-home__pickupItem h2 a:hover {
  color:var(--itot-status-orange-2);
}

@media (min-width:768px) {
  .p-home__pickupItem { width:calc(25% - 15px); }
}
@media (max-width:767px) {
  .p-home__pickupList { gap:20px 0; }
  .p-home__pickupItem { width:calc(50% - 10px); }
  .p-home__pickupItem h2 { font-size:1.063em; }
}

/* =================================================================
   30. LIFE INFO section line
   ================================================================= */
.p-home__section--lifeinfo .p-home__sectionHeader {
  position:relative;
  padding-bottom:0;
}
.p-home__section--lifeinfo .p-home__sectionHeader::after {
  display:none;
  content:none;
}

/* =================================================================
   31. Print
   ================================================================= */
@media print {
  .l-header,
  .wrap-header,
  .menu-toggle,
  .pTop,
  .p-home__prPrompt,
  .p-footer__pr,
  .p-footer__nav,
  .p-footer__sns,
  .p-single__share,
  .p-single__sidebar,
  .p-footer__toTop { display:none; }

  body {
    font-size:12pt;
    color:var(--itot-text-strong);
    background:var(--itot-bg-white);
  }
  .def_post,
  .wrap-content { padding-top:0; }
  .p-single__layout { display:block; }
  .p-single__content a {
    color:var(--itot-text-strong);
    text-decoration:underline;
  }
}


/* =================================================================
   33. Image Caption
   ================================================================= */
.itot-alt-caption {
  margin:0 0 2em;
  font-size:12px;
  line-height:1;
  color:var(--itot-text-light);
  text-align:center;
}

/* =================================================================
   34. Sidebar / Popular Posts
   ================================================================= */
.p-sidebar {
  background:var(--itot-bg-white);
  padding:18px 20px 22px;
  border:1px solid var(--itot-border-soft);
  box-shadow:var(--itot-shadow-sidebar);
}
.p-sidebar__title {
  position:relative;
  margin:0 0 18px;
  padding-left:28px;
  font-family:var(--itot-font-serif);
  font-size:20px;
  font-weight:500;
  line-height:1.5;
  color:var(--itot-text-strong);
}
.p-sidebar__title::before {
  content:"\f091";
  position:absolute;
  left:0;
  top:2px;
  font-family:"FontAwesome";
  font-size:20px;
  line-height:1;
  color:var(--itot-status-green-2);
}
.p-sidebar__list {
  display:flex;
  flex-direction:column;
  gap:0;
}
.p-sidebar__item {
  margin:0;
  padding:14px 0;
  border-top:1px dotted var(--itot-border-dotted);
}
.p-sidebar__item:first-child {
  padding-top:0;
  border-top:none;
}
.p-sidebar__link {
  display:grid;
  grid-template-columns:98px 1fr;
  gap:14px;
  align-items:start;
  color:var(--itot-text);
  text-decoration:none;
}
.p-sidebar__link:hover { opacity:1; }
.p-sidebar__thumb { width:98px; }
.p-sidebar__img {
  display:block;
  width:98px;
  height:66px;
  object-fit:cover;
}
.p-sidebar__text { min-width:0; }
.p-sidebar__itemTitle {
  display:block;
  font-size:13px;
  line-height:1.65;
  color:var(--itot-text-strong);
  text-decoration:underline;
  word-break:break-word;
}
.p-sidebar__link:hover .p-sidebar__itemTitle { opacity:.75; }

@media (max-width:900px) {
  .p-sidebar { padding:16px 16px 18px; }
  .p-sidebar__title { font-size:18px; margin-bottom:14px; }
  .p-sidebar__link { grid-template-columns:88px 1fr; gap:12px; }
  .p-sidebar__thumb { width:88px; }
  .p-sidebar__img { width:88px; height:60px; }
  .p-sidebar__itemTitle { font-size:12px; line-height:1.6; }
}

/* ==============================================
   カテゴリページ 地図 (#itot-map)
   MapLibre GL JS はコンテナに高さが必須
   ============================================== */

.p-category__mapContainer,
#itot-map {
  width: 100%;
  height: 480px;
  border-radius: 6px;
  overflow: hidden;
}

@media (max-width: 640px) {
  .p-category__mapContainer,
  #itot-map {
    height: 320px;
  }
}

/* ==============================================
   物件レポート テンプレート (page-report.php)
   .c-report__* コンポーネント
   ============================================== */

/* ---- レポート全体ラッパー ---- */
.c-report {
  margin: 0;
  padding: 0;
}

/* ---- 1ブロック（本文 + 画像2枚 + 吹き出し） ---- */
.c-report__block {
  margin-bottom: 48px;
  padding-bottom: 40px;
  border-bottom: 1px solid #e0dbd4;
}
.c-report__block:last-of-type {
  border-bottom: none;
}

/* ---- ブロック内の本文テキスト ---- */
.c-report__text {
  margin-bottom: 24px;
  font-size: 15px;
  line-height: 1.85;
  color: var(--itot-text-base, #333);
}

/* ---- 画像2枚をグリッドで横並び ---- */
.c-report__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

/* ---- 吹き出し付き写真コンテナ ---- */
.c-report__figcont {
  position: relative;
  overflow: visible; /* 吹き出しが枠をはみ出せるように */
  /* 初期状態は表示。JS が .js-report-ready を付与したときのみアニメーション開始 */
}

/* JS が body に .js-report-ready を付与した場合のみ非表示→表示アニメ */
.js-report-ready .c-report__figcont {
  opacity: 0;
  transform: scale(0.88);
  transition: opacity 0.55s ease, transform 0.55s ease;
}
.js-report-ready .c-report__figcont.is-visible {
  opacity: 1;
  transform: scale(1);
}
/* prefers-reduced-motion：アニメーション無効化 */
@media (prefers-reduced-motion: reduce) {
  .js-report-ready .c-report__figcont {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* ---- 写真 ---- */
.c-report__fig {
  margin: 0;
  padding: 0;
}
.c-report__img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 4px;
}

/* ---- 吹き出し（fuki3） ---- */

/*
 * 【重要】position:absolute は .c-report__figcont 内のみに限定する。
 * 旧テーマのコンテンツは <span class="fuki3 tl">テキスト<img/></span> という
 * 構造で、位置指定の親がないため absolute にすると画面外に飛ぶ。
 * 旧構造では inline-block で表示してレイアウト崩れを防ぐ。
 */

/* 共通：見た目（ボーダー・背景・フォント）*/
.fuki3 {
  display: inline-block;
  padding: 8px 12px;
  border: 2px solid #54483e;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.92);
  font-size: 12px;
  font-weight: bold;
  line-height: 1.55;
  color: #3a3028;
  box-shadow: 2px 3px 6px rgba(0, 0, 0, 0.18);
}

/* 新テーマ構造（.c-report__figcont）の中だけ absolute 配置を有効にする */
.c-report__figcont .fuki3 {
  position: absolute;
  z-index: 10;
  max-width: 80%;
  pointer-events: none;
}

/* 吹き出し三角（新テーマ構造内のみ） */
.c-report__figcont .fuki3::before {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  border: 8px solid transparent;
}

/* 左上 */
.c-report__figcont .fuki3.tl {
  top: -2px;
  left: -2px;
}
.c-report__figcont .fuki3.tl::before {
  top: 100%;
  left: 12px;
  border-top-color: #54483e;
}

/* 右上 */
.c-report__figcont .fuki3.tr {
  top: -2px;
  right: -2px;
}
.c-report__figcont .fuki3.tr::before {
  top: 100%;
  right: 12px;
  border-top-color: #54483e;
}

/* 左下 */
.c-report__figcont .fuki3.bl {
  bottom: -2px;
  left: -2px;
}
.c-report__figcont .fuki3.bl::before {
  bottom: 100%;
  left: 12px;
  border-bottom-color: #54483e;
}

/* 右下 */
.c-report__figcont .fuki3.br {
  bottom: -2px;
  right: -2px;
}
.c-report__figcont .fuki3.br::before {
  bottom: 100%;
  right: 12px;
  border-bottom-color: #54483e;
}

/* ---- 発見ポイントセクション ---- */
.c-report__points {
  margin-top: 40px;
  padding: 28px 32px;
  background: #fdf6e3;
  border-left: 4px solid var(--itot-tag-report, #f0ad00);
  border-radius: 4px;
}
.c-report__pointsTitle {
  margin: 0 0 16px;
  font-size: 20px;
  font-weight: bold;
  color: #3a3028;
}
.c-report__pointsList {
  margin: 0;
  padding: 0 0 0 1.4em;
}
.c-report__pointsItem {
  margin-bottom: 8px;
  font-size: 15px;
  line-height: 1.75;
  color: var(--itot-text-base, #333);
}

/* ---- レスポンシブ ---- */
@media (max-width: 640px) {
  .c-report__grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .c-report__block {
    margin-bottom: 36px;
    padding-bottom: 30px;
  }
  .c-report__points {
    padding: 20px 18px;
  }
  .c-report__pointsTitle {
    font-size: 17px;
  }
  .fuki3 {
    font-size: 11px;
    padding: 6px 10px;
  }
}

/* ==============================================
   .fuki3 アニメーション — JS不要・CSS のみ
   ----------------------------------------------
   A. フォールバック（全ブラウザ）
      ページ読み込み後に1回だけ spring bounce で出現。
      tl/bl は 0.2s、tr/br は 0.35s 遅らせて
      左→右でわずかな時差を演出。

   B. モダンブラウザ（CSS Scroll-Driven Animations）
      Chrome 115+ / Firefox 114+ / Safari 18+
      @supports でラップ → 非対応時は A にフォールバック。
      スクロールして画面内に入った瞬間に発火。
   ============================================== */

@keyframes itot-fuki-appear {
  from {
    opacity: 0;
    transform: translateY(-10px) scale(0.93);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* A. フォールバック：ロード時1回再生 */
.c-report__figcont .fuki3 {
  animation: itot-fuki-appear 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}
.c-report__figcont .fuki3.tl,
.c-report__figcont .fuki3.bl { animation-delay: 0.2s; }
.c-report__figcont .fuki3.tr,
.c-report__figcont .fuki3.br { animation-delay: 0.35s; }

/* B. スクロール連動（モダンブラウザのみ） */
@supports (animation-timeline: view()) {
  .c-report__figcont .fuki3 {
    animation: itot-fuki-appear 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) both;
    animation-timeline: view();
    animation-range: entry 0% entry 45%;
    animation-delay: 0s;
  }
  .c-report__figcont .fuki3.tl,
  .c-report__figcont .fuki3.bl,
  .c-report__figcont .fuki3.tr,
  .c-report__figcont .fuki3.br {
    animation-delay: 0s;
  }
}

