/*
Theme Name: Villa Merlo
Theme URI:
Author: Keiz Group
Description: 住宅型有料老人ホーム ヴィラ・メルロ（医療法人 滄溟会）オリジナルテーマ
Version: 1.0
Text Domain: villa-merlo
*/

/* ============================
   Reset & Base
   ============================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;min-width:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:'Noto Sans JP','Hiragino Kaku Gothic ProN',sans-serif;
  color:#3d3a36;
  background:#fafaf8;
  line-height:1.8;
  font-size:15px;
  overflow-x:hidden;
  overflow-wrap:anywhere;
  word-break:break-word;
}
img{max-width:100%;display:block}
.hero-slide img,.concept-image img,.feature-card-img img,.group-thumb img,
.facility-img-wrap .main-img img,.facility-img-wrap .sub-img img,.room-card-img img{
  width:100%;height:100%;object-fit:cover;
}
.obj-pos-top{object-position:center top}
a{color:inherit;text-decoration:none;transition:all .3s ease}
button{font-family:inherit;cursor:pointer;border:none;background:none}
ul{list-style:none}

/* ============================
   Color Palette - 薄めの爽やかオレンジ＆グレー
   ============================ */
:root{
  --orange-50:#fef7f0;
  --orange-100:#fbe8d6;
  --orange-200:#f6d0aa;
  --orange-300:#f0b178;
  --orange-400:#e89556;
  --orange-500:#dc7a3a;
  --orange-600:#c2622a;
  --gray-50:#f7f6f4;
  --gray-100:#eeece8;
  --gray-200:#d9d6d0;
  --gray-300:#b8b4ac;
  --gray-400:#8c8780;
  --gray-500:#6b6760;
  --gray-700:#494640;
  --gray-900:#2a2823;
  --white:#ffffff;
  --shadow-sm:0 2px 8px rgba(60,58,54,.06);
  --shadow-md:0 6px 24px rgba(60,58,54,.08);
  --shadow-lg:0 12px 48px rgba(60,58,54,.12);
}

/* ============================
   Typography
   ============================ */
.serif{font-family:'Noto Serif JP','Cormorant Garamond',serif}
.en{font-family:'Cormorant Garamond',serif;letter-spacing:.08em}

/* ============================
   Header
   ============================ */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--gray-100);
  transition:all .3s ease;
}
.header-inner{
  max-width:1280px;margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 32px;
  height:72px;
}
.logo{display:flex;align-items:center;gap:12px}
.logo-img{
  height:40px;
  width:auto;
  display:block;
}
.nav-list{display:flex;align-items:center;gap:4px}
.nav-list a{
  padding:8px 16px;font-size:13px;font-weight:500;color:var(--gray-700);
  border-radius:20px;position:relative;
}
.nav-list a:hover,.nav-list a.active{color:var(--orange-500);background:var(--orange-50)}
.header-cta{
  background:linear-gradient(135deg,var(--orange-400),var(--orange-500));
  color:#fff;padding:10px 22px;border-radius:24px;
  font-size:13px;font-weight:500;
  box-shadow:0 4px 12px rgba(232,149,86,.3);
}
.header-cta:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(232,149,86,.4)}
.menu-toggle{display:none;width:32px;height:32px;flex-direction:column;justify-content:center;gap:6px}
.menu-toggle span{display:block;width:22px;height:1.5px;background:var(--gray-700);transition:.3s;margin:0 auto}
.menu-toggle.open span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.menu-toggle.open span:nth-child(2){opacity:0}
.menu-toggle.open span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
  .mobile-nav { display: none; }

/* ============================
   Page Container
   ============================ */
main{padding-top:72px;min-height:100vh}

/* ============================
   Hero - Top Page
   ============================ */
