@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700;900&display=swap");html{font-size:15px}@media screen and (max-width: 767px){html{font-size:14px}}p,span,li,a,th,td,label,input,div,button{font-family:"Noto Sans JP",sans-serif}h1,h2,h3,h4,h5{font-weight:700}p{font-size:1rem;line-height:1.6}#header__menu ul li a:before{position:absolute;top:50%;left:50%;transform:translateX(-50%) translateY(-50%)}.relative{position:relative}.ab-center{position:absolute;top:50%;left:50%;transform:translateX(-50%) translateY(-50%)}.hidden{overflow:hidden}.second-jp{font-family:dnp-shuei-mgothic-std,sans-serif}.f-reg{font-weight:400 !important}.f-med{font-weight:500 !important}.f-bold{font-weight:700}.f-13{font-size:13px}.f-16{font-size:16px}.f-17{font-size:17px}.h-sm{font-size:22px;line-height:1.6}.h-md{font-size:26px;line-height:1.6}.l-h-md{line-height:1.6}.l-sp-md{letter-spacing:.05em}.l-sp-lg{letter-spacing:.1em}.allcap{text-transform:uppercase}.mt-lg{margin-top:75px}@media screen and (max-width: 767px){.mt-lg{margin-top:50px}}.mb-lg{margin-bottom:75px}@media screen and (max-width: 767px){.mb-lg{margin-bottom:50px}}.my-lg{margin-top:75px;margin-bottom:75px}@media screen and (max-width: 767px){.my-lg{margin-top:50px;margin-bottom:50px}}.pt-lg{padding-top:75px}@media screen and (max-width: 767px){.pt-lg{padding-top:50px}}.pb-lg{padding-bottom:75px}@media screen and (max-width: 767px){.pb-lg{padding-bottom:50px}}.py-lg{padding-top:75px;padding-bottom:75px}@media screen and (max-width: 767px){.py-lg{padding-top:50px;padding-bottom:50px}}.link-green{color:#53AF31}.link-green:hover{color:#53AF31}.link-black{color:#000;text-decoration:none}.link-black:hover{color:#53AF31;text-decoration:none}.list-style-none{list-style:none;padding-left:0}.list-style-inline{list-style:none;padding-left:0}.list-style-inline li{display:inline-block}.list-style-default li{padding-bottom:7px}.list-style-default li:last-child{padding-bottom:0}.left-to-right{opacity:0.1;transform:translateX(-20px);transition:all 1s}.left-to-right.scrollin{opacity:1;transform:translate(0)}.right-to-left{opacity:0.1;transform:translateX(20px);transition:all 1s}.right-to-left.scrollin{opacity:1;transform:translate(0)}.down-to-top{opacity:0.1;transform:translateY(20px);transition:all 1s}.down-to-top.scrollin{opacity:1;transform:translateY(0)}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace, monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}#header__logo img{width:350px;height:auto}@media screen and (max-width: 991px){#header__logo img{width:250px}}@media screen and (max-width: 767px){#header__logo img{width:45%}}#header__menu ul li{padding-right:50px}#header__menu ul li:last-child{padding-right:0}#header__menu ul li a{color:#000;text-decoration:none;font-size:16px;font-weight:500;position:relative;transition:.5s all}#header__menu ul li a:before{content:'';width:29px;height:29px;border-radius:50%;background-color:#F0EB4C;z-index:-1;opacity:0;transition:.7s}#header__menu ul li a:hover:before{opacity:1}#header__menu ul li.active a:before{opacity:1}.toggler{border-radius:0 0 8px 8px;position:fixed;top:0;right:10px;z-index:999999;width:80px;height:80px;cursor:pointer;box-shadow:4px 6px 10px rgba(0,0,0,0.16)}.toggler__inner .line{display:block;width:40px;height:2px;background-color:#53AF31;margin:auto;margin-bottom:10px;position:relative;transition:0.5s all ease}.toggler__inner__txt{font-size:12px;font-weight:700}#header__toggler.active .line{width:30px}#header__toggler.active .line__top{transform:rotate(45deg);top:8px}#header__toggler.active .line__bottom{transform:rotate(-45deg);top:-4px}#header__menu-sp{position:fixed;top:0;left:0;width:100%;height:100vh;z-index:99;overflow-Y:scroll;display:none}#header__menu-sp .logo img{width:200px;height:auto}@media screen and (max-width: 767px){#header__menu-sp .logo img{width:50%}}#header__menu-sp .menu li{margin-bottom:5px}#header__menu-sp .menu li a{display:block;background-color:#ecebe7;padding:15px 10px;color:#000;text-decoration:none;font-size:1rem;position:relative;letter-spacing:.05em}#header__menu-sp .menu li a:before{content:'';position:absolute;right:10px;top:calc(50% - 2px);width:6px;height:6px;border-top:1px solid #000;border-right:1px solid #000;transform:rotate(45deg)}#header__menu-sp .menu--btn a{color:#fff !important;font-weight:700;letter-spacing:.1em !important}#header__menu-sp .menu--btn a:before{content:none !important}#header__menu-sp .menu--btn li:first-child a{background-color:#f39518}#header__menu-sp .menu--btn li:nth-child(2) a{background-color:#8FC31F}#header__menu-sp .menu--btn li:last-child a{background-color:#53AF31}.pagetop{position:fixed;right:25px;bottom:35px;font-size:37px}@media screen and (max-width: 767px){.pagetop{font-size:30px;bottom:15px}}.pagetop a{color:#53AF31;text-decoration:none}#footer__info{border-bottom:1px solid #9F9E9F}#footer__info img{width:135px}#footer__info .sns{font-size:50px;color:#878787}#footer__sponsors{border-bottom:1px solid #9F9E9F}#footer__sponsors ul li{padding:7px 15px}@media screen and (max-width: 767px){#footer__sponsors ul li{width:50%}}#footer__sponsors ul li a{color:#000;text-decoration:none;transition:.5s;font-size:16px}#footer__sponsors ul li a:hover{color:#53AF31}@media screen and (max-width: 767px){#footer__sponsors ul li a{font-size:14px}}#footer-info__logo img{width:125px}#footer-info__phone span{font-family:"Oswald", sans-serif;font-size:30px;font-font-weight:400;line-height:1.0;letter-spacing:.1em}#footer-info__phone img{display:block;width:30px;margin-right:10px}.common-title{font-family:"Noto Sans JP",sans-serif;font-size:21px}.common-title span{font-size:12px;letter-spacing:.05em;text-transform:uppercase}.common-btn1{font-size:18px;letter-spacing:.05em;border:1px solid #000;border-radius:0;padding:20px 75px;transitioin:.5s}.common-btn1:hover{background-color:#000;color:#fff}.common-btn2{color:#53AF31;font-size:15px;font-weight:700;padding:15px 60px 15px 35px;border:1px solid #53AF31;text-decoration:none;display:inline-block;background-color:#f7fef8;position:relative;border-radius:0}@media screen and (max-width: 767px){.common-btn2{font-size:14px;padding:10px 30px 10px 18px}}.common-btn2:before{content:'';position:absolute;right:-30px;width:60px;height:1px;top:calc(50% - 0.5px);background:#53AF31;transition:all 0.3s linear}@media screen and (max-width: 767px){.common-btn2:before{right:-20px;width:40px}}.common-btn2:after{content:'';position:absolute;right:-35px;top:calc(50% - 6px);width:0;height:0;border-top:6px solid transparent;border-left:10px solid #53AF31;border-bottom:6px solid transparent;z-index:1;transition:all 0.3s linear}@media screen and (max-width: 767px){.common-btn2:after{right:-25px}}.common-btn2:hover{color:#53AF31}.common-btn2:hover:before{transform:translate(10px, 0)}.common-btn2:hover:after{transform:translate(10px, 0)}.common-form{background-color:#f1f1f1;padding:5%}@media screen and (max-width: 767px){.common-form{padding:50px 5%}}.common-form .nav{margin-bottom:50px}.common-form .nav li{height:60px;background-color:#fff;font-size:14px;font-weight:700;letter-spacing:.05em;margin-right:10px;width:calc(100% / 2 - 10px);text-align:center;position:relative}@media screen and (max-width: 767px){.common-form .nav li{font-size:12px}}.common-form .nav li:before,.common-form .nav li:after{position:absolute;content:"";top:0;left:0;width:0;height:0;border-top:30px solid transparent;border-right:0;border-bottom:30px solid transparent}.common-form .nav li:before{border-left:20px solid  #f1f1f1}.common-form .nav li div{position:relative;width:100%;height:100%;top:0;left:0}.common-form .nav li div:before{position:absolute;z-index:9;content:"";top:0;left:100%;width:0;height:0;border-top:30px solid transparent;border-right:0;border-bottom:30px solid transparent;border-left:20px solid #fff}.common-form .nav li div span{position:absolute;top:50%;left:50%;transform:translateY(-50%) translateX(-50%)}.common-form .nav li.active{background-color:#fff100}.common-form .nav li.active div:before{border-left:20px solid #fff100}.common-form .wrap{background-color:#fff;padding:3% 5% 5% 5%}.common-form .wrap .label{letter-spacing:.05em;margin-top:10px}@media screen and (max-width: 991px){.common-form .wrap .label{margin-top:0}}.common-form .wrap .label span{background-color:crimson;color:#fff;padding:3px 15px;border-radius:3px;font-size:12px;font-weight:700;margin-left:15px}.common-form .wrap .form-group{border-bottom:1px dotted #000;padding:25px 50px}@media screen and (max-width: 991px){.common-form .wrap .form-group{padding:15px 0}}.common-form .wrap .form-control{border:1px solid #000;border-radius:0;font-size:15px;padding-top:15px;padding-bottom:15px}.common-form .wrap .wpcf7-list-item{margin-left:0;margin-bottom:7px}.common-form .wrap .form-check{padding-left:0}.common-form .wrap .wpcf7-list-item-label{padding-left:5px;letter-spacing:.05em}.common-form .wrap .btn{background-color:#000;color:#fff;font-size:16px;font-weight:700;min-width:300px;padding:15px 20px;border-radius:0}.common-form .wrap .wpcf7-spinner{display:block}.page__header{border-top:1px solid #9F9E9F;border-bottom:1px solid #9F9E9F}.page__header__breadcrumbs a,.page__header__breadcrumbs span{font-size:12px}.page__header__breadcrumbs a{color:#53AF31;text-decoration:none}#error h1{font-size:22px}#error h2{font-size:40px;letter-spacing:.05em}.post__body__pagenav .pagination{justify-content:center}.post__body__pagenav span,.post__body__pagenav a{border:none !important;padding:3px 7px !important;margin:0 10px !important;font-size:17px;font-weight:700}.post__body__pagenav a{color:#000;text-decoration:none}.post__body__pagenav .current{border-bottom:2px solid #000 !important}.post__body__pagelink a{font-size:1rem;color:#000;text-decoration:none}.post__body__pagelink a:after{content:'|';padding:0 15px}.post__body__pagelink a:last-child:after{content:none}.post-common-label li{margin-right:2px;margin-bottom:2px;padding:1px 10px;letter-spacing:.1em;font-size:11px;font-family:dnp-shuei-mgothic-std,sans-serif}.post-common-label li.green{background-color:#53AF31;border:1px solid #53AF31}.post-common-label li.green a{color:#fff}.post-common-label li.gray{background-color:#e6e6e6;border:1px solid #e6e6e6}.post-common-label li.gray a{color:#53AF31}.post-common-label li.white{border:1px solid #000}.post-common-label li a{text-decoration:none;color:#000;display:block}.post-common-label--white li{background-color:#fff;border:1px solid #fff}.post-common-label--yellow li{border-radius:2px;background-color:#F0EB4C;border:1px solid #F0EB4C}.post-common-label--lg li{font-size:12px !important}.event-common-calender{overflow:hidden}.event-common-calender .tb-wrapper-heading h2{display:inline !important;margin:0 auto;text-align:center}.event-common-calender .tb-wrapper-heading h2 .jp{color:#000;background:rgba(255,255,255,0.9);display:inline-block;font-size:13px !important;font-weight:700;padding:10px}.event-common-calender .tb-calendar-table{caption-side:top}.event-common-calender .tb-calendar-table caption{color:#000;text-align:center}.event-common-calender .tb-calendar-table td{padding:7px 2px;line-height:2.0}.event-common-calender .td-event-list__tags span{font-size:11px !important;font-weight:400 !important;letter-spacing:.1em}.event-common-calender #tb-events-list a{color:#000}.tb-table-seat-list a{color:#000 !important}.event-common-wrap .img{margin-bottom:10px}.event-common-wrap .img img{width:100%;height:auto;aspect-ratio:16 / 11;object-fit:cover}.event-common-wrap .title{color:#000;text-decoration:none;font-family:dnp-shuei-mgothic-std,sans-serif}#events__list__nav li{width:50%;text-align:center}#events__list__nav li a{display:block;color:#000;border-radius:0 !important;font-size:17px;font-weight:700;letter-spacing:.1em;border:1px solid #000;padding:20px 15px;cursor:pointer}#events__list__nav li a.active{background-color:#F0EB4C}#events__list__nav li:last-child a{border-left:0}#event__main .thumb img{width:100%;height:auto}#event__main .wrap__txt p{line-height:2.0;letter-spacing:.1em;margin-bottom:0}#event__main .wrap__txt a{color:#53AF31}.hitokotomono-common-wrap .img{margin-bottom:8px;position:relative}.hitokotomono-common-wrap .img__label{position:absolute;top:3px;left:5px;z-index:1}.hitokotomono-common-wrap .img img{width:100%;height:auto;aspect-ratio:16 / 11;object-fit:cover}.hitokotomono-common-wrap__label{margin-bottom:8px}.hitokotomono-common-wrap__label li{padding:0 5px}.hitokotomono-common-wrap__label li a{font-size:12px}.hitokotomono-common-wrap .title{color:#000;text-decoration:none;font-family:dnp-shuei-mgothic-std,sans-serif}#hitokomonoto-sidebar .wrap h3{background-color:#F0EB4C;text-align:center;padding:15px;font-size:15px;margin:0;letter-spacing:.1em}#hitokomonoto-sidebar .wrap ul li{padding:10px;border-bottom:1px dashed #9F9E9F}#hitokomonoto-sidebar .wrap ul li:before{content:'>';margin-right:5px}#hitokomonoto-sidebar .wrap ul li a{color:#000;text-decoration:none;font-family:dnp-shuei-mgothic-std,sans-serif;letter-spacing:.1em}#hitokotomono-single__main .thumb img{width:100%;height:auto}#hitokotomono-single__main .wrap__date{font-size:13px;color:#595857;letter-spacing:.1em}#hitokotomono-single__main .wrap .post-common-label .white{border:1px solid #000}#hitokotomono-single__main .wrap .post-common-label .yellow{border-radius:2px;background-color:#F0EB4C;border:1px solid #F0EB4C}#hitokotomono-single__main .wrap__txt p{line-height:2.0;letter-spacing:.1em;margin-bottom:0}.text_midashi01{font-size:20px;line-height:1.7;margin:48px 0 30px;letter-spacing:.05em}.text_midashi_s01{font-size:17px;line-height:1.7;margin:28px 0 15px;letter-spacing:.05em}.text_midashi_s03{font-size:20px;line-height:1.5;margin:58px 0px 15px}.text_gallery_space{font-size:1rem;line-height:2.0;margin-bottom:.75em;letter-spacing:.05em}.entry-content{line-height:2.0}.entry-content img{max-width:100%}.article_flex_wrapper{display:flex;flex-wrap:wrap}.article_flex_wrapper .article_flex_image{margin-right:5%;width:30%}@media screen and (max-width: 767px){.article_flex_wrapper .article_flex_image{width:100%}}.article_flex_wrapper .article_flex_image img{width:100%}.article_flex_wrapper .article_flex_image .item_title{margin-top:4px;font-size:13px}.article_flex_wrapper .article_flex_body{width:65%;letter-spacing:.1em}@media screen and (max-width: 767px){.article_flex_wrapper .article_flex_body{width:100%;margin-top:20px}}.article_flex_wrapper .article_flex_body h3{font-size:18px;letter-spacing:.1em;margin:18px 0;line-height:2.0}.right_image{flex-direction:row-reverse}.right_image .article_flex_image{margin-left:5%;margin-right:0}.list_flex_wrapper{display:flex;flex-wrap:wrap}.building_photo_gallery{margin-top:56px;list-style:none;padding-left:0}.building_photo_gallery li{margin-bottom:56px}.building_photo_gallery .photo_half{width:48%;margin-left:4%}@media screen and (max-width: 767px){.building_photo_gallery .photo_half{width:100%;marginn-left:0}}.building_photo_gallery .photo_half h3{font-size:18px;letter-spacing:.1em;margin:18px 0;line-height:2.0}.building_photo_gallery .photo_left{margin-left:0 !important}.item_thumbnail{margin-bottom:8px !important}.item_thumbnail img{width:100%;height:auto;aspect-ratio:4 / 3;object-fit:cover}.item_title{line-height:1.4 !important;font-size:13px;margin-top:8px}.sub_footer{border-top:1px dashed #000;opacity:1;background-color:transparent;margin:15px 0}.btn_work_detail{color:#53AF31;font-size:15px;font-weight:700;padding:15px 40px 15px 25px;border:1px solid #53AF31;text-decoration:none;display:inline-block;background-color:#f7fef8;position:relative}@media screen and (max-width: 767px){.btn_work_detail{font-size:14px;padding:10px 30px 10px 18px}}.btn_work_detail:before{content:'';position:absolute;right:-30px;width:60px;height:1px;top:calc(50% - 0.5px);background:#53AF31;transition:all 0.3s linear}@media screen and (max-width: 767px){.btn_work_detail:before{right:-20px;width:40px}}.btn_work_detail:after{content:'';position:absolute;right:-35px;top:calc(50% - 6px);width:0;height:0;border-top:6px solid transparent;border-left:10px solid #53AF31;border-bottom:6px solid transparent;z-index:1;transition:all 0.3s linear}@media screen and (max-width: 767px){.btn_work_detail:after{right:-25px}}.btn_work_detail:hover{color:#53AF31}.btn_work_detail:hover:before{transform:translate(10px, 0)}.btn_work_detail:hover:after{transform:translate(10px, 0)}.btn_link{display:inline-block;position:relative;font-size:15px;color:#50A840;font-weight:bold;text-decoration:none}.btn_link:before{content:"";display:inline-block;position:relative;margin-right:4px;background:url(../../img/icon_check.svg);background-size:contain;background-repeat:no-repeat;background-position:center;width:16px;height:16px;top:2.5px}.btn_link:hover{color:#53AF31}#home__sc1__slider img{height:400px;object-fit:cover}#home__sc1__slider .slick-dots{position:static}#home__sc1__slider .slick-dots li{width:12px !important}#home__sc1__slider .slick-dots button:before{font-size:15px;color:#ccc}#home__sc1__slider .slick-dots .slick-active button:before,#home__sc1__slider .slick-dots button:hover:before{color:#F0EB4C}#home__sc1__txt p{font-size:16px;line-height:2.2;letter-spacing:.07em;font-feature-settings:"palt"}
/*# sourceMappingURL=custom.css.map */

/* =============================================
   エコショップ HP デザイントークン
   ============================================= */
:root {
    --color-primary: #E85400;
    --color-primary-dark: #B04000;
    --color-text: #373637;
    --color-text-strong: #000000;
    --color-bg-primary: #FFEFE8;
    --color-bg-accent: #FED8C8;
    --color-bg-white: #FFFFFF;
    --color-border: #E8E8E8;
    --font-jp: "YakuHanJP", "fot-tsukuardgothic-std", "FOT-筑紫A丸ゴシック Std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    --font-en: "helvetica-lt-pro", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
    --sidebar-width: 240px;
}

/* =============================================
   左固定サイドバー
   ============================================= */
body {
    font-family: "YakuHanJP", var(--font-jp);
    color: var(--color-text);
}

.sidebar {
    position: fixed;
    top: 0;
    left: 0;
    width: var(--sidebar-width);
    height: 100vh; /* fallback */
    height: 100dvh; /* iOS アドレスバー対応 */
    background: var(--color-bg-primary);
    z-index: 100;
    overflow-y: auto;
    padding: 24px 16px;
    box-sizing: border-box;
}

.sidebar__inner {
    display: flex;
    flex-direction: column;
    min-height: 100%;
}

.sidebar__logo {
    display: block;
    text-align: center;
    margin-bottom: 32px;
}
.sidebar__logo img {
    width: 126px;
    height: auto;
    display: inline-block;
}

/* ナビゲーション */
.sidebar__nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.sidebar__nav li {
    border-bottom: 1px dashed var(--color-primary);
}
.sidebar__nav li:first-child {
    border-top: 1px dashed var(--color-primary);
}
.sidebar__nav a {
    display: block;
    text-align: center;
    padding: 14px 4px;
    text-decoration: none;
    color: var(--color-primary);
    transition: opacity 0.2s ease;
}
.sidebar__nav a:hover {
    opacity: 0.7;
}
.sidebar__nav .nav-en {
    display: block;
    font-family: "YakuHanJP", var(--font-en);
    font-size: 17px;
    font-weight: 600;
    letter-spacing: 0.04em;
    line-height: 1.2;
}
.sidebar__nav .nav-jp {
    display: block;
    font-size: 11px;
    letter-spacing: 0.1em;
    margin-top: 4px;
    line-height: 1.2;
}
/* 現在ページのハイライト: 背景のみ(文字色は他アイテムと同じデフォルト) */
.sidebar__nav li.is-active,
.sidebar__nav li.current-menu-item,
.sidebar__nav li.current_page_item,
.sidebar__nav li.current-menu-parent,
.sidebar__nav li.current-post-ancestor {
    background: #FED8C7;
}

/* サイドバーフッター */
.sidebar__footer {
    margin-top: 24px;
    text-align: center;
}
.sidebar__contact-btn {
    display: inline-block;
    width: 140px;
    padding: 10px 0;
    background: var(--color-primary);
    color: #fff;
    text-decoration: none;
    border-radius: 999px;
    font-size: 14px;
    letter-spacing: 0.08em;
    transition: opacity 0.2s ease;
}
.sidebar__contact-btn:hover {
    opacity: 0.85;
    color: #fff;
}
.sidebar__tel {
    margin: 14px 0 16px;
    font-size: 14px;
    color: var(--color-primary);
}
.sidebar__tel .tel-label {
    font-size: 11px;
    margin-right: 4px;
}
.sidebar__tel a {
    color: var(--color-primary);
    text-decoration: none;
    font-weight: 600;
    letter-spacing: 0.02em;
}
.sidebar__sns {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: center;
    gap: 12px;
}
.sidebar__sns a {
    display: block;
    width: 32px;
    height: 32px;
}
.sidebar__sns img {
    width: 100%;
    height: 100%;
    display: block;
}

/* メインコンテンツエリア + 共通ヘッダー + フッター系要素(サイドバー分のマージン) */
#page,
body > #content,
.site-content,
.site-main,
main,
.page-header,
.page-breadcrumb,
.site-group,
.site-shopinfo,
.site-footer {
    margin-left: var(--sidebar-width);
}

/* =============================================
   SP用ハンバーガー/ドロワー
   ============================================= */
.sidebar__toggle {
    display: none;
    position: fixed;
    top: 12px;
    right: 12px;
    z-index: 200;
    width: 48px;
    height: 48px;
    background: var(--color-bg-white);
    border: none;
    border-radius: 4px;
    cursor: pointer;
    padding: 0;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}
.sidebar__toggle span {
    display: block;
    width: 22px;
    height: 2px;
    background: var(--color-primary);
    margin: 5px auto;
    transition: transform 0.3s ease, opacity 0.3s ease;
}
.sidebar__toggle.is-open span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}
.sidebar__toggle.is-open span:nth-child(2) {
    opacity: 0;
}
.sidebar__toggle.is-open span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

.sidebar-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
    z-index: 90;
}
.sidebar-overlay.is-open {
    display: block;
}

/* レスポンシブ */
@media (max-width: 991px) {
    .sidebar {
        transform: translateX(-100%);
        transition: transform 0.3s ease;
        width: 260px;
    }
    .sidebar.is-open {
        transform: translateX(0);
    }
    .sidebar__toggle {
        display: block;
    }
    #page,
    body > #content,
    .site-content,
    .site-main,
    main,
    .page-header,
    .page-breadcrumb,
    .site-group,
    .site-shopinfo,
    .site-footer {
        margin-left: 0;
    }
}

/* =============================================
   SP専用トップバー(SP閉時)
   ============================================= */
.sp-topbar {
    display: none;
}
.sidebar__sp-head {
    display: none;
}

@media (max-width: 991px) {
    /* PC用.sidebarをSPでは幅100%ドロワーに */
    .sidebar {
        width: 100%;
        padding: 0;
    }

    /* 旧 .sidebar__toggle(白い四角ボタン)を無効化 */
    .sidebar__toggle {
        display: none !important;
    }

    /* SP用トップバー(SP閉時のみ表示) - XD準拠 */
    .sp-topbar {
        display: flex;
        align-items: center;
        justify-content: space-between;
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        z-index: 150;
        padding: 10px 16px;
        min-height: 80px;
        box-sizing: border-box;
        background: transparent;
        pointer-events: none;
        transition: min-height 0.3s ease, background-color 0.3s ease;
    }
    .sp-topbar > * {
        pointer-events: auto;
    }
    /* ドロワー展開中はトップバーを隠す */
    body:has(.sidebar.is-open) .sp-topbar {
        display: none;
    }

    /* ハンバーガーボタン (絶対配置 18/18) */
    .sp-topbar__btn {
        position: absolute;
        top: 18px;
        left: 18px;
        z-index: 2;
        background: transparent;
        border: none;
        box-shadow: none;
        padding: 0;
        cursor: pointer;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 5px;
    }

    /* 3本線 */
    .sp-topbar__lines {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 4px;
        margin: 0;
    }
    .sp-topbar__lines span {
        display: block;
        width: 38px;
        height: 3px;
        border-radius: 2px;
        transition: background-color 0.3s ease;
    }

    /* MENU ラベル (ボタンの gap で間隔制御) */
    .sp-topbar__label {
        display: block;
        margin-top: 0;
        font-family: "YakuHanJP", "fot-tsukuardgothic-std", sans-serif;
        font-weight: 700;
        font-style: normal;
        font-size: 10px;
        letter-spacing: 0.05em;
        line-height: 1;
        text-align: center;
        transition: color 0.3s ease;
    }

    /* ロゴ (中央固定) */
    .sp-topbar__logo {
        display: flex;
        align-items: center;
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
        z-index: 1;
        max-height: 100%;
    }
    .sp-topbar__logo img {
        width: 70px;
        height: auto;
        max-height: 70px;
        display: block;
        transition: width 0.3s ease, max-height 0.3s ease, filter 0.3s ease;
    }

    /* ---- TOPページ: FV上(初期・透明背景 + 白 + ロゴ70px) ---- */
    body.home .sp-topbar {
        background: transparent;
    }
    body.home .sp-topbar__lines span {
        background-color: #fff;
    }
    body.home .sp-topbar__label {
        color: #fff;
    }
    body.home .sp-topbar .sp-topbar__logo img {
        width: 70px;
        filter: brightness(0) invert(1);
    }

    /* ---- コンパクト状態(TOPスクロール後 + 中ページ共通): 高さ56px + ロゴ42px ---- */
    body.home .sp-topbar.is-scrolled,
    body:not(.home) .sp-topbar {
        min-height: 56px;
    }
    body.home .sp-topbar.is-scrolled .sp-topbar__logo img,
    body:not(.home) .sp-topbar .sp-topbar__logo img {
        max-height: 42px;
    }

    /* ---- TOPページ: スクロール後 = 中ページと同一(オレンジ帯 + 白 + ロゴ42px) ---- */
    body.home .sp-topbar.is-scrolled {
        background: var(--color-primary);
    }
    body.home .sp-topbar.is-scrolled .sp-topbar__lines span {
        background-color: #fff;
    }
    body.home .sp-topbar.is-scrolled .sp-topbar__label {
        color: #fff;
    }
    body.home .sp-topbar.is-scrolled .sp-topbar__logo img {
        width: 42px;
        filter: brightness(0) invert(1);
    }

    /* ---- 中ページ: 常時オレンジ帯 + 白 + ロゴ42px ---- */
    body:not(.home) .sp-topbar {
        background: var(--color-primary);
    }
    body:not(.home) .sp-topbar__lines span {
        background-color: #fff;
    }
    body:not(.home) .sp-topbar__label {
        color: #fff;
    }
    body:not(.home) .sp-topbar .sp-topbar__logo img {
        width: 42px;
        filter: brightness(0) invert(1);
    }

    /* ---- SNSアイコン(右上) ---- */
    /* デフォルト: 表示 (中ページ・TOPスクロール後) */
    .sp-topbar__sns {
        position: relative;
        z-index: 2;
        margin-left: auto;
        display: flex;
        gap: 12px;
        list-style: none;
        padding: 0;
        margin: 0;
        align-items: center;
    }
    /* TOP・FV上(is-scrolled なし時)だけ非表示 */
    body.home .sp-topbar:not(.is-scrolled) .sp-topbar__sns {
        display: none;
    }
    .sp-topbar__sns li {
        display: block;
    }
    .sp-topbar__sns a {
        display: block;
        width: 28px;
        height: 28px;
    }
    .sp-topbar__sns img {
        width: 100%;
        height: 100%;
        display: block;
        object-fit: contain;
    }
    /* Instagram (透明背景+線画) は filter で白化 */
    .sp-topbar__sns img[alt="Instagram"] {
        filter: brightness(0) invert(1);
    }
    /* LINE (背景塗りSVG) は専用の白版SVGに差し替え済みなので filter なし */
    .sp-topbar__sns img[alt="LINE"] {
        filter: none;
    }

    /* SPドロワー展開時: 上部ヘッダー(CLOSE + SNS) */
    .sidebar.is-open .sidebar__sp-head {
        display: flex;
        align-items: stretch;
        justify-content: space-between;
        width: 100%;
    }

    /* CLOSEボタン (ハンバーガーと同座標 18/18、白線+白CLOSE) */
    .sidebar__close {
        position: absolute;
        top: 18px;
        left: 18px;
        z-index: 110;
        background: transparent;
        border: none;
        padding: 0;
        cursor: pointer;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 5px;
    }
    .sidebar__close-cross {
        position: relative;
        display: block;
        width: 38px;
        height: 30px;
    }
    .sidebar__close-cross span {
        position: absolute;
        top: 50%;
        left: 0;
        width: 38px;
        height: 3px;
        background-color: #fff;
        border-radius: 2px;
        transform-origin: center;
    }
    .sidebar__close-cross span:first-child {
        transform: translateY(-50%) rotate(45deg);
    }
    .sidebar__close-cross span:last-child {
        transform: translateY(-50%) rotate(-45deg);
    }
    .sidebar__close-label {
        display: block;
        font-family: "YakuHanJP", "fot-tsukuardgothic-std", sans-serif;
        font-weight: 700;
        font-style: normal;
        font-size: 10px;
        letter-spacing: 0.05em;
        color: #fff;
        line-height: 1;
    }

    /* ドロワー右上: オレンジ帯 + SNSアイコン(白) */
    .sidebar__sp-sns {
        list-style: none;
        margin: 0;
        padding: 16px 24px;
        display: flex;
        gap: 16px;
        background: var(--color-primary);
        align-items: center;
    }
    .sidebar__sp-sns a {
        display: block;
        width: 26px;
        height: 26px;
    }
    .sidebar__sp-sns img {
        width: 100%;
        height: 100%;
        display: block;
        filter: brightness(0) invert(1);
    }

    /* ドロワー内のPC用ロゴ(.sidebar__inner > .sidebar__logo)はSPでは非表示 */
    .sidebar.is-open .sidebar__inner {
        padding: 20px 0 40px;
    }
    .sidebar.is-open .sidebar__inner > .sidebar__logo {
        display: none;
    }

    /* ナビ・フッターをSPで中央に収める */
    .sidebar__nav {
        max-width: 280px;
        margin: 0 auto;
    }
    .sidebar__footer {
        max-width: 280px;
        margin-left: auto;
        margin-right: auto;
        margin-top: 32px;
    }
}

/* =============================================
   SPドロワー簡素化(第3弾修正)
   - 全幅 → 幅260pxの左ドロワー
   - 右上SNS帯は削除済み(HTMLから除去)
   ============================================= */
@media (max-width: 991px) {
    .sidebar {
        width: 260px;
        padding: 24px 16px;
    }

    .sidebar.is-open .sidebar__inner {
        /* CLOSEボタン(絶対配置, 高さ約45px + 18px top + 余白)分のクリアランス */
        padding: 70px 0 0;
    }

    .sidebar.is-open .sidebar__sp-head {
        /* CLOSEボタンは絶対配置なのでラッパーはレイアウト上 0 高さでOK */
        display: block;
        margin-bottom: 0;
    }

    .sidebar__nav {
        max-width: 100%;
        margin: 0;
    }
    .sidebar__footer {
        max-width: 100%;
        margin-left: 0;
        margin-right: 0;
        margin-top: 24px;
    }
}

/* =============================================
   TOP: FV (ヒーロー)セクション
   ============================================= */
#home__fv {
    position: relative;
    width: 100%;
    overflow: hidden;
    margin: 0;
}

.fv__image {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}
.fv__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.fv__copy {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    color: #FFFFFF;
    width: 90%;
    max-width: 800px;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
    pointer-events: none;
}
.fv__copy-en {
    font-family: "YakuHanJP", var(--font-en);
    font-size: clamp(28px, 4.5vw, 56px);
    font-weight: 400;
    letter-spacing: 0.04em;
    margin: 0 0 12px;
    line-height: 1.2;
}
.fv__copy-jp {
    font-family: "YakuHanJP", var(--font-jp);
    font-size: clamp(13px, 1.4vw, 18px);
    font-weight: 400;
    letter-spacing: 0.12em;
    margin: 0;
    line-height: 1.6;
}

@media (max-width: 991px) {
    .fv__image {
        aspect-ratio: 3 / 4;
    }
}

/* =============================================
   TOP: 共通セクション見出し・ボタン
   ============================================= */
.home-sec {
    padding: 40px 0;  /* セクション間を半分に(従来 80px 0) */
    position: relative;
}
/* BLOG は FV 直後のセクション。間隔を +30px 広げて FV と BLOG 見出しの
   間にゆとりを持たせる(PC / SP 共通) */
.home-blog {
    padding-top: 60px;
}
.home-sec__head {
    text-align: center;
    margin-bottom: 40px;
}
.home-sec__title {
    margin: 0;
    line-height: 1.3;
}
.home-sec__title-en {
    display: block;
    font-family: "YakuHanJP", var(--font-en);
    font-size: clamp(24px, 2.6vw, 32px);
    font-weight: 400;
    letter-spacing: 0.08em;
    color: var(--color-primary);
}
.home-sec__title-jp {
    display: block;
    font-family: "YakuHanJP", var(--font-jp);
    font-size: 12px;
    letter-spacing: 0.2em;
    color: var(--color-primary);
    margin-top: 8px;
}
.home-sec__foot {
    text-align: center;
    margin-top: 40px;
}
.home-sec__btn {
    display: inline-block;
    min-width: 240px;
    padding: 14px 32px;
    background: transparent;
    border: 1px solid var(--color-primary);
    color: var(--color-primary);
    text-decoration: none;
    font-size: 14px;
    letter-spacing: 0.1em;
    border-radius: 999px;
    transition: all 0.2s ease;
    text-align: center;
}
.home-sec__btn:hover {
    background: var(--color-primary);
    color: #fff;
}

/* =============================================
   TOP: EVENT スライダー
   ============================================= */
#home__event {
    background: transparent;
}

.home-event__slider-wrap {
    max-width: 1100px;
    margin: 40px auto 0;
    padding: 0 56px; /* 左右に矢印用スペース */
    position: relative;
}
.home-event__slider {
    visibility: hidden; /* Slick初期化前にズレ防止 */
}
.home-event__slider.slick-initialized {
    visibility: visible;
}

/* 各カード */
.home-event__card {
    padding: 12px;
    box-sizing: border-box;
}
.home-event__card-link {
    display: block;
    text-decoration: none;
    color: var(--color-text);
}
.home-event__card-img {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: #f5f5f5;
    margin-bottom: 10px;
}
.home-event__card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.home-event__card-date {
    font-size: 13px;
    color: var(--color-primary);
    font-weight: 600;
    margin: 8px 0 4px;
    letter-spacing: 0.05em;
}
.home-event__card-title {
    font-size: 15px;
    font-weight: 500;
    line-height: 1.5;
    margin: 0;
    color: var(--color-text);
}

/* Slick矢印 */
.home-event__slider-wrap .slick-prev,
.home-event__slider-wrap .slick-next {
    width: 40px;
    height: 40px;
    z-index: 10;
    background: #fff;
    border: 1px solid var(--color-primary);
    border-radius: 50%;
}
.home-event__slider-wrap .slick-prev { left: 0; }
.home-event__slider-wrap .slick-next { right: 0; }
.home-event__slider-wrap .slick-prev:before,
.home-event__slider-wrap .slick-next:before {
    color: var(--color-primary);
    font-size: 18px;
    opacity: 1;
}
.home-event__slider-wrap .slick-prev:hover,
.home-event__slider-wrap .slick-next:hover {
    background: var(--color-primary);
}
.home-event__slider-wrap .slick-prev:hover:before,
.home-event__slider-wrap .slick-next:hover:before {
    color: #fff;
}

/* Slick ドット */
.home-event__slider-wrap .slick-dots {
    bottom: -40px;
}
.home-event__slider-wrap .slick-dots li button:before {
    color: var(--color-primary);
    font-size: 10px;
    opacity: 0.3;
}
.home-event__slider-wrap .slick-dots li.slick-active button:before {
    opacity: 1;
}

/* SP調整 */
@media (max-width: 991px) {
    .home-sec {
        padding: 24px 16px;  /* SP もセクション間を半分に(従来 48px 16px) */
    }
    .home-blog {
        padding-top: 44px;  /* SP も FV との間隔を +20px */
    }
    .home-event__slider-wrap {
        padding: 0 16px;
    }
    .home-event__card {
        padding: 8px;
    }
    .home-event__slider-wrap .slick-prev { left: -4px; }
    .home-event__slider-wrap .slick-next { right: -4px; }
}

/* =============================================
   TOP: ITOKO GROUP
   ============================================= */
