/*
Theme Name: Himawari Terrace Cafe
Description: ひまわりテラスカフェ公式テーマ — こまちカフェ構成準拠
Version: 5.0.0
Text Domain: himawari
*/
:root{
  --sun:#F4A300;--sun-l:#FFC845;--sun-p:#FFF8E7;
  --grn:#5B8C3E;--grn-d:#3D6B2E;--grn-l:#E8F0E0;
  --brn:#8B6914;--cream:#FFFDF5;--ww:#FEFCF6;
  --td:#3A3226;--tm:#6B5D4F;--tl:#9E8E7E;
  --bd:#E8DFD2;--sh:rgba(139,105,20,.08);
  --r:8px;--rm:16px;--rl:24px;--rx:40px;
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Zen Maru Gothic',sans-serif;color:var(--td);background:var(--cream);line-height:1.8;overflow-x:hidden}
a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}
ul,ol{list-style:none;margin:0;padding:0}
.container{max-width:1100px;margin:0 auto;padding:0 20px}
.sp{padding:60px 0}

/* ===== HEADER ===== */
.site-header{background:var(--ww);position:sticky;top:0;z-index:100;box-shadow:0 2px 20px var(--sh)}
.h-brand{border-bottom:1px solid var(--bd)}
.h-brand-inner{max-width:1200px;margin:0 auto;padding:10px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.site-logo{display:flex;align-items:center;gap:12px}
.logo-mark{height:56px;width:auto}
.logo-emoji{width:56px;height:56px;background:var(--sun);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:30px;box-shadow:0 3px 12px rgba(244,163,0,.3);flex-shrink:0}
.logo-text-wrap .logo-text{font-family:'Kaisei Opti',serif;font-size:22px;font-weight:700;color:var(--grn-d);line-height:1.2}
.logo-text-wrap .logo-sub{font-size:10px;color:var(--tl);letter-spacing:.12em}
.h-right{display:flex;align-items:center;gap:16px}
.h-sns{display:flex;gap:8px;align-items:center}
.h-sns a{width:34px;height:34px;border-radius:50%;background:var(--grn-l);display:flex;align-items:center;justify-content:center;transition:all .3s;overflow:hidden}
.h-sns a:hover{background:var(--grn)}
.h-sns a svg{width:17px;height:17px;fill:var(--grn-d);transition:fill .3s}
.h-sns a:hover svg{fill:#fff}
.h-partner{padding:8px 16px;background:#fff;border-radius:var(--rm);border:2px solid var(--grn);transition:all .3s;box-shadow:0 2px 6px rgba(0,0,0,.08)}
.h-partner:hover{background:var(--grn-l);box-shadow:0 4px 12px rgba(91,140,62,.2);transform:translateY(-1px)}
.partner-link{display:flex;align-items:center;gap:10px;text-decoration:none}
.partner-logo{height:24px!important;width:auto!important;max-width:80px!important;max-height:24px!important;object-fit:contain!important}
.partner-name{font-size:13px;color:var(--grn-d);font-weight:600;white-space:nowrap}
.partner-link:hover .partner-name{color:var(--grn)}
.h-info-box{text-align:right;font-size:11px;color:var(--tm);line-height:1.4}
.h-info-box .phone{font-family:'Kaisei Opti',serif;font-size:20px;font-weight:700;color:var(--grn-d);display:block}
.h-reserve{display:inline-block;background:var(--sun);color:#fff;font-weight:700;font-size:12px;padding:8px 20px;border-radius:var(--rx);box-shadow:0 3px 10px rgba(244,163,0,.3);transition:transform .3s;margin-top:4px}
.h-reserve:hover{transform:translateY(-2px)}

/* Nav Row */
.h-nav{background:var(--grn)}
.h-nav-inner{max-width:1200px;margin:0 auto;display:flex;justify-content:center;position:relative}
.h-nav .menu{display:flex;gap:0}
.h-nav .menu li a{display:flex;flex-direction:column;align-items:center;color:rgba(255,255,255,.9);font-size:13px;font-weight:500;padding:11px 20px;transition:all .3s;border-bottom:3px solid transparent;line-height:1.3}
.h-nav .menu li a .nav-en{font-size:9px;letter-spacing:.1em;opacity:.65}
.h-nav .menu li a:hover,.h-nav .menu li.current-menu-item a,.h-nav .menu li.current_page_item a{color:#fff;background:rgba(255,255,255,.1);border-bottom-color:var(--sun)}

/* Mobile hamburger: FIXED top-right, always visible on scroll */
.menu-toggle{display:none;position:fixed;top:12px;right:12px;z-index:200;background:var(--grn);border:none;color:#fff;width:44px;height:44px;border-radius:50%;font-size:22px;cursor:pointer;box-shadow:0 2px 12px rgba(0,0,0,.2);align-items:center;justify-content:center;line-height:1}

/* Mobile slide-out menu */
.mobile-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:190}
.mobile-overlay.open{display:block}
.mobile-drawer{position:fixed;top:0;right:-280px;width:280px;height:100%;background:var(--ww);z-index:195;transition:right .3s;overflow-y:auto;box-shadow:-4px 0 20px rgba(0,0,0,.1);padding:60px 0 20px}
.mobile-drawer.open{right:0}
.mobile-drawer .menu{display:flex;flex-direction:column}
.mobile-drawer .menu li a{display:block;padding:14px 24px;color:var(--td);font-size:14px;border-bottom:1px solid var(--bd);transition:background .3s}
.mobile-drawer .menu li a:hover{background:var(--grn-l)}
.mobile-drawer .menu li a .nav-en{font-size:10px;color:var(--tl);display:block}
.mobile-close{position:absolute;top:12px;right:12px;background:none;border:none;font-size:24px;cursor:pointer;color:var(--tm)}

/* ===== HERO SLIDER ===== */
.hero-slider{position:relative;overflow:hidden;background:var(--grn-l)}
.hero-slides{display:flex;transition:transform .6s ease}
.hero-slide{min-width:100%;min-height:440px;background-size:cover;background-position:center;position:relative;display:flex;align-items:center;justify-content:center}
.hero-slide-overlay{position:absolute;inset:0;background:rgba(0,0,0,.2)}
.hero-slide-inner{position:relative;z-index:2;text-align:center;padding:40px 28px;background:rgba(255,255,255,.78);border-radius:var(--rl);max-width:620px;backdrop-filter:blur(8px)}
.hero-slide-inner h2{font-family:'Kaisei Opti',serif;font-size:clamp(20px,4vw,34px);color:var(--grn-d);margin-bottom:8px;line-height:1.4}
.hero-slide-inner p{font-size:13px;color:var(--tm);line-height:2}
/* Slider arrows: centered vertically on left/right edges, semi-transparent */
.slider-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:5;background:rgba(255,255,255,.55);border:none;width:48px;height:48px;border-radius:50%;font-size:24px;cursor:pointer;transition:background .3s;display:flex;align-items:center;justify-content:center;color:var(--td);backdrop-filter:blur(4px)}
.slider-arrow:hover{background:rgba(255,255,255,.85)}
.slider-prev{left:20px}
.slider-next{right:20px}
.slider-dots{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);display:flex;gap:8px;z-index:5}
.slider-dot{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.45);border:none;cursor:pointer;transition:background .3s}
.slider-dot.active{background:#fff}

/* ===== SECTION TITLE ===== */
.sec-title{margin-bottom:28px}
.sec-title h2{font-family:'Kaisei Opti',serif;font-size:22px;color:var(--grn-d);border-bottom:3px solid var(--sun);display:inline-block;padding-bottom:6px}
.sec-title .en{font-size:10px;color:var(--sun);letter-spacing:.2em;text-transform:uppercase;display:block;margin-bottom:4px}

/* ===== NEWS GRID: PC 2col, mobile 1col ===== */
.news-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.news-card{display:flex;gap:14px;background:#fff;border-radius:var(--rm);overflow:hidden;border:1px solid var(--bd);transition:box-shadow .3s,transform .3s;padding:14px}
.news-card:hover{box-shadow:0 6px 24px var(--sh);transform:translateY(-2px)}
.news-card-thumb{width:110px;height:80px;flex-shrink:0;border-radius:var(--r);overflow:hidden;background:var(--grn-l)}
.news-card-thumb img{width:100%;height:100%;object-fit:cover}
.news-card-body{flex:1;min-width:0}
.news-card-date{font-size:11px;color:var(--tl)}
.news-card-cat{font-size:10px;padding:1px 8px;border-radius:var(--rx);font-weight:700;margin-left:6px}
.cat-cafe{background:var(--sun-p);color:var(--sun)}
.cat-event{background:var(--grn-l);color:var(--grn)}
.cat-bento{background:#FFF0E0;color:#C17B3A}
.news-card-body h4{font-size:14px;margin:3px 0 2px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.news-card-body p{font-size:11px;color:var(--tl);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.5}
.more-link{display:inline-block;margin-top:14px;font-size:13px;color:var(--grn);font-weight:700}
.more-link:hover{color:var(--grn-d)}

/* ===== BANNER GRID ===== */
.banner-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:40px}
.banner-card{position:relative;border-radius:var(--rm);overflow:hidden;min-height:140px;display:flex;align-items:flex-end;transition:transform .3s,box-shadow .3s;color:#fff}
.banner-card:hover{transform:translateY(-3px);box-shadow:0 8px 30px var(--sh)}
.banner-card-bg{position:absolute;inset:0;transition:transform .5s}
.banner-card:hover .banner-card-bg{transform:scale(1.05)}
.banner-card-ov{position:relative;z-index:2;width:100%;padding:14px 16px;background:linear-gradient(transparent,rgba(0,0,0,.55))}
.banner-card-ov h3{font-size:15px;font-weight:700;margin-bottom:1px}
.banner-card-ov span{font-size:10px;letter-spacing:.12em;opacity:.8;text-transform:uppercase}
.bg-menu{background:linear-gradient(135deg,#E8724A,#F4A300)}
.bg-bento{background:linear-gradient(135deg,#D4A33C,#8B6914)}
.bg-event{background:linear-gradient(135deg,#5B8C3E,#7CB95B)}
.bg-health{background:linear-gradient(135deg,#2E86AB,#5ABEDB)}
.bg-yahata{background:linear-gradient(135deg,#E65100,#F4A300)}
.bg-about{background:linear-gradient(135deg,#6B5D4F,#9E8E7E)}

/* ===== MENU / BENTO / EVENT / BLOG cards ===== */
.menu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}
.menu-card{background:#fff;border-radius:var(--rm);border:1px solid var(--bd);overflow:hidden;cursor:default}
.menu-card-img{height:200px;background-size:cover;background-position:center;background-color:var(--sun-p)}
.menu-card-body{padding:18px}
.menu-card-body h4{font-size:16px;margin-bottom:4px}
.menu-desc{font-size:13px;color:var(--tl);margin-bottom:6px;line-height:1.7}
.menu-ingredients{font-size:12px;color:var(--grn);background:var(--grn-l);padding:8px 12px;border-radius:var(--r);margin-bottom:10px;line-height:1.6}
.menu-ingredients strong{color:var(--grn-d);display:block;font-size:11px;margin-bottom:2px}
.menu-meta{display:flex;justify-content:space-between;align-items:center}
.menu-price{font-family:'Kaisei Opti',serif;font-size:20px;color:var(--sun);font-weight:700}
.menu-price small{font-size:12px;color:var(--tl);font-weight:400}
.menu-cal{font-size:11px;color:var(--tl);background:var(--sun-p);padding:3px 10px;border-radius:var(--rx)}
.menu-badges{display:flex;gap:6px;margin-top:8px}
.menu-badge{font-size:10px;padding:2px 8px;border-radius:4px;font-weight:700}
.badge-popular{background:var(--sun-p);color:var(--sun)}
.badge-new{background:#FFE0E0;color:#D44}
.badge-vegan{background:var(--grn-l);color:var(--grn)}
.badge-gf{background:#FFF0E0;color:#C17B3A}

.event-list{display:grid;gap:12px}
.event-item{display:flex;gap:16px;padding:16px;background:#fff;border-radius:var(--rm);border-left:4px solid var(--grn);transition:box-shadow .3s}
.event-item:hover{box-shadow:0 4px 20px var(--sh)}
.ev-date{text-align:center;min-width:60px;flex-shrink:0}
.ev-date .month{font-size:11px;color:var(--grn);font-weight:700}
.ev-date .day{font-family:'Kaisei Opti',serif;font-size:28px;color:var(--grn-d);line-height:1.1}
.ev-date .dow{font-size:10px;color:var(--tl)}
.ev-info h4{font-size:14px;margin-bottom:3px}
.ev-info p{font-size:12px;color:var(--tl);line-height:1.6}
.ev-time{display:inline-block;font-size:10px;background:var(--grn-l);color:var(--grn);padding:2px 8px;border-radius:var(--rx);margin-top:4px;font-weight:500}

/* Archive Grid (Events & Blog) */
.archive-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px;margin-bottom:32px}
.archive-card{background:#fff;border-radius:var(--rm);overflow:hidden;border:1px solid var(--bd);transition:transform .3s,box-shadow .3s;display:flex;flex-direction:column}
.archive-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px var(--sh)}
.archive-card-img{height:200px;background-size:cover;background-position:center;background-color:var(--grn-l);flex-shrink:0}
.archive-card-body{padding:20px;flex-grow:1;display:flex;flex-direction:column}
.archive-date{font-size:11px;color:var(--tl);display:block;margin-bottom:8px}
.event-info{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.event-date-badge,.event-time-badge{font-size:11px;background:var(--grn-l);color:var(--grn-d);padding:4px 10px;border-radius:var(--rx);font-weight:500}
.post-categories{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.cat-badge{font-size:11px;background:var(--sun-p);color:var(--brn);padding:4px 10px;border-radius:var(--rx);font-weight:500}
.archive-card-body h4{font-size:16px;margin-bottom:8px;line-height:1.5;color:var(--td)}
.archive-card-body .excerpt{font-size:13px;color:var(--tm);line-height:1.8;margin-bottom:auto;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.archive-card .read-more{display:inline-block;margin-top:12px;font-size:12px;color:var(--grn);font-weight:700;border-bottom:1px solid var(--grn)}

/* Pagination */
.pagination{display:flex;justify-content:center;gap:8px;margin-top:40px;flex-wrap:wrap}
.pagination a,.pagination span{display:inline-block;padding:8px 14px;background:#fff;border:1px solid var(--bd);border-radius:var(--r);font-size:13px;color:var(--td);transition:all .3s;min-width:44px;text-align:center}
.pagination a:hover{background:var(--grn);color:#fff;border-color:var(--grn)}
.pagination .current{background:var(--grn);color:#fff;border-color:var(--grn);font-weight:700}

.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.blog-card{background:#fff;border-radius:var(--rm);overflow:hidden;border:1px solid var(--bd);transition:transform .3s,box-shadow .3s}
.blog-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px var(--sh)}
.blog-card-img{height:180px;background-size:cover;background-position:center;background-color:var(--grn-l)}
.blog-card-body{padding:20px}
.blog-card-body .blog-date{font-size:11px;color:var(--tl);margin-bottom:4px}
.blog-card-body h4{font-size:15px;margin-bottom:6px;line-height:1.5}
.blog-card-body .excerpt{font-size:13px;color:var(--tl);line-height:1.7;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.read-more{display:inline-block;margin-top:10px;font-size:12px;color:var(--grn);font-weight:700;border-bottom:1px solid var(--grn)}

.bento-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}
.bento-card{background:#fff;border-radius:var(--rl);overflow:hidden;border:1px solid var(--bd);box-shadow:0 4px 20px var(--sh);cursor:default}
.bento-card-img{height:180px;background-size:cover;background-position:center;background-color:var(--sun-p);display:flex;align-items:center;justify-content:center;font-size:56px}
.bento-card-body{padding:20px}
.bento-card-body h4{font-size:16px;margin-bottom:4px}
.bento-desc{font-size:13px;color:var(--tl);margin-bottom:10px;line-height:1.7}
.bento-price{font-family:'Kaisei Opti',serif;font-size:22px;color:var(--sun);font-weight:700}
.bento-price small{font-size:12px;color:var(--tl);font-weight:400}
.bento-order{background:var(--sun-p);border-radius:var(--rm);padding:28px;margin-top:32px}
.bento-order h3{font-family:'Kaisei Opti',serif;color:var(--brn);margin-bottom:12px;font-size:18px}
.bento-order p{font-size:13px;color:var(--tm);line-height:2}

/* ===== PAGE HERO ===== */
.page-hero{padding:48px 0;text-align:center}
.page-hero h2{font-family:'Kaisei Opti',serif;font-size:28px;margin-bottom:10px}
.page-hero p{color:var(--tm);max-width:600px;margin:0 auto;line-height:2;font-size:14px}
.ph-green{background:linear-gradient(135deg,var(--grn-l),var(--sun-p))}
.ph-orange{background:linear-gradient(135deg,#FFF3E0,#FFE0B2)}
.ph-blue{background:linear-gradient(135deg,#E3F2FD,#E8F5E9)}

/* ===== ABOUT PAGE ===== */
.about-story{max-width:740px;margin:0 auto}
.about-story h3{font-family:'Kaisei Opti',serif;font-size:18px;color:var(--grn-d);margin:32px 0 10px;padding-left:12px;border-left:4px solid var(--sun)}
.about-story p{font-size:14px;color:var(--tm);line-height:2.2;margin-bottom:14px}
.about-story .lead{font-size:16px;color:var(--td);font-weight:500;line-height:2}
.about-values{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:40px}
.about-value{padding:24px;background:var(--ww);border-radius:var(--rm);border:1px solid var(--bd)}
.about-value h4{font-family:'Kaisei Opti',serif;color:var(--grn-d);font-size:15px;margin-bottom:6px}
.about-value p{font-size:13px;color:var(--tm);line-height:1.8}

/* About page - Enhanced boxes and lists */
.lead-box{background:linear-gradient(135deg,var(--sun-p),var(--grn-l));padding:32px 28px;border-radius:var(--rl);margin-bottom:32px;text-align:center}
.lead-box .lead{font-size:17px;color:var(--td);font-weight:600;line-height:2;margin-bottom:14px}
.lead-box p{font-size:14px;color:var(--tm);line-height:2}

.service-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:24px 0;padding:24px;background:var(--ww);border-radius:var(--rm)}
.service-item{font-size:14px;color:var(--grn-d);font-weight:500;padding:8px 12px;background:#fff;border-radius:var(--r);border-left:3px solid var(--sun)}

.highlight-box{background:var(--grn-l);padding:24px 28px;border-radius:var(--rm);margin:24px 0;border-left:4px solid var(--grn-d);text-align:center}
.highlight-box p{font-size:15px;color:var(--grn-d);line-height:2;margin:0}
.highlight-box strong{font-size:16px;color:var(--grn-d)}

.goal-list{display:flex;flex-direction:column;gap:10px;margin:16px 0;padding:24px;background:var(--ww);border-radius:var(--rm)}
.goal-item{font-size:15px;color:var(--grn-d);font-weight:600;padding:10px 16px;background:#fff;border-radius:var(--r);border-left:3px solid var(--grn)}

.point-list{list-style:none;margin:16px 0;padding:20px 28px;background:var(--sun-p);border-radius:var(--rm)}
.point-list li{font-size:14px;color:var(--td);padding:6px 0;padding-left:20px;position:relative}
.point-list li:before{content:'•';position:absolute;left:0;color:var(--sun);font-size:18px;font-weight:700}

.work-list{list-style:none;margin:16px 0;padding:20px 28px;background:var(--grn-l);border-radius:var(--rm)}
.work-list li{font-size:14px;color:var(--td);padding:6px 0;padding-left:20px;position:relative}
.work-list li:before{content:'→';position:absolute;left:0;color:var(--grn-d);font-weight:700}

.concept-box{background:var(--sun-p);padding:24px 28px;border-radius:var(--rm);margin:24px 0;text-align:center;border:2px solid var(--sun)}
.concept-box p{font-size:14px;color:var(--td);line-height:2;margin:8px 0}

.pharmacy-points{margin:24px 0;padding:28px;background:var(--ww);border-radius:var(--rm)}
.pharmacy-points p{font-size:14px;color:var(--tm);text-align:center}
.pharmacy-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:12px 0}
.pharmacy-item{font-size:13px;color:var(--grn-d);font-weight:600;padding:10px 14px;background:#fff;border-radius:var(--r);text-align:center;border:1px solid var(--bd)}

.formula-box{background:#E8F0E0;color:#2D5B1E;padding:28px;border-radius:var(--rl);margin:28px 0;text-align:center;box-shadow:0 4px 16px rgba(91,140,62,.15);border:2px solid #5B8C3E}
.formula-box p{margin:0;font-size:15px;line-height:2}
.formula-box strong{font-size:16px;color:#3D6B2E}

.staff-voice{background:var(--grn-l);padding:24px 28px;border-radius:var(--rm);margin:24px 0;border-left:4px solid var(--grn);text-align:center}
.staff-voice p{font-size:14px;color:var(--grn-d);line-height:2;margin:4px 0}

.values-section{max-width:900px;margin:48px auto;padding:32px 28px;background:var(--ww);border-radius:var(--rl);border:2px solid var(--bd)}

.final-message{max-width:700px;margin:40px auto 0;padding:32px 28px;background:linear-gradient(135deg,var(--grn-l),var(--sun-p));border-radius:var(--rl);text-align:center;border:2px solid var(--sun)}
.final-message h3{margin-bottom:16px}
.final-message p{font-size:14px;color:var(--tm);line-height:2.2;margin:8px 0}

/* ===== RC CARDS (recruit/supporter) ===== */
.rc-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}
.rc-card{background:#fff;border-radius:var(--rl);padding:24px;border:1px solid var(--bd);box-shadow:0 4px 20px var(--sh)}
.rc-card h3{font-family:'Kaisei Opti',serif;font-size:18px;color:var(--grn-d);margin-bottom:12px}
.rc-table{width:100%;border-collapse:collapse}
.rc-table th{text-align:left;padding:8px;font-size:12px;color:var(--tl);font-weight:500;width:90px;vertical-align:top;border-bottom:1px solid var(--bd)}
.rc-table td{padding:8px;font-size:13px;border-bottom:1px solid var(--bd);line-height:1.7}

.concept-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.concept-card{background:#fff;padding:32px 20px;border-radius:var(--rl);text-align:center;box-shadow:0 4px 20px var(--sh);transition:transform .3s}
.concept-card:hover{transform:translateY(-6px)}
.concept-icon{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;margin:0 auto 14px}
.concept-card h3{font-family:'Kaisei Opti',serif;font-size:16px;color:var(--grn-d);margin-bottom:8px}
.concept-card p{font-size:13px;color:var(--tm);line-height:1.8}

/* ===== ACCESS ===== */
.access-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:start}
.access-map{border-radius:var(--rl);height:360px;overflow:hidden;border:1px solid var(--bd);background:var(--grn-l);display:flex;align-items:center;justify-content:center;color:var(--tl)}
.access-map iframe{width:100%;height:100%;border:0}
.access-info h3{font-family:'Kaisei Opti',serif;font-size:20px;color:var(--grn-d);margin-bottom:16px}
.access-tbl{width:100%;border-collapse:collapse}
.access-tbl th{text-align:left;padding:8px 0;font-size:12px;color:var(--tl);font-weight:500;width:80px;vertical-align:top;border-bottom:1px solid var(--bd)}
.access-tbl td{padding:8px 0;font-size:13px;border-bottom:1px solid var(--bd);line-height:1.7}
.access-tbl a{color:var(--grn-d);font-weight:700}

/* ===== CTA ===== */
.cta{background:linear-gradient(135deg,var(--grn-d),var(--grn));color:#fff;text-align:center;padding:48px 20px}
.cta h2{font-family:'Kaisei Opti',serif;font-size:24px;margin-bottom:10px}
.cta p{opacity:.85;margin-bottom:20px;max-width:480px;margin-left:auto;margin-right:auto;font-size:14px}
.cta-btn{display:inline-block;background:var(--sun);color:#fff;padding:12px 36px;border-radius:var(--rx);font-weight:700;font-size:14px;box-shadow:0 4px 20px rgba(244,163,0,.4);transition:transform .3s}
.cta-btn:hover{transform:translateY(-2px)}

/* ===== FOOTER MAP+SNS SECTION (comachi style) ===== */
.footer-access{background:var(--ww);padding:48px 0;border-top:1px solid var(--bd)}
.footer-access-inner{display:grid;grid-template-columns:1fr 1fr;gap:40px;max-width:1100px;margin:0 auto;padding:0 20px;align-items:start}
.footer-access-map{border-radius:var(--rl);overflow:hidden;height:400px;border:1px solid var(--bd)}
.footer-access-map iframe{width:100%;height:100%;border:0}
.footer-access-info{text-align:center}
.footer-access-info .fa-heading{background:var(--tm);color:#fff;padding:10px 28px;border-radius:var(--r);font-size:14px;font-weight:700;display:inline-block;margin-bottom:24px}
/* SNS icons row in footer-access */
.fa-sns-row{margin-bottom:20px}
.fa-sns-label{font-size:14px;color:var(--td);font-weight:500;margin-right:8px}
.fa-sns-icons{display:inline-flex;gap:6px;vertical-align:middle}
.fa-sns-icons a{width:36px;height:36px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:opacity .3s}
.fa-sns-icons a:hover{opacity:.8}
.fa-sns-icons a svg{width:20px;height:20px;fill:#fff}
.sns-fb{background:#1877F2}
.sns-tw{background:#000}
.sns-ig{background:linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888)}

.footer-access-info .fa-logo{margin:20px auto;max-width:160px}
.footer-access-info .fa-phone{font-family:'Kaisei Opti',serif;font-size:36px;font-weight:700;color:var(--td);margin:12px 0 4px}
.footer-access-info .fa-phone-note{font-size:12px;color:var(--tl);margin-bottom:12px}
.footer-access-info .fa-schedule{font-weight:700;font-size:15px;margin-bottom:4px}
.footer-access-info .fa-hours{font-size:13px;color:var(--tm);margin-bottom:4px}
.footer-access-info hr{border:none;border-top:1px solid var(--bd);margin:16px auto;max-width:300px}
.footer-access-info .fa-address{font-size:13px;color:var(--tm);margin-bottom:4px;line-height:1.7}

/* ===== FOOTER BOTTOM ===== */
.site-footer{background:var(--td);color:rgba(255,255,255,.7);padding:20px 0}
.footer-bottom{text-align:center;font-size:11px;color:rgba(255,255,255,.65)}

/* ===== ENTRY CONTENT ===== */
.entry-content{max-width:740px;margin:0 auto}
.entry-content h1,.entry-content h2,.entry-content h3{font-family:'Kaisei Opti',serif;color:var(--grn-d);margin-top:28px;margin-bottom:10px}
.entry-content p{margin-bottom:14px;line-height:2;color:var(--tm)}
.entry-content img{border-radius:var(--rm);margin:20px 0}

.btn{display:inline-block;padding:10px 24px;border-radius:var(--rx);font-weight:700;font-size:13px;transition:all .3s;cursor:pointer;border:none;font-family:'Zen Maru Gothic',sans-serif}
.btn-g{background:var(--grn);color:#fff}.btn-g:hover{background:var(--grn-d)}
.btn-o{border:2px solid var(--grn);color:var(--grn);background:transparent}.btn-o:hover{background:var(--grn);color:#fff}

.pagination{text-align:center;margin-top:32px}
.pagination .page-numbers{display:inline-block;padding:6px 12px;border-radius:var(--r);margin:0 3px;border:1px solid var(--bd);font-size:13px;transition:all .3s}
.pagination .page-numbers.current,.pagination .page-numbers:hover{background:var(--grn);color:#fff;border-color:var(--grn)}

.charter-section h4{cursor:pointer;font-family:'Kaisei Opti',serif;color:var(--grn-d);padding:10px 0;border-bottom:1px solid var(--bd);transition:color .3s;user-select:none}
.charter-section h4:hover{color:var(--sun)}
@keyframes linePulse{0%,100%{box-shadow:0 0 0 0 rgba(6,199,85,.4)}50%{box-shadow:0 0 0 12px rgba(6,199,85,0)}}
.line-btn{animation:linePulse 2s ease-in-out infinite}

/* ===== RESPONSIVE ===== */
@media(max-width:768px){
  .h-nav .menu{display:none}
  .menu-toggle{display:flex}
  .concept-grid,.access-grid,.footer-access-inner{grid-template-columns:1fr}
  .banner-grid{grid-template-columns:repeat(2,1fr)}
  .about-values{grid-template-columns:1fr}
  .h-info-box{display:none}
  .h-brand-inner{justify-content:center}
  .news-grid{grid-template-columns:1fr}
  .hero-slide{min-height:320px}
  .slider-arrow{width:36px;height:36px;font-size:18px}
  .slider-prev{left:8px}.slider-next{right:8px}
  .service-list{grid-template-columns:1fr}
  .pharmacy-grid{grid-template-columns:1fr}
}
@media(max-width:480px){
  .banner-grid{grid-template-columns:1fr}
  .lead-box{padding:24px 20px}
  .highlight-box,.concept-box,.formula-box,.staff-voice,.final-message{padding:20px 18px}
}