.hero{
  position:relative;height:88vh;min-height:580px;
  display:flex;align-items:center;
  background:linear-gradient(135deg,var(--orange-50) 0%,var(--gray-50) 100%);
  overflow:hidden;
}
.hero::before{
  content:'';position:absolute;top:-100px;right:-100px;
  width:500px;height:500px;border-radius:50%;
  background:radial-gradient(circle,rgba(240,177,120,.15),transparent 70%);
}
.hero::after{
  content:'';position:absolute;bottom:-150px;left:-100px;
  width:400px;height:400px;border-radius:50%;
  background:radial-gradient(circle,rgba(217,214,208,.3),transparent 70%);
}
.hero-inner{
  max-width:1280px;margin:0 auto;padding:0 32px;
  display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;
  position:relative;z-index:2;
}
.hero-text .tag{
  display:inline-block;font-family:'Cormorant Garamond',serif;
  color:var(--orange-500);letter-spacing:.3em;font-size:13px;margin-bottom:20px;
}
.hero-text .tag::before{content:'';display:inline-block;width:32px;height:1px;background:var(--orange-400);vertical-align:middle;margin-right:14px}
.hero-text h1{
  font-family:'Noto Serif JP',serif;font-weight:500;
  font-size:42px;line-height:1.5;color:var(--gray-900);
  margin-bottom:24px;letter-spacing:.02em;
}
.hero-text h1 .accent{color:var(--orange-500)}
.hero-text .lead{font-size:15px;color:var(--gray-500);line-height:2;margin-bottom:36px}
.hero-buttons{display:flex;gap:14px;flex-wrap:wrap}
.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:14px 32px;border-radius:30px;font-weight:500;font-size:14px;
  transition:all .3s ease;
}
.btn-primary{
  background:linear-gradient(135deg,var(--orange-400),var(--orange-500));
  color:#fff;box-shadow:0 6px 20px rgba(232,149,86,.3);
}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(232,149,86,.4)}
.btn-outline{
  border:1.5px solid var(--gray-300);color:var(--gray-700);background:#fff;
}
.btn-outline:hover{border-color:var(--orange-400);color:var(--orange-500)}
.btn::after{content:'→';transition:transform .3s}
.btn:hover::after{transform:translateX(4px)}
.hero-image{position:relative;width:100%}
.hero-slider{
  position:relative;width:100%;aspect-ratio:1;border-radius:8px;overflow:hidden;
  box-shadow:var(--shadow-lg);background:var(--gray-200);
}
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity .6s ease}
.hero-slide.active{opacity:1}
.hero-slider-dots{
  position:absolute;bottom:16px;left:0;right:0;z-index:2;
  display:flex;justify-content:center;gap:8px;
}
.hero-dot{
  width:8px;height:8px;border-radius:50%;padding:0;
  background:rgba(255,255,255,.5);border:1.5px solid rgba(255,255,255,.8);
  transition:.3s;
}
.hero-dot.active{background:#fff}

/* ============================
   Section common
   ============================ */
section{padding:100px 0;position:relative}
.container{max-width:1280px;margin:0 auto;padding:0 32px}
.section-head{text-align:center;margin-bottom:64px}
.section-head .label{
  display:inline-block;font-family:'Cormorant Garamond',serif;
  color:var(--orange-500);letter-spacing:.3em;font-size:13px;margin-bottom:12px;
}
.section-head h2{
  font-family:'Noto Serif JP',serif;font-weight:500;
  font-size:32px;color:var(--gray-900);letter-spacing:.05em;line-height:1.4;
}
.section-head h2 .accent{color:var(--orange-500)}
.section-head .sub{font-size:14px;color:var(--gray-500);margin-top:16px}

/* ============================
   Concept Section
   ============================ */
.concept{background:#fff}
.concept-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.concept-text h3{
  font-family:'Noto Serif JP',serif;font-weight:500;font-size:26px;
  line-height:1.7;color:var(--gray-900);margin-bottom:24px;
}
.concept-text p{color:var(--gray-500);margin-bottom:18px;font-size:14.5px}
.concept-features{display:flex;gap:24px;margin-top:36px}
.feature-pill{
  flex:1;text-align:center;padding:24px 12px;
  background:var(--orange-50);border-radius:12px;
  border:1px solid var(--orange-100);
}
.feature-pill .num{
  font-family:'Cormorant Garamond',serif;font-size:32px;
  color:var(--orange-500);font-weight:600;line-height:1;
}
.feature-pill .label{font-size:12px;color:var(--gray-500);margin-top:8px;display:block}
.concept-image{
  aspect-ratio:5/6;border-radius:8px;overflow:hidden;
  background:linear-gradient(135deg,var(--gray-200),var(--gray-300));
  display:flex;align-items:center;justify-content:center;
  color:var(--gray-500);font-size:13px;
  box-shadow:var(--shadow-md);
}

/* ============================
   Features (4 Features)
   ============================ */
.features{background:var(--gray-50)}
.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.feature-card{
  background:#fff;border-radius:12px;overflow:hidden;
  box-shadow:var(--shadow-sm);transition:all .4s ease;
  cursor:pointer;
}
.feature-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg)}
.feature-card-img{
  aspect-ratio:4/3;
  background:linear-gradient(135deg,var(--gray-200),var(--gray-300));
  display:flex;align-items:center;justify-content:center;
  color:var(--gray-500);font-size:12px;
}
.feature-card-body{padding:28px 24px}
.feature-card-body .num{
  font-family:'Cormorant Garamond',serif;color:var(--orange-400);
  font-size:14px;letter-spacing:.2em;margin-bottom:8px;
}
.feature-card-body h4{
  font-family:'Noto Serif JP',serif;font-size:18px;font-weight:600;
  color:var(--gray-900);margin-bottom:12px;
}
.feature-card-body p{font-size:13px;color:var(--gray-500);line-height:1.85}