#home__group {
    background: var(--color-bg-primary);
}
.home-group__grid {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 16px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}
.home-group__card {
    position: relative;
    display: block;
    overflow: hidden;
    text-decoration: none;
    color: #FFFFFF;
    aspect-ratio: 360 / 158;
    background: #000;
}
.home-group__card-img {
    position: absolute;
    inset: 0;
    overflow: hidden;
}
.home-group__card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}
.home-group__card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    z-index: 1;
    transition: background 0.4s ease;
}
.home-group__card-label {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
    color: #FFFFFF;
    font-family: "YakuHanJP", var(--font-jp);
    font-size: clamp(14px, 1.4vw, 18px);
    font-weight: 500;
    letter-spacing: 0.08em;
    text-align: center;
    white-space: nowrap;
    pointer-events: none;
}
.home-group__card:hover .home-group__card-img img {
    transform: scale(1.05);
}
.home-group__card:hover::before {
    background: rgba(0, 0, 0, 0.25);
}

@media (max-width: 768px) {
    .home-group__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }
}

/* =============================================
   TOP: フッター上フッター (住所+地図)
   ============================================= */
.home-shopinfo {
    background: var(--color-bg-accent);
    padding: 64px 16px;
}
.home-shopinfo__inner {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start;
}
.home-shopinfo__left {
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.home-shopinfo__logo img {
    width: 160px;
    height: auto;
    display: block;
    margin-bottom: 12px;
}
.home-shopinfo__name {
    font-family: "YakuHanJP", var(--font-jp);
    font-size: 18px;
    font-weight: 700;
    color: var(--color-text-strong);
    margin: 0 0 12px;
    letter-spacing: 0.05em;
}
.home-shopinfo__dl {
    display: grid;
    grid-template-columns: 90px 1fr;
    row-gap: 8px;
    column-gap: 16px;
    margin: 0;
    font-size: 14px;
    line-height: 1.7;
    color: var(--color-text);
}
.home-shopinfo__dl dt {
    font-weight: 600;
    color: var(--color-text-strong);
}
.home-shopinfo__dl dd {
    margin: 0;
}
.home-shopinfo__dl dd a {
    color: var(--color-text);
    text-decoration: none;
}
.home-shopinfo__block--company {
    padding-top: 20px;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
}
.home-shopinfo__company-label {
    font-family: "YakuHanJP", var(--font-jp);
    font-size: 14px;
    font-weight: 700;
    color: var(--color-text-strong);
    margin: 0 0 6px;
    letter-spacing: 0.05em;
}
.home-shopinfo__company-addr {
    font-size: 13px;
    line-height: 1.7;
    color: var(--color-text);
    margin: 0;
}
.home-shopinfo__map {
    width: 100%;
    overflow: hidden;
}
.home-shopinfo__map iframe {
    width: 100%;
    height: 300px;
    border: 0;
    display: block;
}

@media (max-width: 768px) {
    .home-shopinfo {
        padding: 48px 16px;
    }
    .home-shopinfo__inner {
        grid-template-columns: 1fr;
        gap: 32px;
    }
}


/* =========================================
   ITOKO GROUP セクション(全ページ共通フッター)
   ========================================= */
.site-group {
    background-color: var(--color-bg-primary);
    padding: 4rem 2rem;
}

.site-group__head {
    text-align: center;
    margin-bottom: 2.5rem;
}
/* 見出しクラスは home-sec__title 系を使用(他セクションと統一) */

.site-group__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    justify-content: center;
    gap: 34px 24px;
    max-width: 1200px;
    margin: 0 auto;
}

.site-group__card {
    display: block;
    text-decoration: none;
    color: #373637;
}

.site-group__card::before {
    content: none;
}

.site-group__card-img {
    position: relative;
    width: 100%;
    aspect-ratio: 360 / 158;
    overflow: hidden;
    margin: 0 0 18px;
}

.site-group__card-img::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: rgba(0, 0, 0, 0.34);
    transition: background-color 0.4s ease;
}

.site-group__card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.site-group__card-body {
    text-align: left;
}

.site-group__card-title {
    font-family: "YakuHanJP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: 17px;
    line-height: 1.5;
    font-weight: 700;
    color: #fff;
    letter-spacing: 0.06em;
    margin: 0;
    padding: 0 12px;
}

.site-group__card-desc {
    font-family: "YakuHanJP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 14px;
    line-height: 1.6;
    font-weight: 400;
    color: #373637;
    letter-spacing: 0;
    margin: 0;
}

.site-group__card:hover .site-group__card-img img {
    transform: scale(1.05);
}

.site-group__card:hover .site-group__card-img::before {
    background: rgba(0, 0, 0, 0.24);
}

.site-group__card:hover,
.site-group__card:focus {
    color: #373637;
    text-decoration: none;
}

@media (max-width: 768px) {
    .site-group {
        padding: 2.5rem 1rem;
    }
    .site-group__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 28px 14px;
    }
    .site-group__card-img {
        margin-bottom: 12px;
    }
    .site-group__card-title {
        font-size: 17px;
    }
    .site-group__card-desc {
        font-size: 12px;
        line-height: 1.6;
    }
}

@media (max-width: 560px) {
    .site-group__grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    .site-group__card-title {
        font-size: 17px;
    }
    .site-group__card-desc {
        font-size: 13px;
    }
}

/* =========================================
   店舗情報 + 地図(全ページ共通フッター)
   ========================================= */
.site-shopinfo {
    background-color: var(--color-bg-accent);
    padding: 3rem 2rem;
}

.site-shopinfo__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    max-width: 1200px;
    margin: 0 auto;
    align-items: start;
}

.site-shopinfo__left {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

/* 上段/下段ブロック: ロゴ + テキスト横並び */
.site-shopinfo__block {
    display: flex;
    gap: 1.25rem;
    align-items: flex-start;
}

/* ロゴ(上段: ecoshop+ イトコー / 下段: ITOKO STYLE) */
.site-shopinfo__logo {
    flex-shrink: 0;
    width: 100px;
}
.site-shopinfo__logo img {
    width: 100%;
    height: auto;
    display: block;
}
.site-shopinfo__logo--itokostyle {
    width: 100px;
}

/* 店舗情報テキスト: 全行フラット Hiragino、装飾なし */
.site-shopinfo__text {
    margin: 0;
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 15px;
    line-height: 1.8;
    color: var(--color-text);
    font-weight: normal;
}

.site-shopinfo__map iframe {
    display: block;
    width: 100%;
    border-radius: 4px;
}

@media (max-width: 768px) {
    .site-shopinfo {
        padding: 2rem 1rem;
    }
    .site-shopinfo__inner {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    .site-shopinfo__logo,
    .site-shopinfo__logo--itokostyle {
        width: 70px;
    }
    .site-shopinfo__text {
        font-size: 13px;
    }
}

/* =========================================
   Site Footer (最下部コピーライト)
   ========================================= */
.site-footer {
    background-color: var(--color-bg-accent);
    padding: 1.5rem 1rem;
    text-align: center;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.site-footer__credit p {
    margin: 0;
    font-size: 0.75rem;
    color: var(--color-text);
    letter-spacing: 0.05em;
}

/* =============================================
   TOP: ECOECO (エコエコ通信)
   ============================================= */
#home__ecoeco {
    background: var(--color-bg-white);
}
.home-ecoeco__list {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 16px;
    list-style: none;
}
.home-ecoeco__item {
    border-top: 1px dashed var(--color-primary);
}
.home-ecoeco__item:last-child {
    border-bottom: 1px dashed var(--color-primary);
}
.home-ecoeco__link {
    display: grid;
    grid-template-columns: 90px 1fr auto;
    align-items: center;
    gap: 24px;
    padding: 1.5rem 0.5rem;
    text-decoration: none;
    color: var(--color-text);
    transition: background 0.2s ease;
}
.home-ecoeco__link:hover {
    background: rgba(232, 84, 0, 0.04);
}
.home-ecoeco__link:hover .home-ecoeco__title {
    text-decoration: none;
}
.home-ecoeco__link:hover .home-ecoeco__cta-arrow {
    transform: translateX(4px);
}

.home-ecoeco__thumb {
    width: 90px;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: var(--color-bg-primary);
    flex-shrink: 0;
}
.home-ecoeco__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.home-ecoeco__thumb-placeholder {
    display: block;
    width: 100%;
    height: 100%;
    background: var(--color-bg-primary);
}

.home-ecoeco__body {
    min-width: 0;
}
.home-ecoeco__date {
    font-family: "YakuHanJP", var(--font-en);
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-primary);
    letter-spacing: 0.06em;
    margin: 0 0 6px;
}
.home-ecoeco__title {
    font-family: "YakuHanJP", var(--font-jp);
    font-size: 18px;
    font-weight: 700;
    color: var(--color-text-strong);
    margin: 0;
    line-height: 1.5;
}

.home-ecoeco__cta {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--color-primary);
    font-size: 0.9375rem;
    font-weight: 500;
    letter-spacing: 0.05em;
    white-space: nowrap;
}
.home-ecoeco__cta-arrow {
    display: inline-block;
    font-size: 1.1em;
    line-height: 1;
    transition: transform 0.2s ease;
}

@media (max-width: 768px) {
    .home-ecoeco__link {
        grid-template-columns: 72px 1fr;
        grid-template-areas:
            "thumb body"
            "thumb cta";
        gap: 14px;
        padding: 1.25rem 0.25rem;
    }
    .home-ecoeco__thumb {
        grid-area: thumb;
        width: 72px;
    }
    .home-ecoeco__body {
        grid-area: body;
    }
    .home-ecoeco__cta {
        grid-area: cta;
        font-size: 0.8125rem;
        margin-top: 6px;
    }
    .home-ecoeco__date {
        font-size: 0.8125rem;
    }
    .home-ecoeco__title {
        font-size: 17px;
    }
}

/* =============================================
   TOP: BLOG (イトコー本体RSS)
   ============================================= */
.home-blog__grid {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 1rem;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}
.home-blog__card {
    display: block;
    text-decoration: none;
    color: inherit;
}
.home-blog__card-img {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--color-bg-white);
}
.home-blog__card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}
.home-blog__card-placeholder {
    display: block;
    width: 100%;
    height: 100%;
    background: var(--color-bg-primary);
}
.home-blog__card-body {
    padding-top: 1rem;
}
.home-blog__card-date {
    color: var(--color-primary);
    font-size: 0.875rem;
    font-weight: 700;
    margin: 0 0 0.5rem;
    letter-spacing: 0.05em;
    font-family: "YakuHanJP", var(--font-en);
}
.home-blog__card-title {
    color: var(--color-text-strong);
    font-weight: 700;
    font-size: 1rem;
    margin: 0 0 0.75rem;
    line-height: 1.5;
    font-family: "YakuHanJP", var(--font-jp);
}
.home-blog__card-excerpt {
    color: #373637;
    font-size: 0.85rem;
    line-height: 1.7;
    margin: 0;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}
.home-blog__card:hover .home-blog__card-img img {
    transform: scale(1.05);
}
.home-blog__card:hover .home-blog__card-title {
    text-decoration: underline;
    text-decoration-color: var(--color-text-strong);
}

.home-blog__more {
    text-align: center;
    margin-top: 3rem;
}
.home-blog__more-btn {
    display: inline-block;
    background-color: #fff;
    border: 1px solid var(--color-text-strong);
    border-radius: 4px;
    padding: 1rem 4rem;
    font-size: 1rem;
    font-weight: 500;
    color: var(--color-text-strong);
    text-decoration: none;
    transition: all 0.3s ease;
    letter-spacing: 0.05em;
}
.home-blog__more-btn:hover {
    background-color: var(--color-text-strong);
    color: #fff;
}

@media (max-width: 768px) {
    .home-blog__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1.25rem;
    }
    .home-blog__more-btn {
        padding: 0.875rem 2.5rem;
    }
}
@media (max-width: 480px) {
    .home-blog__grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
}

/* =============================================
   TOP: PRODUCTS スライダー
   ============================================= */
#home__products {
    background: var(--color-bg-white);
    overflow: hidden; /* variableWidth+centerModeの端ズレ防止 */
}
.home-products__slider-wrap {
    position: relative;
    margin-top: 40px;
    padding: 0 56px;
}
.home-products__slider {
    visibility: hidden;
}
.home-products__slider.slick-initialized {
    visibility: visible;
}

.home-products__card {
    width: 280px;
    padding: 0 0.5rem;
    box-sizing: border-box;
}
.home-products__card-link {
    display: block;
    background: #fff;
    color: var(--color-text);
    text-decoration: none;
    border: 1px solid var(--color-border);
    border-radius: 6px;
    overflow: hidden;
    transition: box-shadow 0.25s ease, transform 0.25s ease;
    height: 100%;
}
.home-products__card-link:hover {
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
    transform: translateY(-2px);
}
.home-products__card-img {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: var(--color-bg-primary);
}
.home-products__card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}
.home-products__card-link:hover .home-products__card-img img {
    transform: scale(1.05);
}
.home-products__card-placeholder {
    display: block;
    width: 100%;
    height: 100%;
    background: var(--color-bg-primary);
}
.home-products__card-body {
    padding: 16px 14px 18px;
}
.home-products__card-cat {
    display: inline-block;
    background: var(--color-primary);
    color: #fff;
    font-size: 11px;
    letter-spacing: 0.08em;
    padding: 3px 12px;
    border-radius: 999px;
    margin-bottom: 10px;
}
.home-products__card-title {
    color: var(--color-text-strong);
    font-family: "YakuHanJP", var(--font-jp);
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.5;
    margin: 0 0 8px;
}
.home-products__card-desc {
    color: var(--color-text);
    font-size: 0.85rem;
    line-height: 1.7;
    margin: 0 0 12px;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}
.home-products__card-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--color-primary);
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.05em;
}
.home-products__card-cta-arrow {
    transition: transform 0.2s ease;
}
.home-products__card-link:hover .home-products__card-cta-arrow {
    transform: translateX(4px);
}

/* Slick 矢印は末尾ブロックで統一指定(ここは空) */

/* 一覧ボタン (BLOGの more-btn と同じ見た目) */
.home-products__more {
    text-align: center;
    margin-top: 3rem;
}
.home-products__more-btn {
    display: inline-block;
    background-color: #fff;
    border: 1px solid var(--color-text-strong);
    border-radius: 4px;
    padding: 1rem 4rem;
    font-size: 1rem;
    font-weight: 500;
    color: var(--color-text-strong);
    text-decoration: none;
    transition: all 0.3s ease;
    letter-spacing: 0.05em;
}
.home-products__more-btn:hover {
    background-color: var(--color-text-strong);
    color: #fff;
}

@media (max-width: 768px) {
    .home-products__slider-wrap {
        padding: 0 16px;
        margin-top: 24px;
    }
    .home-products__card {
        width: auto; /* breakpoint側で variableWidth:false を指定 */
        padding: 0 0.25rem;
    }
    .home-products__more-btn {
        padding: 0.875rem 2.5rem;
    }
}

/* =============================================
   ARCHIVE: PRODUCTS
   ============================================= */
.archive-products {
    background: #fff;
}
.archive-products__body {
    padding: 48px 16px 80px;
}
.archive-products__list {
    max-width: 1000px;
    margin: 0 auto;
}
.archive-products__item {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 32px;
    padding: 2rem 0;
    border-bottom: 1px dashed var(--color-border);
    align-items: start;
    scroll-margin-top: 24px; /* アンカー遷移時の上オフセット */
}
.archive-products__item:first-child {
    border-top: 1px dashed var(--color-border);
}
.archive-products__item-img {
    width: 220px;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: var(--color-bg-primary);
}
.archive-products__item-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.archive-products__item-placeholder {
    display: block;
    width: 100%;
    height: 100%;
    background: var(--color-bg-primary);
}
.archive-products__item-cat {
    display: inline-block;
    background: var(--color-primary);
    color: #fff;
    font-size: 12px;
    letter-spacing: 0.08em;
    padding: 4px 14px;
    border-radius: 999px;
    margin-bottom: 12px;
}
.archive-products__item-title {
    color: var(--color-text-strong);
    font-family: "YakuHanJP", var(--font-jp);
    font-weight: 700;
    font-size: 1.25rem;
    margin: 0 0 16px;
    line-height: 1.4;
}
.archive-products__item-content {
    color: var(--color-text);
    font-size: 0.9375rem;
    line-height: 1.7;
    margin-bottom: 16px;
}
.archive-products__item-content p {
    margin: 0 0 0.75em;
}
.archive-products__item-content p:last-child {
    margin-bottom: 0;
}
.archive-products__item-cta {
    text-align: right;
    margin: 8px 0 0;
}
.archive-products__item-cta a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--color-primary);
    font-weight: 600;
    font-size: 0.9375rem;
    letter-spacing: 0.05em;
    text-decoration: none;
}
.archive-products__item-cta a:hover {
    text-decoration: underline;
}
.archive-products__item-cta-arrow {
    transition: transform 0.2s ease;
}
.archive-products__item-cta a:hover .archive-products__item-cta-arrow {
    transform: translateX(4px);
}
.archive-products__empty {
    text-align: center;
    color: var(--color-text);
    padding: 4rem 0;
}

@media (max-width: 768px) {
    .archive-products__body {
        padding: 32px 16px 56px;
    }
    .archive-products__item {
        grid-template-columns: 1fr;
        gap: 16px;
        padding: 1.5rem 0;
    }
    .archive-products__item-img {
        width: 100%;
        max-width: 320px;
        margin: 0 auto;
    }
    .archive-products__item-title {
        font-size: 1.125rem;
    }
    .archive-products__item-cta {
        text-align: left;
    }
}

/* =============================================
   TOP: PEOPLE スライダー
   ============================================= */
.home-people {
    background: var(--color-bg-white);
    overflow: hidden; /* variableWidth+centerModeの端ズレ防止 */
}
.home-people__slider-wrap {
    position: relative;
    margin-top: 40px;
    padding: 0 56px;
}
.home-people__slider {
    visibility: hidden;
}
.home-people__slider.slick-initialized {
    visibility: visible;
}

.home-people__card {
    width: 280px;
    padding: 0 0.5rem;
    box-sizing: border-box;
}
.home-people__card-link {
    display: block;
    background: #fff;
    color: var(--color-text);
    text-decoration: none;
    border: 1px solid var(--color-border);
    border-radius: 6px;
    overflow: hidden;
    transition: box-shadow 0.25s ease, transform 0.25s ease;
    height: 100%;
}
.home-people__card-link:hover {
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
    transform: translateY(-2px);
}
.home-people__card-img {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--color-bg-primary);
}
.home-people__card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}
.home-people__card-link:hover .home-people__card-img img {
    transform: scale(1.05);
}
.home-people__card-placeholder {
    display: block;
    width: 100%;
    height: 100%;
    background: var(--color-bg-primary);
}
.home-people__card-body {
    padding: 16px 14px 18px;
}
.home-people__card-cat {
    display: inline-block;
    background: var(--color-primary);
    color: #fff;
    font-size: 11px;
    letter-spacing: 0.08em;
    padding: 3px 12px;
    border-radius: 999px;
}
.home-people__card-title {
    color: var(--color-text-strong);
    font-family: "YakuHanJP", var(--font-jp);
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.5;
    margin: 0 0 8px;
}
.home-people__card-desc {
    color: var(--color-text);
    font-size: 0.85rem;
    line-height: 1.7;
    margin: 0 0 12px;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}
.home-people__card-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--color-primary);
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.05em;
}
.home-people__card-cta-arrow {
    transition: transform 0.2s ease;
}
.home-people__card-link:hover .home-people__card-cta-arrow {
    transform: translateX(4px);
}

/* Slick 矢印 */
.home-people__slider-wrap .slick-prev,
.home-people__slider-wrap .slick-next {
    width: 40px;
    height: 40px;
    z-index: 10;
    background: #fff;
    border: 1px solid var(--color-primary);
    border-radius: 50%;
}
.home-people__slider-wrap .slick-prev { left: 0; }
.home-people__slider-wrap .slick-next { right: 0; }
.home-people__slider-wrap .slick-prev:before,
.home-people__slider-wrap .slick-next:before {
    color: var(--color-primary);
    font-size: 18px;
    opacity: 1;
}
.home-people__slider-wrap .slick-prev:hover,
.home-people__slider-wrap .slick-next:hover {
    background: var(--color-primary);
}
.home-people__slider-wrap .slick-prev:hover:before,
.home-people__slider-wrap .slick-next:hover:before {
    color: #fff;
}

.home-people__more {
    text-align: center;
    margin-top: 3rem;
}
.home-people__more-btn {
    display: inline-block;
    background-color: #fff;
    border: 1px solid var(--color-text-strong);
    border-radius: 4px;
    padding: 1rem 4rem;
    font-size: 1rem;
    font-weight: 500;
    color: var(--color-text-strong);
    text-decoration: none;
    transition: all 0.3s ease;
    letter-spacing: 0.05em;
}
.home-people__more-btn:hover {
    background-color: var(--color-text-strong);
    color: #fff;
}

@media (max-width: 768px) {
    .home-people__slider-wrap {
        padding: 0 16px;
        margin-top: 24px;
    }
    .home-people__card {
        width: auto; /* breakpoint側で variableWidth:false を指定 */
        padding: 0 0.25rem;
    }
    .home-people__slider-wrap .slick-prev { left: -4px; }
    .home-people__slider-wrap .slick-next { right: -4px; }
    .home-people__more-btn {
        padding: 0.875rem 2.5rem;
    }
}

/* =============================================
   ARCHIVE: PEOPLE
   ============================================= */
.archive-people {
    background: #fff;
}
.archive-people__body {
    padding: 48px 16px 80px;
}
.archive-people__list {
    max-width: 1000px;
    margin: 0 auto;
}
.archive-people__item {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 32px;
    padding: 2rem 0;
    border-bottom: 1px dashed var(--color-border);
    align-items: start;
    scroll-margin-top: 24px; /* アンカー遷移時の上オフセット */
}
.archive-people__item:first-child {
    border-top: 1px dashed var(--color-border);
}
.archive-people__item-img {
    width: 220px;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--color-bg-primary);
}
.archive-people__item-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.archive-people__item-placeholder {
    display: block;
    width: 100%;
    height: 100%;
    background: var(--color-bg-primary);
}
.archive-people__item-cat {
    display: inline-block;
    background: var(--color-primary);
    color: #fff;
    font-size: 12px;
    letter-spacing: 0.08em;
    padding: 4px 14px;
    border-radius: 999px;
    margin-bottom: 12px;
}
.archive-people__item-title {
    color: var(--color-text-strong);
    font-family: "YakuHanJP", var(--font-jp);
    font-weight: 700;
    font-size: 1.25rem;
    margin: 0 0 16px;
    line-height: 1.4;
}
.archive-people__item-content {
    color: var(--color-text);
    font-size: 0.9375rem;
    line-height: 1.7;
    margin-bottom: 16px;
}
.archive-people__item-content p {
    margin: 0 0 0.75em;
}
.archive-people__item-content p:last-child {
    margin-bottom: 0;
}
.archive-people__item-cta {
    text-align: right;
    margin: 8px 0 0;
}
.archive-people__item-cta a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--color-primary);
    font-weight: 600;
    font-size: 0.9375rem;
    letter-spacing: 0.05em;
    text-decoration: none;
}
.archive-people__item-cta a:hover {
    text-decoration: underline;
}
.archive-people__item-cta-arrow {
    transition: transform 0.2s ease;
}
.archive-people__item-cta a:hover .archive-people__item-cta-arrow {
    transform: translateX(4px);
}
.archive-people__empty {
    text-align: center;
    color: var(--color-text);
    padding: 4rem 0;
}

@media (max-width: 768px) {
    .archive-people__body {
        padding: 32px 16px 56px;
    }
    .archive-people__item {
        grid-template-columns: 1fr;
        gap: 16px;
        padding: 1.5rem 0;
    }
    .archive-people__item-img {
        width: 100%;
        max-width: 320px;
        margin: 0 auto;
    }
    .archive-people__item-title {
        font-size: 1.125rem;
    }
    .archive-people__item-cta {
        text-align: left;
    }
}

/* =============================================
   ARCHIVE: EVENT
   ============================================= */
.archive-event {
    background: #fff;
}
/* .archive-event__header / __title* / __breadcrumbs* は
   共通パーツ(.page-header / .page-breadcrumb)に置き換え済。旧CSS削除。 */

.archive-event__body {
    max-width: 1100px;
    margin: 0 auto;
    padding: 48px 16px 80px;
}

/* カテゴリタブ(角丸5pxの四角) */
.archive-event__tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
    margin-bottom: 48px;
}
.archive-event__tab {
    padding: 10px 24px;
    border: none;
    border-radius: 5px;
    background: var(--cat-bg, #E8E8E8);
    color: var(--cat-text, #373637);
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 15px;
    font-weight: bold;
    cursor: pointer;
    transition: opacity 0.2s;
}
.archive-event__tab:hover {
    opacity: 0.8;
}
/* "全て見る"(--all) デフォルト: 背景 #FFFF99 / 文字 #373637 */
.archive-event__tab--all {
    background: #FFFF99;
    color: #373637;
}
/* クリック中(is-active): #FFFF99 / #373637 強制 */
.archive-event__tab.is-active {
    background: #FFFF99 !important;
    color: #373637 !important;
}
/* "全て見る" が非アクティブ時: 背景 #E8E8E8 */
.archive-event__tab--all:not(.is-active) {
    background: #E8E8E8;
    color: #373637;
}

/* グリッド (開催中・終了 共通) — 同一行のカードは高さ揃え */
.event-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: 1fr;
    gap: 1.5rem;
}

/* カード: grid セル高さいっぱいに伸ばして同一行で揃える */
.event-grid .event-card {
    height: 100%;
    display: flex;
    flex-direction: column;
}
.event-grid .event-card__link {
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* カード */
.event-card {
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: 4px;
    overflow: hidden;
    transition: box-shadow 0.25s ease, transform 0.25s ease;
}
.event-card.is-hidden {
    display: none;
}
.event-card__link {
    display: block;
    text-decoration: none;
    color: inherit;
}
.event-card:hover {
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
    transform: translateY(-2px);
    color: inherit;  /* Bootstrap a:hover #0a58ca を打ち消し */
}
.event-card__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 12px 14px 8px;
}
.event-card__cat {
    display: inline-block;
    background: var(--color-primary);
    color: #fff;
    font-size: 11px;
    letter-spacing: 0.08em;
    padding: 3px 12px;
    border-radius: 999px;
}
.event-card__label {
    color: var(--color-text);
    font-size: 11px;
    letter-spacing: 0.05em;
    opacity: 0.7;
}
.event-card__img {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--color-bg-primary);
}
.event-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}
.event-card:hover .event-card__img img {
    transform: scale(1.03);
}
.event-card__placeholder {
    display: block;
    width: 100%;
    height: 100%;
    background: var(--color-bg-primary);
}
.event-card__body {
    padding: 14px 14px 18px;
}
.event-card__date {
    color: var(--color-primary);
    font-weight: 700;
    font-size: 0.875rem;
    letter-spacing: 0.05em;
    margin: 0 0 6px;
}
.event-card__title {
    color: var(--color-text-strong);
    font-family: "YakuHanJP", var(--font-jp);
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.5;
    margin: 0 0 10px;
}
.event-card__meta {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.event-card__time,
.event-card__place {
    margin: 0;
    color: #373637;
    opacity: 1;
    font-size: 0.8125rem;
    line-height: 1.5;
}
.event-card__time span,
.event-card__place span {
    margin-right: 4px;
}

/* 終了したイベント: グレーアウト */
.event-card--ended {
    opacity: 0.75;
}
.event-card--ended .event-card__img img {
    filter: grayscale(0.3);
}

.archive-event__ended {
    margin-top: 64px;
}
.archive-event__ended-title {
    text-align: center;
    color: var(--color-text-strong);
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-weight: 700;
    font-size: 26px;
    letter-spacing: 0.05em;
    margin: 0 0 24px;
}
@media (max-width: 991px) {
    .archive-event__ended-title {
        font-size: 18px;
    }
}

/* ページネーション */
.archive-event__pagination {
    margin-top: 40px;
    text-align: center;
}
.archive-event__pagination ul.page-numbers {
    list-style: none;
    padding: 0;
    margin: 0;
    display: inline-flex;
    flex-wrap: wrap;
    gap: 6px;
}
.archive-event__pagination a,
.archive-event__pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    height: 38px;
    padding: 0 10px;
    border-radius: 999px;
    text-decoration: none;
    color: var(--color-primary);
    border: 1px solid var(--color-primary);
    font-size: 0.9375rem;
    transition: all 0.2s ease;
}
.archive-event__pagination a:hover {
    background: rgba(232, 84, 0, 0.08);
}
.archive-event__pagination .current {
    background: var(--color-primary);
    color: #fff;
    border-color: var(--color-primary);
}
.archive-event__pagination .dots {
    border: none;
}

.archive-event__empty {
    text-align: center;
    color: var(--color-text);
    padding: 2rem 0;
}

@media (max-width: 768px) {
    .archive-event__body {
        padding: 32px 16px 56px;
    }
    .event-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1rem;
    }
}
@media (max-width: 991px) {
    .archive-event__tab {
        font-size: 12px;
        padding: 8px 16px;
    }
}
@media (max-width: 480px) {
    .event-grid {
        grid-template-columns: 1fr;
    }
}

/* =============================================
   Sidebar フェーズB デザイン調整 (PC専用)
   SP(<=991px)のドロワーには影響させない
   ============================================= */
@media (min-width: 992px) {
    .sidebar {
        /* --sidebar-width: 240px に合わせて幅自動更新。右端にオレンジ点線 */
        padding: 0;
        border-right: 1px dashed var(--color-primary);
        font-family: "YakuHanJP", "fot-tsukuardgothic-std", sans-serif;
        font-weight: 700;
        font-style: normal;
        max-height: 100vh;
        overflow-y: auto;
        scrollbar-width: thin;
    }

    /* ロゴ */
    .sidebar__logo {
        margin: 35px auto 25px;
        text-align: center;
    }
    .sidebar__logo img {
        width: 100px;
        height: auto;
        display: inline-block;
    }

    /* ナビリスト: 仕切り線をサイドバー左右端まで */
    .sidebar__nav ul {
        margin: 0;
        padding: 0;
        list-style: none;
    }
    .sidebar__nav li {
        border-bottom: 1px dashed var(--color-primary);
        padding: 0;
    }
    .sidebar__nav li:first-child {
        border-top: 1px dashed var(--color-primary);
    }

    /* アンカー */
    .sidebar__nav a {
        display: block;
        text-align: center;
        padding: 12px 0 10px;
        text-decoration: none;
        color: var(--color-primary);
        font-family: "YakuHanJP", "fot-tsukuardgothic-std", sans-serif;
        font-weight: 700;
        font-style: normal;
        opacity: 1;
    }
    .sidebar__nav a:hover {
        opacity: 0.75;
    }

    /* 英語ラベル */
    .sidebar__nav .nav-en {
        display: block;
        font-size: 18px;
        line-height: 1.2;
        letter-spacing: 0.04em;
        font-family: "YakuHanJP", "fot-tsukuardgothic-std", sans-serif;
        font-weight: 700;
        font-style: normal;
    }
    /* 日本語ラベル */
    .sidebar__nav .nav-jp {
        display: block;
        font-size: 13px;
        line-height: 1.2;
        letter-spacing: 0.08em;
        margin-top: 3px;
        font-family: "YakuHanJP", "fot-tsukuardgothic-std", sans-serif;
        font-weight: 700;
        font-style: normal;
    }

    /* 現在ページ強調: 文字色はデフォルトのまま、背景色でハイライト */
    .sidebar__nav li.is-active,
    .sidebar__nav li.current-menu-item,
    .sidebar__nav li.current_page_item,
    .sidebar__nav li.current-menu-parent,
    .sidebar__nav li.current-post-ancestor {
        background: #FED8C7;
    }

    /* サイドバーフッター */
    .sidebar__footer {
        margin-top: 20px;
        padding: 0 16px 20px;
        text-align: center;
    }

    /* お問い合わせボタン */
    .sidebar__contact-btn {
        display: block;
        width: auto;
        padding: 7px 18px;
        background: var(--color-primary);
        color: #fff;
        text-decoration: none;
        border-radius: 10px;
        font-family: "YakuHanJP", "fot-tsukuardgothic-std", sans-serif;
        font-weight: 700;
        font-style: normal;
        font-size: 17px;
        letter-spacing: 0.04em;
        text-align: center;
        transition: opacity 0.2s ease;
    }
    .sidebar__contact-btn:hover {
        opacity: 0.9;
        color: #fff;
    }

    /* TEL */
    .sidebar__tel {
        display: flex;
        align-items: baseline;
        justify-content: center;
        gap: 8px;
        margin: 12px 0 10px;
        font-family: "YakuHanJP", "fot-tsukuardgothic-std", sans-serif;
        font-weight: 700;
        font-style: normal;
        color: var(--color-primary);
        white-space: nowrap;
    }
    .sidebar__tel .tel-label {
        font-size: 14px;
        color: var(--color-primary);
        margin-right: 0;
        font-family: "YakuHanJP", "fot-tsukuardgothic-std", sans-serif;
        font-weight: 700;
        font-style: normal;
    }
    .sidebar__tel a {
        font-size: 23px;
        color: var(--color-primary);
        text-decoration: none;
        font-weight: 700;
        letter-spacing: 0.02em;
        font-family: "YakuHanJP", "fot-tsukuardgothic-std", sans-serif;
        font-style: normal;
    }

    /* SNSアイコン */
    .sidebar__sns {
        display: flex;
        justify-content: center;
        gap: 14px;
        list-style: none;
        padding: 0;
        margin: 0;
    }
    .sidebar__sns li {
        width: 38px;
        height: 38px;
        flex: 0 0 38px;
    }
    .sidebar__sns a {
        display: block;
        width: 38px;
        height: 38px;
    }
    .sidebar__sns img {
        width: 38px;
        height: 38px;
        display: block;
        object-fit: contain;
    }
}

/* ===============================
   SPドロワー CLOSE ボタン 強制修正
   (DevTools確認で反映されていなかった項目を !important で上書き)
   =============================== */
@media (max-width: 768px) {
    #sidebar-close.sidebar__close .sidebar__close-cross {
        width: 38px !important;
        height: 17px !important;
        position: relative !important;
    }

    #sidebar-close.sidebar__close .sidebar__close-cross span {
        width: 38px !important;
        height: 3px !important;
        background-color: var(--color-primary) !important;
        border-radius: 2px !important;
        position: absolute !important;
        left: 0 !important;
        top: 50% !important;
    }

    #sidebar-close.sidebar__close .sidebar__close-cross span:first-child {
        transform: translateY(-50%) rotate(45deg) !important;
    }

    #sidebar-close.sidebar__close .sidebar__close-cross span:last-child {
        transform: translateY(-50%) rotate(-45deg) !important;
    }

    #sidebar-close.sidebar__close .sidebar__close-label {
        font-family: "YakuHanJP", "fot-tsukuardgothic-std", sans-serif !important;
        font-weight: 700 !important;
        font-style: normal !important;
        font-size: 10px !important;
        color: var(--color-primary) !important;
        line-height: 1 !important;
        letter-spacing: 0.05em !important;
    }
}

/* ===============================
   CLOSE ×線 はみ出し修正
   (線を 24x3px に短縮し、ボックス 38x17px の中央に配置)
   =============================== */
@media (max-width: 768px) {
    html body #site-sidebar.sidebar #sidebar-close.sidebar__close .sidebar__close-cross {
        width: 38px !important;
        height: 17px !important;
        position: relative !important;
        display: block !important;
    }

    html body #site-sidebar.sidebar #sidebar-close.sidebar__close .sidebar__close-cross span {
        width: 24px !important;
        height: 3px !important;
        top: 50% !important;
        left: 50% !important;
        background-color: #E85400 !important;
        border-radius: 2px !important;
        position: absolute !important;
    }

    html body #site-sidebar.sidebar #sidebar-close.sidebar__close .sidebar__close-cross span:first-child {
        transform: translate(-50%, -50%) rotate(45deg) !important;
    }

    html body #site-sidebar.sidebar #sidebar-close.sidebar__close .sidebar__close-cross span:last-child {
        transform: translate(-50%, -50%) rotate(-45deg) !important;
    }
}

/* ===============================
   CLOSE × 横長X化 (最終)
   38×17pxのボックスの対角線を結ぶX
   角度: atan(17/38) ≈ 24.14度
   線長: √(38² + 17²) ≈ 41.6px
   =============================== */
@media (max-width: 768px) {
    html body #site-sidebar.sidebar #sidebar-close.sidebar__close .sidebar__close-cross {
        width: 38px !important;
        height: 17px !important;
        position: relative !important;
        display: block !important;
    }

    html body #site-sidebar.sidebar #sidebar-close.sidebar__close .sidebar__close-cross span {
        width: 41.6px !important;
        height: 3px !important;
        top: 50% !important;
        left: 50% !important;
        background-color: #E85400 !important;
        border-radius: 2px !important;
        position: absolute !important;
    }

    html body #site-sidebar.sidebar #sidebar-close.sidebar__close .sidebar__close-cross span:first-child {
        transform: translate(-50%, -50%) rotate(24.14deg) !important;
    }

    html body #site-sidebar.sidebar #sidebar-close.sidebar__close .sidebar__close-cross span:last-child {
        transform: translate(-50%, -50%) rotate(-24.14deg) !important;
    }
}

/* ===============================
   SPトップバー SNSアイコンを画面右上に固定
   =============================== */
@media (max-width: 768px) {
    html body .sp-topbar .sp-topbar__sns {
        position: absolute !important;
        top: 50% !important;
        right: 18px !important;
        left: auto !important;
        transform: translateY(-50%) !important;
        display: flex !important;
        gap: 8px !important;
        list-style: none !important;
        padding: 0 !important;
        margin: 0 !important;
        z-index: 2 !important;
    }

    html body .sp-topbar .sp-topbar__sns li {
        display: block !important;
    }

    html body .sp-topbar .sp-topbar__sns a {
        display: block !important;
        width: 28px !important;
        height: 28px !important;
    }

    html body .sp-topbar .sp-topbar__sns img {
        width: 100% !important;
        height: 100% !important;
        display: block !important;
    }
}

/* ===============================
   TOP・FV上(is-scrolled なし)では SNS 非表示
   =============================== */
@media (max-width: 768px) {
    html body.home .sp-topbar:not(.is-scrolled) .sp-topbar__sns {
        display: none !important;
    }
}

/* ===============================
   SPドロワー: PCサイドバーとデザイン統一
   (点線端から端まで / 筑紫A丸ゴシック / 角丸10px 等)
   =============================== */
@media (max-width: 768px) {
    /* ナビを sidebar padding の外まで広げて点線を端から端に */
    html body #site-sidebar.sidebar .sidebar__nav {
        margin-left: -16px !important;
        margin-right: -16px !important;
        max-width: none !important;
    }

    /* メニュー項目の点線 */
    html body #site-sidebar.sidebar .sidebar__nav ul {
        list-style: none !important;
        padding: 0 !important;
        margin: 0 !important;
    }
    html body #site-sidebar.sidebar .sidebar__nav li {
        border-bottom: 1px dashed var(--color-primary) !important;
        padding: 12px 0 10px !important;
        margin: 0 !important;
    }
    html body #site-sidebar.sidebar .sidebar__nav li:first-child {
        border-top: 1px dashed var(--color-primary) !important;
    }
    html body #site-sidebar.sidebar .sidebar__nav li:last-child {
        border-bottom: 1px dashed var(--color-primary) !important;
    }

    /* フォント統一: 筑紫A丸ゴシック */
    html body #site-sidebar.sidebar .sidebar__nav a,
    html body #site-sidebar.sidebar .sidebar__nav .nav-en,
    html body #site-sidebar.sidebar .sidebar__nav .nav-jp,
    html body #site-sidebar.sidebar .sidebar__tel,
    html body #site-sidebar.sidebar .sidebar__tel .tel-label,
    html body #site-sidebar.sidebar .sidebar__tel a,
    html body #site-sidebar.sidebar .sidebar__contact-btn {
        font-family: "YakuHanJP", "fot-tsukuardgothic-std", sans-serif !important;
        font-weight: 700 !important;
        font-style: normal !important;
    }

    /* ナビ英語 / 日本語 */
    html body #site-sidebar.sidebar .sidebar__nav a {
        display: block !important;
        text-align: center !important;
        text-decoration: none !important;
        color: var(--color-primary) !important;
    }
    html body #site-sidebar.sidebar .sidebar__nav .nav-en {
        font-size: 18px !important;
        color: var(--color-primary) !important;
        display: block !important;
        line-height: 1.1 !important;
    }
    html body #site-sidebar.sidebar .sidebar__nav .nav-jp {
        font-size: 13px !important;
        color: var(--color-primary) !important;
        display: block !important;
        line-height: 1.1 !important;
    }

    /* お問い合わせボタン */
    html body #site-sidebar.sidebar .sidebar__contact-btn {
        display: block !important;
        text-align: center !important;
        text-decoration: none !important;
        background-color: var(--color-primary) !important;
        color: #fff !important;
        border-radius: 10px !important;
        font-size: 17px !important;
        padding: 10px 20px !important;
    }

    /* TEL 横並び */
    html body #site-sidebar.sidebar .sidebar__tel {
        display: flex !important;
        align-items: baseline !important;
        justify-content: center !important;
        gap: 8px !important;
        white-space: nowrap !important;
        color: var(--color-primary) !important;
    }
    html body #site-sidebar.sidebar .sidebar__tel .tel-label {
        font-size: 14px !important;
        color: var(--color-primary) !important;
    }
    html body #site-sidebar.sidebar .sidebar__tel a {
        font-size: 23px !important;
        color: var(--color-primary) !important;
        text-decoration: none !important;
    }

    /* SNS アイコン (ドロワー底部) */
    html body #site-sidebar.sidebar .sidebar__sns {
        display: flex !important;
        justify-content: center !important;
        gap: 14px !important;
        list-style: none !important;
        padding: 0 !important;
        margin: 0 auto !important;
    }
    html body #site-sidebar.sidebar .sidebar__sns li {
        width: 38px !important;
        height: 38px !important;
    }
    html body #site-sidebar.sidebar .sidebar__sns a,
    html body #site-sidebar.sidebar .sidebar__sns img {
        width: 38px !important;
        height: 38px !important;
        display: block !important;
    }
}

/* ===============================
   SPドロワー: 画面内に収める縦詰め + お問い合わせ1行化
   =============================== */
@media (max-width: 768px) {
    /* inner のクリアランス縮小 (CLOSEと最初のメニューの間) */
    html body #site-sidebar.sidebar.is-open .sidebar__inner {
        padding-top: 50px !important;
        padding-bottom: 10px !important;
    }

    /* sp-head は margin 0 */
    html body #site-sidebar.sidebar.is-open .sidebar__sp-head {
        margin-bottom: 0 !important;
    }

    /* メニュー項目の縦間隔 */
    html body #site-sidebar.sidebar .sidebar__nav li {
        padding: 8px 0 6px !important;
    }
    html body #site-sidebar.sidebar .sidebar__nav .nav-en {
        margin-bottom: 2px !important;
        line-height: 1 !important;
    }
    html body #site-sidebar.sidebar .sidebar__nav .nav-jp {
        line-height: 1 !important;
    }

    /* フッター周り縦詰め */
    html body #site-sidebar.sidebar .sidebar__footer {
        margin-top: 12px !important;
        text-align: center !important;
    }
    html body #site-sidebar.sidebar .sidebar__tel {
        margin: 8px 0 !important;
    }
    html body #site-sidebar.sidebar .sidebar__sns {
        margin-top: 8px !important;
    }

    /* お問い合わせボタン: 1行で収める */
    html body #site-sidebar.sidebar .sidebar__contact-btn {
        margin: 10px auto 8px !important;
        padding: 10px 28px !important;
        font-size: 17px !important;
        white-space: nowrap !important;
        display: inline-block !important;
        max-width: calc(100% - 40px) !important;
    }

    /* 保険: ドロワー本体を縦スクロール可能に */
    html body #site-sidebar.sidebar.is-open {
        overflow-y: auto !important;
    }
}

/* ===============================
   SPドロワー最終調整:
   (1) お問い合わせボタンの見切れ修正
   (2) iPhone SE(320x667)でも画面内に収まるよう詰める
   =============================== */
@media (max-width: 768px) {
    /* (1) お問い合わせボタン: 中央配置 + 幅はみ出し修正 */
    html body #site-sidebar.sidebar .sidebar__contact-btn {
        display: inline-block !important;
        white-space: nowrap !important;
        width: auto !important;
        max-width: none !important;
        padding: 8px 24px !important;
        font-size: 16px !important;
        border-radius: 10px !important;
        background-color: var(--color-primary) !important;
        color: #fff !important;
        font-family: "YakuHanJP", "fot-tsukuardgothic-std", sans-serif !important;
        font-weight: 700 !important;
        text-decoration: none !important;
        box-sizing: border-box !important;
        margin: 8px auto 6px !important;
    }

    html body #site-sidebar.sidebar .sidebar__footer {
        text-align: center !important;
        padding: 0 10px !important;
    }

    /* (2) 縦スペースをさらに詰める */
    html body #site-sidebar.sidebar.is-open .sidebar__inner {
        padding-top: 45px !important;
        padding-bottom: 8px !important;
    }

    html body #site-sidebar.sidebar .sidebar__nav li {
        padding: 6px 0 5px !important;
    }

    html body #site-sidebar.sidebar .sidebar__nav .nav-en {
        font-size: 16px !important;
        margin-bottom: 1px !important;
        line-height: 1 !important;
    }

    html body #site-sidebar.sidebar .sidebar__nav .nav-jp {
        font-size: 11px !important;
        line-height: 1 !important;
    }

    /* TEL */
    html body #site-sidebar.sidebar .sidebar__tel {
        margin: 6px 0 !important;
    }
    html body #site-sidebar.sidebar .sidebar__tel .tel-label {
        font-size: 12px !important;
    }
    html body #site-sidebar.sidebar .sidebar__tel a {
        font-size: 20px !important;
    }

    /* SNS */
    html body #site-sidebar.sidebar .sidebar__sns {
        margin-top: 6px !important;
    }
    html body #site-sidebar.sidebar .sidebar__sns li,
    html body #site-sidebar.sidebar .sidebar__sns a,
    html body #site-sidebar.sidebar .sidebar__sns img {
        width: 34px !important;
        height: 34px !important;
    }
}

/* ===============================
   FV キャッチコピーのフォント指定
   英: Helvetica LT Pro 66px / 日: Noto Sans JP 20px
   =============================== */
.fv__copy-en {
    font-family: "YakuHanJP", "helvetica-lt-pro", sans-serif !important;
    font-weight: 700 !important;
    font-style: normal !important;
    font-size: 66px !important;
}

.fv__copy-jp {
    font-family: "YakuHanJP", "Noto Sans JP", sans-serif !important;
    font-weight: 400 !important;
    font-size: 20px !important;
}

@media (max-width: 768px) {
    .fv__copy-en {
        font-size: 32px !important;
    }
    .fv__copy-jp {
        font-size: 16px !important;
    }
}

/* ===============================
   BLOG セクション (PC)
   =============================== */
@media (min-width: 769px) {
    .home-blog .home-sec__title-en {
        font-family: "YakuHanJP", "fot-tsukuardgothic-std", sans-serif !important;
        font-weight: 700 !important;
        font-size: 32px !important;
        color: var(--color-primary) !important;
    }
    .home-blog .home-sec__title-jp {
        font-family: "YakuHanJP", "fot-tsukuardgothic-std", sans-serif !important;
        font-weight: 700 !important;
        font-size: 18px !important;
        color: var(--color-primary) !important;
    }

    .home-blog__card-img {
        border-radius: 5px !important;
        overflow: hidden !important;
    }

    .home-blog__card-date {
        font-family: "YakuHanJP", "helvetica-lt-pro", "Helvetica", sans-serif !important;
        font-weight: 400 !important;
        font-size: 12px !important;
        color: var(--color-primary) !important;
    }
    .home-blog__card-title {
        font-family: "YakuHanJP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif !important;
        font-weight: 600 !important;
        font-size: 20px !important;
        color: var(--color-text-strong) !important;
    }
    .home-blog__card-excerpt {
        font-family: "YakuHanJP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif !important;
        font-weight: 400 !important;
        font-size: 16px !important;
        color: var(--color-text) !important;
        line-height: 1.7 !important;
    }
}

/* ===============================
   BLOG セクション (SP)
   =============================== */
@media (max-width: 768px) {
    .home-blog__grid {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 16px !important;
    }

    .home-blog .home-sec__title-en {
        font-family: "YakuHanJP", "fot-tsukuardgothic-std", sans-serif !important;
        font-weight: 700 !important;
        font-size: 25px !important;
    }
    .home-blog .home-sec__title-jp {
        font-family: "YakuHanJP", "fot-tsukuardgothic-std", sans-serif !important;
        font-weight: 700 !important;
        font-size: 14px !important;
    }

    .home-blog__card-img {
        border-radius: 5px !important;
        overflow: hidden !important;
    }

    .home-blog__card-date {
        font-family: "YakuHanJP", "helvetica-lt-pro", "Helvetica", sans-serif !important;
        font-size: 11px !important;
    }
    .home-blog__card-title {
        font-family: "YakuHanJP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif !important;
        font-size: 16px !important;
    }
    .home-blog__card-excerpt {
        font-family: "YakuHanJP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif !important;
        font-size: 12px !important;
        line-height: 1.6 !important;
    }
}

/* ===============================
   共通: 各セクションの「一覧」ボタン
   =============================== */
@media (min-width: 769px) {
    .home-sec__btn,
    .home-blog__more-btn,
    .home-products__more-btn,
    .home-people__more-btn {
        display: block !important;
        width: 500px !important;
        max-width: 100% !important;
        margin: 40px auto !important;
        padding: 14px 20px !important;
        text-align: center !important;
        text-decoration: none !important;
        border: 1px solid var(--color-primary) !important;
        border-radius: 4px !important;
        background: transparent !important;
        color: var(--color-primary) !important;
        font-family: "YakuHanJP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif !important;
        font-weight: 600 !important;
        font-size: 16px !important;
        box-sizing: border-box !important;
        transition: background-color 0.2s, color 0.2s !important;
    }
    .home-sec__btn:hover,
    .home-blog__more-btn:hover,
    .home-products__more-btn:hover,
    .home-people__more-btn:hover {
        background-color: var(--color-primary) !important;
        color: #fff !important;
    }
}

@media (max-width: 768px) {
    .home-sec__btn,
    .home-blog__more-btn,
    .home-products__more-btn,
    .home-people__more-btn {
        display: block !important;
        width: 300px !important;
        max-width: 100% !important;
        margin: 30px auto !important;
        padding: 12px 20px !important;
        text-align: center !important;
        text-decoration: none !important;
        border: 1px solid var(--color-primary) !important;
        border-radius: 4px !important;
        background: transparent !important;
        color: var(--color-primary) !important;
        font-family: "YakuHanJP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif !important;
        font-weight: 600 !important;
        font-size: 18px !important;
        box-sizing: border-box !important;
    }
}

/* ===============================
   セクション見出し 全セクション共通
   (BLOG/EVENT/ECOECO/PRODUCTS/PEOPLE で同一クラスのため
    .home-sec__title 系 3クラスだけで完結)
   =============================== */
@media (min-width: 769px) {
    .home-sec__title {
        text-align: center !important;
        margin: 60px auto 30px !important;
    }
    .home-sec__title-en {
        font-family: "YakuHanJP", "fot-tsukuardgothic-std", sans-serif !important;
        font-weight: 700 !important;
        font-style: normal !important;
        font-size: 32px !important;
        color: var(--color-primary) !important;
        display: block !important;
        line-height: 1.1 !important;
        text-align: center !important;
    }
    .home-sec__title-jp {
        font-family: "YakuHanJP", "fot-tsukuardgothic-std", sans-serif !important;
        font-weight: 700 !important;
        font-style: normal !important;
        font-size: 18px !important;
        color: var(--color-primary) !important;
        display: block !important;
        line-height: 1.2 !important;
        text-align: center !important;
        margin-top: 4px !important;
    }
}

@media (max-width: 768px) {
    .home-sec__title {
        text-align: center !important;
        margin: 40px auto 20px !important;
    }
    .home-sec__title-en {
        font-family: "YakuHanJP", "fot-tsukuardgothic-std", sans-serif !important;
        font-weight: 700 !important;
        font-style: normal !important;
        font-size: 25px !important;
        color: var(--color-primary) !important;
        display: block !important;
        line-height: 1.1 !important;
        text-align: center !important;
    }
    .home-sec__title-jp {
        font-family: "YakuHanJP", "fot-tsukuardgothic-std", sans-serif !important;
        font-weight: 700 !important;
        font-style: normal !important;
        font-size: 14px !important;
        color: var(--color-primary) !important;
        display: block !important;
        line-height: 1.2 !important;
        text-align: center !important;
        margin-top: 3px !important;
    }
}

/* ===============================
   BLOG 微調整
   =============================== */
/* 日付⇔タイトル間隔を詰める (PC/SP共通) */
.home-blog__card-date {
    margin-bottom: 2px !important;
}
.home-blog__card-title {
    margin-top: 2px !important;
}

/* PC: タイトル 20px → 16px */
@media (min-width: 769px) {
    .home-blog__card-title {
        font-size: 16px !important;
    }
}

/* SP: 2カラム行間 + 一覧ボタン 14px */
@media (max-width: 768px) {
    .home-blog__grid {
        row-gap: 30px !important;
        column-gap: 16px !important;
    }

    .home-sec__btn,
    .home-blog__more-btn,
    .home-products__more-btn,
    .home-people__more-btn {
        font-size: 14px !important;
    }
}

/* ===============================
   BLOG リンクの下線無効化 (通常時・hover・focus)
   =============================== */
.home-blog a,
.home-blog a:hover,
.home-blog a:focus,
.home-blog__card,
.home-blog__card:hover,
.home-blog__card:focus,
.home-blog__card-title,
.home-blog__card:hover .home-blog__card-title,
.home-blog__card:focus .home-blog__card-title {
    text-decoration: none !important;
}

/* ===============================
   SP: ブログタイトル 16px → 14px
   =============================== */
@media (max-width: 768px) {
    .home-blog__card-title {
        font-size: 14px !important;
    }
}

/* ===============================
   FV 英語キャッチ: PC 66px → 50px (SPは現状36px維持)
   =============================== */
@media (min-width: 769px) {
    .fv__copy-en {
        font-size: 50px !important;
    }
}

/* ===============================
   セクション見出し上マージン: 2/3 に詰める (全セクション共通)
   FV→BLOG 間だけでなく、各セクション間も同比率で縮む
   =============================== */
@media (min-width: 769px) {
    .home-sec__title {
        margin-top: 40px !important;
    }
}

@media (max-width: 768px) {
    .home-sec__title {
        margin-top: 27px !important;
    }
}

/* ===============================
   セクション見出し上マージン: さらに 2/3 に縮小
   PC: 40 → 27px / SP: 27 → 18px
   =============================== */
@media (min-width: 769px) {
    .home-sec__title {
        margin-top: 27px !important;
    }
}

@media (max-width: 768px) {
    .home-sec__title {
        margin-top: 18px !important;
    }
}

/* ===============================
   セクション見出し上マージン: さらに 1/2 に縮小
   PC: 27 → 14px / SP: 18 → 9px
   =============================== */
@media (min-width: 769px) {
    .home-sec__title {
        margin-top: 14px !important;
    }
}

@media (max-width: 768px) {
    .home-sec__title {
        margin-top: 9px !important;
    }
}

/* ===============================
   セクション見出し上マージン: さらに 2/3 に縮小
   PC: 14 → 9px / SP: 9 → 6px
   =============================== */
@media (min-width: 769px) {
    .home-sec__title {
        margin-top: 9px !important;
    }
}

@media (max-width: 768px) {
    .home-sec__title {
        margin-top: 6px !important;
    }
}

/* ===============================
   セクション見出し上マージン: 0 (最終)
   PC/SP 共通 — FV のすぐ下に見出しが配置される
   =============================== */
.home-sec__title {
    margin-top: 0 !important;
}

/* ===============================
   BLOG: PC 3カラム(3件表示) / SP 2カラム(4件表示)
   方式A: RSSは4件取得、PCで4件目を display:none で隠す
   =============================== */
@media (min-width: 769px) {
    /* PC: 3カラム */
    .home-blog__grid {
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 20px !important;
    }
    /* PC: 4件目のカードを非表示 */
    .home-blog__grid .home-blog__card:nth-child(4) {
        display: none !important;
    }
}

@media (max-width: 768px) {
    /* SP: 4件目も必ず表示 (PCの非表示が漏れないよう保険) */
    .home-blog__grid .home-blog__card:nth-child(4) {
        display: block !important;
    }
}

/* ===============================
   セクション見出し下マージン: 半分に
   PC: 30 → 15px / SP: 20 → 10px
   =============================== */
@media (min-width: 769px) {
    .home-sec__title {
        margin-bottom: 15px !important;
    }
}

@media (max-width: 768px) {
    .home-sec__title {
        margin-bottom: 10px !important;
    }
}

/* ===============================
   見出し⇔コンテンツ間ギャップ 0 (強制)
   真の原因は .home-sec__head { margin-bottom: 40px }
   加えて各セクションのコンテンツラッパーの margin-top も 0 に
   =============================== */
.home-sec__head {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

.home-sec__title {
    margin-bottom: 0 !important;
}

/* 見出し内 span の下マージンも 0 */
.home-sec__title-en,
.home-sec__title-jp {
    margin-bottom: 0 !important;
}

/* セクション内の最初のコンテンツラッパー: 上マージン 0 */
.home-blog__grid,
.home-event__slider-wrap,
.home-products__slider-wrap,
.home-people__slider-wrap,
.home-ecoeco__list,
.event-common-calender {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* ===============================
   見出し下マージン: 基本 20px / EVENT だけ 0
   (.home-sec__head ラッパーに直接指定。
    EVENT は Tiny Booker プラグイン側で余白が入るため)
   =============================== */
.home-sec__head {
    margin-bottom: 20px !important;
}

#home__event .home-sec__head {
    margin-bottom: 0 !important;
}

/* ===============================
   見出し下マージン: 20px → 30px (EVENT除く)
   =============================== */
.home-sec__head {
    margin-bottom: 30px !important;
}

#home__event .home-sec__head {
    margin-bottom: 0 !important;
}

/* ===============================
   一覧ボタン 上マージン: 40px → 20px
   =============================== */
.home-sec__btn,
.home-blog__more-btn,
.home-products__more-btn,
.home-people__more-btn {
    margin-top: 20px !important;
}

/* ===============================
   Tiny Booker カレンダー: 見出し領域(空のh2)を非表示
   カレンダー上下余白も 0 に揃える
   =============================== */
#home__event .tb-wrapper-heading,
.event-common-calender .tb-wrapper-heading,
.tb-wrapper-heading {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
}

/* カレンダー全体ラッパーの上下余白を 0 に */
#home__event .tb-wrapper,
.event-common-calender,
.event-common-calender .tb-wrapper {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* ===============================
   EVENT カレンダー: 背景画像枠内インセット
   .tb-wrapper に padding 40px を入れて、背景画像とカレンダー本体の間に余白確保
   =============================== */
#home__event .tb-wrapper,
.event-common-calender .tb-wrapper {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
    box-sizing: border-box !important;
}

/* ===============================
   EVENT見出し下マージン 0 → 30px (他セクションと統一)
   カレンダー下端 → スライダー間 30px
   =============================== */
#home__event .home-sec__head {
    margin-bottom: 30px !important;
}

#home__event .event-common-calender,
.event-common-calender {
    margin-bottom: 30px !important;
}

/* SP時のみカレンダー背景を画面端まで広げる
   (.home-sec の SP padding 16px をネガティブマージンで打ち消す) */
@media (max-width: 768px) {
    #home__event .event-common-calender,
    .event-common-calender {
        margin-left: -16px !important;
        margin-right: -16px !important;
    }
}

/* ===============================
   EVENT カード: 画像+バッジ + 本文 (新ロジック)
   カテゴリ(左上) + ステータス(左下) のバッジ
   =============================== */
.event-card__img-wrap {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background-color: var(--color-bg-primary);
}
.event-card__img-wrap .event-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.event-card__img-wrap .event-card__placeholder {
    display: block;
    width: 100%;
    height: 100%;
    background: var(--color-bg-primary);
}

/* カテゴリバッジ(画像左上、右下だけ角丸) */
.event-card__cat-badge {
    position: absolute;
    top: 0;
    left: 0;
    padding: 6px 16px;
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", sans-serif;
    font-weight: 700;
    font-size: 13px;
    line-height: 1.2;
    letter-spacing: 0.05em;
    z-index: 2;
    border-radius: 0 0 5px 0;
}

/* ステータスバッジ(画像左下、右上だけ角丸) */
.event-card__status-badge {
    position: absolute;
    bottom: 0;
    left: 0;
    padding: 6px 16px;
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", sans-serif;
    font-weight: 700;
    font-size: 13px;
    line-height: 1.2;
    letter-spacing: 0.05em;
    z-index: 2;
    border-radius: 0 5px 0 0;
}
.event-card__status-badge--ongoing {
    background-color: #FFFFFF;
    color: var(--color-primary);
}
.event-card__status-badge--upcoming {
    background-color: var(--color-primary);
    color: #FFFFFF;
}
.event-card__status-badge--full {
    background-color: #CC0700;
    color: #FFFFFF;
}
.event-card__status-badge--ended {
    background-color: #666666;
    color: #FFFFFF;
}

/* カード下部本文 */
.event-card__body {
    padding: 16px;
}
.event-card__date {
    font-family: "YakuHanJP", "helvetica-lt-pro", "Helvetica", sans-serif;
    font-weight: 700;
    font-size: 15px;
    color: var(--color-primary);
    letter-spacing: 0.05em;
    margin: 0 0 8px;
}
.event-card__title {
    font-family: "YakuHanJP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-weight: 600;
    font-size: 16px;
    color: var(--color-text-strong);
    margin: 0 0 12px;
    line-height: 1.4;
}
.event-card__time,
.event-card__place {
    font-family: "YakuHanJP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 13px;
    color: var(--color-text);
    margin: 0 0 4px;
    line-height: 1.5;
}
.event-card__time span[aria-hidden],
.event-card__place span[aria-hidden] {
    margin-right: 4px;
}

/* ===============================
   EVENT カード: 幅自動 / 画像16:9 / 本文#E8E8E8 / 角丸5px
   BLOG と同じ gap (PC 20px / SP 16px) に統一
   =============================== */

/* カード外枠: 背景透明 / 枠線なし (width は Slick 側に任せる) */
.event-card {
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
}

/* 内側リンク要素で角丸+overflow を担当 (画像と本文を包む) */
.event-card__link {
    display: block !important;
    border-radius: 5px !important;
    overflow: hidden !important;
    background-color: transparent !important;
    text-decoration: none !important;
    color: inherit !important;
}

/* 画像エリア: 16:9 + 中央クロップ */
.event-card__img-wrap {
    aspect-ratio: 16 / 9 !important;
}
.event-card__img-wrap .event-card__img,
.event-card__img-wrap img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    display: block !important;
}

/* 本文エリア: 背景 #E8E8E8 / padding 16px */
.event-card__body {
    background-color: #E8E8E8 !important;
    padding: 16px !important;
}

/* --- TOPのSlickスライダー: gap を BLOG (PC 20px / SP 16px) に合わせる --- */
/* padding で gap 確保。Slick 側(.slick-slide / .slick-list)は無変更 */
@media (min-width: 769px) {
    .home-event__card {
        padding: 0 10px 20px !important;  /* 左右 10px + 下 20px */
        margin: 0 !important;
        box-sizing: border-box !important;
    }
}
@media (max-width: 768px) {
    .home-event__card {
        /* 左右は gap 確保、下は 0 (2行目カード下の空白を消して矢印エリアに詰める) */
        padding: 0 8px 0 !important;
        margin: 0 !important;
        box-sizing: border-box !important;
    }
}

/* カード全体を #E8E8E8 背景に (高さが揃わなくても下端まで塗られる)
   画像エリアは透明化、画像が直接見える */
.home-event__card .event-card__link {
    background-color: #E8E8E8 !important;
    border-radius: 5px !important;
    overflow: hidden !important;
}
.home-event__card .event-card__img-wrap {
    background-color: var(--color-bg-primary);
}

/* --- アーカイブのグリッド: gap を BLOG に揃える --- */
@media (min-width: 769px) {
    .archive-event .event-grid {
        gap: 20px !important;
    }
}
@media (max-width: 768px) {
    .archive-event .event-grid {
        row-gap: 30px !important;
        column-gap: 16px !important;
    }
}

/* ===============================
   EVENT カード: 背景・角丸を .event-card__link に集約
   (.event-card 外側は透明、link 内側で角丸5px + overflow + 背景を担当)
   TOP: .home-event__card の padding 領域は透明 → gap 確保
   archive: event-grid の gap で間隔、link がカード見た目を担う
   =============================== */
.event-card {
    background-color: transparent !important;
    background-clip: border-box !important;
    border-radius: 0 !important;
    overflow: visible !important;
}
.event-card__link {
    background-color: #E8E8E8 !important;
    border-radius: 5px !important;
    overflow: hidden !important;
}
.event-card__body {
    background-color: transparent !important;
}

/* ===============================
   EVENT カード内テキスト: Hiragino 統一 + サイズ (PC)
   =============================== */
@media (min-width: 769px) {
    .event-card__cat-badge,
    .event-card__status-badge {
        font-family: "YakuHanJP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif !important;
        font-size: 14px !important;
        font-weight: 600 !important;
    }
    .event-card__date {
        font-family: "YakuHanJP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif !important;
        font-size: 18px !important;
        font-weight: 700 !important;
        color: var(--color-primary) !important;
    }
    .event-card__title {
        font-family: "YakuHanJP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif !important;
        font-size: 16px !important;
        font-weight: 600 !important;
        color: var(--color-text-strong) !important;
    }
    .event-card__time,
    .event-card__place {
        font-family: "YakuHanJP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif !important;
        font-size: 15px !important;
        color: var(--color-text) !important;
    }
}

/* ===============================
   EVENT カード内テキスト (SP)
   =============================== */
@media (max-width: 768px) {
    .event-card__cat-badge,
    .event-card__status-badge {
        font-family: "YakuHanJP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif !important;
        font-size: 11px !important;
        font-weight: 600 !important;
    }
    .event-card__date {
        font-family: "YakuHanJP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif !important;
        font-size: 12px !important;
        font-weight: 700 !important;
        color: var(--color-primary) !important;
    }
    .event-card__title {
        font-family: "YakuHanJP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif !important;
        font-size: 14px !important;
        font-weight: 600 !important;
        color: var(--color-text-strong) !important;
    }
    .event-card__time,
    .event-card__place {
        font-family: "YakuHanJP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif !important;
        font-size: 12px !important;
        color: var(--color-text) !important;
    }
}

/* ===============================
   EVENT カード: 2本の点線区切り
   (タイトル・時間 の下に dashed border。場所下と期間下は無し)
   =============================== */
.event-card__title,
.event-card__time,
.event-card__place {
    border-bottom: 1px dashed #B0B0B0 !important;
    padding-bottom: 10px !important;
    margin-bottom: 10px !important;
}

/* 場所の下は点線なし、余白も詰める (カード下端 padding に委ねる) */
.event-card__place {
    border-bottom: none !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}

/* 期間(日付)の下は点線なし、margin のみ */
.event-card__date {
    border-bottom: none !important;
    padding-bottom: 0 !important;
    margin-bottom: 2px !important;
}

/* 時間・場所 行はアイコン + テキストの横並び(2行テキスト時もアイコンは1行目に上寄せ) */
.event-card__time,
.event-card__place {
    display: flex !important;
    align-items: flex-start !important;
    gap: 8px !important;
}
/* アイコン: flex-shrink 無効化 + 1行目テキストの中央に合わせる微調整 */
.event-card__time > span[aria-hidden],
.event-card__place > span[aria-hidden] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    /* テキスト行高 (line-height 1.5 × font-size) の中心にアイコン中心を揃える */
    line-height: 1.5;
}
.event-card__icon {
    flex-shrink: 0;
}

/* Slick rows:2 時の上下行間 (20px PC / 16px SP) */
@media (min-width: 769px) {
    .home-event__slider .slick-slide > div > div,
    .home-event__slider-wrap .slick-slide > div > div {
        margin-bottom: 20px;
    }
    .home-event__slider .slick-slide > div > div:last-child,
    .home-event__slider-wrap .slick-slide > div > div:last-child {
        margin-bottom: 0;
    }
}
@media (max-width: 768px) {
    .home-event__slider .slick-slide > div > div,
    .home-event__slider-wrap .slick-slide > div > div {
        margin-bottom: 16px;
    }
    .home-event__slider .slick-slide > div > div:last-child,
    .home-event__slider-wrap .slick-slide > div > div:last-child {
        margin-bottom: 0;
    }
}

/* ==========================================================================
   EVENT スライダー幅調整 v2: BLOGカード幅と揃える
   旧修正(ネガティブマージン)は content幅に効かず左寄せになったため撤回。
   PC時のみ padding を 56px → 16px に変更して content領域を広げる。
   矢印は left/right: -40px で外側(元の表示位置)に配置。
   ========================================================================== */
@media (min-width: 992px) {
    .home-event__slider-wrap {
        padding-left: 16px;
        padding-right: 16px;
    }
    /* 矢印は新 padding の外側 40px へ (視覚的に元と同じ位置) */
    .home-event__slider-wrap .slick-prev {
        left: -40px;
    }
    .home-event__slider-wrap .slick-next {
        right: -40px;
    }
}
/* SPは既に padding:16px で BLOG と同じ。SP用矢印位置はそのまま。 */

/* ==========================================================================
   EVENTカード 時間・場所アイコン(絵文字→SVG置換用)
   ========================================================================== */
.event-card__icon {
    width: 16px;
    height: 16px;
    vertical-align: -3px;
    display: inline-block;
}
@media (max-width: 991px) {
    .event-card__icon {
        width: 14px;
        height: 14px;
        vertical-align: -2px;
    }
}

/* ==========================================================================
   TOP EVENTスライダー カード高さ揃え
   JS(equalizeEventCardHeights)が .event-card の高さは揃えているが、
   中の .event-card__link が自然高さで止まりグレー背景が下端まで伸びない。
   link を card 高さまで伸ばし、body 内で余白を吸収する。
   Slickのwidth計算(slick-slide/slick-track等)には触らないので干渉しない。
   ========================================================================== */
.home-event__slider .event-card__link {
    display: flex;
    flex-direction: column;
    height: 100%;
}
.home-event__slider .event-card__body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
}
/* 時間・場所の下に余白を吸収させて高さ揃え */
.home-event__slider .event-card__body::after {
    content: "";
    flex: 1 1 auto;
    min-height: 0;
}

/* SP(Slick breakpoint 769未満)ではカード下の空白を削って、内容分の高さで終わらせる */
@media (max-width: 768px) {
    .home-event__slider .event-card__body::after {
        content: none;
    }
}


/* ==========================================================================
   TOP EVENTスライダー: 矢印をSVGアイコン + カスタムページネーション
   ========================================================================== */
.home-event__slider-wrap {
    position: relative;
}

/* 矢印共通リセット(既存の円形矢印CSSを上書き) */
.home-event__slider .slick-prev,
.home-event__slider .slick-next,
.home-event__slider-wrap .slick-prev,
.home-event__slider-wrap .slick-next {
    background-color: transparent !important;
    background-repeat: no-repeat !important;
    background-size: contain !important;
    background-position: center !important;
    border: none !important;
    border-radius: 0 !important;
    z-index: 5;
    cursor: pointer;
    padding: 0 !important;
}
.home-event__slider .slick-prev::before,
.home-event__slider .slick-next::before,
.home-event__slider-wrap .slick-prev::before,
.home-event__slider-wrap .slick-next::before {
    content: none !important;
}

/* PC(≥992px): 80×80 のオレンジ円矢印、カード端と約3/8(30px)重なる */
@media (min-width: 992px) {
    .home-event__slider .slick-prev,
    .home-event__slider-wrap .slick-prev {
        width: 80px !important;
        height: 80px !important;
        left: -50px !important;
        background-image: url('../img/arrow-left.svg') !important;
    }
    .home-event__slider .slick-next,
    .home-event__slider-wrap .slick-next {
        width: 80px !important;
        height: 80px !important;
        right: -50px !important;
        background-image: url('../img/arrow-right.svg') !important;
    }
}

/* SP(≤991px): 矢印とページネーションを同一行(縦中央揃え)で配置 */
@media (max-width: 991px) {
    /* 矢印の positioned ancestor と pagination の positioned ancestor を一致させるため
       slider-wrap の padding-bottom は 0、代わりに slider 側に padding-bottom を持たせる
       矢印26px + サムネからの余白4px = 30px */
    .home-event__slider {
        padding-bottom: 30px !important;
    }

    /* Slick 内部の余分な下余白を打ち消す (サムネ〜矢印間の謎空白を解消) */
    .home-event__slider .slick-list,
    .home-event__slider .slick-track {
        margin-bottom: 0 !important;
        padding-bottom: 0 !important;
    }
    /* 2行目カード wrapper の margin-bottom を強制 0 (:last-child が効かないケース保険) */
    .home-event__slider .slick-slide > div > div:last-child,
    .home-event__slider-wrap .slick-slide > div > div:last-child {
        margin-bottom: 0 !important;
    }

    .home-event__slider .slick-prev,
    .home-event__slider-wrap .slick-prev,
    .home-event__slider .slick-next,
    .home-event__slider-wrap .slick-next {
        width: 40px !important;
        height: 26px !important;
        top: auto !important;
        bottom: 0 !important;
        transform: none !important;
        margin: 0 !important;
    }
    .home-event__slider .slick-prev,
    .home-event__slider-wrap .slick-prev {
        left: calc(50% - 80px) !important;
        background-image: url('../img/arrow-left-sp.svg') !important;
    }
    .home-event__slider .slick-next,
    .home-event__slider-wrap .slick-next {
        right: calc(50% - 80px) !important;
        background-image: url('../img/arrow-right-sp.svg') !important;
    }
}

/* カスタムページネーション (01  /  02 形式) */
.home-event__pagination {
    font-family: "YakuHanJP", "helvetica-lt-pro", "Helvetica", sans-serif;
    color: var(--color-primary);
    text-align: center;
    line-height: 1;
    letter-spacing: 0.08em;
    white-space: pre;
}

/* PC: サムネ下に中央配置(さらに詰めてギリギリ近く) */
@media (min-width: 992px) {
    .home-event__pagination {
        font-size: 15px;
        margin-top: 6px;
    }
    .home-event__slider-wrap {
        padding-bottom: 6px;
    }
}