/* ============================
   Service Flow
   ============================ */
.flow{background:#fff}
.flow-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:0;position:relative}
.flow-steps::before{
  content:'';position:absolute;top:38px;left:10%;right:10%;
  height:2px;background:linear-gradient(90deg,var(--orange-200),var(--orange-300));z-index:0;
}
.flow-step{position:relative;z-index:1;text-align:center;padding:0 8px}
.flow-circle{
  width:76px;height:76px;border-radius:50%;
  background:#fff;border:2px solid var(--orange-300);
  display:flex;align-items:center;justify-content:center;
  font-family:'Cormorant Garamond',serif;font-size:24px;font-weight:600;
  color:var(--orange-500);margin:0 auto 18px;
}
.flow-step:hover .flow-circle{
  background:linear-gradient(135deg,var(--orange-400),var(--orange-500));
  color:#fff;border-color:transparent;transform:scale(1.08);
  transition:.3s;
}
.flow-step h5{font-family:'Noto Serif JP',serif;font-size:15px;font-weight:600;color:var(--gray-900);margin-bottom:10px}
.flow-step p{font-size:12px;color:var(--gray-500);line-height:1.7}
.flow-step-links{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:12px}
.flow-step-links a{
  display:inline-flex;align-items:center;
  font-size:11px;font-weight:500;color:#fff;
  padding:6px 12px;border-radius:20px;letter-spacing:.02em;
  transition:.3s;
}
.flow-step-links a:hover{opacity:.85}
.flow-step-links .line-link{background:#06c755}
.flow-step-links .instagram-link{background:linear-gradient(135deg,#f58529,#dd2a7b,#8134af)}

/* ============================
   News
   ============================ */
.news{background:#fff}
.news-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px}
.news-list{display:flex;flex-direction:column;gap:4px}
.news-item{
  display:grid;grid-template-columns:110px 90px 1fr;gap:20px;
  padding:22px 0;border-bottom:1px solid var(--gray-100);
  align-items:center;transition:.3s;cursor:pointer;
}
.news-item:hover{background:var(--orange-50);padding-left:12px;padding-right:12px;border-radius:4px}
.news-date{font-family:'Cormorant Garamond',serif;color:var(--gray-400);font-size:14px;letter-spacing:.05em}
.news-tag{
  display:inline-block;padding:4px 12px;border-radius:14px;
  font-size:11px;font-weight:500;text-align:center;
}
.tag-news{background:var(--orange-100);color:var(--orange-600)}
.tag-event{background:var(--gray-100);color:var(--gray-700)}
.tag-info{background:#e6f0ed;color:#3d7a6b}
.tag-campaign{background:#e3edfb;color:#2a5aa6}
.news-title{font-size:14px;color:var(--gray-900)}
.news-side{
  background:linear-gradient(135deg,var(--orange-50),var(--orange-100));
  border-radius:12px;padding:40px;display:flex;flex-direction:column;justify-content:center;
}
.news-side h3{
  font-family:'Noto Serif JP',serif;font-size:22px;font-weight:500;
  color:var(--gray-900);margin-bottom:16px;line-height:1.6;
}
.news-side p{font-size:13px;color:var(--gray-500);margin-bottom:24px}

/* ============================
   News filter + LINE banner
   ============================ */
.news-filter{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:32px}
.news-filter-btn{
  padding:8px 20px;border-radius:20px;font-size:12.5px;font-weight:500;
  border:1px solid var(--gray-200);background:#fff;color:var(--gray-700);
  transition:.3s;
}
.news-filter-btn:hover{border-color:var(--orange-300);color:var(--orange-500)}
.news-filter-btn.active{background:var(--gray-900);border-color:var(--gray-900);color:#fff}
.news-empty{color:var(--gray-500);font-size:13px}
.news-page .news-list{max-width:820px;margin:0 auto}
.news-page .news-filter{justify-content:center}
.line-banner{margin-top:32px}
.line-banner-link{
  display:flex;align-items:center;gap:16px;
  background:linear-gradient(135deg,#06c755,#04a648);
  color:#fff;border-radius:12px;padding:20px 28px;
  box-shadow:var(--shadow-md);transition:.3s;
}
.line-banner-link:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.line-banner-icon{
  flex-shrink:0;font-family:'Cormorant Garamond',serif;font-weight:700;
  font-size:14px;letter-spacing:.05em;background:#fff;color:#06c755;
  padding:6px 14px;border-radius:20px;
}
.line-banner-text{flex:1;font-size:13.5px;line-height:1.7}
.line-banner-arrow{font-size:18px}

/* ============================
   CTA Section
   ============================ */
.cta-section{
  background:linear-gradient(135deg,var(--orange-300) 0%,var(--orange-400) 100%);
  color:#fff;text-align:center;padding:80px 0;
}
.cta-section h2{
  font-family:'Noto Serif JP',serif;font-size:32px;font-weight:500;
  margin-bottom:16px;letter-spacing:.05em;
}
.cta-section p{font-size:14px;opacity:.92;margin-bottom:32px}
.cta-buttons{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.cta-section .btn-primary{
  background:#fff;color:var(--orange-500);
  box-shadow:0 6px 24px rgba(0,0,0,.15);
}
.cta-section .btn-outline{
  background:transparent;color:#fff;border-color:rgba(255,255,255,.6);
}
.cta-section .btn-outline:hover{background:rgba(255,255,255,.15);border-color:#fff;color:#fff}

/* ============================
   Footer
   ============================ */
.site-footer{background:var(--gray-900);color:var(--gray-200);padding:64px 0 24px}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:48px;margin-bottom:48px}
.footer-brand .logo-text .ja{color:#fff}
.footer-brand p{font-size:12px;color:var(--gray-300);margin-top:16px;line-height:1.9}
.footer-col h5{
  font-family:'Noto Serif JP',serif;font-size:14px;color:#fff;
  margin-bottom:18px;letter-spacing:.08em;
}
.footer-col ul{display:flex;flex-direction:column;gap:10px}
.footer-col a{font-size:12.5px;color:var(--gray-300)}
.footer-col a:hover{color:var(--orange-300)}
.footer-bottom{
  border-top:1px solid var(--gray-700);padding-top:24px;
  text-align:center;font-size:11px;color:var(--gray-400);letter-spacing:.08em;
}

/* ============================
   Sub Page - Page Header
   ============================ */
.page-header{
  background:linear-gradient(135deg,var(--orange-50) 0%,var(--gray-50) 100%);
  padding:80px 0;text-align:center;position:relative;
}
.page-header .label{
  font-family:'Cormorant Garamond',serif;color:var(--orange-500);
  letter-spacing:.3em;font-size:13px;margin-bottom:12px;display:block;
}
.page-header h1{
  font-family:'Noto Serif JP',serif;font-weight:500;font-size:36px;
  color:var(--gray-900);letter-spacing:.06em;
}
.breadcrumb{
  display:flex;justify-content:center;gap:12px;
  margin-top:20px;font-size:12px;color:var(--gray-500);
}
.breadcrumb a:hover{color:var(--orange-500)}
.breadcrumb .sep{color:var(--gray-300)}

/* ============================
   Group Section (moved from About page onto the Home page)
   ============================ */
.group-section{padding:80px 0;background:#fff}
.group-list{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:40px}
.group-item{
  display:grid;grid-template-columns:120px 1fr;gap:20px;
  padding:24px;background:var(--gray-50);border-radius:8px;
  transition:.3s;
}
.group-item:hover{background:var(--orange-50);transform:translateY(-3px)}
.group-thumb{
  aspect-ratio:1;border-radius:6px;overflow:hidden;
  background:linear-gradient(135deg,var(--gray-200),var(--gray-300));
  display:flex;align-items:center;justify-content:center;
  color:var(--gray-500);font-size:11px;
}
.group-info h5{font-family:'Noto Serif JP',serif;font-size:14px;font-weight:600;color:var(--gray-900);margin-bottom:6px}
.group-info .type{font-size:11px;color:var(--orange-500);margin-bottom:8px;letter-spacing:.05em}
.group-info p{font-size:12px;color:var(--gray-500);line-height:1.7}

/* ============================
   Facilities Page
   ============================ */
.facility-section{padding:80px 0;background:#fff}
.facility-section:nth-child(even){background:var(--gray-50)}
.facility-block{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;margin-bottom:80px}
.facility-block:last-child{margin-bottom:0}
.facility-block.reverse{grid-template-columns:1fr 1fr}
.facility-block.reverse .facility-img-wrap{order:2}
.facility-img-wrap{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.facility-img-wrap .main-img{
  grid-column:1/-1;aspect-ratio:21/9;overflow:hidden;
  background:linear-gradient(135deg,var(--gray-200),var(--gray-300));
  border-radius:8px;display:flex;align-items:center;justify-content:center;
  color:var(--gray-500);font-size:12px;
}
.facility-img-wrap .sub-img{
  aspect-ratio:1/1;overflow:hidden;
  background:linear-gradient(135deg,var(--gray-200),var(--gray-300));
  border-radius:8px;display:flex;align-items:center;justify-content:center;
  color:var(--gray-500);font-size:11px;
}
.facility-img-wrap-5{display:flex;flex-direction:column;gap:12px}
.facility-img-wrap-5 .img-top{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.facility-img-wrap-5 .img-bottom{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.facility-img-wrap-5 .sub-img{aspect-ratio:4/3}
.facility-info .label{
  font-family:'Cormorant Garamond',serif;color:var(--orange-500);
  letter-spacing:.25em;font-size:13px;margin-bottom:12px;display:inline-block;
}
.facility-info h3{
  font-family:'Noto Serif JP',serif;font-size:26px;font-weight:500;
  color:var(--gray-900);margin-bottom:20px;line-height:1.5;
}
.facility-info p{color:var(--gray-500);margin-bottom:18px;font-size:14px;line-height:1.95}
.facility-list{margin-top:20px;display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.facility-list li{
  font-size:13px;color:var(--gray-700);padding:8px 0 8px 18px;
  border-bottom:1px dashed var(--gray-200);position:relative;
}
.facility-list li::before{
  content:'';position:absolute;left:0;top:14px;width:8px;height:8px;
  background:var(--orange-300);border-radius:50%;
}
.room-types{padding:80px 0;background:#fff}
.room-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:40px}
.room-card{background:var(--gray-50);border-radius:12px;overflow:hidden}
.room-card-img{
  aspect-ratio:16/9;overflow:hidden;
  background:linear-gradient(135deg,var(--gray-200),var(--gray-300));
  display:flex;align-items:center;justify-content:center;
  color:var(--gray-500);font-size:12px;
}
.room-card-body{padding:32px}
.room-card-body .badge{
  display:inline-block;padding:4px 14px;border-radius:14px;
  background:var(--orange-100);color:var(--orange-600);
  font-size:11px;font-weight:500;margin-bottom:12px;
}
.room-card-body h4{font-family:'Noto Serif JP',serif;font-size:22px;color:var(--gray-900);margin-bottom:8px}
.room-card-body .size{font-family:'Cormorant Garamond',serif;color:var(--orange-500);font-size:16px;margin-bottom:16px}
.room-card-body p{font-size:13px;color:var(--gray-500);line-height:1.9}
.room-features{margin-top:16px;display:flex;flex-wrap:wrap;gap:8px}
.room-features span{
  font-size:11px;padding:4px 10px;background:#fff;border:1px solid var(--gray-200);
  border-radius:12px;color:var(--gray-700);
}

/* ============================
   Service Page
   ============================ */
.service-intro{padding:80px 0;background:#fff;text-align:center}
.service-intro p{max-width:720px;margin:0 auto;color:var(--gray-500);font-size:15px;line-height:2.1}
.services-tabs-section{padding:64px 0 80px;background:var(--gray-50)}
.service-tabs{display:flex;gap:12px;justify-content:center;margin-bottom:48px;flex-wrap:wrap}
.service-tab-btn{
  padding:14px 36px;border-radius:30px;font-size:15px;font-weight:600;
  background:#fff;border:1.5px solid var(--gray-200);color:var(--gray-700);
  transition:.3s;
}
.service-tab-btn:hover{border-color:var(--orange-300);color:var(--orange-500)}
.service-tab-btn.active{
  background:linear-gradient(135deg,var(--orange-400),var(--orange-500));
  border-color:transparent;color:#fff;box-shadow:0 6px 20px rgba(232,149,86,.3);
}
.service-tab-panel{display:none}
.service-tab-panel.active{display:block;animation:fadeIn .4s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.service-tab-head{text-align:center;max-width:640px;margin:0 auto 40px}
.service-tab-head h3{font-family:'Noto Serif JP',serif;font-size:26px;font-weight:500;color:var(--gray-900);margin-bottom:16px}
.service-tab-head p{color:var(--gray-500);font-size:14.5px;line-height:2}
.service-tab-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:32px}
.service-tab-card{background:#fff;border-radius:12px;padding:32px 28px;box-shadow:var(--shadow-sm);border-top:3px solid var(--orange-400)}
.service-tab-card h4{font-family:'Noto Serif JP',serif;font-size:17px;font-weight:600;color:var(--gray-900);margin-bottom:16px}
.service-tab-card ul{display:flex;flex-direction:column;gap:8px}
.service-tab-card li{font-size:13.5px;color:var(--gray-700);padding-left:16px;position:relative}
.service-tab-card li::before{content:'';position:absolute;left:0;top:8px;width:6px;height:6px;background:var(--orange-300);border-radius:50%}
.service-tab-tagline{text-align:center;font-family:'Noto Serif JP',serif;font-size:16px;color:var(--orange-500);font-weight:500;margin-bottom:12px}
.service-tab-tel{text-align:center;font-family:'Cormorant Garamond',serif;font-size:16px;color:var(--gray-700);font-weight:600}

.day-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:40px}
.day-flow-step{
  background:#fff;border-radius:10px;padding:18px 12px;text-align:center;
  box-shadow:var(--shadow-sm);
}
.day-flow-step .time{
  display:block;font-family:'Cormorant Garamond',serif;font-size:18px;
  color:var(--orange-500);font-weight:600;margin-bottom:6px;
}
.day-flow-step .label{font-size:13px;color:var(--gray-700)}
.day-features{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:32px}
.day-feature-item{background:#fff;border-radius:10px;padding:24px 20px;box-shadow:var(--shadow-sm)}
.day-feature-item .num{
  display:inline-flex;align-items:center;justify-content:center;
  width:26px;height:26px;border-radius:50%;
  background:var(--orange-100);color:var(--orange-600);
  font-size:12px;font-weight:600;margin-bottom:10px;
}
.day-feature-item h5{font-family:'Noto Serif JP',serif;font-size:14.5px;font-weight:600;color:var(--gray-900);margin-bottom:8px}
.day-feature-item p{font-size:12.5px;color:var(--gray-500);line-height:1.8}

.combo-section{padding:80px 0;background:#fff}
.shopping-support-section{padding:0 0 80px;background:#fff}
.shopping-support-section img{
  display:block;width:100%;max-width:320px;max-height:213px;
  margin:0 auto;border-radius:12px;object-fit:cover;box-shadow:var(--shadow-sm);
}
.combo-boxes{
  display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1.2fr;
  gap:16px;align-items:center;margin-top:40px;
}
.combo-box{
  background:var(--gray-50);border-radius:12px;padding:28px 16px;
  text-align:center;font-family:'Noto Serif JP',serif;font-size:15px;font-weight:600;color:var(--gray-900);
}
.combo-box span{display:block;font-family:'Noto Sans JP',sans-serif;font-size:11.5px;font-weight:400;color:var(--gray-500);margin-top:8px}
.combo-plus{text-align:center;font-size:20px;color:var(--orange-400)}
.combo-arrow{text-align:center;font-size:22px;color:var(--orange-400)}
.combo-result{
  background:linear-gradient(135deg,var(--orange-400),var(--orange-500));
  color:#fff;border-radius:12px;padding:28px 20px;text-align:center;
  font-family:'Noto Serif JP',serif;font-size:15px;font-weight:600;
}

/* ============================
   Fee Page
   ============================ */
.fee-section{padding:80px 0;background:#fff;text-align:center}
.fee-pdf-buttons{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;margin-top:40px}
.fee-pdf-btn::before{content:'📄';margin-right:4px}
.fee-note{margin-top:40px;padding:24px;background:var(--gray-50);border-radius:8px;font-size:12.5px;color:var(--gray-500);line-height:1.9;text-align:left}

/* ============================
   Access Page
   ============================ */
.access-info{padding:80px 0;background:#fff}
.access-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:60px;align-items:start}
.access-details dl{display:grid;grid-template-columns:120px 1fr;gap:0}
.access-details dt{
  padding:18px 0;border-top:1px solid var(--gray-100);
  font-family:'Noto Serif JP',serif;color:var(--gray-700);font-size:13px;font-weight:500;
}
.access-details dd{
  padding:18px 0;border-top:1px solid var(--gray-100);
  color:var(--gray-700);font-size:13.5px;
}
.access-details dl>:last-child,.access-details dl>:nth-last-child(2){border-bottom:1px solid var(--gray-100)}
.access-tel{
  font-family:'Cormorant Garamond',serif;color:var(--orange-500);
  font-size:22px;font-weight:600;letter-spacing:.05em;
}
.map-wrap{
  aspect-ratio:5/4;border-radius:12px;overflow:hidden;
  background:linear-gradient(135deg,var(--gray-200),var(--gray-300));
  display:flex;align-items:center;justify-content:center;
  color:var(--gray-500);font-size:14px;
  box-shadow:var(--shadow-md);position:relative;
}

/* ============================
   Contact Page
   ============================ */
.contact-section{padding:80px 0;background:#fff}
.contact-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:60px}
.contact-side{
  background:linear-gradient(135deg,var(--orange-50),var(--orange-100));
  border-radius:12px;padding:48px 36px;
}
.contact-side h3{font-family:'Noto Serif JP',serif;font-size:22px;font-weight:500;color:var(--gray-900);margin-bottom:20px;line-height:1.6}
.contact-side p{font-size:13px;color:var(--gray-500);line-height:1.9;margin-bottom:32px}
.contact-tel{
  background:#fff;padding:24px;border-radius:8px;margin-bottom:16px;
  text-align:center;
}
.contact-tel .label{font-size:11px;color:var(--gray-400);letter-spacing:.15em;margin-bottom:8px}
.contact-tel .num{font-family:'Cormorant Garamond',serif;color:var(--orange-500);font-size:28px;font-weight:600;letter-spacing:.05em}
.contact-tel .hours{font-size:11px;color:var(--gray-500);margin-top:6px}
.contact-form{display:flex;flex-direction:column;gap:20px}
.form-group{display:flex;flex-direction:column;gap:8px}
.form-group label{font-size:12.5px;color:var(--gray-700);font-weight:500;letter-spacing:.05em}
.form-group label .req{color:var(--orange-500);margin-left:4px}
.form-group input,.form-group select,.form-group textarea{
  padding:14px 16px;border:1px solid var(--gray-200);border-radius:6px;
  font-family:inherit;font-size:13.5px;color:var(--gray-700);
  background:var(--gray-50);transition:.3s;
}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{
  outline:none;border-color:var(--orange-300);background:#fff;
  box-shadow:0 0 0 3px rgba(232,149,86,.1);
}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-submit{
  background:linear-gradient(135deg,var(--orange-400),var(--orange-500));
  color:#fff;padding:16px 32px;border-radius:30px;font-size:14px;font-weight:500;
  box-shadow:0 6px 20px rgba(232,149,86,.3);transition:.3s;
}
.form-submit:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(232,149,86,.4)}

/* ============================
   Contact Form 7 (見た目を元デザインに合わせる)
   ============================ */
.contact-form .wpcf7-form p{margin-bottom:20px}
.contact-form .wpcf7-form label{display:flex;flex-direction:column;gap:8px;font-size:12.5px;color:var(--gray-700);font-weight:500;letter-spacing:.05em}
.contact-form .wpcf7-form label .req{color:var(--orange-500);margin-left:4px}
.contact-form .wpcf7-form input[type="text"],
.contact-form .wpcf7-form input[type="tel"],
.contact-form .wpcf7-form input[type="email"],
.contact-form .wpcf7-form select,
.contact-form .wpcf7-form textarea{
  padding:14px 16px;border:1px solid var(--gray-200);border-radius:6px;
  font-family:inherit;font-size:13.5px;color:var(--gray-700);
  background:var(--gray-50);transition:.3s;width:100%;
}
.contact-form .wpcf7-form input:focus,
.contact-form .wpcf7-form select:focus,
.contact-form .wpcf7-form textarea:focus{
  outline:none;border-color:var(--orange-300);background:#fff;
  box-shadow:0 0 0 3px rgba(232,149,86,.1);
}
.contact-form .wpcf7-form input[type="submit"]{
  background:linear-gradient(135deg,var(--orange-400),var(--orange-500));
  color:#fff;padding:16px 32px;border:none;border-radius:30px;font-size:14px;font-weight:500;
  box-shadow:0 6px 20px rgba(232,149,86,.3);transition:.3s;cursor:pointer;
}
.contact-form .wpcf7-form input[type="submit"]:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(232,149,86,.4)}
.contact-form .wpcf7-form .wpcf7-not-valid-tip{font-size:12px;color:#c2622a;margin-top:4px}
.contact-form .wpcf7-response-output{margin-top:16px;padding:14px 18px;border-radius:8px;font-size:13px}

/* ============================
   Floating contact bars
   ============================ */
.floating-side{
  position:fixed;right:0;top:50%;transform:translateY(-50%);
  z-index:90;display:flex;flex-direction:column;gap:2px;
}
.floating-side a{
  writing-mode:vertical-rl;
  background:var(--orange-400);color:#fff;
  padding:18px 10px;font-size:12px;letter-spacing:.15em;
  border-radius:8px 0 0 8px;font-weight:500;
  box-shadow:-2px 4px 12px rgba(0,0,0,.1);
  transition:.3s;
}
.floating-side a:hover{background:var(--orange-500);transform:translateX(-4px)}
.floating-side .tel-side{background:var(--gray-700)}
.floating-side .line-side{background:#06c755}
.floating-side .instagram-side{background:linear-gradient(135deg,#f58529,#dd2a7b,#8134af)}
.floating-bottom{display:none}

/* ============================
   Animations
   ============================ */
.reveal{opacity:0;transform:translateY(30px);transition:all .8s ease}
.reveal.visible{opacity:1;transform:translateY(0)}

/* ============================
   Responsive
   ============================ */
@media (max-width: 1100px){
  .header-inner{padding:12px 20px;height:64px}
  .nav-list,.header-cta{display:none}
  .menu-toggle{display:flex}
  .mobile-nav{
    position:fixed;top:64px;left:0;right:0;background:#fff;
    border-bottom:1px solid var(--gray-100);
    display:none;flex-direction:column;padding:16px;
    box-shadow:var(--shadow-md);
  }
  .mobile-nav.open{display:flex}
  .mobile-nav a{padding:14px 12px;font-size:14px;color:var(--gray-700);border-bottom:1px solid var(--gray-100)}
  .mobile-nav a:last-child{border-bottom:none}
  main{padding-top:64px}
  .hero{height:auto;padding:60px 0}
  .hero-inner{grid-template-columns:1fr;gap:40px}
  .hero-text h1{font-size:28px}
  .hero-image{width:100%;max-width:400px;margin:0 auto}
  section{padding:60px 0}
  .container{padding:0 20px}
  .section-head h2{font-size:24px}
  .concept-grid,.access-grid,.contact-grid,.news-grid{grid-template-columns:1fr;gap:40px}
  .feature-grid{grid-template-columns:repeat(2,1fr)}
  .flow-steps{grid-template-columns:repeat(2,1fr);gap:32px 16px}
  .flow-steps::before{display:none}
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px}
  .room-grid,.group-list{grid-template-columns:1fr}
  .facility-block,.facility-block.reverse{grid-template-columns:1fr;gap:32px}
  .facility-block.reverse .facility-img-wrap{order:0}
  .service-row{grid-template-columns:1fr}
  .service-row.reverse{direction:ltr}
  .service-tab-cards{grid-template-columns:1fr}
  .day-flow{grid-template-columns:repeat(2,1fr)}
  .day-features{grid-template-columns:1fr}
  .combo-boxes{grid-template-columns:1fr}
  .combo-plus,.combo-arrow{transform:rotate(90deg)}
  .floating-side{display:none}
  .floating-bottom{
    display:flex;position:fixed;bottom:0;left:0;right:0;z-index:90;
    background:#fff;box-shadow:0 -4px 16px rgba(0,0,0,.08);
  }
  .floating-bottom a{
    flex:1;padding:14px;text-align:center;font-size:12px;font-weight:500;
    color:#fff;
  }
  .floating-bottom .tel-btm{background:var(--gray-700)}
  .floating-bottom .contact-btm{background:var(--orange-400)}
  body{padding-bottom:50px}
  .page-header{padding:60px 0}
  .page-header h1{font-size:26px}
  .form-row{grid-template-columns:1fr}
}
@media (max-width:480px){
  .feature-grid{grid-template-columns:1fr}
  .facility-list{grid-template-columns:1fr}
  .day-flow{grid-template-columns:1fr}
  .service-tabs{flex-direction:column}
}