/* SP: 矢印と同じ行 (bottom:0) で縦中央揃え、下のセクションとは通常フローの距離に */
@media (max-width: 991px) {
    .home-event__pagination {
        font-size: 12px;
        position: absolute;
        left: 50%;
        bottom: 0;
        transform: translateX(-50%);
        margin: 0;
        height: 26px;
        line-height: 26px;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    /* slider 側に padding-bottom 30px を持たせているので wrap は 0 */
    .home-event__slider-wrap {
        padding-bottom: 0;
        margin-bottom: 0;
    }
}

/* ECOECO通信タイトル: PC時のみ 18px (SP側は既存 0.9375rem を維持) */
@media (min-width: 992px) {
    .home-ecoeco__title {
        font-size: 20px;
    }
}

/* ECOECO通信 PC時: 記事カードhoverで背景を薄オレンジに(SPは無効) */
@media (min-width: 992px) {
    .home-ecoeco__link {
        transition: background-color 0.2s ease;
    }
    .home-ecoeco__link:hover {
        background-color: rgba(232, 84, 0, 0.08);
    }
}

/* SP: EVENTカード 1行目と2行目の縦間隔を横間隔(16px)と揃える
   (.home-event__card 側の `margin: 0 !important` を上書きするため !important 必須)
   下段カードには margin-bottom を付けない → .slick-track の高さが膨らまず矢印距離を維持 */
@media (max-width: 991px) {
    .home-event__slider .event-card {
        margin-bottom: 0 !important;
    }
    /* Slick rows:2 で .slick-slide > div は各行を囲むラッパー。
       :first-child = 上段行 のカードにだけ margin-bottom を付与 */
    .home-event__slider .slick-slide > div:first-child .event-card {
        margin-bottom: 16px !important;
    }
}

/* SP: サムネと矢印の距離をさらに約20px詰める
   .slick-list にネガティブマージンを付け、コンテナ自体を上に寄せる
   (矢印は .home-event__slider の padding-bottom 領域に固定なので相対的に近づく) */
@media (max-width: 991px) {
    .home-event__slider .slick-list {
        margin-bottom: -15px !important;
    }
}

/* =============================================
   PRODUCTS XD準拠対応
   - 商品画像 contain (全体表示)
   - カード間隔0 + オレンジ縦点線
   - PC矢印を SP用SVG(arrow-*-sp.svg) 80px幅で流用
   - スコープは .home-products__slider に完全限定 (EVENTに一切影響させない)
   ============================================= */

/* 商品画像: 横に合わせて全体表示 + 背景白 */
.home-products__slider .home-products__card-img {
    background-color: #fff !important;
}
.home-products__slider .home-products__card-img img {
    object-fit: contain !important;
}

/* カード間隔を0に + カード右端にオレンジ縦点線 */
.home-products__slider .home-products__card {
    padding: 0 !important;
    border-right: 1px dashed var(--color-primary);
}

/* スライダー全体を上下点線で囲む (カード領域全体を枠にする) */
.home-products__slider-wrap .home-products__slider {
    border-top: 1px dashed var(--color-primary);
    border-bottom: 1px dashed var(--color-primary);
}

/* PC(≥992px): スライダー横幅拡張 + カード幅のみ設定 */
@media (min-width: 992px) {
    /* wrap の左右 padding を削減して画面幅いっぱいに近づける */
    .home-products__slider-wrap {
        padding: 0 24px;
    }

    /* カード幅を 280 → 320px に拡張 */
    .home-products__slider .home-products__card {
        width: 320px !important;
    }
}

/* =============================================
   PRODUCTS カード内テキスト装飾
   ============================================= */

/* PC: カテゴリ中央15px、タイトル中央20px、抜粋16px #373637、CTA右寄せ15px */
@media (min-width: 992px) {
    .home-products__slider .home-products__card-body {
        text-align: center;
    }
    .home-products__slider .home-products__card-cat {
        font-size: 15px;
    }
    .home-products__slider .home-products__card-title {
        font-size: 19px;
        letter-spacing: -0.04em;
        text-align: center;
    }
    .home-products__slider .home-products__card-desc {
        font-size: 17px;
        color: #373637;
        text-align: left;
    }
    .home-products__slider .home-products__card-cta {
        display: flex;
        justify-content: flex-end;
        font-size: 15px;
    }
}

/* SP: カテゴリ中央12px、タイトル中央16px、抜粋12px #373637、CTA右寄せ12px */
@media (max-width: 991px) {
    .home-products__slider .home-products__card-body {
        text-align: center;
    }
    .home-products__slider .home-products__card-cat {
        font-size: 12px;
    }
    .home-products__slider .home-products__card-title {
        font-size: 19px;
        letter-spacing: -0.04em;
        text-align: center;
    }
    .home-products__slider .home-products__card-desc {
        font-size: 13px;
        color: #373637;
        text-align: left;
    }
    .home-products__slider .home-products__card-cta {
        display: flex;
        justify-content: flex-end;
        font-size: 12px;
    }
}

/* ==========================================================================
   PRODUCTS スライダー 矢印・ページネーション (最終版・統一ブロック)
   XD準拠: 矢印とページネーションを同じ行に縦中央揃え
   ========================================================================== */

/* スライダーラップに下スペース確保 (PC 100px / SP 50px は下で調整) */
.home-products__slider-wrap {
    position: relative;
    padding-bottom: 100px;
}

/* 重要: slick.css が .slick-slider に position:relative を付与するため、
   矢印の絶対配置が slider 自体に吸着し、wrap 基準の bottom:24px が効かなくなる。
   slider を position:static に強制し、wrap を positioning ancestor にする。*/
.home-products__slider.slick-slider,
.home-products__slider {
    position: static !important;
}

/* ページネーション(JSが01 / XXを挿入) */
.home-products__pagination {
    position: absolute;
    left: 50%;
    bottom: 24px;
    transform: translateX(-50%);
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: "YakuHanJP", "helvetica-lt-pro", Helvetica, Arial, sans-serif;
    color: var(--color-primary);
    font-size: 15px;
    margin: 0;
    letter-spacing: 0.08em;
    white-space: pre;
}

/* PC: 矢印 80x50 (arrow-*-pc.svg 専用) + ページネーションと同じ行 */
@media (min-width: 992px) {
    .home-products__slider .slick-prev,
    .home-products__slider .slick-next {
        position: absolute;
        top: auto !important;
        bottom: 24px !important;
        transform: none !important;
        width: 80px;
        height: 50px;
        margin: 0;
        background-repeat: no-repeat;
        background-size: contain;
        background-position: center;
        background-color: transparent;
        border: none;
        border-radius: 0;
        z-index: 5;
    }
    .home-products__slider .slick-prev {
        left: calc(50% - 150px) !important;
        right: auto !important;
        background-image: url('../img/arrow-left-pc.svg');
    }
    .home-products__slider .slick-next {
        right: calc(50% - 150px) !important;
        left: auto !important;
        background-image: url('../img/arrow-right-pc.svg');
    }
    .home-products__slider .slick-prev::before,
    .home-products__slider .slick-next::before {
        content: none;
    }
}

/* SP: 矢印 40x26、ページネーションと同じ行に配置 */
@media (max-width: 991px) {
    .home-products__slider-wrap {
        padding-bottom: 50px;
    }
    .home-products__slider .slick-prev,
    .home-products__slider .slick-next {
        position: absolute;
        top: auto !important;
        bottom: 12px !important;
        transform: none !important;
        width: 40px;
        height: 26px;
        margin: 0;
        background-repeat: no-repeat;
        background-size: contain;
        background-position: center;
        background-color: transparent;
        border: none;
        border-radius: 0;
        z-index: 5;
    }
    .home-products__slider .slick-prev {
        left: calc(50% - 80px) !important;
        right: auto !important;
        background-image: url('../img/arrow-left-sp.svg');
    }
    .home-products__slider .slick-next {
        right: calc(50% - 80px) !important;
        left: auto !important;
        background-image: url('../img/arrow-right-sp.svg');
    }
    .home-products__slider .slick-prev::before,
    .home-products__slider .slick-next::before {
        content: none;
    }
    .home-products__pagination {
        bottom: 12px;
        height: 26px;
        font-size: 12px;
    }
}

/* SP: PRODUCTSスライダーと点線を画面幅いっぱいに拡張
   wrap を 100vw に、上下点線も画面端まで届くように。
   カード画像は画面端まで、テキスト部分は 16px の左右余白で読みやすさ確保。 */
@media (max-width: 991px) {
    .home-products__slider-wrap {
        margin-left: calc(50% - 50vw) !important;
        margin-right: calc(50% - 50vw) !important;
        width: 100vw !important;
        max-width: 100vw !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    /* 商品画像は画面幅いっぱい */
    .home-products__slider .home-products__card-img {
        padding: 0;
    }
    /* カード本体のテキスト部分のみ左右 16px 余白で読みやすさ確保 */
    .home-products__slider .home-products__card-body {
        padding-left: 16px;
        padding-right: 16px;
    }
}

/* ==========================================================================
   PEOPLE スライダー XD準拠カード + 矢印/ページネーションは PRODUCTS 準拠
   (2026-04-21)
   - カード外周1pxオレンジ枠、画像直下にフルワイド#E8E8E8カテゴリバー
   - テキスト左寄せ、padding 25px 30px
   - PC 4枚並び / SP 1枚並び
   - slider の position:static で wrap を positioning ancestor 化
   ========================================================================== */

/* Slick の .slick-slider { position:relative } を打ち消し、wrap を基準に */
.home-people__slider.slick-slider,
.home-people__slider {
    position: static !important;
}

/* スライダーラップ: 下余白確保 */
.home-people__slider-wrap {
    position: relative;
    padding-bottom: 100px;
}

/* ----- カード本体(XDデザイン) ----- */

/* カード外枠: 1px オレンジ枠 + 角丸5px、PRODUCTS と同じ幅320px (PC) */
@media (min-width: 769px) {
    .home-people__slider .home-people__card {
        width: 320px !important;
        padding: 0 10px !important;
        box-sizing: border-box;
    }
}
.home-people__slider .home-people__card-link {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--color-primary) !important;
    border-radius: 5px !important;
    background: #fff;
    height: 100%;
    overflow: hidden;
    text-decoration: none;
    transition: box-shadow 0.3s ease;
}
.home-people__slider .home-people__card-link:hover {
    box-shadow: none;
    transform: none;
}

/* サムネ: 横幅100% 高さ固定(アスペクト比3:2) */
.home-people__slider .home-people__card-img {
    width: 100%;
    aspect-ratio: 3 / 2;
    overflow: hidden;
    background: var(--color-bg-primary);
}
.home-people__slider .home-people__card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* カテゴリバー: 画像直下、#E8E8E8 背景、オレンジ文字、中央寄せ、フル幅 (詰め気味) */
.home-people__slider .home-people__card-cat-bar {
    background: #E8E8E8;
    text-align: center;
    padding: 4px 0;
    line-height: 1.4;
}
.home-people__slider .home-people__card-cat {
    display: inline-block;
    background: transparent !important;
    color: var(--color-primary) !important;
    font-weight: 500;
    padding: 0 !important;
    letter-spacing: 0.05em;
    line-height: 1.4;
}

/* テキストエリア: 上下25px 左右30px, 左寄せ */
.home-people__slider .home-people__card-body {
    padding: 25px 30px !important;
    flex: 1;
    display: flex;
    flex-direction: column;
    text-align: left !important;
}
.home-people__slider .home-people__card-title {
    text-align: left !important;
    color: #373637 !important;
    margin: 0 0 12px !important;
    font-weight: 700;
    line-height: 1.3 !important;
}
.home-people__slider .home-people__card-desc {
    text-align: left;
    color: #373637;
    flex: 1;
    margin: 0 0 16px;
    line-height: 1.7;
}
.home-people__slider .home-people__card-cta {
    text-align: right;
    color: var(--color-primary);
    display: block;
    margin-top: auto;
    align-self: flex-end;
    justify-content: flex-end;
}

/* ページネーション (JSが 01  /  XX を挿入) */
.home-people__pagination {
    position: absolute;
    left: 50%;
    bottom: 24px;
    transform: translateX(-50%);
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: "YakuHanJP", "helvetica-lt-pro", Helvetica, Arial, sans-serif;
    color: var(--color-primary);
    font-size: 15px;
    margin: 0;
    letter-spacing: 0.08em;
    white-space: pre;
}

/* PC: 矢印 80x50 (arrow-*-pc.svg) + ページネーションと同じ行に縦中央揃え */
@media (min-width: 992px) {
    .home-people__slider .slick-prev,
    .home-people__slider .slick-next {
        position: absolute;
        display: block !important;
        top: auto !important;
        bottom: 24px !important;
        transform: none !important;
        width: 80px;
        height: 50px;
        margin: 0;
        background-repeat: no-repeat;
        background-size: contain;
        background-position: center;
        background-color: transparent;
        border: none;
        border-radius: 0;
        z-index: 5;
    }
    .home-people__slider .slick-prev {
        left: calc(50% - 150px) !important;
        right: auto !important;
        background-image: url('../img/arrow-left-pc.svg');
    }
    .home-people__slider .slick-next {
        right: calc(50% - 150px) !important;
        left: auto !important;
        background-image: url('../img/arrow-right-pc.svg');
    }
    .home-people__slider .slick-prev::before,
    .home-people__slider .slick-next::before {
        content: none;
    }

    /* カード内テキスト装飾 (PC): カテゴリ15px / タイトル左18px / 抜粋左14px #373637 / CTA右14px */
    .home-people__slider .home-people__card-cat {
        font-size: 15px;
    }
    .home-people__slider .home-people__card-title {
        font-size: 19px;
        letter-spacing: -0.04em;
    }
    .home-people__slider .home-people__card-desc {
        font-size: 15px;
    }
    .home-people__slider .home-people__card-cta {
        font-size: 14px;
    }
}

/* SP: 矢印 40x26 (arrow-*-sp.svg) + 小サイズテキスト装飾 */
@media (max-width: 991px) {
    .home-people__slider-wrap {
        padding-bottom: 50px;
    }
    .home-people__pagination {
        bottom: 12px;
        height: 26px;
        font-size: 13px;
    }
    .home-people__slider .slick-prev,
    .home-people__slider .slick-next {
        position: absolute;
        display: block !important;
        top: auto !important;
        bottom: 12px !important;
        transform: none !important;
        width: 40px;
        height: 26px;
        margin: 0;
        background-repeat: no-repeat;
        background-size: contain;
        background-position: center;
        background-color: transparent;
        border: none;
        border-radius: 0;
        z-index: 5;
    }
    .home-people__slider .slick-prev {
        left: calc(50% - 80px) !important;
        right: auto !important;
        background-image: url('../img/arrow-left-sp.svg');
    }
    .home-people__slider .slick-next {
        right: calc(50% - 80px) !important;
        left: auto !important;
        background-image: url('../img/arrow-right-sp.svg');
    }
    .home-people__slider .slick-prev::before,
    .home-people__slider .slick-next::before {
        content: none;
    }

    /* カード内テキスト装飾 (SP): カテゴリ12px / タイトル左16px / 抜粋左12px / CTA右12px */
    .home-people__slider .home-people__card-cat {
        font-size: 12px;
    }
    .home-people__slider .home-people__card-title {
        font-size: 19px;
        letter-spacing: -0.04em;
    }
    .home-people__slider .home-people__card-desc {
        font-size: 13px;
    }
    .home-people__slider .home-people__card-cta {
        font-size: 12px;
    }
    /* SP時 テキスト領域を詰め気味に */
    .home-people__slider .home-people__card-body {
        padding: 20px 16px !important;
    }
}

/* =========================================
   中ページ共通ヘッダー(うすオレンジ枠 + パンクズ)
   ========================================= */
.page-header {
    position: relative;
    height: 144px;
    background: #FED8C7;
    overflow: hidden;
}
.page-header__inner {
    position: relative;
    height: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
}
.page-header__en {
    position: absolute;
    left: 50%;
    bottom: -0.15em;
    transform: translateX(-50%);
    font-family: "YakuHanJP", var(--font-jp);
    font-size: 144px;
    line-height: 1;
    font-weight: bold;
    color: #FFFFFF;
    margin: 0;
    white-space: nowrap;
}
.page-header__jp {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    font-family: "YakuHanJP", var(--font-jp);
    font-size: 26px;
    font-weight: bold;
    color: var(--color-primary);
    margin: 0;
    z-index: 2;
}

.page-breadcrumb {
    padding: 16px 0;
}
.page-breadcrumb__inner {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
    font-size: 14px;
    color: var(--color-primary);
}
.page-breadcrumb__inner,
.page-breadcrumb__inner a,
.page-breadcrumb__inner a:visited,
.page-breadcrumb__inner span {
    color: var(--color-primary) !important;
    text-decoration: none;
}
.page-breadcrumb__inner a:hover {
    text-decoration: underline;
}

@media (max-width: 991px) {
    /* SPトップバー(中ページは min-height:56px、L377-379)が page-header 上部を
       覆うため、中ページのみ 56px の上オフセットを確保。
       TOPページのFV透過設計は影響させない。*/
    .page-header {
        height: 65px;
        margin-top: 56px;
    }
    .page-header__en {
        font-size: 65px;
    }
    .page-header__jp {
        font-size: 18px;
    }
    .page-breadcrumb__inner {
        padding: 0 20px;
        font-size: 12px;
    }
}

/* =========================================
   スムーズスクロール(全アンカー)
   ========================================= */
html {
    scroll-behavior: smooth;
}

/* =========================================
   single-event ページ
   ========================================= */

/* .page-header 上の空白 safety reset(PC 限定)
   SP では @media (max-width: 991px) で margin-top: 56px (SPトップバー分)
   を確保する必要があるため、このリセットを PC 限定にラップする。 */
@media (min-width: 992px) {
    .page-header {
        margin-top: 0;
    }
}

/* ラッパー(画面端まで貫通する点線を出すため padding は持たせない) */
.single-event {
    padding: 0 0 120px;
}
/* コンテンツ幅制御: 左 110px / 右 40px パディング */
.single-event__inner {
    max-width: none;
    margin: 0;
    padding: 0 40px 0 calc(var(--sidebar-width) + 70px);
    box-sizing: border-box;
}

/* メイン画像 */
.single-event__main-image {
    max-width: 800px;
    margin: 40px 0 40px;
}
.single-event__main-image img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 5px;
}

/* 画面端まで貫通するオレンジ点線(inner の外に配置)。
   margin を 0 にして body-row 周囲 inner の padding-top/bottom で
   余白を取り、縦の区切り線(widgets::before)が hr まで接触できるようにする。*/
.single-event__hr {
    border: none !important;
    margin: 0 !important;
    width: 100%;
    height: 1px !important;
    background-image: linear-gradient(to right, var(--color-primary) 50%, rgba(255, 255, 255, 0) 50%) !important;
    background-size: 8px 1px !important;
    background-repeat: repeat-x !important;
    background-position: bottom !important;
    background-color: transparent;
    opacity: 1 !important;
}

/* body-row をラップしている __inner にだけ 上下 40px 余白を持たせる
   (他の __inner=main-image / header-row / back-link には影響しない) */
.single-event__inner:has(.single-event__body-row) {
    padding-top: 40px;
    padding-bottom: 40px;
}

/* 上段: 日付/カテゴリ/タイトル  +  メタ情報
   padding-bottom で左右カラムの高い方の下端から hr までの間隔 30px を確保 */
.single-event__header-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: start;
    padding-bottom: 30px;
}
.single-event__header-left {
    min-width: 0;
}
.single-event__header-right {
    min-width: 0;
    border-top: 1px dashed #000;
    border-bottom: 1px dashed #000;
}

/* 日付 */
.single-event__date {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 20px;
    font-weight: bold;
    color: var(--color-primary);
    margin: 0 0 12px;
}

/* カテゴリバッジ */
.single-event__category {
    display: inline-block;
    padding: 5px 12px 5px;
    border-radius: 5px;
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 12px;
    font-weight: bold;
    margin: 0 0 6px;
}

/* タイトル(h2) */
.single-event__title {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 24px;
    font-weight: bold;
    color: var(--color-text);
    margin: 0;
    line-height: 1.5;
}

/* メタ情報(時間・場所・備考): 各項目を padding で仕切り、項目間に黒点線 */
.single-event__meta-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    color: #373637;
    margin: 0;
    padding: 8px 0;
}
.single-event__meta-item + .single-event__meta-item {
    border-top: 1px dashed #000;
}
.single-event__icon {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    object-fit: contain;
}

/* 下段: 本文 + ウィジット。align-items を削除して grid 既定(stretch)に戻し、
   本文カラムとウィジットカラムの高さを揃える。これで本文カラム内の
   「一覧へ戻る」を margin-top: auto で下端に押し出せる。*/
.single-event__body-row {
    display: grid;
    grid-template-columns: minmax(0, 1000px) 1fr;  /* 本文は最大1000px・余りはウィジット列へ */
    gap: 0;
}
/* body を flex column 化して内部の content/back を縦並びに */
.single-event__body {
    min-width: 0;
    padding-right: 40px;  /* 縦線との間隔 */
    display: flex;
    flex-direction: column;
}

/* 本文 */
.single-event__content {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    line-height: 1.8;
    color: var(--color-text);
}
.single-event__content h3 {
    font-size: 20px;
    font-weight: bold;
    margin: 32px 0 16px;
}
.single-event__content p {
    font-size: 16px;
    line-height: 1.8;
    margin: 0 0 16px;
}

/* 右ウィジット: 本文との境界縦線は ::before で実装(上下 hr まで接触させる)。
   width は削除して grid セル(1fr)の幅に追従させる。*/
.single-event__widgets {
    box-sizing: border-box;
    padding-left: 40px;
    position: relative;
}
/* 縦の区切り線: widgets の左端から、body-row 周囲 inner の上下 padding(40px)
   分だけはみ出して、上下の __hr に接触する */
.single-event__widgets::before {
    content: "";
    position: absolute;
    left: 0;
    top: -40px;
    bottom: -40px;
    width: 0;
    border-left: 1px dashed var(--color-primary);
}
/* 各ウィジット: 区切り線は ::after で描画。左端は widgets::before と接触、
   右端は viewport 右端まで伸ばす(body-row 周囲 inner の padding-right 40px を
   負方向に打ち消す)*/
.event-widget {
    margin: 0;
    padding: 24px 0;
    background: transparent;
    border-radius: 0;
    position: relative;
}
.event-widget:first-child {
    padding-top: 0;
}
.event-widget:last-child {
    padding-bottom: 0;
}
.event-widget:not(:last-child)::after {
    content: "";
    position: absolute;
    left: -40px;
    right: -40px;
    bottom: 0;
    border-top: 1px dashed var(--color-primary);
}
.event-widget__title {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 17px;
    font-weight: bold;
    color: var(--color-primary);
    margin: 0 0 16px;
}

/* 一覧へ戻る: flex column の中で margin-top: auto により本文エリア下端中央に。
   さらに transform で下方向に少し押し下げて、下端 hr に近づける。*/
.single-event__back {
    text-align: center;
    margin: auto 0 0;
    transform: translateY(24px);
}
.single-event__back a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    color: var(--color-primary);
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 17px;
    font-weight: bold;
}
.single-event__back a:hover {
    opacity: 0.7;
}
.single-event__back-icon {
    width: 24px;
    height: 24px;
}

/* ウィジット: イベントカテゴリ */
.event-widget__category-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.event-widget__category-link {
    display: inline-block;
    padding: 6px 14px;
    border-radius: 5px;
    text-decoration: none;
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 13px;
    font-weight: bold;
    transition: opacity 0.2s;
}
.event-widget__category-link:hover {
    opacity: 0.8;
}

/* ウィジット: 月別アーカイブ */
.event-widget__archive-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.event-widget__archive-item {
    margin: 0 0 12px;
}
.event-widget__archive-item a {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    font-weight: bold;
    color: #373637;
    text-decoration: none;
}
.event-widget__archive-item a:hover {
    color: var(--color-primary);
    text-decoration: underline;
}

/* ウィジット: 検索 */
.event-widget__search-form {
    display: flex;
    gap: 8px;
    width: 100%;
    max-width: 500px;  /* 広がりすぎ防止 */
}
.event-widget__search-input {
    flex: 1;
    min-width: 0;
    padding: 10px 12px;
    border: 1px solid #CCC;
    border-radius: 5px;
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 15px;
}
.event-widget__search-btn {
    flex-shrink: 0;  /* ボタンは縮まない */
    padding: 10px 24px;
    background: #373637;
    color: #FFFFFF;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 15px;
    font-weight: bold;
}
.event-widget__search-btn:hover {
    opacity: 0.85;
}

/* SP */
@media (max-width: 991px) {
    .single-event {
        padding: 0 0 80px;
    }
    .single-event__inner {
        padding: 0 20px;
    }
    .single-event__main-image {
        max-width: 100%;
        margin: 24px 0;
    }
    /* SP: hr 前後の余白は __inner padding で管理。ここでは 0 のまま */
    .single-event__inner:has(.single-event__body-row) {
        padding-top: 24px;
        padding-bottom: 24px;
    }
    .single-event__header-row {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    .single-event__body-row {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    .single-event__body {
        padding-right: 0;  /* SP: 縦線解除 */
    }
    .single-event__widgets {
        width: 100%;
        padding-left: 0;
        padding-top: 30px;  /* 上の横点線との間隔 */
    }
    /* SP: PC の縦点線(border-left)を解除し、ウィジット上端に
       画面端まで貫通する横点線に作り替える(一覧へ戻る と イベントカテゴリ の境界)*/
    .single-event__widgets::before {
        display: block;
        border-left: none;
        top: 0;
        bottom: auto;
        left: -20px;      /* .single-event__inner の padding-left: 20px を打ち消し */
        right: -20px;     /* 同 padding-right: 20px を打ち消し */
        width: auto;      /* base の width: 0 を解除 */
        height: 1px;
        background-image: linear-gradient(to right, var(--color-primary) 50%, rgba(255, 255, 255, 0) 50%);
        background-size: 8px 1px;
        background-repeat: repeat-x;
        background-position: bottom;
    }
    /* SP: ウィジット区切り線も画面端まで貫通 */
    .event-widget:not(:last-child)::after {
        left: -20px;
        right: -20px;
    }
    /* SP: 「一覧へ戻る」と下の .single-event__hr の間の余白 */
    .single-event__back {
        margin-bottom: 24px;
    }
    .single-event__date {
        font-size: 24px;
    }
    .single-event__title {
        font-size: 22px;
    }
    .single-event__meta-item {
        font-size: 15px;
    }
}

/* ==========================================================================
   PICK UPイベント セクション(single-event 専用)
   ========================================================================== */

.single-event__pickup {
    padding: 40px 0 0;
}

.single-event__pickup-inner {
    max-width: none;
    margin: 0;
    padding: 0 40px 0 calc(var(--sidebar-width) + 70px);
    box-sizing: border-box;
}

.single-event__pickup-title {
    text-align: center;
    font-size: 24px;
    font-weight: 700;
    margin: 0 0 40px;
    font-family: "YakuHanJP", var(--font-en);
    letter-spacing: 0.05em;
}

/* PC: Grid auto-fill レイアウト(ウィンドウ幅で列数自動変動)。
   1 行に収まる分だけ表示、2 行目以降は grid-auto-rows: 0 + overflow: hidden
   でクリップする(ウィンドウを広げるほど表示数が増える)。*/
@media (min-width: 992px) {
    .single-event__pickup-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
        grid-template-rows: auto;
        grid-auto-rows: 0;
        overflow: hidden;
        gap: 24px;
    }
    .single-event__pickup-pagination {
        display: none;
    }
}

/* カード共通 */
.pickup-card {
    display: block;
    text-decoration: none;
    color: inherit;
    background: #E8E8E8;
    border-radius: 5px;
    overflow: hidden;
    transition: box-shadow 0.25s ease, transform 0.25s ease;
}
.pickup-card:hover {
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
    transform: translateY(-4px);
    color: inherit;  /* Bootstrap a:hover #0a58ca を打ち消し */
}
.pickup-card:hover .pickup-card__title,
.pickup-card:hover .pickup-card__meta,
.pickup-card:hover .pickup-card__meta span {
    color: inherit;
}

.pickup-card__img {
    position: relative;
    aspect-ratio: 16 / 11;
    background: #fff;
    overflow: hidden;
}

.pickup-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}
.pickup-card:hover .pickup-card__img img {
    transform: scale(1.03);
}

.pickup-card__category {
    position: absolute;
    top: 0;
    left: 0;
    padding: 6px 12px;
    font-size: 12px;
    border-radius: 0 0 5px 0;
    z-index: 1;
}

.pickup-card__body {
    padding: 16px;
}

.pickup-card__date {
    color: var(--color-primary);
    font-weight: 700;
    font-size: 16px;
    margin: 0 0 8px;
    font-family: "YakuHanJP", var(--font-en);
}

.pickup-card__title {
    font-size: 16px;
    font-weight: 700;
    margin: 0 0 12px;
    line-height: 1.5;
}

.pickup-card__meta {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    font-size: 14px;
    margin: 0 0 4px;
    line-height: 1.5;
}

.pickup-card__meta span {
    font-size: 14px;
}

.pickup-card__icon {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    margin-top: 2px;
}

/* SP用: 次のステップで Slick 対応追加。暫定は grid 2列。 */
@media (max-width: 991px) {
    .single-event__pickup {
        padding: 30px 0 0;
    }
    .single-event__pickup-inner {
        padding: 0 20px;
    }
    .single-event__pickup-title {
        font-size: 20px;
        margin-bottom: 24px;
    }
    .single-event__pickup-grid {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }
    .single-event__pickup-pagination {
        display: none;
    }
}

/* ==========================================================================
   PRODUCTS アーカイブ(XD準拠: 1カラム縦並び + 右サイドバー)
   ========================================================================== */

/* <main class="products-archive"> 自体は main-offset で margin-left: 240px 済 */
.products-archive {
    padding-bottom: 0;
}

/* ページヘッダは共通 template-parts/page-header.php(.page-header /
   .page-breadcrumb)に統一済。独自 .archive-header / __breadcrumb は
   廃止。 */

/* 2カラム layout:
   - メイン: minmax(0, 1000px) = 最大 1000px まで可変
   - サイドバー: minmax(280px, 1fr) = 最小 280px、メインが 1000px に達したら
     残りを全て占有
   max-width: none で画面幅フル使用(左寄せ)。gap: 60px。
   縦区切り線は .products-sidebar::before に移譲(padding-left 60 の内側左端)。*/
.products-archive .products-layout {
    display: grid;
    grid-template-columns: minmax(0, 1000px) minmax(280px, 1fr);
    gap: 60px;
    max-width: none;
    margin: 0 0 80px 0;
    padding: 0 40px 0 60px;
}
@media (max-width: 991px) {
    .products-archive .products-layout {
        grid-template-columns: 1fr;
        gap: 40px;
        padding: 0 20px;
        margin-bottom: 40px;
    }
    /* SP: サイドバー縦線と padding-left を解除 */
    .products-archive .products-sidebar {
        padding-left: 0;
    }
    .products-archive .products-sidebar::before {
        display: none;
    }
}

/* ==========================================================================
   メインエリア: 1カラム縦並び
   ========================================================================== */
.products-archive .products-main { min-width: 0; }
.products-archive .products-list {
    border-top: 1px dashed var(--color-primary);
}
.products-archive .products-item {
    border-bottom: 1px dashed var(--color-primary);
    padding: 30px 0 20px;
}
.products-archive .products-item__link {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 30px;
    text-decoration: none;
    color: inherit;
    align-items: start;
}
.products-archive .products-item__link:hover { color: inherit; }
@media (max-width: 767px) {
    .products-archive .products-item__link {
        grid-template-columns: 120px 1fr;
        gap: 15px;
    }
}

.products-archive .products-item__thumb {
    width: 100%;
    aspect-ratio: 3 / 2;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.products-archive .products-item__img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
}

.products-archive .products-item__body { min-width: 0; }
.products-archive .products-item__category {
    display: inline-block;
    background: var(--color-primary);
    color: #fff;
    font-size: 13px;
    font-weight: bold;
    padding: 4px 12px;
    border-radius: 15px;
    margin-bottom: 10px;
}
.products-archive .products-item__title {
    font-size: 22px;
    font-weight: bold;
    margin: 0 0 12px;
    line-height: 1.4;
    color: var(--color-text);
}
.products-archive .products-item__excerpt {
    font-size: 15px;
    line-height: 1.7;
    color: var(--color-text);
    margin-bottom: 18px;
}
.products-archive .products-item__excerpt p { margin: 0 0 8px; }
.products-archive .products-item__more {
    text-align: right;
    color: var(--color-primary);
    font-size: 14px;
    font-weight: bold;
}
/* 内部 <a>: Bootstrap の a デフォルト青+下線を打ち消し、TOP の CTA と統一 */
.products-archive .products-item__more a {
    display: inline-block;
    color: var(--color-primary);
    text-decoration: none;
    font-weight: inherit;
    letter-spacing: 0.05em;
    transition: opacity 0.2s;
}
.products-archive .products-item__more a:hover {
    color: var(--color-primary);
    text-decoration: none;
    opacity: 0.7;
}
@media (max-width: 767px) {
    .products-archive .products-item__category { font-size: 11px; padding: 3px 10px; }
    .products-archive .products-item__title { font-size: 16px; margin-bottom: 8px; }
    .products-archive .products-item__excerpt { font-size: 13px; margin-bottom: 10px; }
    .products-archive .products-item__more { font-size: 12px; }
}

/* もっと見るボタン */
.products-archive .products-more-wrap {
    text-align: center;
    margin-top: 40px;
}
.products-archive .products-more-btn {
    padding: 15px 60px;
    border: 1px solid var(--color-primary);
    background: #fff;
    color: var(--color-primary);
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 15px;
    font-weight: bold;
    cursor: pointer;
    border-radius: 30px;
    transition: all 0.2s;
}
.products-archive .products-more-btn:hover:not(:disabled) {
    background: var(--color-primary);
    color: #fff;
}
.products-archive .products-more-btn:disabled {
    opacity: 0.5;
    cursor: wait;
}

/* ==========================================================================
   サイドバー (2ブロック: 検索 + PICK UP、ブロック間を点線で区切り)
   ========================================================================== */
.products-archive .products-sidebar {
    min-width: 0;
    position: relative;
}
/* PC のみ padding-left: 30px を適用。SP オーバーライド(L5039)が source
   order でここより前にあるため、padding-left を PC 限定に分離する必要がある。*/
@media (min-width: 992px) {
    .products-archive .products-sidebar {
        padding-left: 30px;  /* 縦線からウィジットコンテンツまで 30px */
    }
}
/* 縦区切り線: サイドバー要素の左端に描画。gap 60px の右端 = サイドバー
   padding-left 60 の左端。上下は main 上端〜下端をまたいで延ばす。 */
.products-archive .products-sidebar::before {
    content: '';
    position: absolute;
    top: -56px;           /* breadcrumb 高さ分上へ → 薄オレンジ帯直下まで */
    bottom: -80px;        /* layout margin-bottom 相殺 → ITOKO GROUP 直上まで */
    left: 0;
    width: 0;
    border-left: 1px dashed var(--color-primary);
    pointer-events: none;
}
.products-archive .products-sidebar__block {
    padding-bottom: 30px;
    margin-bottom: 30px;
    border-bottom: none;
    position: relative;
}
.products-archive .products-sidebar__block:last-child {
    padding-bottom: 0;
    margin-bottom: 0;
}
/* 検索ブロック下の区切り線: 左端=サイドバー左端(縦線位置)、右端=viewport 右端。
   width: 100vw は body 横スクロールの原因になるため廃止。代わりに親の
   padding を負オフセットで相殺して viewport 端まで届かせる(overflow 不要)。*/
.products-archive .products-sidebar__block--search::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: -30px;   /* .products-sidebar padding-left: 30px を打ち消し */
    right: -40px;  /* .products-layout padding-right: 40px を打ち消し → viewport 右端 */
    border-bottom: 1px dashed var(--color-primary);
    pointer-events: none;
}
@media (max-width: 991px) {
    /* SP: layout padding 0 20px、sidebar padding-left: 0。左右を -20px で
       打ち消して viewport 左右端まで届かせる(横スクロール発生せず)。*/
    .products-archive .products-sidebar__block--search::after {
        left: -20px;
        right: -20px;
    }
}
.products-archive .products-sidebar__title {
    color: var(--color-primary);
    font-size: 16px;
    font-weight: bold;
    margin: 0 0 15px;
}

/* 商品カテゴリ フィルター(メインエリア上部配置) */
.products-archive .products-main .products-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    margin: 20px 0 40px;
}
.products-archive .products-main .products-filter__tab {
    padding: 4px 12px;
    border: none;
    border-radius: 15px;
    background: var(--color-primary);
    color: #fff;
    font-family: "YakuHanJP", inherit;
    font-size: 13px;
    font-weight: bold;
    line-height: 1.6;   /* <div>.products-item__category と縦方向のサイズを揃える */
    cursor: pointer;
    transition: opacity 0.2s;
}
.products-archive .products-main .products-filter__tab:hover:not(.is-active) {
    opacity: 0.85;
}
.products-archive .products-main .products-filter__tab--all {
    background: #FFFF99;
    color: #373637;
}
.products-archive .products-main .products-filter__tab.is-active {
    background: #FFFF99 !important;
    color: #373637 !important;
}
.products-archive .products-main .products-filter__tab--all:not(.is-active) {
    background: #E8E8E8;
    color: #373637;
}
@media (max-width: 767px) {
    .products-archive .products-main .products-filter__tab {
        padding: 8px 16px;
        font-size: 12px;
    }
}

/* 検索フォーム(EVENT ウィジット .event-widget__search-* と同値に統一) */
.products-archive .products-search {
    display: flex;
    gap: 8px;
    width: 100%;
}
.products-archive .products-search__input {
    flex: 1;
    min-width: 0;
    padding: 10px 12px;
    border: 1px solid #CCC;
    border-radius: 5px;
    font-family: "YakuHanJP", inherit;
    font-size: 15px;
}
.products-archive .products-search__btn {
    flex-shrink: 0;
    padding: 10px 24px;
    background: #373637;
    color: #FFF;
    border: none;
    border-radius: 5px;
    font-family: "YakuHanJP", inherit;
    font-size: 15px;
    font-weight: bold;
    cursor: pointer;
    transition: opacity 0.2s;
}
.products-archive .products-search__btn:hover {
    opacity: 0.85;
}

/* PICK UP 商品 */
.products-archive .products-sidebar__pickup-item {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 16px;
    padding: 12px 0;
    text-decoration: none;
    color: inherit;
    align-items: center;
    border-bottom: 1px dashed #e0e0e0;
}
.products-archive .products-sidebar__pickup-item:last-child {
    border-bottom: none;
}
.products-archive .products-sidebar__pickup-item:hover { color: inherit; }
.products-archive .products-sidebar__pickup-thumb {
    width: 120px;
    aspect-ratio: 3 / 2;
    height: auto;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.products-archive .products-sidebar__pickup-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.products-archive .products-sidebar__pickup-cat {
    display: inline-block;
    background: var(--color-primary);
    color: #fff;
    font-size: 13px;
    font-weight: bold;
    padding: 3px 8px;
    border-radius: 12px;
    margin-bottom: 4px;
}
.products-archive .products-sidebar__pickup-title {
    font-size: 16px;
    font-weight: bold;
    margin: 0;
    color: var(--color-text);
    line-height: 1.4;
}

/* ==========================================================================
   SP: カテゴリバッジ 3 種(フィルター / カード上 / PICK UP)を統一スタイルに
   ========================================================================== */
@media (max-width: 991px) {
    .products-archive .products-main .products-filter__tab,
    .products-archive .products-item__category,
    .products-archive .products-sidebar__pickup-cat {
        display: inline-block;
        background: var(--color-primary);
        color: #fff;
        font-size: 13px;
        font-weight: bold;
        padding: 3px 8px;
        border-radius: 12px;
        margin-bottom: 4px;
    }
}

/* ==========================================================================
   SP: 商品カード間の区切り点線を画面端まで延長
   ========================================================================== */
@media (max-width: 991px) {
    /* 最初のカード上端の線(.products-list border-top)を擬似要素で画面端まで */
    .products-archive .products-list {
        border-top: none;
        position: relative;
    }
    .products-archive .products-list::before {
        content: '';
        position: absolute;
        top: 0;
        left: -20px;   /* .products-layout padding-left: 20px を相殺 */
        right: -20px;  /* .products-layout padding-right: 20px を相殺 */
        border-top: 1px dashed var(--color-primary);
        pointer-events: none;
    }
    /* 各カード下端の線(.products-item border-bottom)を擬似要素で画面端まで */
    .products-archive .products-item {
        border-bottom: none;
        position: relative;
    }
    .products-archive .products-item::after {
        content: '';
        position: absolute;
        bottom: 0;
        left: -20px;
        right: -20px;
        border-bottom: 1px dashed var(--color-primary);
        pointer-events: none;
    }
}

/* ==========================================================================
   商品詳細ページ(single-products) - PICK UP商品の詳細

   <main> には .products-archive クラスを付与(archive-products と同じ外枠)。
   main-offset(margin-left: 240px) と padding-bottom:0 の挙動を踏襲し、
   page-header / .site-group / .site-footer 等の外側共通要素の位置を
   archive-products と完全一致させる。

   中身の余白・最大幅は .single-products__inner で制御する。
   外側 <main> には一切のサイズ指定を足さない。
   ========================================================================== */
.single-products__inner {
    max-width: 1000px;
    margin: 0 auto;
    padding: 40px 40px 80px;
    box-sizing: border-box;
}

/* アイキャッチ画像(W800px 中央寄せ) */
.single-products__thumb {
    max-width: 800px;
    margin: 0 auto 40px;
    text-align: center;
}
.single-products__img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}

/* カテゴリバッジ */
.single-products__category-wrap {
    text-align: center;
    margin-bottom: 20px;
}
.single-products__category {
    display: inline-block;
    background: var(--color-primary);
    color: #fff;
    font-size: 14px;
    font-weight: bold;
    padding: 4px 12px;
    border-radius: 15px;
}

/* タイトル(h1) */
.single-products__title {
    font-size: 32px;
    font-weight: bold;
    text-align: center;
    margin: 0 0 30px;
    line-height: 1.4;
    color: var(--color-text);
}

/* 区切り線 */
.single-products__divider {
    border: none;
    border-top: 1px dashed var(--color-primary);
    margin: 30px 0 40px;
}

/* 本文エリア */
.single-products__content {
    font-size: 16px;
    line-height: 1.8;
    color: var(--color-text);
}
.single-products__content p {
    font-size: 16px;
    margin-bottom: 1.5em;
}
.single-products__content img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 1em auto;
}
.single-products__content h2 {
    font-size: 22px;
    font-weight: bold;
    margin: 40px 0 20px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--color-primary);
}
.single-products__content h3 {
    font-size: 18px;
    font-weight: bold;
    margin: 30px 0 15px;
    color: var(--color-primary);
}
.single-products__content ul,
.single-products__content ol {
    margin: 0 0 1.5em 1.5em;
}
.single-products__content li {
    margin-bottom: 0.5em;
}
.single-products__content a {
    color: var(--color-primary);
    text-decoration: underline;
}
.single-products__content a:hover {
    opacity: 0.7;
    text-decoration: none;
}

/* SP */
@media (max-width: 991px) {
    .single-products__inner {
        padding: 30px 20px 40px;
    }
    .single-products__thumb {
        margin: 0 auto 24px;
    }
    .single-products__title {
        font-size: 22px;
        margin: 0 0 20px;
    }
    .single-products__category {
        font-size: 12px;
        padding: 3px 12px;
    }
    .single-products__divider {
        margin: 20px 0 24px;
    }
    .single-products__content,
    .single-products__content p {
        font-size: 14px;
    }
    .single-products__content h2 {
        font-size: 18px;
        margin: 28px 0 14px;
    }
    .single-products__content h3 {
        font-size: 16px;
        margin: 20px 0 10px;
    }
}

/* ==========================================================================
   FV キャッチコピー アニメーション
   英語タイトル→日本語サブタイトルを 1文字ずつ揺れながらフェードイン
   JS(custom.js)が .char span で包み、animation-delay を個別付与する
   ========================================================================== */
.fv__copy-en .char,
.fv__copy-jp .char {
    display: inline-block;
    opacity: 0;
    transform: translateY(20px) rotate(-5deg);
    will-change: transform, opacity;
    /* 初期状態では animation 未指定。is-animate 付与後にのみ発火 */
}

.fv__copy-en.is-animate .char,
.fv__copy-jp.is-animate .char {
    animation: heroCharIn 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

@keyframes heroCharIn {
    0% {
        opacity: 0;
        transform: translateY(20px) rotate(-5deg);
    }
    50% {
        opacity: 0.7;
        transform: translateY(-3px) rotate(2deg);
    }
    100% {
        opacity: 1;
        transform: translateY(0) rotate(0);
    }
}

/* アクセシビリティ: 動きを抑えたい設定の場合は即時表示 */
@media (prefers-reduced-motion: reduce) {
    .fv__copy-en .char,
    .fv__copy-jp .char {
        opacity: 1 !important;
        transform: none !important;
        animation: none !important;
    }
}

/* ==========================================================================
   Slick 矢印 hover/focus で SVG が消える問題の対策
   原因: vendor slick-theme.css L44-52 に
     .slick-prev:hover, .slick-next:hover { background: transparent; }
   がある。background shorthand は background-image:none も含むため、
   custom.css 側で指定した url('../img/arrow-*.svg') が hover で消える。
   対策: 各スライダーの hover/focus 状態で background-image を !important で再指定。
   併せて軽いフェード演出(opacity 0.8)だけ入れる。
   ========================================================================== */

/* 全スライダー共通: hover/focus 時に background-color を維持しつつ opacity で弱い演出 */
.home-event__slider .slick-prev,
.home-event__slider .slick-next,
.home-event__slider-wrap .slick-prev,
.home-event__slider-wrap .slick-next,
.home-products__slider .slick-prev,
.home-products__slider .slick-next,
.home-people__slider .slick-prev,
.home-people__slider .slick-next {
    transition: opacity 0.2s ease;
}
.home-event__slider .slick-prev:hover,
.home-event__slider .slick-next:hover,
.home-event__slider .slick-prev:focus,
.home-event__slider .slick-next:focus,
.home-event__slider-wrap .slick-prev:hover,
.home-event__slider-wrap .slick-next:hover,
.home-event__slider-wrap .slick-prev:focus,
.home-event__slider-wrap .slick-next:focus,
.home-products__slider .slick-prev:hover,
.home-products__slider .slick-next:hover,
.home-products__slider .slick-prev:focus,
.home-products__slider .slick-next:focus,
.home-people__slider .slick-prev:hover,
.home-people__slider .slick-next:hover,
.home-people__slider .slick-prev:focus,
.home-people__slider .slick-next:focus {
    background-color: transparent !important;
    opacity: 0.8;
}

/* EVENT: PC(≥992px)= arrow-left.svg / arrow-right.svg */
@media (min-width: 992px) {
    .home-event__slider .slick-prev:hover,
    .home-event__slider .slick-prev:focus,
    .home-event__slider-wrap .slick-prev:hover,
    .home-event__slider-wrap .slick-prev:focus {
        background-image: url('../img/arrow-left.svg') !important;
    }
    .home-event__slider .slick-next:hover,
    .home-event__slider .slick-next:focus,
    .home-event__slider-wrap .slick-next:hover,
    .home-event__slider-wrap .slick-next:focus {
        background-image: url('../img/arrow-right.svg') !important;
    }
}

/* EVENT / PRODUCTS / PEOPLE: SP(≤991px)= 共通で arrow-*-sp.svg */
@media (max-width: 991px) {
    .home-event__slider .slick-prev:hover,
    .home-event__slider .slick-prev:focus,
    .home-event__slider-wrap .slick-prev:hover,
    .home-event__slider-wrap .slick-prev:focus,
    .home-products__slider .slick-prev:hover,
    .home-products__slider .slick-prev:focus,
    .home-people__slider .slick-prev:hover,
    .home-people__slider .slick-prev:focus {
        background-image: url('../img/arrow-left-sp.svg') !important;
    }
    .home-event__slider .slick-next:hover,
    .home-event__slider .slick-next:focus,
    .home-event__slider-wrap .slick-next:hover,
    .home-event__slider-wrap .slick-next:focus,
    .home-products__slider .slick-next:hover,
    .home-products__slider .slick-next:focus,
    .home-people__slider .slick-next:hover,
    .home-people__slider .slick-next:focus {
        background-image: url('../img/arrow-right-sp.svg') !important;
    }
}

/* PRODUCTS / PEOPLE: PC(≥992px)= arrow-*-pc.svg(80×50) */
@media (min-width: 992px) {
    .home-products__slider .slick-prev:hover,
    .home-products__slider .slick-prev:focus,
    .home-people__slider .slick-prev:hover,
    .home-people__slider .slick-prev:focus {
        background-image: url('../img/arrow-left-pc.svg') !important;
    }
    .home-products__slider .slick-next:hover,
    .home-products__slider .slick-next:focus,
    .home-people__slider .slick-next:hover,
    .home-people__slider .slick-next:focus {
        background-image: url('../img/arrow-right-pc.svg') !important;
    }
}

/* ==========================================================================
   TOPへ戻るボタン(SVGアイコン化)
   L1 ミニファイブロックに .pagetop の font-size / color 指定があるが、
   SVG <img> に差し替えたので font-size は無意味。ここでアイコンサイズと
   hover 演出だけ上書きする。
   ========================================================================== */
.pagetop__icon {
    display: block;
    width: 60px;
    height: 60px;
    opacity: 0.9;   /* 通常時は 90%(約10%透過)、hover で不透明に */
    transition: transform 0.2s ease, opacity 0.2s ease;
}
.pagetop a {
    display: inline-block;
    line-height: 0;  /* L1 の font-size の余白分を潰す */
}
.pagetop a:hover .pagetop__icon {
    transform: translateY(-3px);
    opacity: 1;
}
@media (max-width: 991px) {
    .pagetop__icon {
        width: 48px;
        height: 48px;
    }
}

/* ==========================================================================
   汎用固定ページ (page.php)
   <main class="products-archive page-content"> で archive-products と
   同じ外枠を継承。内側の余白・最大幅は .page-content__inner で制御。
   ========================================================================== */
.page-content .page-content__inner {
    max-width: 1000px;
    margin: 0 auto;
    padding: 40px 40px 80px;
    box-sizing: border-box;
}
@media (max-width: 991px) {
    .page-content .page-content__inner {
        padding: 30px 20px 40px;
    }
}

/* 本文エリア(the_content 内の素の HTML 用デフォルト) */
.page-content .page-content__body {
    font-size: 16px;
    line-height: 1.8;
    color: #373637;
}
.page-content .page-content__body > p {
    margin-bottom: 1.5em;
}
.page-content .page-content__body img {
    max-width: 100%;
    height: auto;
}
.page-content .page-content__body a {
    color: var(--color-primary);
    text-decoration: underline;
}
.page-content .page-content__body a:hover {
    opacity: 0.7;
    text-decoration: none;
}

/* ==========================================================================
   ABOUT US 固定ページ 専用スタイル
   フォントルール:
   - 日本語: var(--font-jp)(筑紫A丸ゴシック/Hiragino)— body 既定を継承
   - 英語通常(キッカー/タグ): Helvetica 系
   - 3本柱の大きな数字 "01/02/03" のみ: Didot(serif)
   - 色: オレンジ以外は #373637 厳守
   ========================================================================== */

/* --- 共通: キッカー / タグ / 英字カテゴリ(英語 Adobe Fonts helvetica-lt-pro + オレンジ) --- */
.page-content .about-fv__kicker,
.page-content .about-philosophy__kicker,
.page-content .about-why__kicker,
.page-content .about-activities__kicker,
.page-content .about-point-card__kicker,
.page-content .about-value__tag,
.page-content .about-product__cat,
.page-content .about-activity__cat {
    font-family: "YakuHanJP", var(--font-en);
    letter-spacing: 0.3em;
    color: var(--color-primary);
    font-weight: 500;
    margin: 0;
}

/* --- FV(2カラム: 左テキスト / 右画像コラージュ) ---------------------- */
.page-content .about-fv {
    display: grid;
    grid-template-columns: 1fr 1.1fr;
    gap: 60px;
    padding: 0 0 80px;
    align-items: center;
}
.page-content .about-fv__kicker {
    font-size: 14px;
    margin: 0 0 24px;
}
.page-content .about-fv__title {
    font-family: "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 43px;
    line-height: 1.5;
    margin: 0 0 32px;
    font-weight: bold;
    letter-spacing: 0.05em;
    color: #373637;
}
.page-content .about-fv__desc {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 17px;
    line-height: 2.2;
    color: #373637;
    margin: 0;
}
/* FV 画像コラージュ(4段階アニメ) */
.page-content .about-fv__images {
    --about-fv-radius: 12px;
    position: relative;
    aspect-ratio: 1;
    width: 100%;
}

.page-content .about-fv__stack {
    position: absolute;
}
.page-content .about-fv__stack--square {
    top: 0;
    left: 0;
    width: 65%;
    aspect-ratio: 1;
}
.page-content .about-fv__stack--wide {
    bottom: 0;
    right: 0;
    width: 60%;
    aspect-ratio: 3 / 2;
}

/* 写真 */
.page-content .about-fv__photo {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: var(--about-fv-radius);
    display: block;
}
.page-content .about-fv__photo--square { z-index: 2; }
.page-content .about-fv__photo--wide   { z-index: 2; }

/* 色レイヤー(写真と同形、右下に +20px ずれ、写真の下) */
.page-content .about-fv__shadow {
    position: absolute;
    top: 30px;
    left: 20px;
    width: 100%;
    height: 100%;
    border-radius: var(--about-fv-radius);
    z-index: 1;
}
.page-content .about-fv__shadow--square {
    background: #FDEFE8;
}
.page-content .about-fv__shadow--wide {
    background: #FBDDCC;
}

/* ============= FV アニメーション(4段階で登場) =============
   Intersection Observer で .about-fv__images に .is-anim を付与すると発火。
   step1 (100ms) : 正方形写真
   step2 (900ms) : #FDEFE8 レイヤー(正方形の下)
   step3 (1700ms): 横長写真
   step4 (2500ms): #FBDDCC レイヤー(横長の下)
   ================================================================ */

.page-content .about-fv__images [data-anim] {
    opacity: 0;
    transform: translateY(20px) scale(0.98);
}

.page-content .about-fv__images.is-anim [data-anim="step1"] {
    animation: aboutFvFadeUp 0.8s cubic-bezier(0.22, 1, 0.36, 1) 100ms forwards;
}
.page-content .about-fv__images.is-anim [data-anim="step2"] {
    animation: aboutFvFadeUp 0.8s cubic-bezier(0.22, 1, 0.36, 1) 900ms forwards;
}
.page-content .about-fv__images.is-anim [data-anim="step3"] {
    animation: aboutFvFadeUp 0.8s cubic-bezier(0.22, 1, 0.36, 1) 1700ms forwards;
}
.page-content .about-fv__images.is-anim [data-anim="step4"] {
    animation: aboutFvFadeUp 0.8s cubic-bezier(0.22, 1, 0.36, 1) 2500ms forwards;
}

@keyframes aboutFvFadeUp {
    from {
        opacity: 0;
        transform: translateY(20px) scale(0.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@media (prefers-reduced-motion: reduce) {
    .page-content .about-fv__images [data-anim] {
        opacity: 1 !important;
        transform: none !important;
        animation: none !important;
    }
}

/* SP: ずれを少し小さく */
@media (max-width: 991px) {
    .page-content .about-fv__shadow {
        top: 12px;
        left: 12px;
    }
}

/* --- FV下 横流れ写真 ------------------------------------------------ */
.page-content .about-photo-marquee {
    width: 100%;
    overflow: hidden;
    margin: 48px 0 0;
}
.page-content .about-photo-marquee__track {
    display: flex;
    width: max-content;
    animation: aboutPhotoMarquee 53.125s linear infinite;
    will-change: transform;
}
.page-content .about-photo-marquee__list {
    display: flex;
    gap: 20px;
    padding-right: 20px;
}
.page-content .about-photo-marquee__list br {
    display: none;
}
.page-content .about-photo-marquee__img {
    width: 420px;
    height: 280px;
    flex: 0 0 420px;
    object-fit: cover;
    border-radius: 4px;
    display: block;
}
@keyframes aboutPhotoMarquee {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
    .page-content .about-photo-marquee__track {
        animation: none !important;
        transform: none !important;
    }
}

@media (min-width: 992px) {
    .page-content .about-photo-marquee {
        --main-content-width: calc(100vw - var(--sidebar-width));
        --page-inner-width: min(1000px, var(--main-content-width));
        width: var(--main-content-width);
        margin-left: calc((var(--page-inner-width) - var(--main-content-width)) / 2 - 40px);
    }
}

/* --- OUR PHILOSOPHY(中央寄せ導入) ----------------------------------- */
.page-content .about-philosophy {
    text-align: center;
    padding: 80px 0 60px;
    position: relative;
}
.page-content .about-philosophy__line {
    display: block;
    width: 1px;
    height: 60px;
    background: var(--color-primary);
    margin: 0 auto 32px;
    transform: scaleY(0);
    transform-origin: top;
    animation: aboutPhilosophyLineLoop 2s cubic-bezier(0.22, 1, 0.36, 1) infinite;
}
@keyframes aboutPhilosophyLineLoop {
    0%   { transform: scaleY(0); }
    80%  { transform: scaleY(1); }
    90%  { transform: scaleY(1); }
    100% { transform: scaleY(0); }
}
@media (prefers-reduced-motion: reduce) {
    .page-content .about-philosophy__line {
        transform: scaleY(1) !important;
        animation: none !important;
    }
}
.page-content .about-philosophy__kicker {
    font-size: 14px;
    margin: 0 0 24px;
}
.page-content .about-philosophy__title {
    font-family: "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 38px;
    line-height: 1.6;
    margin: 0 0 32px;
    font-weight: bold;
    letter-spacing: -0.04em;
    color: #373637;
}
.page-content .about-philosophy__lead {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 17px;
    line-height: 2.2;
    max-width: 720px;
    margin: 0 auto;
    color: #373637;
}

/* --- 3本柱 Values(左右交互、数字オーバーレイ) ----------------------- */
.page-content .about-values {
    padding: 40px 0 80px;
}
.page-content .about-value {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: center;
    margin-bottom: 80px;
}
.page-content .about-value:last-child {
    margin-bottom: 0;
}
.page-content .about-value--reverse .about-value__img-wrap {
    order: 2;
}
.page-content .about-value__img-wrap {
    position: relative;
    aspect-ratio: 4/3;
}
.page-content .about-value__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 4px;
    display: block;
}
/* 数字 "01/02/03" のみ Didot(serif) で大きく左上にオーバーレイ */
.page-content .about-value__num {
    position: absolute;
    top: -28px;
    left: -18px;
    font-family: "YakuHanJP", "Didot", "Bodoni 72", "Bodoni MT", "Times New Roman", serif;
    font-style: italic;
    font-weight: 400;
    font-size: 100px;
    color: var(--color-primary);
    line-height: 1;
    letter-spacing: 0;
    z-index: 2;
    pointer-events: none;
}
.page-content .about-value__tag {
    font-size: 14px;
    margin: 0 0 16px;
    display: block;
}
.page-content .about-value__title {
    font-family: "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 34px;
    line-height: 1.5;
    margin: 0 0 20px;
    font-weight: bold;
    letter-spacing: 0.05em;
    color: #373637;
}
.page-content .about-value__desc {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    line-height: 2;
    color: #373637;
    margin: 0;
}

/* --- WHY ECOSHOP+(4×2 商品グリッド、薄オレンジ背景) ----------------- */
.page-content .about-why {
    background: #FDEFE8;
    margin: 40px -40px;                  /* 内側 padding を相殺して画面端近くまで拡張 */
    padding: 80px 40px;
    border-radius: 8px;
}
.page-content .about-why__header {
    text-align: center;
    margin-bottom: 48px;
}
.page-content .about-why__kicker {
    font-size: 14px;
    margin: 0 0 20px;
}
.page-content .about-why__title {
    font-family: "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 38px;
    line-height: 1.6;
    margin: 0 0 24px;
    font-weight: bold;
    letter-spacing: 0.08em;
    color: #373637;
}
.page-content .about-why__lead {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    line-height: 2;
    max-width: 720px;
    margin: 0 auto;
    color: #373637;
}
.page-content .about-why__link-wrap {
    text-align: center;
    margin: 28px 0 0;
}
.page-content .about-why__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 220px;
    padding: 10px 28px;
    border: 1px solid var(--color-primary);
    border-radius: 4px;
    color: var(--color-primary);
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 16px;
    font-weight: bold;
    line-height: 1.5;
    text-decoration: none;
}
.page-content .about-why__link:hover,
.page-content .about-why__link:focus {
    background: var(--color-primary);
    color: #fff;
}
.page-content .about-why__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}
.page-content .about-product {
    background: #fff;
    padding: 12px;
    text-align: center;
    border-radius: 4px;
}
.page-content .about-product__img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    margin: 0 0 12px;
    border-radius: 2px;
    display: block;
}
.page-content .about-product__img-link {
    display: block;
    color: inherit;
    text-decoration: none;
}
.page-content .about-product__img-link:hover,
.page-content .about-product__img-link:focus {
    color: inherit;
    text-decoration: none;
}
.page-content .about-product__cat {
    font-size: 12px;
    letter-spacing: 0.2em;
    margin: 0 0 6px;
    display: block;
}
.page-content .about-product__name {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 18px;
    margin: 0 0 6px;
    font-weight: bold;
    line-height: 1.5;
    color: #373637;
}
.page-content .about-product__title-link {
    color: inherit !important;
    text-decoration: none !important;
}
.page-content .about-product__title-link:hover,
.page-content .about-product__title-link:focus {
    color: inherit !important;
    text-decoration: none !important;
}
.page-content .about-product__desc {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    line-height: 1.7;
    color: #373637;
    margin: 0;
}

/* --- ACTIVITIES(3×2 活動一覧) -------------------------------------- */
.page-content .about-activities {
    padding: 80px 0 40px;
}
.page-content .about-activities__header {
    text-align: center;
    margin-bottom: 48px;
}
.page-content .about-activities__kicker {
    font-size: 14px;
    margin: 0 0 20px;
}
.page-content .about-activities__title {
    font-family: "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 38px;
    line-height: 1.6;
    font-weight: bold;
    letter-spacing: 0.08em;
    color: #373637;
    margin: 0;
}
.page-content .about-activities__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.page-content .about-activity__img {
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: cover;
    border-radius: 4px;
    margin: 0 0 12px;
    display: block;
}
.page-content .about-activity__body {
    padding: 0 4px;
}
/* カード内ヘッダ: 左に [カテゴリ + 活動名]、右に Didot 飾り数字 */
.page-content .about-activity__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 16px;
    margin-bottom: 8px;
}
.page-content .about-activity__text {
    flex: 1;
    min-width: 0;
}
.page-content .about-activity__num {
    font-family: "YakuHanJP", "Didot", "Bodoni 72", "Bodoni MT", "Times New Roman", serif;
    font-style: italic;
    font-weight: 400;
    font-size: 50px;
    color: #FBDDCC;
    line-height: 1;
    letter-spacing: 0;
    flex-shrink: 0;
    pointer-events: none;
}
.page-content .about-activity__cat {
    font-size: 12px;
    letter-spacing: 0.25em;
    margin: 0 0 6px;
}
.page-content .about-activity__name {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 20px;
    margin: 0;
    font-weight: bold;
    line-height: 1.4;
    color: #373637;
}
.page-content .about-activity__desc {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    line-height: 1.8;
    color: #373637;
    margin: 0;
}

/* --- POINT CARD ---------------------------------------------------- */
.page-content .about-point-card {
    padding: 90px 0 20px;
}
.page-content .about-point-card__header {
    text-align: center;
    margin: 0 auto 42px;
}
.page-content .about-point-card__kicker {
    font-size: 14px;
    margin: 0 0 20px;
}
.page-content .about-point-card__title {
    font-family: "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 38px;
    line-height: 1.6;
    font-weight: bold;
    color: #373637;
    letter-spacing: 0.08em;
    margin: 0 0 30px;
}
.page-content .about-point-card__lead {
    font-family: "YakuHanJP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    line-height: 2;
    font-weight: 400;
    color: #373637;
    margin: 0;
}
.page-content .about-point-card__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 36px;
    align-items: start;
}
.page-content .about-point-card__item {
    margin: 0;
}
.page-content .about-point-card__img {
    display: block;
    width: 100%;
    height: auto;
    border: 1px solid #d9d9d9;
    border-radius: 4px;
    box-sizing: border-box;
}
.page-content .about-point-card__caption {
    font-family: "YakuHanJP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 14px;
    line-height: 1.7;
    color: #373637;
    text-align: center;
    margin: 12px 0 0;
}

/* --- SP(≤991px)1カラム化 / 薄オレンジ帯のマージン調整 -------------- */
@media (max-width: 991px) {
    .page-content .about-fv {
        grid-template-columns: 1fr;
        gap: 40px;
        padding: 0px 0 40px;
    }
    .page-content .about-fv__title { font-size: 30px; }
    .page-content .about-fv__desc { font-size: 15px; }
    .page-content .about-fv__images { aspect-ratio: 1.2; }
    .page-content .about-photo-marquee {
        margin: 60px 0 66px;
    }
    .page-content .about-photo-marquee__track {
        animation-duration: 43.75s;
    }
    .page-content .about-photo-marquee__img {
        width: 420px;
        height: 280px;
        flex-basis: 420px;
    }

    .page-content .about-philosophy { padding: 15px 0 40px; }
    .page-content .about-philosophy__title,
    .page-content .about-why__title,
    .page-content .about-activities__title,
    .page-content .about-point-card__title {
        font-size: 24px;
    }
    .page-content .about-philosophy__lead,
    .page-content .about-why__lead {
        font-size: 15px;
    }

    .page-content .about-value {
        grid-template-columns: 1fr;
        gap: 24px;
        margin-bottom: 60px;
    }
    .page-content .about-value--reverse .about-value__img-wrap { order: 0; }
    .page-content .about-value__num { font-size: 64px; top: -18px; left: -10px; }
    .page-content .about-value__title { font-size: 24px; }
    .page-content .about-value__desc { font-size: 14px; }
    .page-content .about-value__tag { font-size: 13px; }

    /* WHY 商品カード */
    .page-content .about-product__name { font-size: 15px; }
    .page-content .about-product__desc { font-size: 13px; }

    /* ACTIVITIES カード */
    .page-content .about-activity__name { font-size: 18px; }
    .page-content .about-activity__desc { font-size: 14px; }
    .page-content .about-activity__num { font-size: 36px; }

    .page-content .about-why {
        margin: 20px -20px;
        padding: 60px 20px;
        border-radius: 4px;
    }
    .page-content .about-why__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }

    .page-content .about-activities { padding: 60px 0 40px; }
    .page-content .about-activities__grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    .page-content .about-point-card {
        padding: 70px 0 10px;
    }
    .page-content .about-point-card__lead {
        font-size: 14px;
    }
    .page-content .about-point-card__grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }
}

/* ==========================================================================
   ABOUT US 共通フェードインアニメーション(.js-fade)
   JS の IntersectionObserver で .is-visible を付与すると
   opacity 0→1 + translateY(15px→0) でふわっと表示される。
   同じ親(section / article)内の兄弟は 100ms ずつ段階遅延。
   prefers-reduced-motion 対応で即時表示。
   ========================================================================== */
.page-content .js-fade {
    opacity: 0;
    transform: translateY(15px);
    transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
                transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: opacity, transform;
}
.page-content .js-fade.is-visible {
    opacity: 1;
    transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
    .page-content .js-fade {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}

/* ============= page-header 登場アニメ =============
   .page-header__en / __jp は共に position:absolute + translate(-50%, ...) で
   中央寄せされているため、アニメ中も translateX(-50%) を維持する。 */
.page-header__en {
    opacity: 0;
    transform: translate(-50%, 10px);
}
.page-header__jp {
    opacity: 0;
    /* transform は一切付けない。base の translate(-50%, -50%) をそのまま維持して
       合成レイヤー再ラスタによるサブピクセルずれを避ける。 */
}
.page-header.is-anim .page-header__en {
    animation: pageHeaderFadeUp 0.7s cubic-bezier(0.22, 1, 0.36, 1) 100ms forwards;
}
.page-header.is-anim .page-header__jp {
    animation: pageHeaderFade 0.7s cubic-bezier(0.22, 1, 0.36, 1) 700ms forwards;
}
@keyframes pageHeaderFadeUp {
    from { opacity: 0; transform: translate(-50%, 10px); }
    to   { opacity: 1; transform: translate(-50%, 0); }
}
@keyframes pageHeaderFade {
    from { opacity: 0; }
    to   { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
    .page-header__en {
        opacity: 1 !important;
        transform: translate(-50%, 0) !important;
        animation: none !important;
    }
    .page-header__jp {
        opacity: 1 !important;
        animation: none !important;
    }
}

/* ============= TOP FV スライドショー (Ken Burns + フェード) =============
   既存マークアップ:
     #home__fv.fv > .fv__slider > .fv__slide.is-active ×5
                  > .fv__copy (前面、既存スタイルは L616〜 を維持)
                  > .fv__dots > .fv__dot
   L596〜の #home__fv に position/overflow はあるが height 指定なし
   （旧構造は .fv__image の aspect-ratio で高さを決めていた）。
   ここで #home__fv.fv に明示的に高さを与える。 */
#home__fv.fv {
    height: 90vh;
    min-height: 480px;
}
.fv__slider {
    position: absolute;
    inset: 0;
    z-index: 1;
}
.fv__slide {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 0;
    transition: opacity 1.5s ease-in-out;
    will-change: opacity, transform;
    /* 全スライドで常時ズームループ(20秒周期) */
    animation: fvKenBurns 20s linear infinite;
}
/* 各スライドで delay を負の値でズラし、常に違うズーム段階を保持 */
.fv__slide:nth-child(1) { animation-delay:   0s; }
.fv__slide:nth-child(2) { animation-delay:  -5s; }
.fv__slide:nth-child(3) { animation-delay: -10s; }
.fv__slide:nth-child(4) { animation-delay: -15s; }
.fv__slide.is-active {
    opacity: 1;
}
/* フェードアウト中: scale には触らず opacity のみ遷移(アニメは継続) */
.fv__slide.is-leaving {
    opacity: 0;
}
@keyframes fvKenBurns {
    0%   { transform: scale(1); }
    50%  { transform: scale(1.15); }
    100% { transform: scale(1); }
}
.fv__copy {
    z-index: 2;
}
.fv__dots {
    position: absolute;
    left: 50%;
    bottom: 24px;
    transform: translateX(-50%);
    z-index: 3;
    display: flex;
    gap: 10px;
}
.fv__dot {
    appearance: none;
    -webkit-appearance: none;
    border: none;
    background: rgba(255, 255, 255, 0.5);
    width: 8px;
    height: 8px;
    border-radius: 50%;
    padding: 0;
    cursor: pointer;
    outline: none;
    -webkit-tap-highlight-color: transparent;
    transition: background 0.3s, transform 0.3s;
}
.fv__dot:focus,
.fv__dot:focus-visible {
    outline: none;
}
.fv__dot:hover {
    background: rgba(255, 255, 255, 0.8);
}
.fv__dot.is-active {
    background: var(--color-primary);
    transform: scale(1.4);
}
@media (max-width: 991px) {
    /* SP は旧構造の .fv__image の aspect-ratio 3/4 相当を .fv 本体に移植 */
    #home__fv.fv {
        height: auto;
        min-height: 0;
        aspect-ratio: 3 / 4;
    }
    .fv__dots {
        bottom: 16px;
    }
    .fv__dot {
        width: 6px;
        height: 6px;
    }
}
@media (prefers-reduced-motion: reduce) {
    .fv__slide {
        animation: none !important;
        transform: none !important;
        transition: none !important;
    }
    .fv__slide.is-active {
        opacity: 1 !important;
    }
}

/* ============================================================
   RENTAL SPACE ページ(/rental-space/)
   ========================================================== */

/* リード */
.page-content .rental-lead {
    margin: 48px 0 64px;
    text-align: center;
}
.page-content .rental-lead__text {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 17px;
    line-height: 2.2;
    color: #373637;
    margin: 0;
}

/* 各階の共通 */
.page-content .rental-space-floor {
    margin: 0 0 80px;
}
/* 1F / 2F 見出し(XDデザイン準拠: Didot 大 + 長い斜線 + 筑紫丸A) */
.page-content .rental-space-floor__heading {
    display: flex;
    align-items: center;
    gap: 24px;
    margin: 0 0 48px;
    padding-left: 8px;
}
.page-content .rental-space-floor__num {
    font-family: "YakuHanJP", "Didot", "Bodoni 72", "Bodoni MT", "Times New Roman", serif;
    font-style: italic;
    font-weight: 400;
    font-size: 100px;
    line-height: 1;
    color: var(--color-primary);
    letter-spacing: 0;
    flex-shrink: 0;
    align-self: flex-start;
    margin-top: -14px;
}
.page-content .rental-space-floor__num-suffix {
    font-family: "YakuHanJP", "Didot", "Bodoni 72", "Bodoni MT", "Times New Roman", serif;
    font-style: italic;
    font-weight: 400;
    font-size: 0.65em;
    color: var(--color-primary);
    letter-spacing: 0;
    vertical-align: baseline;
    margin-left: 0.05em;
    display: inline;
}
.page-content .rental-space-floor__divider {
    display: inline-block;
    width: 1.5px;
    height: 150px;
    background: var(--color-primary);
    transform: rotate(45deg);
    flex-shrink: 0;
    margin: 0 -20px;
}
.page-content .rental-space-floor__title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 38px;
    line-height: 1.6;
    font-weight: bold;
    color: #373637;
    align-self: flex-end;
    margin: 0px 0px 0px 0px;
}
@media (max-width: 767px) {
    .page-content .rental-space-floor__heading {
        gap: 12px;
        margin: 0 0 32px;
    }
    .page-content .rental-space-floor__num {
        font-size: 64px;
    }
    .page-content .rental-space-floor__divider {
        height: 100px;
        margin: 0 -12px;
    }
    .page-content .rental-space-floor__title {
        font-size: 22px;
        margin: 48px 0 0 30px;
    }
}
/* wpautop で <img> が <p> にラップされても grid が効くように、
   子要素側の display / width / margin を明示的に制御する */
.page-content .page-content__body .rental-space-floor__photos {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    margin: 0 0 40px;
    align-items: start;
}
/* wpautop 由来の <p> ラッパー / Gutenberg 由来の <figure> を grid item として有効化 */
.page-content .page-content__body .rental-space-floor__photos > p,
.page-content .page-content__body .rental-space-floor__photos > figure {
    margin: 0;
    padding: 0;
    min-width: 0;
}
/* 画像本体(直下 / p 内 / figure 内 どれでも) */
.page-content .page-content__body .rental-space-floor__photos .rental-space-floor__photo,
.page-content .page-content__body .rental-space-floor__photos > img {
    width: 100%;
    max-width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 12px;
    display: block;
    min-width: 0;
    height: auto;
}
@media (max-width: 767px) {
    .page-content .page-content__body .rental-space-floor__photos {
        grid-template-columns: 1fr;
        gap: 16px;
    }
}
/* 写真キャプション(figcaption.wp-element-caption) */
.page-content .page-content__body .rental-space-floor__photos figcaption.wp-element-caption,
.page-content .page-content__body .rental-space-floor figcaption.wp-element-caption {
    font-size: 14px;
}
.page-content .rental-space-floor__note {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    line-height: 2;
    color: #373637;
    margin: 24px 0 0;
    text-indent: -1.2em;
    padding-left: 1.2em;
}
.page-content .note-mark {
    color: var(--color-primary);
    font-weight: bold;
    margin-right: 0.25em;
}
/* 注釈リスト(※項目の ul)。既存テーマの ul 装飾を上書きして黒丸を消す */
.page-content .rental-note-list {
    list-style: none !important;
    padding: 0;
    margin: 24px 0 0;
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 15px;
    line-height: 1.8;
    color: #373637;
}
.page-content .rental-note-list__item {
    list-style: none !important;
    margin: 0 0 8px;
    padding-left: 0;
}
.page-content .rental-note-list__item:last-child {
    margin-bottom: 0;
}
.page-content .rental-note-list__item::marker {
    content: "" !important;
    display: none;
}

/* 平面図 SVG */
.page-content .rental-space-floor__plan {
    margin: 40px auto;
    max-width: 500px;
}
.page-content .rental-plan-svg {
    width: 100%;
    height: auto;
    display: block;
    font-family: "YakuHanJP", "helvetica-lt-pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
}

/* 回数券 */
.page-content .rental-ticket {
    margin: 0 0 30px;
    text-align: center;
}
.page-content .rental-ticket__kicker {
    font-family: "YakuHanJP", "helvetica-lt-pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 14px;
    letter-spacing: 0.3em;
    color: var(--color-primary);
    font-weight: 500;
    margin: 0 0 8px;
}
.page-content .rental-ticket__title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 38px;
    line-height: 1.6;
    font-weight: bold;
    color: #373637;
    margin: 0 0 8px;
}
.page-content .rental-ticket__note {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 14px;
    color: #373637;
    margin: 0 0 16px;
}
.page-content .rental-ticket__table-wrap {
    overflow-x: auto;
}
.page-content .rental-ticket__table {
    width: 100%;
    border-collapse: collapse;
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 15px;
    color: #373637;
    border: 1px solid #D4D4D4;
}
.page-content .rental-ticket__table thead th {
    padding: 12px 8px;
    font-weight: bold;
    border: 1px solid #D4D4D4;
    text-align: center;
}
.page-content .rental-ticket__table thead th.is-special { background: #FED8C7; color: #373637; }
.page-content .rental-ticket__table thead th.is-half    { background: #D4E8F8; color: #373637; }
.page-content .rental-ticket__table thead th.is-quarter { background: #CDE8CE; color: #373637; }
.page-content .rental-ticket__table thead th.is-trial   { background: #FBE4D0; color: #373637; }
.page-content .rental-ticket__table thead th:first-child { background: #F5F5F5; }
.page-content .rental-ticket__table tbody th {
    text-align: left;
    padding: 12px 10px;
    background: #F5F5F5;
    font-weight: 500;
    border: 1px solid #D4D4D4;
    white-space: nowrap;
}
.page-content .rental-ticket__table tbody td {
    padding: 12px 8px;
    text-align: center;
    border: 1px solid #D4D4D4;
    background: #FDFDFD;
}

/* お問い合わせ */
.page-content .rental-contact {
    margin: 80px 0 48px;
    text-align: center;
}
.page-content .rental-contact__kicker {
    font-family: "YakuHanJP", "helvetica-lt-pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 15px;
    letter-spacing: 0.3em;
    color: var(--color-primary);
    font-weight: 500;
    margin: 0 0 8px;
}
.page-content .rental-contact__title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 38px;
    line-height: 1.6;
    font-weight: bold;
    color: #373637;
    margin: 0 0 40px;
}
.page-content .rental-contact__items {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px;
}
.page-content .rental-contact__tel {
    text-decoration: none;
    color: #373637;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}
.page-content .rental-contact__tel-label {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 14px;
    color: #373637;
}
.page-content .rental-contact__tel-number {
    font-family: "YakuHanJP", "helvetica-lt-pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 40px;
    font-weight: bold;
    color: var(--color-primary);
    letter-spacing: 0.05em;
}
.page-content .rental-contact__line {
    text-decoration: none;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}
.page-content .rental-contact__line-label {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 14px;
    color: #373637;
}
.page-content .rental-contact__line-button {
    display: inline-block;
    padding: 14px 32px;
    background: #06C755;
    color: #fff;
    border-radius: 999px;
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-weight: bold;
    font-size: 16px;
    transition: opacity 0.3s;
}
.page-content .rental-contact__line-button:hover {
    opacity: 0.85;
}

/* SP 調整 */
@media (max-width: 991px) {
    .page-content .rental-lead__text { font-size: 15px; line-height: 2; }
    .page-content .rental-ticket__title,
    .page-content .rental-contact__title { font-size: 24px; }
    .page-content .rental-ticket__table { font-size: 13px; }
    .page-content .rental-contact__tel-number { font-size: 32px; }
}

/* ============================================================
   商品詳細ページ - 特徴紹介セクション
   ========================================================== */

/* セクション見出し */
.single-products__content .product-feature {
    text-align: center;
    margin: 64px 0 32px;
}
.single-products__content .product-feature__title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 26px;
    font-weight: bold;
    color: #373637;
    line-height: 1.5;
    margin: 0 0 24px;
    text-align: center;
}
.single-products__content .product-feature__title--orange {
    color: var(--color-primary);
    text-align: left;
    font-size: 36px;
}
.single-products__content .product-feature__lead {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    line-height: 2;
    color: #373637;
    margin: 0;
    text-align: center;
}
.single-products__content .product-feature__subtitle {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 20px;
    font-weight: bold;
    color: #373637;
    margin: 16px 0 12px;
}
.single-products__content .product-feature__body {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    line-height: 2;
    color: #373637;
    margin: 0 0 16px;
}
.single-products__content .product-feature__note {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 12px;
    line-height: 1.8;
    color: #373637;
    margin: 12px 0 0;
}
.single-products__content .product-feature--no-tool {
    text-align: left;
}

/* 3カラム内のポイント(画像下の説明) */
.single-products__content .product-point {
    margin: 16px 0 0;
}
.single-products__content .product-point__title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 20px;
    font-weight: bold;
    color: #373637;
    line-height: 1.5;
    margin: 0 0 8px;
}
.single-products__content .product-point__text {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 15px;
    line-height: 1.9;
    color: #373637;
    margin: 0;
}

/* SP */
@media (max-width: 767px) {
    .single-products__content .product-feature__title { font-size: 20px; }
    .single-products__content .product-feature__title--orange { font-size: 26px; }
    .single-products__content .product-feature__lead { font-size: 15px; }
    .single-products__content .product-feature__subtitle { font-size: 17px; }
    .single-products__content .product-feature__body { font-size: 14px; }
    .single-products__content .product-point__title { font-size: 17px; }
    .single-products__content .product-point__text { font-size: 13px; }
}

/* ============================================================
   商品詳細 - 本体色スライダー
   ========================================================== */

.single-products__content .body-color-slider {
    margin: 80px 0;
    text-align: center;
}
/* 座面カバー用バリエーション(本体色のあとに続くので上マージンを詰める) */
.single-products__content .body-color-slider--cloth,
.single-products__content .body-color-slider--pvc {
    margin-top: 48px;
    margin-bottom: 48px;
}
.single-products__content .body-color-slider--pvc .rental-note-list {
    margin: 32px auto 0;
    max-width: 720px;
    text-align: left;
    padding: 0;
    list-style: none;
}
.single-products__content .body-color-slider--pvc .rental-note-list__item {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 13px;
    line-height: 1.8;
    color: #373637;
    text-indent: -1.2em;
    padding-left: 1.2em;
}
.single-products__content .body-color-slider__title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 26px;
    font-weight: bold;
    color: #373637;
    line-height: 1.5;
    margin: 0 0 24px;
    text-align: center;
}
.single-products__content .body-color-slider__lead {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    line-height: 2;
    color: #373637;
    margin: 0 0 40px;
    text-align: center;
}
.single-products__content .body-color-slider__label {
    display: inline-block;
    padding: 6px 24px;
    border: 2px solid #373637;
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 15px;
    font-weight: bold;
    color: #373637;
    margin: 0 0 40px;
}

/* スライダー本体 */
.single-products__content .body-color-slider__wrap {
    position: relative;
    padding: 0 60px;
}
.single-products__content .body-color-slider__viewport {
    overflow: hidden;
}
.single-products__content .body-color-slider__track {
    display: flex;
    gap: 20px;
    transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
}
.single-products__content .body-color-slider__item {
    flex: 0 0 calc((100% - 80px) / 5);
    text-align: center;
}
.single-products__content .body-color-slider__img {
    width: 100%;
    height: auto;
    display: block;
    margin: 0 0 12px;
}
.single-products__content .body-color-slider__name {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 14px;
    color: #373637;
    margin: 0;
}

/* 矢印ボタン(TOP EVENT と同じ真ん丸 SVG) */
.single-products__content .body-color-slider__arrow {
    position: absolute;
    width: 80px;
    height: 80px;
    background-color: transparent;
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    border: none;
    padding: 0;
    cursor: pointer;
    outline: none;
    -webkit-tap-highlight-color: transparent;
    z-index: 2;
    top: 50%;
    transform: translateY(-50%);
}
.single-products__content .body-color-slider__arrow--prev {
    left: -40px;
    background-image: url('../img/arrow-left.svg');
}
.single-products__content .body-color-slider__arrow--next {
    right: -40px;
    background-image: url('../img/arrow-right.svg');
}
.single-products__content .body-color-slider__arrow:focus,
.single-products__content .body-color-slider__arrow:focus-visible {
    outline: none;
}
.single-products__content .body-color-slider__arrow span {
    display: none;
}

/* SP */
@media (max-width: 767px) {
    .single-products__content .body-color-slider__title { font-size: 20px; }
    .single-products__content .body-color-slider__lead { font-size: 14px; }
    .single-products__content .body-color-slider__item {
        flex: 0 0 calc((100% - 20px) / 2);
    }
    .single-products__content .body-color-slider__wrap {
        padding: 0 48px;
    }
    .single-products__content .body-color-slider__arrow {
        width: 40px;
        height: 26px;
    }
    .single-products__content .body-color-slider__arrow--prev {
        left: -4px;
        background-image: url('../img/arrow-left-sp.svg');
    }
    .single-products__content .body-color-slider__arrow--next {
        right: -4px;
        background-image: url('../img/arrow-right-sp.svg');
    }
}

/* ============================================================
   商品詳細 - スペック・関連商品セクション
   ========================================================== */

.single-products__content .product-spec {
    margin: 64px 0;
}
.single-products__content .product-spec--bg-gray {
    background: #F5F5F5;
    padding: 48px 32px;
    margin-left: -32px;
    margin-right: -32px;
}

/* 2カラムレイアウト(情報 30% + 画像 70%) */
.single-products__content .product-spec__row {
    display: grid;
    grid-template-columns: 30% 70%;
    gap: 40px;
    align-items: start;
}

.single-products__content .product-spec__name {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 18px;
    font-weight: bold;
    color: #373637;
    margin: 0 0 8px;
}
.single-products__content .product-spec__name--with-lead {
    font-size: 22px;
    margin-bottom: 16px;
}

.single-products__content .product-spec__price {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 13px;
    font-weight: bold;
    color: #373637;
    margin: 0 0 16px;
    text-align: right;
}
.single-products__content .product-spec__price-sub {
    font-size: 13px;
    font-weight: normal;
    margin-left: 8px;
}

/* dl スペック表 */
.single-products__content .product-spec__list {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 8px 16px;
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 12px;
    line-height: 1.8;
    color: #373637;
    margin: 0 0 16px;
}
.single-products__content .product-spec__list dt {
    font-weight: normal;
    color: #373637;
}
.single-products__content .product-spec__list dd {
    margin: 0;
}

.single-products__content .product-spec__note {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 12px;
    line-height: 1.7;
    color: #373637;
    margin: 8px 0;
}
.single-products__content .product-spec__note--star {
    font-weight: bold;
    margin-top: 16px;
}

.single-products__content .product-spec__made {
    font-size: 12px;
    color: #373637;
    margin: 8px 0;
}

.single-products__content .product-spec__body {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 14px;
    line-height: 1.9;
    color: #373637;
    margin: 0 0 16px;
}

.single-products__content .product-spec__image img {
    width: 100%;
    height: auto;
    display: block;
}

/* 色違い3カラム */
.single-products__content .product-spec__variants {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
    margin: 32px 0;
}
.single-products__content .product-spec__variant img {
    width: 100%;
    height: auto;
    display: block;
    margin: 0 0 12px;
}
/* 色違いカード内の価格直下にライン(メインセクションには入らない) */
.single-products__content .product-spec__variant .product-spec__price {
    padding-bottom: 12px;
    border-bottom: 1px solid #C3C3C3;
    margin-bottom: 12px;
}
.single-products__content .product-spec__coating {
    font-size: 12px;
    color: #373637;
    margin: 8px 0 0;
}

/* 別売タグ */
.single-products__content .product-spec__tag {
    display: inline-block;
    padding: 2px 12px;
    background: #fff;
    border: 1px solid #373637;
    font-size: 11px;
    color: #373637;
    margin: 0 0 8px;
}

/* 比較写真まわり */
.single-products__content .product-spec__compare-title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 18px;
    font-weight: bold;
    text-align: center;
    margin: 20px 0 8px;
}
.single-products__content .product-spec__compare-lead {
    font-size: 13px;
    text-align: center;
    margin: 0 0 16px;
    line-height: 1.8;
}
.single-products__content .product-spec__compare-labels {
    display: flex;
    justify-content: space-around;
    font-size: 13px;
    margin: 8px 0 16px;
}

/* ロータイプ用の価格リスト */
.single-products__content .product-spec__list--prices {
    grid-template-columns: 120px 1fr;
    margin-top: 16px;
}
.single-products__content .product-spec__list--prices dt {
    text-align: right;
}

.single-products__content .product-spec__low-img {
    margin-bottom: 16px;
}
.single-products__content .product-spec__low-img img {
    width: 100%;
    height: auto;
    display: block;
}

/* SP */
@media (max-width: 767px) {
    .single-products__content .product-spec__row {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    .single-products__content .product-spec__variants {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    .single-products__content .product-spec__list {
        grid-template-columns: 70px 1fr;
        font-size: 12px;
    }
    .single-products__content .product-spec--bg-gray {
        padding: 32px 16px;
        margin-left: -16px;
        margin-right: -16px;
    }
    .single-products__content .product-spec__name--with-lead {
        font-size: 18px;
    }
}

/* ============================================================
   商品詳細 - オンライン見積フォーム(CF7)
   ========================================================== */

/* 外枠(唯一の border) */
.single-products__content .quote-form-wrap {
    max-width: 720px;
    margin: 80px auto;
    padding: 48px;
    border: 1px solid var(--color-primary);
    border-radius: 10px;
}
.single-products__content .quote-form-wrap__title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 22px;
    font-weight: bold;
    color: #373637;
    text-align: center;
    margin: 0 0 32px;
    padding-bottom: 24px;
    border-bottom: 1px dotted var(--color-primary);
}

/* 内側ラッパー(枠・余白なし) */
.single-products__content .quote-form {
    margin: 0;
    padding: 0;
    border: none;
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    color: #373637;
}

/* WordPress が自動で p 化するのを打ち消す */
.single-products__content .quote-form p {
    margin: 0 !important;
}

/* 行 */
.single-products__content .quote-form__row {
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 12px 0;
}

/* ラベル */
.single-products__content .quote-form__label {
    flex: 0 0 160px;
    font-size: 14px;
    font-weight: bold;
    color: #373637;
    text-align: right;
    padding-right: 8px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

/* 必須タグ */
.single-products__content .quote-form__required {
    display: inline-block;
    color: #D42828;
    font-size: 12px;
    font-weight: bold;
    margin-left: 8px;
}

/* フィールドラップ */
.single-products__content .quote-form__field {
    flex: 1;
    min-width: 0;
}

/* === 入力欄共通(CF7 のラッパー span 対応) === */
.single-products__content .quote-form .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
}

/* input type=text / email / tel */
.single-products__content .quote-form input[type="text"],
.single-products__content .quote-form input[type="email"],
.single-products__content .quote-form input[type="tel"] {
    width: 100%;
    padding: 12px 16px;
    background: #FDEFE8 !important;
    border: none !important;
    border-radius: 5px !important;
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 14px;
    color: #373637;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
    box-shadow: none;
}

/* select */
.single-products__content .quote-form select {
    width: 100%;
    padding: 12px 40px 12px 16px;
    background-color: #FDEFE8 !important;
    background-image: linear-gradient(45deg, transparent 50%, var(--color-primary) 50%),
                      linear-gradient(135deg, var(--color-primary) 50%, transparent 50%);
    background-position: calc(100% - 20px) center, calc(100% - 14px) center;
    background-size: 6px 6px, 6px 6px;
    background-repeat: no-repeat;
    border: none !important;
    border-radius: 5px !important;
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 14px;
    color: #373637;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
    cursor: pointer;
}

/* placeholder の色 */
.single-products__content .quote-form input::placeholder {
    color: #999;
    font-size: 13px;
}

/* 数量 input type=number */
.single-products__content .quote-form input[type="number"] {
    width: 100px;
    padding: 12px 16px;
    background: #FDEFE8 !important;
    border: none !important;
    border-radius: 5px !important;
    font-size: 14px;
    text-align: center;
    color: #373637;
    -webkit-appearance: none;
    appearance: none;
    outline: none;
}

/* ラジオボタン - タイプ選択 */
.single-products__content .quote-form .wpcf7-radio {
    display: flex !important;
    flex-direction: column;
    gap: 10px;
}
.single-products__content .quote-form .wpcf7-list-item {
    display: inline-flex !important;
    align-items: center;
    margin: 0 !important;
}
.single-products__content .quote-form input[type="radio"] {
    -webkit-appearance: none;
    appearance: none;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 1px solid var(--color-primary) !important;
    background: #fff;
    margin-right: 8px;
    cursor: pointer;
    flex-shrink: 0;
    outline: none;
    box-shadow: none;
}
.single-products__content .quote-form input[type="radio"]:checked {
    background: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
    box-shadow: inset 0 0 0 3px #fff;
}
.single-products__content .quote-form .wpcf7-list-item-label {
    font-size: 14px;
    color: #373637;
}

/* 区切り線(オレンジ点線、ブラウザデフォルトを完全上書き) */
.single-products__content .quote-form hr,
.single-products__content .quote-form .quote-form__divider,
.single-products__content .quote-form hr.quote-form__divider {
    border: none !important;
    border-top: 1px dotted var(--color-primary) !important;
    height: 0;
    margin: 24px 0 !important;
    background: transparent;
}

/* セクション見出し */
.single-products__content .quote-form .quote-form__section-title,
.single-products__content .quote-form h3.quote-form__section-title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 20px;
    font-weight: bold;
    color: var(--color-primary);
    text-align: center;
    margin: 32px 0 16px;
}

/* 送信エリアを確実に中央寄せ */
.single-products__content .quote-form .quote-form__submit {
    text-align: center !important;
    margin-top: 32px;
    display: block;
    width: 100%;
}
.single-products__content .quote-form .quote-form__submit p {
    margin: 0 !important;
    text-align: center !important;
}

/* 送信ボタン */
.single-products__content .quote-form input[type="submit"],
.single-products__content .quote-form .wpcf7-submit {
    display: inline-block !important;
    margin: 0 auto !important;
    padding: 14px 80px !important;
    border-radius: 5px !important;
    background: var(--color-primary) !important;
    color: #fff !important;
    border: none !important;
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif !important;
    font-size: 16px !important;
    font-weight: bold !important;
    cursor: pointer !important;
    transition: opacity 0.3s;
    -webkit-appearance: none !important;
    appearance: none !important;
    box-shadow: none;
    float: none !important;
}
.single-products__content .quote-form input[type="submit"]:hover {
    opacity: 0.8;
}

/* wpcf7-spinner(送信中スピナー)が横に並んで中央が崩れる対策 */
.single-products__content .quote-form .wpcf7-spinner {
    display: none !important;
}

/* CF7 エラー・完了メッセージ */
.single-products__content .quote-form .wpcf7-not-valid-tip {
    color: #D42828;
    font-size: 12px;
    margin-top: 4px;
}
.single-products__content .quote-form .wpcf7-response-output {
    margin: 24px 0 0;
    padding: 16px;
    font-size: 14px;
    text-align: center;
    border: 1px solid var(--color-primary);
}

/* SP */
@media (max-width: 767px) {
    .single-products__content .quote-form-wrap {
        padding: 32px 20px;
        margin: 48px auto;
    }
    .single-products__content .quote-form-wrap__title {
        font-size: 18px;
        margin-bottom: 24px;
        padding-bottom: 16px;
    }
    .single-products__content .quote-form {
        padding: 0;
    }
    .single-products__content .quote-form__row {
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
    }
    .single-products__content .quote-form__label {
        flex: none;
        text-align: left;
        padding-right: 0;
        font-size: 13px;
        justify-content: flex-start;
    }
    .single-products__content .quote-form .quote-form__section-title {
        font-size: 18px;
    }
    .single-products__content .quote-form input[type="submit"] {
        padding: 14px 48px;
        width: 100%;
    }
}

/* ============================================================
   商品詳細 - DENBA ページ
   ========================================================== */

/* 導入テキスト */
.single-products__content .denba-intro {
    text-align: center;
    margin: 48px 0;
}
.single-products__content .denba-intro__text {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    line-height: 2;
    color: #373637;
}

/* こんなお悩みの方に */
.single-products__content .denba-trouble {
    margin: 64px 0;
    text-align: center;
}
.single-products__content .denba-trouble__title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 28px;
    font-weight: bold;
    color: #373637;
    margin: 0 0 40px;
    padding-top: 35px;
}
.single-products__content .denba-trouble__row {
    display: grid;
    gap: 32px;
    margin: 0 auto 32px;
    max-width: 720px;
}
.single-products__content .denba-trouble__row--3 {
    grid-template-columns: repeat(3, 1fr);
}
.single-products__content .denba-trouble__row--4 {
    grid-template-columns: repeat(4, 1fr);
    max-width: 970px;
}
.single-products__content .denba-trouble__item img {
    width: 230px;
    height: 230px;
    object-fit: contain;
    margin: 0 auto 8px;
    display: block;
}
.single-products__content .denba-trouble__caption {
    font-size: 17px;
    color: #373637;
    line-height: 1.5;
    margin: 0;
}

/* 寝ているだけでずっと水分子活性 */
.single-products__content .denba-molecule {
    margin: 72px calc(50% - 50vw) 48px;
    padding: 72px 20px 48px;
    background: #F6FAFC;
    text-align: center;
}
.single-products__content .denba-molecule__inner {
    max-width: 960px;
    margin: 0 auto;
}
.single-products__content .denba-molecule__title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 30px;
    font-weight: 700;
    line-height: 1.5;
    color: #104B8E;
    margin: 0 0 28px;
}
.single-products__content .denba-molecule__title-break {
    display: none;
}
.single-products__content .denba-molecule__visual {
    max-width: 660px;
    margin: 0 auto 30px;
}
.single-products__content .denba-molecule__motion {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 752 / 416;
    object-fit: contain;
    margin: 0 auto 22px;
    background: #fff;
}
.single-products__content .denba-molecule__series {
    display: block;
    width: min(500px, 82%);
    height: auto;
    margin: 0 auto;
}
.single-products__content .denba-molecule__text {
    max-width: 760px;
    margin: 0 auto 31px;
    font-size: 16px;
    line-height: 2;
    color: #373637;
}
.single-products__content .denba-molecule__video-block {
    padding-top: 48px;
}
.single-products__content .denba-molecule__video-title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 28px;
    font-weight: 700;
    line-height: 1.5;
    color: #373637;
    margin: 0 0 32px;
}
.single-products__content .denba-molecule__youtube {
    position: relative;
    width: min(640px, 100%);
    aspect-ratio: 16 / 9;
    margin: 0 auto;
    overflow: hidden;
    border-radius: 8px;
    box-shadow: 0 18px 38px rgba(34, 51, 84, 0.15);
    background: #000;
}
.single-products__content .denba-molecule__youtube iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

/* 食品の鮮度保持技術から生まれた技術 */
.single-products__content .denba-food-tech-video {
    max-width: 760px;
    margin: 0 auto 126px;
    text-align: center;
}
.single-products__content .denba-food-tech-video__title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 28px;
    font-weight: 700;
    line-height: 1.5;
    color: #373637;
    margin: 0 0 24px;
}
.single-products__content .denba-food-tech-video__youtube {
    position: relative;
    width: min(640px, 100%);
    aspect-ratio: 16 / 9;
    margin: 0 auto;
    overflow: hidden;
    border-radius: 8px;
    box-shadow: 0 18px 38px rgba(34, 51, 84, 0.15);
    background: #000;
}
.single-products__content .denba-food-tech-video__youtube iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

/* DENBA Health 6つの特徴(アイコン) */
.single-products__content .denba-feature {
    margin: 64px 0;
    text-align: center;
}
.single-products__content .denba-feature__title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 28px;
    font-weight: bold;
    color: #373637;
    margin: 0 0 40px;
    padding-top: 35px;
}
.single-products__content .denba-feature__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
    max-width: 960px;
    margin: 0 auto;
}
.single-products__content .denba-feature__item {
    text-align: left;
}
.single-products__content .denba-feature__item img {
    width: 200px;
    height: 200px;
    object-fit: contain;
    margin: 0 auto 16px;
    display: block;
}
.single-products__content .denba-feature__placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 200px;
    height: 200px;
    margin: 0 auto 16px;
    border: 1px dashed #C3C3C3;
    border-radius: 50%;
    background: #F7F7F7;
    color: #999;
    font-size: 13px;
    letter-spacing: 0;
    box-sizing: border-box;
}
.single-products__content .denba-feature__name {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 20px;
    font-weight: bold;
    color: #373637;
    margin: 0 0 8px;
}
.single-products__content .denba-feature__desc {
    font-size: 17px;
    line-height: 1.8;
    color: #373637;
    margin: 0;
}
.single-products__content .denba-feature__link {
    display: inline-block;
    margin-top: 8px;
    color: var(--color-primary);
    font-weight: 700;
    text-decoration: none;
}
.single-products__content .denba-feature__link:hover {
    text-decoration: underline;
}

/* 体内の水分子にアプローチ(hero、背景画像 2734416_m.jpg を 50% 透過)
   margin: calc(50% - 50vw) で背景をビューポート幅いっぱいに、
   padding はシンプルな固定値で、内側コンテンツは hero__row の max-width で制御 */
.single-products__content .denba-hero {
    position: relative;
    margin: 84px calc(50% - 50vw) 64px;
    padding: 64px 40px;
    overflow: hidden;
    background-color: #E8F0F5;
}
.single-products__content .denba-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url('http://localhost:10008/wp-content/uploads/2026/04/denba-hero-bg.jpg');
    background-size: cover;
    background-position: center;
    opacity: 0.5;
    z-index: 0;
    pointer-events: none;
}
.single-products__content .denba-hero > * {
    position: relative;
    z-index: 1;
}
.single-products__content .denba-hero__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: start;
    max-width: 1080px;
    margin: 0 auto;
}
.single-products__content .denba-hero__image img {
    width: 100%;
    height: auto;
    display: block;
}
.single-products__content .denba-hero__subtitle {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 24px;
    font-weight: bold;
    color: #373637;
    margin: 0 0 16px;
}
.single-products__content .denba-hero__body {
    font-size: 16px;
    line-height: 1.9;
    color: #373637;
    margin: 0 0 16px;
}

/* DENBA Healthの技術 */
.single-products__content .denba-tech {
    margin: 64px 0;
}
.single-products__content .denba-tech__title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 28px;
    font-weight: bold;
    color: #373637;
    text-align: center;
    margin: 0 0 32px;
    padding-top: 35px;
}
.single-products__content .denba-tech__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: start;
}
.single-products__content .denba-tech__image img {
    width: 100%;
    height: auto;
    display: block;
}
.single-products__content .denba-tech__subtitle {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 20px;
    font-weight: bold;
    color: #373637;
    margin: 0 0 16px;
    line-height: 1.6;
}
.single-products__content .denba-tech__body {
    font-size: 16px;
    line-height: 1.9;
    color: #373637;
    margin: 0;
}

/* 大学との共同研究(bg-university.png を背景にビューポート全幅) */
.single-products__content .denba-research {
    background-color: #132446;
    background-image: url('http://localhost:10008/wp-content/uploads/2026/04/denba-univ-bg.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    color: #fff;
    margin: 64px calc(50% - 50vw);
    padding: 64px 40px;
}
.single-products__content .denba-research__title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 28px;
    font-weight: bold;
    color: #fff;
    text-align: center;
    margin: 0 0 48px;
}
.single-products__content .denba-research__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    max-width: 1080px;
    margin: 0 auto;
}
.single-products__content .denba-research__item {
    text-align: center;
}
.single-products__content .denba-research__univ {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 24px;
    font-weight: bold;
    color: #fff;
    margin: 0 0 12px;
}
.single-products__content .denba-research__desc {
    font-size: 16px;
    line-height: 1.8;
    color: #fff;
    margin: 0;
}
.single-products__content .denba-research__desc .external-link {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 0.18em;
}
.single-products__content .denba-research__desc .external-link__tail {
    white-space: nowrap;
}
.single-products__content .denba-research__desc .external-link__icon {
    display: inline-block;
    width: 16px;
    height: 16px;
    margin: 0 0 0 4px;
    vertical-align: -0.12em;
}
.single-products__content .denba-research--with-dealer {
    margin-bottom: 0;
}
.single-products__content .denba-dealer-cert {
    background: #f7f7f7;
    border: 1px solid #d9d9d9;
    border-top: 0;
    margin: 0 calc(50% - 50vw) 64px;
    padding: 36px 40px;
}
.single-products__content .denba-dealer-cert__inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: 40px;
    align-items: center;
    max-width: 1080px;
    margin: 0 auto;
}
.single-products__content .denba-dealer-cert__text p {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 22px;
    font-weight: bold;
    line-height: 1.8;
    color: #373637;
    margin: 0;
}
.single-products__content .denba-dealer-cert__image {
    text-align: center;
}
.single-products__content .denba-dealer-cert__image img {
    display: block;
    width: 100%;
    max-width: 280px;
    height: auto;
    margin: 0 auto;
    border: 1px solid #e4e4e4;
    background: #fff;
}

/* 製品紹介 見出し */
.single-products__content .denba-product-heading {
    max-width: 1080px;
    margin: 80px auto 32px;
    text-align: center;
}
.single-products__content .denba-product-heading__main {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 28px;
    font-weight: 700;
    line-height: 1.5;
    color: #373637;
    margin: 0 0 32px;
}
.single-products__content .denba-product-heading__sub {
    display: inline-block;
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 25px;
    font-weight: 700;
    line-height: 1.4;
    color: var(--color-primary);
    border: 2px solid var(--color-primary);
    padding: 8px 32px;
    margin: 0;
}

/* 商品紹介 */
.single-products__content .denba-product {
    margin: 64px 0;
    padding-bottom: 48px;
    border-bottom: 1px solid #C3C3C3;
}
.single-products__content .denba-product--stacked {
    max-width: 1080px;
    margin-left: auto;
    margin-right: auto;
}
.single-products__content .denba-product:last-of-type {
    border-bottom: none;
}
.single-products__content .denba-product__row {
    display: grid;
    grid-template-columns: 420px 1fr;
    gap: 40px;
    align-items: start;
    max-width: 1080px;
    margin: 0 auto;
}
.single-products__content .denba-product__image img {
    width: 100%;
    height: auto;
    display: block;
}
.single-products__content .denba-product__image-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    margin: 0 0 30px;
}
.single-products__content .denba-product__image-grid--single {
    grid-template-columns: minmax(0, 1fr);
    width: calc((100% - 24px) / 2);
    margin: 0 auto 30px;
}
.single-products__content .denba-product__image-item {
    background: #F7F7F7;
}
.single-products__content .denba-product__image-item img {
    display: block;
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: contain;
}
.single-products__content .denba-product__content-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.92fr);
    gap: 36px 56px;
    align-items: start;
}
.single-products__content .denba-product__spec-wrap {
    min-width: 0;
}
.single-products__content .denba-product__spec-title {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.6;
    color: #373637;
    margin: 0 0 8px;
}
.single-products__content .denba-product__name {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 24px;
    font-weight: bold;
    color: #373637;
    margin: 0 0 16px;
}
.single-products__content .denba-product__use-label {
    font-size: 16px;
    font-weight: 700;
    line-height: 1.7;
    color: #000;
    margin: 0 0 6px;
}
.single-products__content .denba-product__desc {
    font-size: 16px;
    line-height: 1.9;
    color: #373637;
    margin: 0 0 26px;
}
.single-products__content .denba-product__rental-box,
.single-products__content .denba-product__trial-box {
    margin: 0 0 26px;
    padding: 18px 22px;
    background: #F2F2F2;
    box-sizing: border-box;
}
.single-products__content .denba-product__rental-text,
.single-products__content .denba-product__trial-text {
    font-size: 15px;
    line-height: 1.9;
    color: #373637;
    margin: 0;
}
.single-products__content .denba-product__subscription-emphasis {
    font-size: 17px;
    font-weight: 700;
    color: var(--color-primary);
}
.single-products__content .denba-product__rental-contact,
.single-products__content .denba-product__trial-reserve {
    margin: 10px 0 0;
    text-align: right;
}
.single-products__content .denba-product__rental-contact a,
.single-products__content .denba-product__trial-reserve a {
    color: var(--color-primary);
    font-weight: 700;
    text-decoration: none;
}
.single-products__content .denba-product__rental-contact a:hover,
.single-products__content .denba-product__trial-reserve a:hover {
    color: var(--color-primary);
}
.single-products__content .denba-product__spec {
    display: grid;
    grid-template-columns: 90px 1fr;
    gap: 8px 16px;
    font-size: 13px;
    line-height: 1.7;
    color: #373637;
    margin: 0;
}
.single-products__content .denba-product__spec:not(:last-child) {
    margin-bottom: 20px;
}
.single-products__content .denba-product__spec dt {
    font-weight: normal;
}
.single-products__content .denba-product__spec dd {
    margin: 0;
}
.single-products__content .denba-product__spec-note {
    font-size: 12px;
    line-height: 1.7;
    color: #666;
    margin: 14px 0 0;
}

/* SP */
@media (max-width: 767px) {
    .single-products__content .denba-trouble__row--3,
    .single-products__content .denba-trouble__row--4 {
        grid-template-columns: repeat(2, 1fr);
    }
    .single-products__content .denba-molecule {
        margin: 48px calc(50% - 50vw) 32px;
        padding: 44px 18px 29px;
    }
    .single-products__content .denba-molecule__title {
        margin: 0 auto 22px;
        font-size: 21px;
    }
    .single-products__content .denba-molecule__title-break {
        display: block;
    }
    .single-products__content .denba-molecule__visual {
        margin-bottom: 24px;
    }
    .single-products__content .denba-molecule__motion {
        margin-bottom: 18px;
    }
    .single-products__content .denba-molecule__series {
        width: min(320px, 86%);
    }
    .single-products__content .denba-molecule__text {
        font-size: 14px;
        line-height: 1.9;
        margin-bottom: 23px;
    }
    .single-products__content .denba-molecule__video-block {
        padding-top: 34px;
    }
    .single-products__content .denba-molecule__video-title {
        font-size: 22px;
        margin-bottom: 22px;
    }
    .single-products__content .denba-food-tech-video {
        margin: 0 auto 114px;
        padding: 0 18px;
    }
    .single-products__content .denba-food-tech-video__title {
        margin-bottom: 18px;
    }
    .single-products__content .denba-feature__grid {
        grid-template-columns: 1fr;
    }
    .single-products__content .denba-hero {
        margin: 48px calc(50% - 50vw);
        padding: 40px 20px;
    }
    .single-products__content .denba-research {
        margin: 48px calc(50% - 50vw);
        padding: 40px 20px;
    }
    .single-products__content .denba-research--with-dealer {
        margin-bottom: 0;
    }
    .single-products__content .denba-dealer-cert {
        margin: 0 calc(50% - 50vw) 48px;
        padding: 28px 20px;
    }
    .single-products__content .denba-dealer-cert__inner {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    .single-products__content .denba-dealer-cert__text p {
        font-size: 18px;
        text-align: left;
    }
    .single-products__content .denba-dealer-cert__image img {
        max-width: 240px;
    }
    .single-products__content .denba-hero__row,
    .single-products__content .denba-tech__row,
    .single-products__content .denba-product__row {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    .single-products__content .denba-product-heading {
        margin: 56px auto 24px;
    }
    .single-products__content .denba-product-heading__main {
        font-size: 22px;
        margin-bottom: 24px;
    }
    .single-products__content .denba-product-heading__sub {
        font-size: 20px;
        padding: 6px 24px;
    }
    .single-products__content .denba-product__image-grid,
    .single-products__content .denba-product__content-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .single-products__content .denba-product__image-grid--single {
        width: 100%;
    }
    .single-products__content .denba-research__grid {
        grid-template-columns: 1fr;
    }
    .single-products__content .denba-product__spec {
        grid-template-columns: 80px 1fr;
        font-size: 12px;
    }
    .single-products__content .denba-product__rental-box,
    .single-products__content .denba-product__trial-box {
        padding: 14px 16px;
        margin-bottom: 24px;
    }
    .single-products__content .denba-product__rental-text,
    .single-products__content .denba-product__trial-text {
        font-size: 14px;
        line-height: 1.8;
    }
    .single-products__content .denba-product__subscription-emphasis {
        font-size: 16px;
    }
    .single-products__content .denba-product__rental-contact,
    .single-products__content .denba-product__trial-reserve {
        margin-top: 8px;
    }
}

/* ============================================
   還元粋 (Kangensui) ページ専用スタイル
   ============================================ */

/* --- 導入セクション --- */
.single-products__content .kangen-intro {
    margin: 64px 0;
    text-align: center;
}
.single-products__content .kangen-intro__title {
    font-family: "YakuHanJP", var(--font-jp);
    font-size: 28px;
    font-weight: bold;
    color: var(--color-text);
    margin-bottom: 24px;
    line-height: 1.5;
}
.single-products__content .kangen-intro__text {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    line-height: 1.9;
    color: var(--color-text);
    max-width: 800px;
    margin: 0 auto;
}

/* --- 3つの特徴 --- */
.single-products__content .kangen-feature {
    margin: 64px 0;
    padding-top: 35px;
}
.single-products__content .kangen-feature__title {
    font-family: "YakuHanJP", var(--font-jp);
    font-size: 28px;
    font-weight: bold;
    color: var(--color-text);
    text-align: center;
    margin-bottom: 48px;
    line-height: 1.5;
}
.single-products__content .kangen-feature__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
    max-width: 1080px;
    margin: 0 auto;
}
.single-products__content .kangen-feature__item {
    text-align: center;
}
.single-products__content .kangen-feature__image {
    width: 100%;
    max-width: 280px;
    aspect-ratio: 1 / 1;
    background: #E8E8E8;
    margin: 0 auto 20px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}
.single-products__content .kangen-feature__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.single-products__content .kangen-feature__name {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 19px;
    font-weight: bold;
    color: var(--color-text);
    margin-bottom: 16px;
    line-height: 1.5;
}
.single-products__content .kangen-feature__desc {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 17px;
    line-height: 1.8;
    color: var(--color-text);
    text-align: left;
}

/* --- ラインナップ見出し --- */
.single-products__content .kangen-lineup {
    margin: 80px 0 40px;
    padding-top: 35px;
    border-top: 1px solid #E8E8E8;
}
.single-products__content .kangen-lineup__title {
    font-family: "YakuHanJP", var(--font-jp);
    font-size: 28px;
    font-weight: bold;
    color: var(--color-text);
    text-align: center;
    margin-bottom: 16px;
    line-height: 1.5;
}
.single-products__content .kangen-lineup__lead {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    line-height: 1.8;
    color: var(--color-text);
    text-align: center;
    max-width: 800px;
    margin: 0 auto;
}

/* --- 製品カード --- */
.single-products__content .kangen-product {
    margin: 64px 0;
}
.single-products__content .kangen-product__row {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 40px;
    align-items: start;
    max-width: 1080px;
    margin: 0 auto;
}
.single-products__content .kangen-product__image {
    width: 100%;
    aspect-ratio: 1 / 1;
    background: #E8E8E8;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 420px;
}
.single-products__content .kangen-product__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.single-products__content .kangen-product__category {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 14px;
    color: var(--color-primary);
    margin-bottom: 8px;
}
.single-products__content .kangen-product__name {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 24px;
    font-weight: bold;
    color: var(--color-text);
    margin-bottom: 12px;
    line-height: 1.5;
}
.single-products__content .kangen-product__catch {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 18px;
    font-weight: bold;
    color: var(--color-primary);
    margin-bottom: 16px;
    line-height: 1.6;
}
.single-products__content .kangen-product__desc {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    line-height: 1.9;
    color: var(--color-text);
    margin-bottom: 20px;
}
.single-products__content .kangen-product__spec {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 8px 16px;
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 14px;
    line-height: 1.7;
    color: var(--color-text);
}
.single-products__content .kangen-product__spec dt {
    font-weight: bold;
    white-space: nowrap;
}
.single-products__content .kangen-product__spec dd {
    margin: 0;
    min-width: 0;
}
.single-products__content .kangen-product__catalog {
    margin: 0 0 18px;
    text-align: right;
}
.single-products__content .kangen-product__catalog-link {
    display: inline-block;
    color: var(--color-primary);
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 15px;
    font-weight: bold;
    line-height: 1.6;
    text-decoration: none;
}
.single-products__content .kangen-product__catalog-link:hover {
    color: var(--color-primary);
    text-decoration: none;
}
.single-products__content .kangen-product__image img[src*="rw100new.jpg"] {
    object-fit: contain;
}

/* --- SP対応 --- */
@media (max-width: 767px) {
    .single-products__content .kangen-intro {
        margin: 40px 0;
    }
    .single-products__content .kangen-intro__title {
        font-size: 20px;
    }
    .single-products__content .kangen-intro__text {
        font-size: 14px;
        text-align: left;
    }
    .single-products__content .kangen-feature {
        margin: 40px 0;
        padding-top: 24px;
    }
    .single-products__content .kangen-feature__title,
    .single-products__content .kangen-lineup__title {
        font-size: 22px;
        margin-bottom: 32px;
    }
    .single-products__content .kangen-feature__grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }
    .single-products__content .kangen-feature__name {
        font-size: 18px;
    }
    .single-products__content .kangen-feature__desc {
        font-size: 14px;
    }
    .single-products__content .kangen-lineup {
        margin: 56px 0 24px;
        padding-top: 24px;
    }
    .single-products__content .kangen-lineup__lead {
        font-size: 14px;
        text-align: left;
    }
    .single-products__content .kangen-product {
        margin: 40px 0;
    }
    .single-products__content .kangen-product__row {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    .single-products__content .kangen-product__image {
        max-width: 100%;
    }
    .single-products__content .kangen-product__name {
        font-size: 20px;
    }
    .single-products__content .kangen-product__catch {
        font-size: 16px;
    }
    .single-products__content .kangen-product__desc {
        font-size: 14px;
    }
    .single-products__content .kangen-product__spec {
        grid-template-columns: max-content minmax(0, 1fr);
        column-gap: 12px;
        font-size: 12px;
    }
    .single-products__content .kangen-product__catalog {
        margin: 0 0 16px;
    }
    .single-products__content .kangen-product__catalog-link {
        font-size: 14px;
    }
}

/* ============================================================
   商品詳細 - スーパーラジエントヒーター(SRH)ページ
   還元粋ページの実値に揃えて統一(2026-04-25 修正)
   ========================================================== */

/* 全セクション中央寄せ・最大幅統一 */
.single-products__content .srh-intro,
.single-products__content .srh-feature,
.single-products__content .srh-tech,
.single-products__content .srh-lineup,
.single-products__content .srh-product {
    max-width: 1080px;
    margin-left: auto;
    margin-right: auto;
}

/* 導入(中央寄せ) */
.single-products__content .srh-intro {
    text-align: center;
    margin-top: 48px;
    margin-bottom: 48px;
}
.single-products__content .srh-intro__title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 28px;
    font-weight: bold;
    color: var(--color-primary);
    margin: 0 0 24px;
    line-height: 1.5;
}
.single-products__content .srh-intro__text {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    line-height: 1.9;
    color: #373637;
    margin: 0;
}

/* 4つの特徴(4カラム) */
.single-products__content .srh-feature {
    margin-top: 64px;
    margin-bottom: 64px;
    text-align: center;
}
.single-products__content .srh-feature__title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 28px;
    font-weight: bold;
    color: #373637;
    margin: 0 0 40px;
    padding-top: 30px;
    line-height: 1.5;
}
.single-products__content .srh-feature__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
    max-width: 1080px;
    margin: 0 auto;
}
.single-products__content .srh-feature__item {
    text-align: center;
}
.single-products__content .srh-feature__image {
    width: 100%;
    max-width: 240px;
    aspect-ratio: 1 / 1;
    background: transparent;
    margin: 0 auto 16px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.single-products__content .srh-feature__image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}
.single-products__content .srh-feature__name {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 19px;
    font-weight: bold;
    color: #373637;
    margin: 0 0 8px;
    line-height: 1.5;
}
.single-products__content .srh-feature__desc {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    line-height: 1.8;
    color: #373637;
    margin: 0;
    text-align: left;
}

/* 技術解説(2カラム) */
.single-products__content .srh-tech {
    margin-top: 64px;
    margin-bottom: 64px;
}
.single-products__content .srh-tech__title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 28px;
    font-weight: bold;
    color: #373637;
    text-align: center;
    margin: 0 0 40px;
    padding-top: 30px;
    line-height: 1.5;
}
.single-products__content .srh-tech__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: start;
}
.single-products__content .srh-tech__image img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 4px;
}
.single-products__content .srh-tech__center-image {
    max-width: 720px;
    margin: 56px auto 0;
}
.single-products__content .srh-tech__center-image img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 4px;
}
.single-products__content .srh-tech__center-image .srh-tech__caption {
    text-align: center;
}
.single-products__content .srh-tech__caption {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 13px;
    line-height: 1.6;
    color: #666;
    margin: 8px 0 0;
    text-align: left;
}
.single-products__content .srh-tech__subtitle {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 19px;
    font-weight: bold;
    color: #373637;
    margin: 0 0 16px;
    line-height: 1.6;
}
.single-products__content .srh-tech__body {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 17px;
    line-height: 1.9;
    color: #373637;
    margin: 0 0 16px;
}

/* ラインナップ見出し */
.single-products__content .srh-lineup {
    text-align: center;
    margin-top: 64px;
    margin-bottom: 32px;
    padding-top: 48px;
    border-top: 1px solid #C3C3C3;
}
.single-products__content .srh-lineup__title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 28px;
    font-weight: bold;
    color: #373637;
    margin: 0 0 16px;
    padding-top: 30px;
    line-height: 1.5;
}
.single-products__content .srh-lineup__lead {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    line-height: 1.8;
    color: #373637;
    margin: 0;
}

/* 各商品 */
.single-products__content .srh-product {
    margin-top: 64px;
    margin-bottom: 64px;
    padding-bottom: 48px;
    border-bottom: 1px solid #C3C3C3;
}
.single-products__content .srh-product:last-of-type {
    border-bottom: none;
}
.single-products__content .srh-product__row {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 40px;
    align-items: start;
}
.single-products__content .srh-product__image {
    width: 100%;
}
.single-products__content .srh-product__image img {
    width: 100%;
    height: auto;
    display: block;
}
.single-products__content .srh-product__category {
    display: inline-block;
    padding: 4px 12px;
    background: var(--color-primary);
    color: #fff;
    font-size: 12px;
    margin: 0 0 12px;
}
.single-products__content .srh-product__name {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 24px;
    font-weight: bold;
    color: #373637;
    margin: 0 0 12px;
    line-height: 1.5;
}
.single-products__content .srh-product__catch {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 18px;
    font-weight: bold;
    color: var(--color-primary);
    margin: 0 0 16px;
    line-height: 1.6;
}
.single-products__content .srh-product__desc {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    line-height: 1.9;
    color: #373637;
    margin: 0 0 20px;
}
.single-products__content .srh-product__spec {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 8px 16px;
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 14px;
    line-height: 1.7;
    color: #373637;
    margin: 0;
    padding-top: 16px;
    border-top: 1px solid #C3C3C3;
}
.single-products__content .srh-product__spec dt {
    font-weight: normal;
    color: #666;
    white-space: nowrap;
}
.single-products__content .srh-product__spec dd {
    margin: 0;
    min-width: 0;
}

/* SP - 還元粋のSP値に揃える */
@media (max-width: 767px) {
    .single-products__content .srh-intro {
        margin-top: 40px;
        margin-bottom: 40px;
    }
    .single-products__content .srh-intro__title { font-size: 20px; }
    .single-products__content .srh-intro__text {
        font-size: 14px;
        text-align: left;
    }
    .single-products__content .srh-feature {
        margin-top: 40px;
        margin-bottom: 40px;
    }
    .single-products__content .srh-feature__title,
    .single-products__content .srh-tech__title,
    .single-products__content .srh-lineup__title {
        font-size: 22px;
        margin-bottom: 32px;
    }
    .single-products__content .srh-feature__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
    }
    .single-products__content .srh-feature__image {
        max-width: 160px;
    }
    .single-products__content .srh-feature__name { font-size: 18px; }
    .single-products__content .srh-feature__desc { font-size: 14px; }
    .single-products__content .srh-tech__row,
    .single-products__content .srh-product__row {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    .single-products__content .srh-tech__subtitle { font-size: 18px; }
    .single-products__content .srh-tech__body { font-size: 14px; }
    .single-products__content .srh-lineup {
        margin-top: 56px;
        margin-bottom: 24px;
        padding-top: 24px;
    }
    .single-products__content .srh-lineup__lead {
        font-size: 14px;
        text-align: left;
    }
    .single-products__content .srh-product {
        margin-top: 40px;
        margin-bottom: 40px;
    }
    .single-products__content .srh-product__name { font-size: 20px; }
    .single-products__content .srh-product__catch { font-size: 16px; }
    .single-products__content .srh-product__desc { font-size: 14px; }
    .single-products__content .srh-product__spec {
        grid-template-columns: max-content minmax(0, 1fr);
        column-gap: 12px;
        font-size: 12px;
    }
}

/* ============================================================
   商品詳細 - サンラメラページ
   還元粋・SRHページと同じ構造・サイズ
   ========================================================== */

/* 全セクション中央寄せ・最大幅統一 */
.single-products__content .sun-intro,
.single-products__content .sun-feature,
.single-products__content .sun-tech,
.single-products__content .sun-lineup,
.single-products__content .sun-product {
    max-width: 1080px;
    margin-left: auto;
    margin-right: auto;
}

/* 導入(中央寄せ) */
.single-products__content .sun-intro {
    text-align: center;
    margin-top: 48px;
    margin-bottom: 48px;
}
.single-products__content .sun-intro__title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 28px;
    font-weight: bold;
    color: var(--color-primary);
    margin: 0 0 24px;
    line-height: 1.5;
}
.single-products__content .sun-intro__text {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    line-height: 1.9;
    color: #373637;
    margin: 0;
}
.single-products__content .sun-registration-note {
    display: block;
    width: fit-content;
    margin: 18px auto 0;
    padding: 8px 16px;
    border: 1px solid var(--color-primary);
    color: var(--color-primary);
    background: #fff;
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.7;
}
.single-products__content .sun-made-in-japan-note {
    display: block;
    max-width: 720px;
    margin: 24px auto 0;
    padding: 12px 18px;
    border: 1px solid var(--color-primary);
    box-sizing: border-box;
    color: var(--color-primary);
    background: #fff;
    text-align: center;
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.8;
}

/* 4つの特徴(4カラム) */
.single-products__content .sun-feature {
    margin-top: 64px;
    margin-bottom: 64px;
    text-align: center;
}
.single-products__content .sun-feature__title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 28px;
    font-weight: bold;
    color: #373637;
    margin: 0 0 40px;
    padding-top: 30px;
    line-height: 1.5;
}
.single-products__content .sun-feature__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
    max-width: 1080px;
    margin: 0 auto;
}
.single-products__content .sun-feature__item {
    text-align: center;
}
.single-products__content .sun-feature__image {
    width: 100%;
    max-width: 240px;
    aspect-ratio: 1 / 1;
    background: transparent;
    margin: 0 auto 16px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.single-products__content .sun-feature__image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}
.single-products__content .sun-feature__name {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 19px;
    font-weight: bold;
    color: #373637;
    margin: 0 0 8px;
    line-height: 1.5;
}
.single-products__content .sun-feature__desc {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 17px;
    line-height: 1.8;
    color: #373637;
    margin: 0;
    text-align: left;
}

/* 技術解説(2カラム) */
.single-products__content .sun-tech {
    margin-top: 64px;
    margin-bottom: 64px;
}
.single-products__content .sun-tech__title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 28px;
    font-weight: bold;
    color: #373637;
    text-align: center;
    margin: 0 0 40px;
    padding-top: 30px;
    line-height: 1.5;
}
.single-products__content .sun-tech__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: start;
}
.single-products__content .sun-tech__image img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 4px;
}
.single-products__content .sun-tech__caption {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 13px;
    line-height: 1.6;
    color: #666;
    margin: 8px 0 0;
    text-align: left;
}
.single-products__content .sun-tech__subtitle {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 19px;
    font-weight: bold;
    color: #373637;
    margin: 0 0 16px;
    line-height: 1.6;
}
.single-products__content .sun-tech__body {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 17px;
    line-height: 1.9;
    color: #373637;
    margin: 0 0 16px;
}

/* ラインナップ見出し */
.single-products__content .sun-lineup {
    text-align: center;
    margin-top: 64px;
    margin-bottom: 32px;
    padding-top: 48px;
    border-top: 1px solid #C3C3C3;
}
.single-products__content .sun-lineup__title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 28px;
    font-weight: bold;
    color: #373637;
    margin: 0 0 16px;
    padding-top: 30px;
    line-height: 1.5;
}
.single-products__content .sun-lineup__lead {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    line-height: 1.8;
    color: #373637;
    margin: 0;
}

/* 各商品 */
.single-products__content .sun-product {
    margin-top: 64px;
    margin-bottom: 64px;
    padding-bottom: 48px;
    border-bottom: 1px solid #C3C3C3;
}
.single-products__content .sun-product:last-of-type {
    border-bottom: none;
}
.single-products__content .sun-product__row {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 40px;
    align-items: start;
}
.single-products__content .sun-product__image {
    width: 100%;
}
.single-products__content .sun-product__image img {
    width: 100%;
    height: auto;
    display: block;
}
.single-products__content .sun-product__category {
    display: inline-block;
    padding: 4px 12px;
    background: var(--color-primary);
    color: #fff;
    font-size: 12px;
    margin: 0 0 12px;
}
.single-products__content .sun-product__name {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 24px;
    font-weight: bold;
    color: #373637;
    margin: 0 0 12px;
    line-height: 1.5;
}
.single-products__content .sun-product__catch {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 18px;
    font-weight: bold;
    color: var(--color-primary);
    margin: 0 0 16px;
    line-height: 1.6;
}
.single-products__content .sun-product__desc {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    line-height: 1.9;
    color: #373637;
    margin: 0 0 20px;
}
.single-products__content .sun-product__spec {
    display: grid;
    grid-template-columns: 100px 1fr;
    gap: 8px 16px;
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 14px;
    line-height: 1.7;
    color: #373637;
    margin: 0;
    padding-top: 16px;
    border-top: 1px solid #C3C3C3;
}
.single-products__content .sun-product__spec dt {
    font-weight: normal;
    color: #666;
}
.single-products__content .sun-product__spec dd {
    margin: 0;
}

/* SP - 還元粋・SRHのSP値に揃える */
@media (max-width: 767px) {
    .single-products__content .sun-intro {
        margin-top: 40px;
        margin-bottom: 40px;
    }
    .single-products__content .sun-intro__title { font-size: 20px; }
    .single-products__content .sun-intro__text {
        font-size: 14px;
        text-align: left;
    }
    .single-products__content .sun-registration-note {
        margin: 16px auto 0;
        padding: 7px 12px;
        font-size: 14px;
    }
    .single-products__content .sun-made-in-japan-note {
        display: inline-block;
        width: fit-content;
        max-width: 100%;
        margin-top: 18px;
        padding: 10px 12px;
        text-align: left;
        font-size: 14px;
        line-height: 1.7;
    }
    .single-products__content .sun-feature {
        margin-top: 40px;
        margin-bottom: 40px;
    }
    .single-products__content .sun-feature__title,
    .single-products__content .sun-tech__title,
    .single-products__content .sun-lineup__title {
        font-size: 22px;
        margin-bottom: 32px;
    }
    .single-products__content .sun-feature__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
    }
    .single-products__content .sun-feature__image {
        max-width: 160px;
    }
    .single-products__content .sun-feature__name { font-size: 18px; }
    .single-products__content .sun-feature__desc { font-size: 14px; }
    .single-products__content .sun-tech__row,
    .single-products__content .sun-product__row {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    .single-products__content .sun-tech__subtitle { font-size: 18px; }
    .single-products__content .sun-tech__body { font-size: 14px; }
    .single-products__content .sun-lineup {
        margin-top: 56px;
        margin-bottom: 24px;
        padding-top: 24px;
    }
    .single-products__content .sun-lineup__lead {
        font-size: 14px;
        text-align: left;
    }
    .single-products__content .sun-product {
        margin-top: 40px;
        margin-bottom: 40px;
    }
    .single-products__content .sun-product__name { font-size: 20px; }
    .single-products__content .sun-product__catch { font-size: 16px; }
    .single-products__content .sun-product__desc { font-size: 14px; }
    .single-products__content .sun-product__spec {
        grid-template-columns: 80px 1fr;
        font-size: 12px;
    }
}

/* ============================================================
   商品詳細 - 新林の滝(taki)ページ
   還元粋・SRH・サンラメラと同じ構造・サイズ
   ========================================================== */

/* 全セクション中央寄せ・最大幅統一 */
.single-products__content .taki-intro,
.single-products__content .taki-feature,
.single-products__content .taki-tech,
.single-products__content .taki-lineup,
.single-products__content .taki-product {
    max-width: 1080px;
    margin-left: auto;
    margin-right: auto;
}

/* 導入(中央寄せ) */
.single-products__content .taki-intro {
    text-align: center;
    margin-top: 48px;
    margin-bottom: 48px;
}
.single-products__content .taki-intro__title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 28px;
    font-weight: bold;
    color: var(--color-primary);
    margin: 0 0 24px;
    line-height: 1.5;
}
.single-products__content .taki-intro__text {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    line-height: 1.9;
    color: #373637;
    margin: 0;
}

/* 4つの特徴(4カラム) */
.single-products__content .taki-feature {
    margin-top: 64px;
    margin-bottom: 64px;
    text-align: center;
}
.single-products__content .taki-feature__title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 28px;
    font-weight: bold;
    color: #373637;
    margin: 0 0 40px;
    padding-top: 30px;
    line-height: 1.5;
}
.single-products__content .taki-feature__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
    max-width: 1080px;
    margin: 0 auto;
}
.single-products__content .taki-feature__item {
    text-align: center;
}
.single-products__content .taki-feature__image {
    width: 100%;
    max-width: 240px;
    aspect-ratio: 1 / 1;
    background: transparent;
    margin: 0 auto 16px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.single-products__content .taki-feature__image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}
.single-products__content .taki-feature__name {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 19px;
    font-weight: bold;
    color: #373637;
    margin: 0 0 8px;
    line-height: 1.5;
}
.single-products__content .taki-feature__desc {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 17px;
    line-height: 1.8;
    color: #373637;
    margin: 0;
    text-align: left;
}

/* 技術解説(2カラム) */
.single-products__content .taki-tech {
    margin-top: 64px;
    margin-bottom: 64px;
}
.single-products__content .taki-tech__title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 28px;
    font-weight: bold;
    color: #373637;
    text-align: center;
    margin: 0 0 40px;
    padding-top: 30px;
    line-height: 1.5;
}
.single-products__content .taki-tech__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: start;
}
.single-products__content .taki-tech__image img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 4px;
}
.single-products__content .taki-tech__caption {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 13px;
    line-height: 1.6;
    color: #666;
    margin: 8px 0 0;
    text-align: left;
}
.single-products__content .taki-tech__subtitle {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 19px;
    font-weight: bold;
    color: #373637;
    margin: 0 0 16px;
    line-height: 1.6;
}
.single-products__content .taki-tech__body {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 17px;
    line-height: 1.9;
    color: #373637;
    margin: 0 0 16px;
}

/* ラインナップ見出し */
.single-products__content .taki-lineup {
    text-align: center;
    margin-top: 64px;
    margin-bottom: 32px;
    padding-top: 48px;
    border-top: 1px solid #C3C3C3;
}
.single-products__content .taki-lineup__title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 28px;
    font-weight: bold;
    color: #373637;
    margin: 0 0 16px;
    padding-top: 30px;
    line-height: 1.5;
}
.single-products__content .taki-lineup__lead {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    line-height: 1.8;
    color: #373637;
    margin: 0;
}

/* 各商品 */
.single-products__content .taki-product {
    margin-top: 64px;
    margin-bottom: 64px;
    padding-bottom: 48px;
    border-bottom: 1px solid #C3C3C3;
}
.single-products__content .taki-product:last-of-type {
    border-bottom: none;
}
.single-products__content .taki-product__row {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 40px;
    align-items: start;
}
.single-products__content .taki-product__image {
    width: 100%;
}
.single-products__content .taki-product__image img {
    width: 100%;
    height: auto;
    display: block;
}
.single-products__content .taki-product__category {
    display: inline-block;
    padding: 4px 12px;
    background: var(--color-primary);
    color: #fff;
    font-size: 12px;
    margin: 0 0 12px;
}
.single-products__content .taki-product__name {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 24px;
    font-weight: bold;
    color: #373637;
    margin: 0 0 12px;
    line-height: 1.5;
}
.single-products__content .taki-product__name-note {
    font-size: 0.62em;
    font-weight: 400;
}
.single-products__content .taki-product__catch {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 18px;
    font-weight: bold;
    color: var(--color-primary);
    margin: 0 0 16px;
    line-height: 1.6;
}
.single-products__content .taki-product__desc {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    line-height: 1.9;
    color: #373637;
    margin: 0 0 20px;
}
.single-products__content .taki-product__spec {
    display: grid;
    grid-template-columns: 100px 1fr;
    gap: 8px 16px;
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 14px;
    line-height: 1.7;
    color: #373637;
    margin: 0;
    padding-top: 16px;
    border-top: 1px solid #C3C3C3;
}
.single-products__content .taki-product__spec dt {
    font-weight: normal;
    color: #666;
}
.single-products__content .taki-product__spec dd {
    margin: 0;
}

/* SP - 還元粋・SRH・サンラメラと同じSP値 */
@media (max-width: 767px) {
    .single-products__content .taki-intro {
        margin-top: 40px;
        margin-bottom: 40px;
    }
    .single-products__content .taki-intro__title { font-size: 20px; }
    .single-products__content .taki-intro__text {
        font-size: 14px;
        text-align: left;
    }
    .single-products__content .taki-feature {
        margin-top: 40px;
        margin-bottom: 40px;
    }
    .single-products__content .taki-feature__title,
    .single-products__content .taki-tech__title,
    .single-products__content .taki-lineup__title {
        font-size: 22px;
        margin-bottom: 32px;
    }
    .single-products__content .taki-feature__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
    }
    .single-products__content .taki-feature__image {
        max-width: 160px;
    }
    .single-products__content .taki-feature__name { font-size: 18px; }
    .single-products__content .taki-feature__desc { font-size: 14px; }
    .single-products__content .taki-tech__row,
    .single-products__content .taki-product__row {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    .single-products__content .taki-tech__subtitle { font-size: 18px; }
    .single-products__content .taki-tech__body { font-size: 14px; }
    .single-products__content .taki-lineup {
        margin-top: 56px;
        margin-bottom: 24px;
        padding-top: 24px;
    }
    .single-products__content .taki-lineup__lead {
        font-size: 14px;
        text-align: left;
    }
    .single-products__content .taki-product {
        margin-top: 40px;
        margin-bottom: 40px;
    }
    .single-products__content .taki-product__name { font-size: 20px; }
    .single-products__content .taki-product__catch { font-size: 16px; }
    .single-products__content .taki-product__desc { font-size: 14px; }
    .single-products__content .taki-product__spec {
        grid-template-columns: 80px 1fr;
        font-size: 12px;
    }
}

/* ============================================================
   商品詳細 - iiwan(いいわん)ページ
   還元粋・SRH・サンラメラ・新林の滝と同じ構造・サイズ
   ========================================================== */

/* 全セクション中央寄せ・最大幅統一 */
.single-products__content .iiwan-intro,
.single-products__content .iiwan-feature,
.single-products__content .iiwan-tech,
.single-products__content .iiwan-lineup,
.single-products__content .iiwan-product {
    max-width: 1080px;
    margin-left: auto;
    margin-right: auto;
}

/* 導入(中央寄せ) */
.single-products__content .iiwan-intro {
    text-align: center;
    margin-top: 48px;
    margin-bottom: 48px;
}
.single-products__content .iiwan-intro__title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 28px;
    font-weight: bold;
    color: var(--color-primary);
    margin: 0 0 24px;
    line-height: 1.5;
}
.single-products__content .iiwan-intro__text {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    line-height: 1.9;
    color: #373637;
    margin: 0;
}

/* 4つの特徴(4カラム) */
.single-products__content .iiwan-feature {
    margin-top: 64px;
    margin-bottom: 64px;
    text-align: center;
}
.single-products__content .iiwan-feature__title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 28px;
    font-weight: bold;
    color: #373637;
    margin: 0 0 40px;
    padding-top: 30px;
    line-height: 1.5;
}
.single-products__content .iiwan-feature__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
    max-width: 1080px;
    margin: 0 auto;
}
.single-products__content .iiwan-feature__item {
    text-align: center;
}
.single-products__content .iiwan-feature__image {
    width: 100%;
    max-width: 240px;
    aspect-ratio: 1 / 1;
    background: transparent;
    margin: 0 auto 16px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.single-products__content .iiwan-feature__image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}
.single-products__content .iiwan-feature__name {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 19px;
    font-weight: bold;
    color: #373637;
    margin: 0 0 8px;
    line-height: 1.5;
}
.single-products__content .iiwan-feature__desc {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 17px;
    line-height: 1.8;
    color: #373637;
    margin: 0;
    text-align: left;
}

/* 技術解説(2カラム) */
.single-products__content .iiwan-tech {
    margin-top: 64px;
    margin-bottom: 64px;
}
.single-products__content .iiwan-tech__title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 28px;
    font-weight: bold;
    color: #373637;
    text-align: center;
    margin: 0 0 40px;
    padding-top: 30px;
    line-height: 1.5;
}
.single-products__content .iiwan-tech__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: start;
}
.single-products__content .iiwan-tech__image img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 4px;
}
.single-products__content .iiwan-tech__caption {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 13px;
    line-height: 1.6;
    color: #666;
    margin: 8px 0 0;
    text-align: left;
}
.single-products__content .iiwan-tech__subtitle {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 19px;
    font-weight: bold;
    color: #373637;
    margin: 0 0 16px;
    line-height: 1.6;
}
.single-products__content .iiwan-tech__body {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 17px;
    line-height: 1.9;
    color: #373637;
    margin: 0 0 16px;
}

/* ラインナップ見出し */
.single-products__content .iiwan-lineup {
    text-align: center;
    margin-top: 64px;
    margin-bottom: 32px;
    padding-top: 48px;
    border-top: 1px solid #C3C3C3;
}
.single-products__content .iiwan-lineup__title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 28px;
    font-weight: bold;
    color: #373637;
    margin: 0 0 16px;
    padding-top: 30px;
    line-height: 1.5;
}
.single-products__content .iiwan-lineup__lead {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    line-height: 1.8;
    color: #373637;
    margin: 0;
}

/* 各商品 */
.single-products__content .iiwan-product {
    margin-top: 64px;
    margin-bottom: 64px;
    padding-bottom: 48px;
    border-bottom: 1px solid #C3C3C3;
}
.single-products__content .iiwan-product:last-of-type {
    border-bottom: none;
}
.single-products__content .iiwan-product__row {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 40px;
    align-items: start;
}
.single-products__content .iiwan-product__image {
    width: 100%;
}
.single-products__content .iiwan-product__image img {
    width: 100%;
    height: auto;
    display: block;
}
.single-products__content .iiwan-product__category {
    display: inline-block;
    padding: 4px 12px;
    background: var(--color-primary);
    color: #fff;
    font-size: 12px;
    margin: 0 0 12px;
}
.single-products__content .iiwan-product__name {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 24px;
    font-weight: bold;
    color: #373637;
    margin: 0 0 12px;
    line-height: 1.5;
}
.single-products__content .iiwan-product__catch {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 18px;
    font-weight: bold;
    color: var(--color-primary);
    margin: 0 0 16px;
    line-height: 1.6;
}
.single-products__content .iiwan-product__desc {
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 16px;
    line-height: 1.9;
    color: #373637;
    margin: 0 0 20px;
}
.single-products__content .iiwan-product__spec {
    display: grid;
    grid-template-columns: 100px 1fr;
    gap: 8px 16px;
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 14px;
    line-height: 1.7;
    color: #373637;
    margin: 0;
    padding-top: 16px;
    border-top: 1px solid #C3C3C3;
}
.single-products__content .iiwan-product__spec dt {
    font-weight: normal;
    color: #666;
}
.single-products__content .iiwan-product__spec dd {
    margin: 0;
}

/* SP - 還元粋・SRH・サンラメラ・新林の滝と同じSP値 */
@media (max-width: 767px) {
    .single-products__content .iiwan-intro {
        margin-top: 40px;
        margin-bottom: 40px;
    }
    .single-products__content .iiwan-intro__title { font-size: 20px; }
    .single-products__content .iiwan-intro__text {
        font-size: 14px;
        text-align: left;
    }
    .single-products__content .iiwan-feature {
        margin-top: 40px;
        margin-bottom: 40px;
    }
    .single-products__content .iiwan-feature__title,
    .single-products__content .iiwan-tech__title,
    .single-products__content .iiwan-lineup__title {
        font-size: 22px;
        margin-bottom: 32px;
    }
    .single-products__content .iiwan-feature__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
    }
    .single-products__content .iiwan-feature__image {
        max-width: 160px;
    }
    .single-products__content .iiwan-feature__name { font-size: 18px; }
    .single-products__content .iiwan-feature__desc { font-size: 14px; }
    .single-products__content .iiwan-tech__row,
    .single-products__content .iiwan-product__row {
        grid-template-columns: 1fr;
        gap: 24px;
    }
    .single-products__content .iiwan-tech__subtitle { font-size: 18px; }
    .single-products__content .iiwan-tech__body { font-size: 14px; }
    .single-products__content .iiwan-lineup {
        margin-top: 56px;
        margin-bottom: 24px;
        padding-top: 24px;
    }
    .single-products__content .iiwan-lineup__lead {
        font-size: 14px;
        text-align: left;
    }
    .single-products__content .iiwan-product {
        margin-top: 40px;
        margin-bottom: 40px;
    }
    .single-products__content .iiwan-product__name { font-size: 20px; }
    .single-products__content .iiwan-product__catch { font-size: 16px; }
    .single-products__content .iiwan-product__desc { font-size: 14px; }
    .single-products__content .iiwan-product__spec {
        grid-template-columns: 80px 1fr;
        font-size: 12px;
    }
}

/* ============================================================
   商品一覧 - クリッカブル化(画像 + タイトル)
   ========================================================== */

.products-item__thumb-link,
.products-item__title-link {
    display: block;
    text-decoration: none;
    color: inherit;
    transition: opacity 0.3s ease;
}
.products-item__thumb {
    overflow: hidden;
}
.products-item__thumb-link {
    display: block;
    line-height: 0;
}
.products-item__thumb-link .products-item__img {
    transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
.products-item__thumb-link:hover .products-item__img {
    transform: scale(1.03);
}
.products-item__title-link {
    color: inherit;
    transition: color 0.3s ease;
}
.products-item__title-link:hover {
    color: var(--color-primary);
}

@media (prefers-reduced-motion: reduce) {
    .products-item__thumb-link .products-item__img,
    .products-item__title-link {
        transition: none;
    }
    .products-item__thumb-link:hover .products-item__img {
        transform: none;
    }
}

/* ============================================================
   お問い合わせ固定ページ(/contact/)
   ※ .quote-form-wrap 系の既存ブロック(L7180〜)は
   .single-products__content 配下にスコープされているため
   contact ページに適用されない。ここで .contact-form-wrap
   プレフィックスで等価ルールをミラーする(既存は触らない)。
   ========================================================== */

/* 電話番号セクション */
.contact-tel {
    text-align: center;
    margin: 48px auto 64px;
    max-width: 720px;
}
.contact-tel__title {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 22px;
    font-weight: bold;
    color: #373637;
    margin: 0 0 24px;
}
.contact-tel__number {
    margin: 0;
    line-height: 1;
}
/* 詳細度UP + !important で確実に下線除去(テーマ汎用a override) */
.contact-tel .contact-tel__number a,
.contact-tel a[href^="tel:"],
.contact-tel__number a {
    display: inline-block;
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 48px;
    font-weight: bold;
    color: var(--color-primary);
    text-decoration: none !important;
    border-bottom: none !important;
    letter-spacing: 0.05em;
    line-height: 1;
}
.contact-tel .contact-tel__number a:hover,
.contact-tel a[href^="tel:"]:hover,
.contact-tel__number a:hover {
    text-decoration: none !important;
    opacity: 0.8;
}
.contact-tel__label {
    font-size: 28px;
    margin-right: 8px;
    vertical-align: middle;
    letter-spacing: 0.05em;
}

/* === フォーム枠(オレンジ枠 + 角丸) === */
.contact-form-wrap.quote-form-wrap {
    max-width: 720px;
    margin: 80px auto;
    padding: 48px;
    border: 1px solid var(--color-primary);
    border-radius: 10px;
}
.contact-form-wrap > h3 {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 22px;
    font-weight: bold;
    color: #373637;
    text-align: center;
    margin: 0 0 32px;
    padding-bottom: 24px;
    border-bottom: 1px dotted var(--color-primary);
}

/* === 内側ラッパー === */
.contact-form-wrap .quote-form {
    margin: 0;
    padding: 0;
    border: none;
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    color: #373637;
}

/* WP の自動 p 化を打ち消す */
.contact-form-wrap .quote-form p {
    margin: 0 !important;
}

/* === 行 === */
.contact-form-wrap .quote-form__row {
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 12px 0;
}

/* === ラベル === */
.contact-form-wrap .quote-form__label {
    flex: 0 0 160px;
    font-size: 16px;
    font-weight: bold;
    color: #373637;
    text-align: right;
    padding-right: 8px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

/* 必須タグ(.required) */
.contact-form-wrap .quote-form .required {
    display: inline-block;
    color: #D42828;
    font-size: 12px;
    font-weight: bold;
    margin-left: 8px;
}

/* === フィールドラップ === */
.contact-form-wrap .quote-form__field {
    flex: 1;
    min-width: 0;
}

/* CF7 の wrapper span */
.contact-form-wrap .quote-form .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
}

/* input text/email/tel + textarea */
.contact-form-wrap .quote-form input[type="text"],
.contact-form-wrap .quote-form input[type="email"],
.contact-form-wrap .quote-form input[type="tel"],
.contact-form-wrap .quote-form textarea {
    width: 100%;
    padding: 12px 16px;
    background: #FDEFE8 !important;
    border: none !important;
    border-radius: 5px !important;
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 14px;
    color: #373637;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
    box-shadow: none;
}
.contact-form-wrap .quote-form textarea {
    line-height: 1.6;
    resize: vertical;
    min-height: 160px;
}
.contact-form-wrap .quote-form input::placeholder,
.contact-form-wrap .quote-form textarea::placeholder {
    color: #999;
    font-size: 13px;
}

/* === 送信エリア === */
.contact-form-wrap .quote-form .quote-form__submit {
    text-align: center !important;
    margin-top: 32px;
    display: block;
    width: 100%;
}
.contact-form-wrap .quote-form .quote-form__submit p {
    margin: 0 !important;
    text-align: center !important;
}

/* === 送信ボタン === */
.contact-form-wrap .quote-form input[type="submit"],
.contact-form-wrap .quote-form .wpcf7-submit {
    display: inline-block !important;
    margin: 0 auto !important;
    padding: 14px 80px !important;
    border-radius: 5px !important;
    background: var(--color-primary) !important;
    color: #fff !important;
    border: none !important;
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif !important;
    font-size: 16px !important;
    font-weight: bold !important;
    cursor: pointer !important;
    transition: opacity 0.3s;
    -webkit-appearance: none !important;
    appearance: none !important;
    box-shadow: none;
    float: none !important;
}
.contact-form-wrap .quote-form input[type="submit"]:hover {
    opacity: 0.8;
}

/* スピナー非表示(中央寄せ崩れ防止) */
.contact-form-wrap .quote-form .wpcf7-spinner {
    display: none !important;
}

/* CF7 メッセージ */
.contact-form-wrap .quote-form .wpcf7-not-valid-tip {
    color: #D42828;
    font-size: 12px;
    margin-top: 4px;
}
.contact-form-wrap .quote-form .wpcf7-response-output {
    margin: 24px 0 0;
    padding: 16px;
    font-size: 14px;
    text-align: center;
    border: 1px solid var(--color-primary);
}

/* SP対応 */
@media (max-width: 767px) {
    .contact-tel {
        margin: 32px auto 48px;
    }
    .contact-tel__title {
        font-size: 18px;
    }
    .contact-tel .contact-tel__number a,
    .contact-tel a[href^="tel:"],
    .contact-tel__number a {
        font-size: 32px;
    }
    .contact-tel__label {
        font-size: 20px;
    }
    .contact-form-wrap.quote-form-wrap {
        padding: 32px 20px;
        margin: 48px 16px 64px;
    }
    .contact-form-wrap > h3 {
        font-size: 18px;
        margin-bottom: 24px;
        padding-bottom: 16px;
    }
    .contact-form-wrap .quote-form__row {
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
    }
    .contact-form-wrap .quote-form__label {
        flex: none;
        text-align: left;
        padding-right: 0;
        font-size: 13px;
        justify-content: flex-start;
    }
    .contact-form-wrap .quote-form input[type="submit"] {
        padding: 14px 48px;
        width: 100%;
    }
}

/* ============================================================
   スマホ用固定フッターナビゲーション(4アイコンクイックアクセス)
   PC表示では非表示、SP表示時のみ画面下に固定
   ========================================================== */

.sp-footer-nav {
    display: none;
}

@media (max-width: 991px) {
    .sp-footer-nav {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        width: 100%;
        background: #FED8C7;
        z-index: 9000;
        box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.08);
        padding-bottom: env(safe-area-inset-bottom);
    }

    .sp-footer-nav__item {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: 10px 4px 12px;
        text-decoration: none !important;
        color: var(--color-primary);
        gap: 6px;
        transition: opacity 0.2s ease;
        border: none !important;
        border-bottom: none !important;
    }
    .sp-footer-nav__item:hover,
    .sp-footer-nav__item:active {
        opacity: 0.8;
        text-decoration: none !important;
    }

    /* 電話だけオレンジ塗り背景 + 白文字 */
    .sp-footer-nav__item--phone {
        background: var(--color-primary);
        color: #fff;
    }

    .sp-footer-nav__icon {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 28px;
        height: 28px;
        line-height: 0;
    }
    .sp-footer-nav__icon svg {
        width: 100%;
        height: 100%;
        display: block;
    }

    .sp-footer-nav__label {
        font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
        font-size: 11px;
        font-weight: bold;
        line-height: 1.2;
        text-align: center;
        letter-spacing: 0.02em;
        white-space: nowrap;
    }

    /* 固定フッター分の余白を body 末尾に確保(コンテンツが隠れないように) */
    body {
        padding-bottom: calc(72px + env(safe-area-inset-bottom));
    }
}

/* スマホ横向き(landscape)で高さが狭い場合は非表示 */
@media (max-width: 991px) and (orientation: landscape) and (max-height: 500px) {
    .sp-footer-nav {
        display: none;
    }
    body {
        padding-bottom: 0;
    }
}

/* ============================================================
   イベント詳細(/event/event-XXXX/) header-row のみ最大幅 1200px
   :has() で header-row を含む .single-event__inner だけをターゲット
   (既存 L4536 の :has(.single-event__body-row) と同じパターン)。
   メイン画像(L32) / body-row(L91) / PICK UPセクションには影響しない。
   既存 .single-event__inner の padding(サイドバー回避) と
   box-sizing:border-box は維持。広い画面でのみ中央寄せ。
   ========================================================== */
.single-event__inner:has(.single-event__header-row) {
    max-width: 1400px;
    margin-left: auto;
    margin-right: auto;
}

/* ============================================================
   予約フォーム /reserve/ 用 .reserve-form-wrap ミラー
   /contact/ の .contact-form-wrap (L9343-9541) と等価の装飾を継承
   (既存ブロックは触らず、.reserve-form-wrap プレフィックスで複製)
   ========================================================== */

/* === フォーム枠(オレンジ枠 + 角丸) === */
.reserve-form-wrap.quote-form-wrap {
    max-width: 720px;
    margin: 80px auto;
    padding: 48px;
    border: 1px solid var(--color-primary);
    border-radius: 10px;
}
.reserve-form-wrap > h3 {
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: 22px;
    font-weight: bold;
    color: #373637;
    text-align: center;
    margin: 0 0 32px;
    padding-bottom: 24px;
    border-bottom: 1px dotted var(--color-primary);
}

/* === 内側ラッパー === */
.reserve-form-wrap .quote-form {
    margin: 0;
    padding: 0;
    border: none;
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    color: #373637;
}

/* WP の自動 p 化を打ち消す */
.reserve-form-wrap .quote-form p {
    margin: 0 !important;
}

/* === 行 === */
.reserve-form-wrap .quote-form__row {
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 12px 0;
}

/* === ラベル === */
.reserve-form-wrap .quote-form__label {
    flex: 0 0 160px;
    font-size: 16px;
    font-weight: bold;
    color: #373637;
    text-align: right;
    padding-right: 8px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

/* 必須タグ(.required) */
.reserve-form-wrap .quote-form .required {
    display: inline-block;
    color: #D42828;
    font-size: 12px;
    font-weight: bold;
    margin-left: 8px;
}

/* === フィールドラップ === */
.reserve-form-wrap .quote-form__field {
    flex: 1;
    min-width: 0;
}

/* CF7 の wrapper span */
.reserve-form-wrap .quote-form .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
}

/* input text/email/tel + textarea */
.reserve-form-wrap .quote-form input[type="text"],
.reserve-form-wrap .quote-form input[type="email"],
.reserve-form-wrap .quote-form input[type="tel"],
.reserve-form-wrap .quote-form textarea {
    width: 100%;
    padding: 12px 16px;
    background: #FDEFE8 !important;
    border: none !important;
    border-radius: 5px !important;
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 14px;
    color: #373637;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
    box-shadow: none;
}
.reserve-form-wrap .quote-form textarea {
    line-height: 1.6;
    resize: vertical;
    min-height: 160px;
}
.reserve-form-wrap .quote-form input::placeholder,
.reserve-form-wrap .quote-form textarea::placeholder {
    color: #999;
    font-size: 13px;
}

/* === 送信エリア === */
.reserve-form-wrap .quote-form .quote-form__submit {
    text-align: center !important;
    margin-top: 32px;
    display: block;
    width: 100%;
}
.reserve-form-wrap .quote-form .quote-form__submit p {
    margin: 0 !important;
    text-align: center !important;
}

/* === 送信ボタン === */
.reserve-form-wrap .quote-form input[type="submit"],
.reserve-form-wrap .quote-form .wpcf7-submit {
    display: inline-block !important;
    margin: 0 auto !important;
    padding: 14px 80px !important;
    border-radius: 5px !important;
    background: var(--color-primary) !important;
    color: #fff !important;
    border: none !important;
    font-family: "YakuHanJP", "fot-tsukuardgothic-std", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", sans-serif !important;
    font-size: 16px !important;
    font-weight: bold !important;
    cursor: pointer !important;
    transition: opacity 0.3s;
    -webkit-appearance: none !important;
    appearance: none !important;
    box-shadow: none;
    float: none !important;
}
.reserve-form-wrap .quote-form input[type="submit"]:hover {
    opacity: 0.8;
}

/* スピナー非表示(中央寄せ崩れ防止) */
.reserve-form-wrap .quote-form .wpcf7-spinner {
    display: none !important;
}

/* CF7 メッセージ */
.reserve-form-wrap .quote-form .wpcf7-not-valid-tip {
    color: #D42828;
    font-size: 12px;
    margin-top: 4px;
}
.reserve-form-wrap .quote-form .wpcf7-response-output {
    margin: 24px 0 0;
    padding: 16px;
    font-size: 14px;
    text-align: center;
    border: 1px solid var(--color-primary);
}

/* SP対応 */
@media (max-width: 767px) {
    .reserve-form-wrap.quote-form-wrap {
        padding: 32px 20px;
        margin: 48px 16px 64px;
    }
    .reserve-form-wrap > h3 {
        font-size: 18px;
        margin-bottom: 24px;
        padding-bottom: 16px;
    }
    .reserve-form-wrap .quote-form__row {
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
    }
    .reserve-form-wrap .quote-form__label {
        flex: none;
        text-align: left;
        padding-right: 0;
        font-size: 13px;
        justify-content: flex-start;
    }
    .reserve-form-wrap .quote-form input[type="submit"] {
        padding: 14px 48px;
        width: 100%;
    }
}

/* ============================================================
   イベント詳細(/event/event-XXXX/) メイン画像 inner も最大幅 1200px
   :has(.single-event__main-image) で main-image を含む inner だけ
   ターゲット。前回の :has(.single-event__header-row) と同パターン。
   inner が画面中央に寄ることで、内部の .single-event__main-image
   (max-width: 800px) も視覚的に中央寄せされる。
   ========================================================== */
.single-event__inner:has(.single-event__main-image) {
    max-width: 1400px;
    margin-left: auto;
    margin-right: auto;
}

/* ============================================================
   予約フォーム /reserve/ のチェックボックスを XD デザイン準拠に
   薄オレンジの角丸ボックス + オレンジ色のチェックマーク
   .reserve-form-wrap スコープ内のみ適用、/contact/ には影響なし
   ========================================================== */

.reserve-form-wrap .wpcf7-checkbox {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.reserve-form-wrap .wpcf7-list-item {
    margin: 0 !important;
    display: block;
}

.reserve-form-wrap .wpcf7-list-item label {
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    font-size: inherit;
    color: var(--color-text);
}

/* デフォルトのチェックボックスを非表示にして独自スタイルを適用 */
.reserve-form-wrap .wpcf7-list-item input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    width: 24px;
    height: 24px;
    background-color: var(--color-bg-primary, #FFEFE8);
    border-radius: 4px;
    cursor: pointer;
    position: relative;
    flex-shrink: 0;
    margin: 0;
    border: none;
}

/* チェック時のオレンジ✓マーク(擬似要素) */
.reserve-form-wrap .wpcf7-list-item input[type="checkbox"]:checked::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 14px;
    height: 10px;
    border-left: 3px solid var(--color-primary, #E85400);
    border-bottom: 3px solid var(--color-primary, #E85400);
    transform: translate(-50%, -65%) rotate(-45deg);
}

.reserve-form-wrap .wpcf7-list-item-label {
    line-height: 1.5;
}

/* /reserve/ (page-id-346) のみ、パンくず ⇄ 予約フォーム間の余白を計 70px 詰める
   - .page-breadcrumb の padding-bottom: 16px → 0 (−16px)
   - .page-content__inner の padding-top: 40px → 0、margin-top: -14px (合計 −54px)
*/
body.page-id-346 .page-breadcrumb {
    padding-bottom: 0;
}
body.page-id-346 .page-content .page-content__inner {
    padding-top: 0;
    margin-top: -14px;
}

/* ============================================================
   PRODUCTS スライダー: グレー線のみ削除 (高さ統一は別途検討)
   .home-products__card-link の border (1px solid var(--color-border)) が
   短いカードの下端で「グレー線」として可視化されていた → 削除
   スコープは .home-products__slider 限定 (EVENT/PEOPLE 影響なし)
   ========================================================== */
.home-products__slider .home-products__card-link {
    border: none;
    border-radius: 0;
}

/* ============================================================
   /people/ アーカイブ:アンカー (#person-XXX) 着地点の上余白
   TOP の PEOPLE スライダーから /people/#person-XXX へジャンプした時、
   ヘッダー帯/上部要素にカードが隠れないよう 80px の余白を確保。
   archive-people.php の <main> は class="products-archive people-archive"
   ========================================================== */
.people-archive .products-item[id^="person-"] {
    scroll-margin-top: 80px;
}

/* ============================================================
   single-event.php 本文内リンクをオレンジに
   .single-event__content は the_content() 出力のみを包む div なので、
   「一覧へ戻る」(.single-event__back) や PICK UP セクション、ウィジェット側
   には影響しない。
   ========================================================== */
.single-event__content a {
    color: var(--color-primary, #E85400);
    text-decoration: underline;
    text-decoration-color: var(--color-primary, #E85400);
    text-underline-offset: 2px;
}
.single-event__content a:hover {
    color: var(--color-primary, #E85400);
    opacity: 0.7;
    text-decoration-color: var(--color-primary, #E85400);
}

/* ============================================================
   reserve form (CF7 565) Tiny Booker 連携フィールドのスタイル
   - hidden タグ([hidden event_id], [hidden tiny-booker]) は CF7 が
     <input type="hidden"> を出力するが、ラベル無しの空 wrap が残る
     ことがあるため、念のため見えないようにしておく
   - readonly な event_name / event_date / seat_name は薄グレー背景で
     編集不可であることを視覚的に示す
   - event_date と seat_name は同じ「来場希望日時」欄に横並び表示
   ============================================================ */

/* hidden 系タグの span.wpcf7-form-control-wrap が枠を取らないように */
.reserve-form-wrap .wpcf7-form-control-wrap[data-name="event_id"],
.reserve-form-wrap .wpcf7-form-control-wrap[data-name="tiny-booker"] {
    display: none;
}

/* readonly テキスト入力(event_name / event_date / seat_name) */
.reserve-form-wrap .reserve-input[readonly] {
    background-color: #F5F5F5;
    color: #666;
    cursor: not-allowed;
}

/* event_date / seat_name の横並び(2カラム) */
.reserve-form-wrap .reserve-input--inline-half {
    display: inline-block;
    width: calc(50% - 6px);
    box-sizing: border-box;
}
.reserve-form-wrap .reserve-input--inline-half + .reserve-input--inline-half {
    margin-left: 8px;
}

@media (max-width: 991px) {
    .reserve-form-wrap .reserve-input--inline-half {
        display: block;
        width: 100%;
    }
    .reserve-form-wrap .reserve-input--inline-half + .reserve-input--inline-half {
        margin-left: 0;
        margin-top: 8px;
    }
}

/* === SP_FOOTER_NAV_HEIGHT_TWEAKS_START ===
   2026-04-26 v5: フッター固定バナーの高さ縮小 + テキスト調整(常時表示)
   - スクロール挙動は今回見送り(常時表示のまま)
   - 削除する時はこのコメントブロックごとカット
   ============================================= */
@media (max-width: 991px) {
    /* 高さ縮小: 縦パディングのみ縮小 */
    .sp-footer-nav__item {
        padding-top: 6px !important;
        padding-bottom: 6px !important;
        gap: 3px !important;
    }

    /* アイコン下余白の調整 */
    .sp-footer-nav__icon {
        margin-bottom: 0 !important;
    }

    /* テキスト調整: 1段階アップ + 字間を詰める */
    .sp-footer-nav__label {
        font-size: 12px !important;
        letter-spacing: -0.02em !important;
        line-height: 1.1 !important;
    }
}
/* === SP_FOOTER_NAV_HEIGHT_TWEAKS_END === */

/* === SP_FOOTER_NAV_SCROLL_INLINE_START ===
   2026-04-26: フッター固定バナースクロール挙動(インライン JS 連動 CSS)
   - 初期状態は画面外(transform: translateY(100%))
   - JS が .sfn-active 付与で出現
   - 通過後の下スクロール時 .sfn-active.sfn-hidden で再非表示
   - 削除する時はこのコメントブロックごとカット
   ============================================= */
@media (max-width: 991px) {
    .sp-footer-nav {
        transform: translateY(100%);
        transition: transform 0.3s ease;
        will-change: transform;
    }
    .sp-footer-nav.sfn-active {
        transform: translateY(0);
    }
    .sp-footer-nav.sfn-active.sfn-hidden {
        transform: translateY(100%);
    }
}
/* === SP_FOOTER_NAV_SCROLL_INLINE_END === */

/* === SIDEBAR_DRAWER_OVERHAUL_START ===
   2026-04-26 ドロワー開時はフッター固定バナーを完全に隠す
============================================= */
body:has(.sidebar.is-open) .sp-footer-nav {
    display: none !important;
}
/* === SIDEBAR_DRAWER_OVERHAUL_END === */


/* === HOME_EVENT_SLIDER_WRAP_SP_PAD_START ===
   2026-04-26 SP(768px以下)時、画面端←→カード左端の距離を 12px に詰める
   - .home-sec の SP padding(16px) をネガティブマージンで打ち消す
     (カレンダー実装 L3334-3338 と同じ手法)
   - .home-event__slider-wrap の内側 padding は 4px
   - 結果: 画面端 → カード左端 = 0(打消) + 4(wrap) + 8(card) = 12px
   - 削除する時はこのコメントブロックごとカット
============================================= */
@media (max-width: 768px) {
    html body #home__event .home-event__slider-wrap {
        margin-left: -16px !important;
        margin-right: -16px !important;
        padding-left: 4px !important;
        padding-right: 4px !important;
    }
}
/* === HOME_EVENT_SLIDER_WRAP_SP_PAD_END === */


/* === HOME_EVENT_CARD_BODY_SP_PAD_START ===
   2026-04-26 SP(768px以下)時、TOP EVENT カードのグレー背景内側 padding
   - 上 6px / 右 10px / 下 8px / 左 10px
   - L3482 の `padding: 16px !important;` を上書き
   - スコープ: TOP の EVENT スライダー内のみ(.home-event__card 経由)
   - PC は変更なし(L3482 の 16px のまま)
   - 削除する時はこのコメントブロックごとカット
============================================= */
@media (max-width: 768px) {
    html body .home-event__card .event-card__body {
        padding: 6px 10px 8px !important;
    }
}
/* === HOME_EVENT_CARD_BODY_SP_PAD_END === */


/* === HOME_EVENT_CARD_ICON_GAP_SP_START ===
   2026-04-26 全画面、EVENT カードの時計/地図アイコンとテキスト間を半分に
   ※元は SP 限定 + TOP のみだったが、PC + archive にも展開(ユーザー要望、ブロック名は互換維持)
   - L3637 の `gap: 8px !important` を 4px に
   - L3440 の `margin-right: 4px` を 2px に
   - 結果: アイコン → テキスト距離 12px → 6px(半分)
   - スコープ: TOP / archive 両方の EVENT カード(.home-event__card 経由を解除)
   - 削除する時はこのコメントブロックごとカット
============================================= */
html body .event-card__time,
html body .event-card__place {
    gap: 4px !important;
}
html body .event-card__time > span[aria-hidden],
html body .event-card__place > span[aria-hidden] {
    margin-right: 2px !important;
}
/* === HOME_EVENT_CARD_ICON_GAP_SP_END === */


/* === EVENT_CARD_BADGE_SP_PAD_START ===
   2026-04-26 SP(768px以下)時のみ EVENT カードのバッジ padding を詰める
   - .event-card__cat-badge:    6px 16px → 3px 7px
   - .event-card__status-badge: 6px 16px → 3px 6px
   - PC は L3367 / L3382 の原値(6px 16px)のまま
   - スコープ: TOP / archive 両方の EVENT カード
   - 削除する時はこのコメントブロックごとカット
============================================= */
@media (max-width: 768px) {
    html body .event-card__cat-badge {
        padding: 3px 7px !important;
    }
    html body .event-card__status-badge {
        padding: 3px 6px !important;
    }
}
/* === EVENT_CARD_BADGE_SP_PAD_END === */

/* === EVENT_CARD_CAT_BADGE_SP_RIGHT_START ===
   2026-04-26 SP(768px以下)時、EVENT カードのカテゴリバッジを左上→右上へ
   - left:0 → right:0
   - 角丸を右下→左下に反転(サムネ画像側を角丸に)
   - ステータスバッジ(.event-card__status-badge 左下)は触らない
   - 削除する時はこのコメントブロックごとカット
============================================= */
@media (max-width: 768px) {
    html body .event-card__cat-badge {
        left: auto !important;
        right: 0 !important;
        border-radius: 0 0 0 5px !important;
    }
}
/* === EVENT_CARD_CAT_BADGE_SP_RIGHT_END === */

/* === EVENT_CARD_DASHED_GAP_SP_START ===
   2026-04-26 SP(768px以下)時、点線周りの余白を詰める
   - .event-card__title: padding-bottom 6px(下点線まで)/ margin-bottom 4px
   - .event-card__time:  padding-bottom 4px / margin-bottom 4px
   - .event-card__place は border 打消済みなので触らない
   - 削除する時はこのコメントブロックごとカット
============================================= */
@media (max-width: 768px) {
    html body .event-card__title {
        padding-bottom: 6px !important;
        margin-bottom: 4px !important;
    }
    html body .event-card__time {
        padding-bottom: 4px !important;
        margin-bottom: 4px !important;
    }
}
/* === EVENT_CARD_DASHED_GAP_SP_END === */

/* === EVENT_CARD_ICON_SHIFT_SP_START ===
   2026-04-26 全画面、時計/地図アイコンを 2px 下に
   ※元は SP 限定だったが、PC でもアイコン位置を統一(ユーザー要望、ブロック名は互換維持)
   - 親 .event-card__time / __place の flex item である
     span[aria-hidden] 自身に margin-top を付与
   - 親は align-items: flex-start なので span の margin-top は確実に効く
   - TOP / archive 両方の EVENT カードに効く
   - 削除する時はこのコメントブロックごとカット
============================================= */
html body .event-card__time > span[aria-hidden],
html body .event-card__place > span[aria-hidden] {
    margin-top: 2px !important;
}
/* === EVENT_CARD_ICON_SHIFT_SP_END === */


/* === EVENT_CARD_DATE_MB_SP_START ===
   2026-04-26 SP(768px以下)時のみ、開催日(.event-card__date)とタイトルの間隔を 0 に
   - L3631 の base `margin-bottom: 2px !important;` を SP のみ上書き
   - PC は 2px のまま
   - 削除する時はこのコメントブロックごとカット
============================================= */
@media (max-width: 768px) {
    html body .event-card__date {
        margin-bottom: 0 !important;
    }
}
/* === EVENT_CARD_DATE_MB_SP_END === */

/* === TB_CALENDAR_TD_COMPACT_SP_START ===
   2026-04-26 SP(768px以下)時、Tiny Booker カレンダーの日付セルを縦に詰める
   - .tb-calendar-table td の padding 10px → 5px(縦のみ)
   - line-height 2.0 → 1.4
   - 第1週(tbody 1行目)の padding-top のみ 10px に維持
     → 曜日見出し ↔ 第1週 の間隔は変わらない
   - thead の th(曜日見出し)は触らない
   - plugin CSS(user_style_custom.css L65)に勝てるよう html body + !important 必須
   - 削除する時はこのコメントブロックごとカット
============================================= */
@media (max-width: 768px) {
    html body .tb-calendar-table td {
        padding-top: 5px !important;
        padding-bottom: 5px !important;
        line-height: 1.4 !important;
    }
    html body .tb-calendar-table tbody tr:first-child td {
        padding-top: 10px !important;
    }
}
/* === TB_CALENDAR_TD_COMPACT_SP_END === */

/* === TB_CALENDAR_CAPTION_GAP_SP_START ===
   2026-04-26 SP(768px以下)、Tiny Booker カレンダー上部の
   「日付をクリック/タップすると...」テキストと直下の線の間隔を詰める
   - .tb-calendar-table caption の margin-bottom 16px → 4px
   - .tb-calendar-table__attention の margin-bottom 2px → 0
   - 結果:テキスト直下→線まで 約 18px → 4px(78%カット)
   - thead の th(曜日見出し)は触らない
   - 削除する時はこのコメントブロックごとカット
============================================= */
@media (max-width: 768px) {
    html body .tb-calendar-table caption {
        margin-bottom: 4px !important;
    }
    html body .tb-calendar-table__attention {
        margin-bottom: 0 !important;
    }
}
/* === TB_CALENDAR_CAPTION_GAP_SP_END === */

/* === ARCHIVE_EVENT_GRID_SP_MATCH_TOP_START ===
   2026-04-26 SP(768px以下)、archive-event(/event/)のカード一覧を
   TOP の EVENT スライダーと同じ幅・間隔に揃える
   - 画面端 → カード = 12px(.archive-event__body padding 16 → 12)
   - column-gap / row-gap = 16px(TOP のカード間隔と一致)
   - 480px 以下も 1カラム → 2カラム維持(TOP と完全一致)
   - 削除する時はこのコメントブロックごとカット
============================================= */
@media (max-width: 768px) {
    html body .archive-event .archive-event__body {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }
    html body .archive-event .event-grid {
        row-gap: 16px !important;
        column-gap: 16px !important;
    }
}
@media (max-width: 480px) {
    html body .archive-event .event-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}
/* === ARCHIVE_EVENT_GRID_SP_MATCH_TOP_END === */

/* === ARCHIVE_EVENT_GRID_AUTO_ROWS_START ===
   2026-04-26 archive-event の .event-grid を 1行ごとに高さ独立に
   - 既存 grid-auto-rows: 1fr(全カード一律)を auto に上書き
   - PC: 3カラム → 3枚ごとに長い方に揃う
   - SP: 2カラム → 2枚ごとに長い方に揃う
   - 全画面共通(メディアクエリなし)
   - html body で詳細度を確保し既存 base 定義に勝つ
   - 削除する時はこのコメントブロックごとカット
============================================= */
html body .archive-event .event-grid {
    grid-auto-rows: auto !important;
}
/* === ARCHIVE_EVENT_GRID_AUTO_ROWS_END === */

/* === HOME_PRODUCTS_CARD_IMG_ASPECT_START ===
   2026-04-26: PRODUCTS カードサムネ aspect-ratio を 1/1 → 3/2 に変更
   - PC/SP 両方
   - 元画像 3:2 に対応してフレームを完全充填、上下白余白を解消
   - 削除する時はこのコメントブロックごとカット
   ============================================= */
html body .home-products__slider .home-products__card-img {
    aspect-ratio: 3 / 2 !important;
}
/* === HOME_PRODUCTS_CARD_IMG_ASPECT_END === */

/* === HOME_PEOPLE_SLIDER_WRAP_FULL_START ===
   2026-04-26 PEOPLE スライダーも PRODUCTS と同じく画面端まで広がるように
   - .home-sec の SP/PC 両方の左右 padding を打ち消す
   - PRODUCTS の HOME_EVENT_SLIDER_WRAP_SP_PAD と同じ手法
   - SP / PC 両方に適用
   - 削除する時はこのコメントブロックごとカット
============================================= */
/* SP(768px以下) */
@media (max-width: 768px) {
    html body #home__people .home-people__slider-wrap {
        margin-left: -16px !important;
        margin-right: -16px !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}
/* PC(769px以上)も同様に画面端まで広げる */
@media (min-width: 769px) {
    html body #home__people .home-people__slider-wrap {
        margin-left: -16px !important;
        margin-right: -16px !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}
/* === HOME_PEOPLE_SLIDER_WRAP_FULL_END === */

/* === SIDEBAR_REAL_VH_HEIGHT_START ===
   2026-04-26 ハンバーガードロワーを JS が設定する --real-vh に追従
   - footer.php 内の SIDEBAR_REAL_VH スクリプトと連携
   - --real-vh が未定義時は 100vh にフォールバック(古いブラウザ対応)
   - SP(991px以下)のみ
   - iOS Safari の position:fixed layout viewport 問題を完全回避
   - 削除する時はこのコメントブロックごとカット
============================================= */
@media (max-width: 991px) {
    html body .sidebar {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        height: var(--real-vh, 100vh) !important;
        max-height: var(--real-vh, 100vh) !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
        z-index: 9999 !important;
    }
}
/* === SIDEBAR_REAL_VH_HEIGHT_END === */

/* === SIDEBAR_NAV_COMPACT_SP_LIGHT_START ===
   2026-04-26 SP ハンバーガードロワー内メニューを「控えめに」縦に詰める
   - 前回(案 B)は詰めすぎてロールバック済み。今回は a padding を 25% だけ減らす
   - a padding: 12px 0 10px → 9px 0 8px(上 -3px/下 -2px)
   - li は触らない(タップ領域とリズム維持)
   - nav-jp font-size: 11px → 12px(+1px)
   - 効果:項目あたり 上 18→15px / 下 15→13px(計 -5px×7項目 ≈ -35px)
   - SP のみ(max-width: 768px)
   - 削除する時はこのコメントブロックごとカット
============================================= */
@media (max-width: 768px) {
    html body #site-sidebar.sidebar .sidebar__nav a {
        padding: 9px 0 8px !important;
    }
    html body #site-sidebar.sidebar .sidebar__nav .nav-jp {
        font-size: 12px !important;
    }
}
/* === SIDEBAR_NAV_COMPACT_SP_LIGHT_END === */

/* === HOME_PEOPLE_CAT_BAR_CENTER_V2_START ===
   2026-04-26 PEOPLE カテゴリバー縦中央寄せ + SP のみ +1px
   - .card-cat-bar を flex 化(縦中央)
   - min-height: 36px でバー高を確保(タップ領域も考慮)
   - SP のみ font-size +1px(ベース 12px → 13px)
   - 旧 HOME_PEOPLE_CAT_BAR_CENTER は削除して再構築
   - 詳細度を高めるため html body + 強い ID/クラス組合せ
   - 削除する時はこのコメントブロックごとカット
============================================= */
html body .home-people__slider .home-people__card-link .home-people__card-cat-bar {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 36px !important;
    text-align: center !important;
}
@media (max-width: 991px) {
    html body .home-people__slider .home-people__card-link .home-people__card-cat {
        font-size: 14px !important;
    }
}
/* === HOME_PEOPLE_CAT_BAR_CENTER_V2_END === */

/* === HOME_EVENT_SLICK_LIST_MB_FIX_START ===
   2026-04-26 EVENT スライダーの矢印かぶり解消
   - L3917 の .slick-list { margin-bottom: -15px !important } が
     下段カードを矢印領域(26px)に 11px 食い込ませる原因だった
   - 末尾マーカーで margin-bottom: 0 に上書き(高詳細度+!important で確実に勝つ)
   - これにより 4枚並びで矢印が下段カードに重ならない
   - 副作用:カード ↔ 矢印の距離が 15px 広がる(従来詰めすぎだった部分が戻る)
   - SP のみ(max-width: 991px)
   - 削除する時はこのコメントブロックごとカット
============================================= */
@media (max-width: 991px) {
    html body .home-event__slider .slick-list {
        margin-bottom: 0 !important;
    }
}
/* === HOME_EVENT_SLICK_LIST_MB_FIX_END === */

/* === FV_COPY_BREAK_AND_BOLD_START ===
   2026-04-27 FV コピー調整(詳細度強化版)
   - 英語: PC は1行 / SP(768px以下) は "Where Good Living" で改行
   - 日本語: PC/SP 共通でボールド
   - 詳細度を上げて他CSSの干渉を防ぐ
   - 削除する時はこのコメントブロックごとカット
============================================= */
html body .fv__copy .fv__copy-en .fv__copy-en-pc {
    display: inline !important;
}
html body .fv__copy .fv__copy-en .fv__copy-en-sp {
    display: none !important;
}

@media (max-width: 768px) {
    html body .fv__copy .fv__copy-en .fv__copy-en-pc {
        display: none !important;
    }
    html body .fv__copy .fv__copy-en .fv__copy-en-sp {
        display: inline !important;
    }
}

html body .fv__copy .fv__copy-jp {
    font-weight: bold !important;
}
/* === FV_COPY_BREAK_AND_BOLD_END === */

/* === FV_WAVE_BOTTOM_START ===
   2026-04-27 FV 下端に「波 3 つ」アニメーション
   - 色: #FFEFE8(サイドバー背景と統一)
   - 高さ: 60px(控えめ)
   - 3 つの波が異なる速度(7s/10s/13s)で流れる
   - 削除する時はこのコメントブロックごとカット + HTML 復元
============================================= */
html body .fv__wave {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 60px;
    z-index: 2;
    pointer-events: none;
    overflow: hidden;
    line-height: 0;
}
html body .fv__wave-svg {
    display: block;
    width: 200%;
    height: 100%;
}
html body .fv__wave-path {
    will-change: transform;
}
html body .fv__wave-path--1 {
    fill: rgba(255, 255, 255, 0.7);
    animation: fvWaveAnim 7s linear infinite;
}
html body .fv__wave-path--2 {
    fill: rgba(255, 255, 255, 0.85);
    animation: fvWaveAnim 10s linear infinite;
    animation-delay: -2s;
}
html body .fv__wave-path--3 {
    fill: rgba(255, 255, 255, 1);
    animation: fvWaveAnim 13s linear infinite;
    animation-delay: -4s;
}
@keyframes fvWaveAnim {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

@media (max-width: 991px) {
    html body .fv__wave {
        height: 40px;
    }
}

@media (prefers-reduced-motion: reduce) {
    html body .fv__wave-path {
        animation: none !important;
    }
}

/* ドットを波より前面に表示するため、z-index を強制的に上げる */
html body .fv__dots {
    z-index: 4 !important;
}
/* === FV_WAVE_BOTTOM_END === */

/* === FV_MOVIE_FIX_START ===
   TOP FV が動画構造の時、動画をFV全面に敷く。
   画像スライダー用CSSの高さだけが残ると、動画下部に余白が出るため明示指定する。
============================================= */
html body #home__fv.home-fv--movie {
    position: relative;
    overflow: hidden;
}
html body #home__fv.home-fv--movie .home-fv__movie {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center center;
    z-index: 1;
}
html body #home__fv.home-fv--movie .home-fv__movie--sp {
    display: none;
}
html body #home__fv.home-fv--movie .fv__copy {
    z-index: 3;
}
html body #home__fv.home-fv--movie .fv__wave {
    z-index: 2;
}

@media (max-width: 991px) {
    html body #home__fv.home-fv--movie .home-fv__movie--pc {
        display: none;
    }
    html body #home__fv.home-fv--movie .home-fv__movie--sp {
        display: block;
    }
}
/* === FV_MOVIE_FIX_END === */

/* === SINGLE_PRODUCTS_BACK_LINK_CSS_START ===
   2026-04-27 PRODUCTS 詳細ページに「一覧へ戻る」を追加
   - .single-event__back の CSS を流用、PRODUCTS 用に flex 依存を解除
   - 削除する時はこのコメントブロックごとカット
============================================= */
html body .single-products__back {
    text-align: center;
    margin: 48px 0 24px;
    transform: none; /* EVENT 側 transform: translateY(24px) を打ち消す */
}
@media (max-width: 991px) {
    html body .single-products__back {
        margin: 32px 0 16px;
    }
}
/* === SINGLE_PRODUCTS_BACK_LINK_CSS_END === */

/* ============================================
   FV キャッチコピー 改行制御(SP単語途中改行対策)
   2026-05-07 追加
   ============================================ */
.fv__copy-en {
    word-break: keep-all;
    overflow-wrap: normal;
    line-break: strict;
}
.fv__copy-en-line {
    display: block;
}

/* ============================================
   サイドメニュー電話番号 対応時間表示
   2026-05-07 追加
   ============================================ */
html body #site-sidebar.sidebar .sidebar__tel {
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0 !important;
    margin-bottom: 16px !important;
    text-align: center !important;
    white-space: normal !important;
}
html body #site-sidebar.sidebar .sidebar__tel-main {
    display: inline-flex !important;
    align-items: baseline !important;
    justify-content: center !important;
    gap: 8px !important;
    white-space: nowrap !important;
}
html body #site-sidebar.sidebar .sidebar__tel-hours {
    display: block !important;
    margin-top: 0 !important;
    color: #E85400 !important;
    text-align: center !important;
    white-space: nowrap !important;
    font-family: "YakuHanJP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif !important;
    font-weight: 400 !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
    letter-spacing: 0 !important;
}
html body #site-sidebar.sidebar .sidebar__sns {
    margin-top: 0 !important;
}

/* ============================================
   SPドロワー SNSアイコン位置調整
   2026-05-07 追加
   ============================================ */
html body #site-sidebar.sidebar .sidebar__sp-sns {
    display: none;
}
@media (max-width: 768px) {
    html body #site-sidebar.sidebar.is-open .sidebar__sp-head {
        position: static !important;
        min-height: 0 !important;
        height: 0 !important;
        margin: 0 !important;
    }
    html body #site-sidebar.sidebar .sidebar__close {
        top: 18px !important;
        left: 18px !important;
    }
    html body #site-sidebar.sidebar.is-open .sidebar__sp-sns {
        position: absolute !important;
        top: 19px !important;
        left: 96px !important;
        z-index: 111 !important;
        display: flex !important;
        align-items: center !important;
        gap: 10px !important;
        list-style: none !important;
        margin: 0 !important;
        padding: 0 !important;
        background: transparent !important;
    }
    html body #site-sidebar.sidebar.is-open .sidebar__sp-sns li {
        display: block !important;
        width: 28px !important;
        height: 28px !important;
    }
    html body #site-sidebar.sidebar.is-open .sidebar__sp-sns a,
    html body #site-sidebar.sidebar.is-open .sidebar__sp-sns img {
        display: block !important;
        width: 28px !important;
        height: 28px !important;
    }
    html body #site-sidebar.sidebar.is-open .sidebar__sp-sns img {
        filter: none !important;
        object-fit: contain !important;
    }
    html body #site-sidebar.sidebar.is-open .sidebar__footer .sidebar__sns {
        display: none !important;
    }
    html body #site-sidebar.sidebar.is-open .sidebar__inner {
        padding-top: 42px !important;
    }
}

/* ============================================
   SP固定フッターバナー hover色固定
   2026-05-07 追加
   ============================================ */
@media (max-width: 991px) {
    html body .sp-footer-nav .sp-footer-nav__item,
    html body .sp-footer-nav .sp-footer-nav__item:link,
    html body .sp-footer-nav .sp-footer-nav__item:visited,
    html body .sp-footer-nav .sp-footer-nav__item:hover,
    html body .sp-footer-nav .sp-footer-nav__item:active,
    html body .sp-footer-nav .sp-footer-nav__item:focus {
        color: var(--color-primary) !important;
        text-decoration: none !important;
    }
    html body .sp-footer-nav .sp-footer-nav__item--phone,
    html body .sp-footer-nav .sp-footer-nav__item--phone:link,
    html body .sp-footer-nav .sp-footer-nav__item--phone:visited,
    html body .sp-footer-nav .sp-footer-nav__item--phone:hover,
    html body .sp-footer-nav .sp-footer-nav__item--phone:active,
    html body .sp-footer-nav .sp-footer-nav__item--phone:focus {
        color: #fff !important;
    }
    html body .sp-footer-nav .sp-footer-nav__label {
        color: inherit !important;
    }
}

/* ============================================
   イベント一覧 カテゴリ説明文
   2026-05-07 追加
   ============================================ */
html body .archive-event .archive-event__category-descriptions {
    margin: -24px auto 34px !important;
    max-width: 860px !important;
    min-height: 30px !important;
    text-align: center !important;
}
html body .archive-event .archive-event__category-description {
    display: none !important;
    margin: 0 !important;
    color: #373637 !important;
    font-family: "YakuHanJP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif !important;
    font-weight: 400 !important;
    font-size: 15px !important;
    line-height: 1.9 !important;
    letter-spacing: 0.03em !important;
}
html body .archive-event .archive-event__category-description.is-active {
    display: block !important;
}
html body .archive-event .archive-event__category-description strong {
    font-family: inherit !important;
    font-weight: 700 !important;
}
@media (max-width: 768px) {
    html body .archive-event .archive-event__category-descriptions {
        margin: -18px auto 24px !important;
        min-height: 48px !important;
        padding: 0 4px !important;
    }
    html body .archive-event .archive-event__category-description {
        font-size: 13px !important;
        line-height: 1.75 !important;
        text-align: left !important;
    }
}

/* ============================================
   セレクト商品一覧 店頭確認案内
   2026-05-07 追加
   ============================================ */
html body .products-archive .products-archive__notice {
    margin: -18px 0 28px !important;
    color: #373637 !important;
    text-align: center !important;
    font-family: "YakuHanJP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif !important;
    font-weight: 400 !important;
    font-size: 15px !important;
    line-height: 1.8 !important;
    letter-spacing: 0.03em !important;
}
@media (max-width: 768px) {
    html body .products-archive .products-archive__notice {
        margin: -20px 0 22px !important;
        font-size: 13px !important;
        line-height: 1.7 !important;
    }
}

/* ============================================
   還元粋 無料給水案内
   2026-05-08 追加
   ============================================ */
html body .single-products__content .kangen-free-water-note {
    display: block !important;
    max-width: 720px !important;
    margin: 24px auto 0 !important;
    padding: 12px 18px !important;
    border: 1px solid #E85400 !important;
    box-sizing: border-box !important;
    color: #E85400 !important;
    background: #fff !important;
    text-align: center !important;
    font-family: "YakuHanJP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif !important;
    font-weight: 400 !important;
    font-size: 16px !important;
    line-height: 1.8 !important;
}
html body .single-products__content .kangen-free-water-note a,
html body .single-products__content .kangen-free-water-note__link {
    color: #E85400 !important;
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
}
@media (max-width: 768px) {
    html body .single-products__content .kangen-free-water-note {
        display: inline-block !important;
        width: fit-content !important;
        max-width: 100% !important;
        margin: 18px 0 0 !important;
        padding: 10px 12px !important;
        text-align: left !important;
        font-size: 14px !important;
        line-height: 1.7 !important;
    }
}

/* ============================================
   商品ページ お見積フォーム メッセージ欄
   2026-06-03 追加
   ============================================ */
.single-products__content .quote-form textarea,
.single-products__content .quote-form .quote-form__textarea {
    width: 100%;
    min-height: 160px;
    padding: 12px 16px;
    background: #FDEFE8 !important;
    border: none !important;
    border-radius: 5px !important;
    box-sizing: border-box;
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 14px;
    line-height: 1.6;
    color: #373637;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
    box-shadow: none;
    resize: vertical;
}
.single-products__content .quote-form textarea::placeholder {
    color: #999;
    font-size: 13px;
}

/* ============================================
   イベント申し込みフォーム 希望日時入力
   2026-06-03 追加
   ============================================ */
.reserve-form-wrap .event-date-time-field {
    display: flex;
    gap: 12px;
    align-items: center;
}
.reserve-form-wrap.event-application-form-wrap .quote-form__row > p:first-child {
    flex: 0 0 160px;
    display: flex;
    justify-content: flex-end;
}
.reserve-form-wrap.event-application-form-wrap .quote-form__row > p:first-child .quote-form__label {
    flex: none;
    width: 100%;
}
.reserve-form-wrap .event-date-time-field > p {
    display: flex;
    width: 100%;
    gap: 12px;
    align-items: center;
}
.reserve-form-wrap .event-date-time-field .wpcf7-form-control-wrap {
    flex: 1 1 0;
    min-width: 0;
}
.reserve-form-wrap .quote-form input[type="date"],
.reserve-form-wrap .quote-form select {
    width: 100%;
    padding: 12px 16px;
    background: #FDEFE8 !important;
    border: none !important;
    border-radius: 5px !important;
    box-sizing: border-box;
    font-family: "YakuHanJP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 14px;
    line-height: 1.4;
    color: #373637;
    outline: none;
    box-shadow: none;
}
.reserve-form-wrap .event-application-form__notice {
    font-size: 13px;
    line-height: 1.7;
}
.reserve-form-wrap .event-application-form__notice p {
    margin: 0 !important;
}
.reserve-form-wrap .event-application-form__notice p + p {
    margin-top: 6px !important;
}
.reserve-form-wrap .event-application-form__notice p:last-child {
    color: #666;
    font-size: 13px;
}
@media (max-width: 767px) {
    .reserve-form-wrap.event-application-form-wrap .quote-form__row > p:first-child {
        flex: none;
        justify-content: flex-start;
    }
    .reserve-form-wrap .event-date-time-field {
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
    }
    .reserve-form-wrap .event-date-time-field > p {
        flex-direction: column;
        align-items: stretch;
        gap: 8px;
    }
}
