:root{
    --base:#FDFBFA;
    --pale:#FDF4F2;
    --pale2:#FBEEEC;
    --line:#F2DEDA;
    --rose:#D98C8C;
    --rose-dk:#C97B7B;
    --rose-lt:#E9A7A7;
    --main:#3D3835;
    --sub:#6E6461;
    --white:#fff;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0; background:var(--base); color:var(--sub);
    font-family:"Noto Sans JP",sans-serif; font-size:15px; line-height:1.9;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4,.serif{font-family:"Noto Serif JP",serif; color:var(--main); font-weight:500;}
  .script{font-family:"Parisienne",cursive; color:var(--rose-lt); font-weight:400;}
  a{color:inherit; text-decoration:none;}
  img{max-width:100%; display:block;}
  .wrap{max-width:1080px; margin:0 auto; padding:0 24px;}

  /* ---------- nav ---------- */
  .nav{position:fixed; top:0; left:0; right:0; z-index:50; background:rgba(255,255,255,.96);
       backdrop-filter:blur(8px); border-bottom:1px solid #F5EAE7;}
  .nav-in{max-width:1240px; margin:0 auto; padding:0 20px; height:72px; display:flex; align-items:center; justify-content:space-between; gap:16px;}
  .logo{display:flex; flex-direction:column; line-height:1;}
  .logo b{font-family:"Noto Serif JP",serif; font-size:26px; letter-spacing:.22em; color:var(--main); font-weight:500;}
  .logo small{font-size:8px; letter-spacing:.3em; color:var(--rose-lt); margin-top:4px;}
  .menu{display:flex; align-items:center; gap:22px;}
  .menu a{font-size:13px; color:var(--sub); white-space:nowrap; padding:6px 0; position:relative;}
  .menu a:hover{color:var(--rose);}
  .menu a.on{color:var(--rose);}
  .menu a.on::after{content:""; position:absolute; left:0; right:0; bottom:0; height:1px; background:var(--rose);}
  .btn-cta{background:var(--rose); color:#fff; border-radius:999px; padding:11px 20px; font-size:12px; font-weight:700;
           white-space:nowrap; box-shadow:0 4px 12px rgba(217,140,140,.28); transition:.2s;}
  .btn-cta:hover{background:var(--rose-dk); transform:translateY(-1px);}
  .burger{display:none; background:none; border:0; font-size:22px; color:var(--sub); cursor:pointer;}
  .m-menu{display:none; background:#fff; border-bottom:1px solid #F5EAE7; padding:8px 20px 18px;}
  .m-menu a{display:block; padding:12px 4px; font-size:14px; border-bottom:1px solid #FBF2F0;}

  /* ---------- breadcrumb ---------- */
  .crumb{padding:96px 0 14px; font-size:11px; color:#A99B96;}
  .crumb i{margin:0 8px; font-size:8px;}

  /* ---------- hero ---------- */
  .hero{position:relative; background:linear-gradient(180deg,#FDF6F3 0%,#FCF1EE 100%); overflow:hidden;}
  .hero-in{max-width:1080px; margin:0 auto; padding:0 24px; display:flex; align-items:center; min-height:300px;}
  .hero-txt{width:52%; padding:56px 0 64px; position:relative; z-index:2;}
  .hero-txt h1{font-size:38px; letter-spacing:.14em; margin:0 0 10px;}
  .hero-txt .script{font-size:30px; margin-bottom:22px; letter-spacing:.04em;}
  .hero-txt p{font-size:14px; line-height:2.1; margin:0;}
  .hero-img{position:absolute; right:0; top:0; bottom:0; width:52%;}
  .hero-img img{width:100%; height:100%; object-fit:cover;}
  .hero-img::before{content:""; position:absolute; inset:0; z-index:1;
    background:linear-gradient(90deg,#FCF1EE 0%,rgba(252,241,238,.75) 22%,rgba(252,241,238,0) 62%);}

  /* ---------- feature strip ---------- */
  .feat{background:#fff; border:1px solid var(--line); border-radius:6px; margin:-30px 0 0; position:relative; z-index:5;
        display:grid; grid-template-columns:repeat(6,1fr); box-shadow:0 6px 24px rgba(200,160,155,.08);}
  .feat div{padding:26px 12px; text-align:center; border-right:1px solid #F7E9E6;}
  .feat div:last-child{border-right:0;}
  .feat i{font-size:24px; color:var(--rose-lt); display:block; margin-bottom:12px;}
  .feat p{margin:0; font-size:11.5px; line-height:1.7; color:var(--sub);}

  /* ---------- section heading with ornament ---------- */
  .orn{display:flex; align-items:center; justify-content:center; gap:16px; margin:0 0 34px;}
  .orn h2{font-size:24px; letter-spacing:.1em; margin:0; white-space:nowrap;}
  .orn svg{flex-shrink:0;}
  section{padding:64px 0;}

  /* ---------- price block ---------- */
  .num{font-size:16px; color:var(--rose); font-weight:700; font-family:"Noto Serif JP",serif;}
  .block-h{font-size:16px; margin:0 0 16px; letter-spacing:.04em;}
  .card{background:#fff; border:1px solid var(--line); border-radius:6px;}
  .pad{padding:26px;}

  .grid-top{display:grid; grid-template-columns:262px 1fr; gap:24px; align-items:start;}
  .slots{background:#fff; border:1px solid var(--line); border-radius:6px; padding:22px 20px;}
  .slots h3{font-size:14px; color:var(--rose); text-align:center; margin:0 0 18px; letter-spacing:.08em;}
  .slot{display:flex; gap:12px; padding:14px 0; border-bottom:1px dashed #F2E2DF;}
  .slot:last-child{border-bottom:0;}
  .slot i{color:var(--rose-lt); font-size:19px; width:24px; text-align:center; margin-top:3px;}
  .slot b{font-family:"Noto Serif JP",serif; color:var(--main); font-size:14px; font-weight:500;}
  .slot span{display:block; font-size:11px; color:#9C8F8B; line-height:1.6; margin-top:2px;}

  table{width:100%; border-collapse:collapse; background:#fff;}
  th,td{border:1px solid var(--line); padding:14px 10px; text-align:center; font-size:13.5px;}
  thead th{background:var(--pale2); color:var(--main); font-family:"Noto Serif JP",serif; font-weight:500; font-size:13px;}
  tbody th{background:var(--pale); color:var(--main); font-family:"Noto Serif JP",serif; font-weight:500; text-align:left; padding-left:18px; white-space:nowrap;}
  tbody th em{font-style:normal; color:var(--rose); margin-right:10px;}
  td.price{font-family:"Noto Serif JP",serif; color:var(--main); font-size:17px;}
  .note{font-size:11.5px; color:#9C8F8B; line-height:1.9; margin:10px 0 0;}

  /* ---------- oneday ---------- */
  .oneday{background:linear-gradient(90deg,#FDF4F2 0%,#FDF9F8 100%); border:1px solid var(--line); border-radius:6px; padding:24px; margin-top:44px; position:relative;}
  .badge{position:absolute; top:-14px; left:-14px; width:62px; height:62px; border-radius:50%; background:var(--rose); color:#fff;
         display:flex; align-items:center; justify-content:center; text-align:center; font-size:10px; font-weight:700; line-height:1.4;
         box-shadow:0 4px 12px rgba(217,140,140,.3);}
  .oneday-grid{display:grid; grid-template-columns:300px 1fr; gap:22px; align-items:center;}
  .oneday-lead{background:#fff; border:1px solid var(--line); border-radius:6px; padding:20px;}
  .oneday-lead h4{color:var(--rose); font-size:14px; margin:0 0 10px;}
  .oneday-lead p{font-size:12px; line-height:1.9; margin:0;}

  /* ---------- two col ---------- */
  .cols{display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:22px;}
  .ttl-ico{display:flex; align-items:center; gap:10px; margin:0 0 14px;}
  .ttl-ico i{color:var(--rose-lt); font-size:20px;}
  .ttl-ico h3{font-size:15px; margin:0;}
  .kv{display:flex; gap:14px; padding:7px 0; font-size:13px;}
  .kv b{font-weight:500; color:var(--main); min-width:120px;}
  ul.chk{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:6px 14px;}
  ul.chk li{font-size:12.5px; display:flex; gap:8px; align-items:flex-start;}
  ul.chk li::before{content:"\f00c"; font-family:"Font Awesome 6 Free"; font-weight:900; color:var(--rose-lt); font-size:10px; margin-top:5px;}
  ul.dot{list-style:none; margin:0; padding:0;}
  ul.dot li{font-size:12.5px; line-height:1.9; padding-left:14px; position:relative;}
  ul.dot li::before{content:"・"; position:absolute; left:0; color:var(--rose-lt);}

  /* ---------- spot (new) ---------- */
  .spot-tag{display:inline-block; background:var(--rose-lt); color:#fff; font-size:10px; font-weight:700; border-radius:999px; padding:3px 12px; margin-left:10px; vertical-align:3px;}
  .spot-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
  .spot-card{background:var(--pale); border:1px solid var(--line); border-radius:6px; padding:18px; text-align:center;}
  .spot-card b{display:block; font-family:"Noto Serif JP",serif; color:var(--main); font-size:14px; font-weight:500; margin-bottom:6px;}
  .spot-card .p{font-family:"Noto Serif JP",serif; color:var(--main); font-size:24px;}
  .spot-card .p small{font-size:11px; color:var(--sub); margin-left:3px;}
  .spot-row{display:grid; grid-template-columns:repeat(3,1fr); gap:12px;}
  .spot-pill{background:#fff; border:1px solid var(--line); border-radius:6px; padding:13px; text-align:center; font-size:12.5px;}
  .spot-pill b{color:var(--main); font-weight:500;}
  .spot-pill .up{color:var(--main); font-weight:700;}
  .spot-pill .down{color:var(--rose); font-weight:700;}
  .sub-h{font-size:13px; color:var(--main); font-family:"Noto Serif JP",serif; margin:0 0 12px; padding-bottom:8px; border-bottom:1px solid var(--line);}
  .sub-h span{color:var(--rose); margin-right:8px;}

  /* ---------- cta ---------- */
  .cta-box{background:#fff; border:1px solid var(--line); border-radius:6px; padding:22px 26px; margin-top:44px;
           display:flex; align-items:center; justify-content:space-between; gap:24px;}
  .cta-box h3{font-size:17px; margin:0 0 8px;}
  .cta-box p{margin:0; font-size:12.5px; line-height:1.9;}
  .cta-thumb{width:92px; height:92px; border-radius:50%; overflow:hidden; flex-shrink:0;}
  .cta-thumb img{width:100%; height:100%; object-fit:cover;}
  .btn-lg{background:var(--rose); color:#fff; border-radius:999px; padding:15px 30px; font-size:14px; font-weight:700;
          white-space:nowrap; display:inline-flex; align-items:center; gap:10px; box-shadow:0 6px 18px rgba(217,140,140,.3); transition:.2s;}
  .btn-lg:hover{background:var(--rose-dk); transform:translateY(-2px);}

  .strip{background:var(--pale2); padding:26px 0;}
  .strip-in{max-width:1080px; margin:0 auto; padding:0 24px; display:flex; align-items:center; justify-content:space-between; gap:20px;}
  .strip i.cal{font-size:30px; color:var(--rose-lt);}
  .strip p{margin:0; font-size:14px; color:var(--main); line-height:1.9;}

  /* ---------- footer ---------- */
  footer{background:#fff; border-top:1px solid var(--line); padding:48px 0 22px; font-size:12px;}
  .f-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1.4fr; gap:32px;}
  .f-grid ul{list-style:none; margin:0; padding:0;}
  .f-grid li{padding:5px 0;}
  .f-grid li a:hover{color:var(--rose);}
  .f-info b{color:var(--main); font-weight:500; display:block; margin-bottom:8px; font-family:"Noto Serif JP",serif;}
  .f-tel{display:flex; align-items:center; gap:8px; font-size:17px; color:var(--main); font-family:"Noto Serif JP",serif; margin:10px 0 6px;}
  .f-tel i{color:var(--rose); font-size:14px;}
  .sns{display:flex; gap:10px; margin-top:14px;}
  .sns a{width:30px; height:30px; border-radius:8px; display:flex; align-items:center; justify-content:center; color:#fff; font-size:15px;}
  .sns .ig{background:linear-gradient(45deg,#F09433,#DC2743,#BC1888);}
  .sns .ln{background:#06C755;}
  .legal{display:flex; gap:18px; margin-top:16px; font-size:11px;}
  .legal a:hover{color:var(--rose);}
  .copy{text-align:center; font-size:10.5px; color:#B5A7A3; border-top:1px solid #F7EEEC; margin-top:32px; padding-top:20px;}
  .totop{position:fixed; right:24px; bottom:24px; width:56px; height:56px; border-radius:50%; background:#fff; border:1px solid var(--line);
         display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:8px; color:var(--sub); gap:2px; z-index:40;}
  .totop i{font-size:12px; color:var(--rose);}

  /* ---------- responsive ---------- */
  @media(max-width:1100px){ .menu{display:none;} .burger{display:block;} }
  @media(max-width:900px){
    .feat{grid-template-columns:repeat(3,1fr);}
    .feat div:nth-child(3n){border-right:0;}
    .feat div:nth-child(-n+3){border-bottom:1px solid #F7E9E6;}
    .grid-top,.oneday-grid,.cols,.f-grid{grid-template-columns:1fr;}
    .hero-in{min-height:auto;} .hero-txt{width:100%; padding:36px 0 30px;}
    .hero-img{position:relative; width:100%; height:210px;}
    .hero-img::before{background:linear-gradient(180deg,#FCF1EE 0%,rgba(252,241,238,0) 55%);}
    .hero-in{flex-direction:column;}
    .cta-box{flex-direction:column; text-align:center;}
    .strip-in{flex-direction:column; text-align:center;}
  }
  @media(max-width:640px){
    .feat{grid-template-columns:repeat(2,1fr);}
    .feat div{border-right:1px solid #F7E9E6; border-bottom:1px solid #F7E9E6;}
    .feat div:nth-child(2n){border-right:0;}
    .spot-cards,.spot-row,ul.chk{grid-template-columns:1fr;}
    .hero-txt h1{font-size:29px;}
    .orn h2{font-size:19px; white-space:normal;}
    .orn svg{display:none;}
    table{font-size:12px;} th,td{padding:10px 5px;} tbody th{padding-left:8px;}
    td.price{font-size:14px;}
    .badge{left:50%; transform:translateX(-50%);}
  }
  @media(prefers-reduced-motion:reduce){*{transition:none!important; scroll-behavior:auto;}}
  a:focus-visible,button:focus-visible{outline:2px solid var(--rose); outline-offset:3px;}

/* =====================================================================
   partials 用の追加（header/footer の共通化にともなうもの）
   ===================================================================== */
.nav-right{display:flex; align-items:center; gap:10px;}
.m-menu{display:none;}
.m-menu.open{display:block;}
.f-logo{margin-bottom:14px;}
.f-lead{margin:0; font-size:12px; line-height:2;}
.strip-lead{display:flex; align-items:center; gap:18px;}
.strip .btn-lg i{font-size:11px;}
.cta-box .btn-lg i{font-size:11px;}

/* =====================================================================
   利用店舗一覧（shop.php）
   ===================================================================== */
.filter{background:#fff; border:1px solid var(--line); border-radius:6px; padding:22px; margin-bottom:26px;}
.filter-grid{display:grid; grid-template-columns:1.2fr 2fr 1fr 1fr auto; gap:20px; align-items:end;}
.filter label{display:block; font-size:11.5px; color:var(--main); font-weight:500; margin-bottom:8px;}
.filter input[type=text],.filter select{
  width:100%; border:1px solid var(--line); border-radius:4px; padding:9px 12px; font-size:13px;
  font-family:inherit; color:var(--sub); background:#fff;}
.filter input:focus,.filter select:focus{outline:none; border-color:var(--rose-lt);}
.cat-pills{display:flex; gap:8px; flex-wrap:wrap;}
.cat-pill{border:1px solid var(--line); border-radius:5px; background:#fff; padding:9px 10px; min-width:60px;
  text-align:center; font-size:10px; color:var(--sub); line-height:1.5; cursor:pointer;}
.cat-pill i{display:block; font-size:15px; color:var(--rose-lt); margin-bottom:5px;}
.cat-pill.on{background:var(--pale2); border-color:var(--rose-lt); color:var(--rose);}
.btn-filter{background:var(--rose); color:#fff; border:0; border-radius:4px; padding:11px 24px; font-size:13px;
  font-weight:700; cursor:pointer; white-space:nowrap;}
.btn-filter:hover{background:var(--rose-dk);}

.list-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; font-size:12px;}
.list-head b{color:var(--rose); font-size:14px;}
.shop-layout{display:grid; grid-template-columns:1fr 280px; gap:26px; align-items:start;}
.shop-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
.shop-card{background:#fff; border:1px solid var(--line); border-radius:6px; overflow:hidden; display:flex; flex-direction:column;
  transition:.2s;}
.shop-card:hover{box-shadow:0 8px 22px rgba(200,160,155,.14); transform:translateY(-2px);}
.shop-thumb{position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--pale);}
.shop-thumb img{width:100%; height:100%; object-fit:cover;}
.tag-new{position:absolute; top:0; left:0; background:var(--rose); color:#fff; font-size:9px; font-weight:700;
  padding:4px 10px; letter-spacing:.08em;}
.shop-body{padding:14px 16px 16px; display:flex; flex-direction:column; flex:1;}
.tag-cat{display:inline-block; align-self:flex-start; border:1px solid var(--rose-lt); color:var(--rose);
  font-size:9.5px; border-radius:3px; padding:2px 8px; margin-bottom:8px;}
.shop-card h3{font-size:16px; margin:0 0 2px;}
.shop-card .owner{font-size:10.5px; color:#A99B96; margin:0 0 8px;}
.shop-card .desc{font-size:11.5px; line-height:1.8; margin:0 0 12px; flex:1;}
.shop-meta{font-size:10.5px; color:#8B7F7B; line-height:1.9; border-top:1px dashed #F2E2DF; padding-top:9px; margin-bottom:12px;}
.shop-meta b{color:var(--main); font-weight:500; margin-right:8px;}
.shop-btns{display:grid; grid-template-columns:1fr 1fr; gap:8px;}
.btn-o{border:1px solid var(--rose-lt); color:var(--rose); border-radius:4px; padding:8px; font-size:11px;
  text-align:center; transition:.15s;}
.btn-o:hover{background:var(--pale2);}
.btn-f{background:var(--rose); color:#fff; border-radius:4px; padding:8px; font-size:11px; text-align:center;}
.btn-f:hover{background:var(--rose-dk);}

aside.side .side-box{background:#fff; border:1px solid var(--line); border-radius:6px; padding:18px; margin-bottom:18px;}
aside.side h4{font-size:13px; margin:0 0 12px; text-align:center;}
.side-list{list-style:none; margin:0; padding:0;}
.side-list li{display:flex; justify-content:space-between; font-size:11.5px; padding:7px 0; border-bottom:1px dashed #F5E9E7;}
.side-list li:last-child{border-bottom:0;}
.side-list li span{color:var(--rose);}

.pager{display:flex; justify-content:center; gap:8px; margin-top:32px;}
.pager a,.pager span{min-width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:12px; border:1px solid var(--line); background:#fff;}
.pager .cur{background:var(--rose); color:#fff; border-color:var(--rose);}
.empty{background:#fff; border:1px dashed var(--line); border-radius:6px; padding:56px 20px; text-align:center; font-size:13px;}
.empty i{display:block; font-size:32px; color:var(--line); margin-bottom:14px;}

/* =====================================================================
   店舗詳細（shop-detail.php）
   ===================================================================== */
.sd-hero{background:linear-gradient(90deg,#FDF6F3 0%,#FCF1EE 100%); padding:30px 0 26px;}
.sd-hero-in{display:grid; grid-template-columns:1fr 1fr; gap:30px; align-items:center;}
.sd-hero h1{font-size:34px; margin:6px 0 2px;}
.sd-kana{font-size:11px; color:var(--rose-lt); margin:0 0 12px;}
.sd-owner{font-size:14px; color:var(--main); font-family:"Noto Serif JP",serif; margin:0 0 14px;}
.sd-catch{font-size:15px; color:var(--main); font-family:"Noto Serif JP",serif; margin:0 0 12px;}
.sd-feats{display:flex; gap:16px; flex-wrap:wrap; margin-top:16px;}
.sd-feat{display:flex; align-items:center; gap:6px; font-size:10.5px; color:var(--sub);}
.sd-feat i{color:var(--rose-lt); font-size:13px;}
.sd-gallery{display:grid; grid-template-columns:repeat(5,1fr); gap:6px; margin-top:12px;}
.sd-gallery img{aspect-ratio:1; object-fit:cover; border-radius:4px; cursor:pointer;}
.sd-main{display:grid; grid-template-columns:1fr 300px; gap:30px; align-items:start; padding:44px 0;}
.sd-h{font-size:17px; margin:0 0 16px; padding-bottom:9px; border-bottom:1px solid var(--line); position:relative;}
.sd-h::after{content:""; position:absolute; left:0; bottom:-1px; width:60px; height:2px; background:var(--rose-lt);}
.sd-h + .sd-h{margin-top:36px;}
.sd-prof{display:grid; grid-template-columns:200px 1fr; gap:20px; align-items:start;}
.sd-prof img{border-radius:6px;}
.sd-tags{background:var(--pale); border:1px solid var(--line); border-radius:6px; padding:16px; margin-top:14px;}
.sd-tags b{font-size:11.5px; color:var(--main); font-weight:500; display:block; margin-bottom:10px;}
.chip{display:inline-block; background:#fff; border:1px solid var(--line); border-radius:999px; font-size:11px;
  padding:5px 12px; margin:0 6px 6px 0; color:var(--sub);}
.menu-row{display:grid; grid-template-columns:88px 1fr 80px 90px; gap:14px; align-items:center;
  border:1px solid var(--line); border-radius:6px; background:#fff; padding:12px; margin-bottom:10px;}
.menu-row img{width:88px; height:66px; object-fit:cover; border-radius:4px;}
.menu-row h4{font-size:13.5px; margin:0 0 3px;}
.menu-row p{font-size:11px; margin:0; line-height:1.7;}
.menu-row .dur{font-size:11.5px; text-align:center; color:#8B7F7B;}
.menu-row .pr{font-family:"Noto Serif JP",serif; font-size:16px; color:var(--main); text-align:right;}
.sd-side .box{background:#fff; border:1px solid var(--line); border-radius:6px; padding:18px; margin-bottom:16px;}
.sd-side h4{font-size:13px; margin:0 0 14px; text-align:center; padding-bottom:10px; border-bottom:1px solid var(--line);}
.btn-line{background:#06C755; color:#fff; border-radius:5px; padding:12px; font-size:12.5px; font-weight:700;
  display:flex; align-items:center; justify-content:center; gap:8px; margin-bottom:9px;}
.btn-ig{background:#fff; border:1px solid var(--line); color:var(--sub); border-radius:5px; padding:12px; font-size:12.5px;
  display:flex; align-items:center; justify-content:center; gap:8px; margin-bottom:9px;}
.btn-rsv{background:var(--rose); color:#fff; border-radius:5px; padding:12px; font-size:12.5px; font-weight:700;
  display:flex; align-items:center; justify-content:center; gap:8px;}
.info-row{display:grid; grid-template-columns:64px 1fr; gap:10px; font-size:11.5px; padding:7px 0;
  border-bottom:1px dashed #F5E9E7;}
.info-row:last-child{border-bottom:0;}
.info-row b{color:var(--main); font-weight:500;}
.rec-list{list-style:none; margin:0; padding:0;}
.rec-list li{font-size:11.5px; display:flex; gap:8px; padding:5px 0;}
.rec-list li::before{content:"\f00c"; font-family:"Font Awesome 6 Free"; font-weight:900; color:var(--rose-lt); font-size:9px; margin-top:5px;}

/* =====================================================================
   お知らせ / イベント
   ===================================================================== */
.news-list{background:#fff; border:1px solid var(--line); border-radius:6px; overflow:hidden;}
.news-item{display:grid; grid-template-columns:96px 88px 1fr 20px; gap:14px; align-items:center;
  padding:15px 18px; border-bottom:1px solid #F7EEEC; font-size:13px;}
.news-item:last-child{border-bottom:0;}
.news-item:hover{background:var(--pale);}
.news-item .date{color:var(--rose); font-size:11.5px;}
.news-item .cat{border:1px solid var(--line); background:var(--pale2); border-radius:3px; font-size:9.5px;
  text-align:center; padding:3px 0; color:var(--sub);}
.news-item i{color:var(--rose-lt); font-size:11px; text-align:right;}
.ev-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
.ev-card{background:#fff; border:1px solid var(--line); border-radius:6px; overflow:hidden; display:flex; flex-direction:column;}
.ev-thumb{position:relative; aspect-ratio:16/10; overflow:hidden;}
.ev-thumb img{width:100%; height:100%; object-fit:cover;}
.ev-date{position:absolute; top:8px; left:8px; width:52px; height:52px; border-radius:50%; background:rgba(255,255,255,.94);
  display:flex; flex-direction:column; align-items:center; justify-content:center; line-height:1.1;}
.ev-date b{font-family:"Noto Serif JP",serif; color:var(--rose); font-size:15px;}
.ev-date span{font-size:8.5px; color:var(--sub);}
.ev-time{position:absolute; left:8px; bottom:8px; background:rgba(0,0,0,.45); color:#fff; font-size:9px;
  border-radius:3px; padding:2px 7px;}
.ev-body{padding:14px; display:flex; flex-direction:column; flex:1;}
.ev-body h3{font-size:14px; margin:8px 0 6px;}
.ev-body p{font-size:11px; line-height:1.8; margin:0 0 10px; flex:1;}
.ev-meta{font-size:10.5px; color:#8B7F7B; margin-bottom:10px;}

@media(max-width:960px){
  .filter-grid{grid-template-columns:1fr 1fr;}
  .shop-layout{grid-template-columns:1fr;}
  .shop-grid{grid-template-columns:repeat(2,1fr);}
  .sd-hero-in,.sd-main,.sd-prof{grid-template-columns:1fr;}
  .ev-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:640px){
  .filter-grid{grid-template-columns:1fr;}
  .shop-grid,.ev-grid{grid-template-columns:1fr;}
  .sd-gallery{grid-template-columns:repeat(3,1fr);}
  .menu-row{grid-template-columns:64px 1fr; row-gap:6px;}
  .menu-row img{width:64px; height:56px;}
  .menu-row .dur,.menu-row .pr{text-align:left;}
  .news-item{grid-template-columns:1fr; gap:5px;}
  .news-item .cat{justify-self:start; padding:3px 10px;}
  .news-item i{display:none;}
}

/* =====================================================================
   トップページ
   ===================================================================== */
.top-hero{background:linear-gradient(100deg,#FDF6F3 0%,#FCF0ED 46%,#F9E7E2 100%); position:relative; overflow:hidden; padding-top:72px;}
.top-hero-in{max-width:1180px; margin:0 auto; padding:0 24px; display:grid; grid-template-columns:1fr 1fr; gap:20px; align-items:center; min-height:520px;}
.top-hero h1{font-size:44px; line-height:1.5; letter-spacing:.04em; margin:0 0 18px;}
.top-hero h1 .rose{color:var(--rose);}
.top-hero .sub{font-size:14px; margin:0 0 24px;}
.hero-cards{display:grid; grid-template-columns:repeat(4,1fr); gap:10px; max-width:460px; margin-bottom:20px;}
.hero-card{background:rgba(255,255,255,.85); border:1px solid rgba(242,222,218,.9); border-radius:6px; padding:14px 8px; text-align:center;}
.hero-card i{font-size:19px; color:var(--rose-lt); display:block; margin-bottom:8px;}
.hero-card span{font-size:10px; line-height:1.6; display:block;}
.trial-line{font-size:12.5px; color:var(--main); margin:0 0 14px; text-align:center; max-width:460px;}
.top-hero-img{position:relative;}
.top-hero-img > img{width:100%; border-radius:8px; aspect-ratio:4/3; object-fit:cover;}
.hero-seal{position:absolute; right:-6px; bottom:-14px; width:158px; height:158px; border-radius:50%;
  background:rgba(253,244,242,.94); border:1px solid var(--line); display:flex; flex-direction:column;
  align-items:center; justify-content:center; text-align:center; box-shadow:0 8px 26px rgba(200,160,155,.2);}
.hero-seal small{font-size:9px; color:var(--sub); line-height:1.7;}
.hero-seal b{font-family:"Noto Serif JP",serif; font-size:30px; letter-spacing:.16em; color:var(--main); font-weight:500; margin:4px 0 2px;}
.hero-seal .script{font-size:13px;}

.sec-t{text-align:center; margin-bottom:30px;}
.sec-t h2{font-size:24px; margin:0 0 6px; letter-spacing:.08em;}
.sec-t h2 em{font-style:normal; color:var(--rose); font-size:30px; margin:0 4px;}
.sec-t p{font-size:12.5px; margin:0;}

.can-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:8px;}
.can{background:#fff; border:1px solid var(--line); border-radius:6px; padding:18px 6px; text-align:center;}
.can i{font-size:22px; color:var(--rose-lt); display:block; margin-bottom:10px;}
.can span{font-size:10px; line-height:1.6;}

.why-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:10px;}
.why{background:#fff; border:1px solid var(--line); border-radius:6px; padding:18px 12px; text-align:center;}
.why i{font-size:20px; color:var(--rose-lt); display:block; margin-bottom:10px;}
.why b{display:block; font-family:"Noto Serif JP",serif; font-size:12.5px; color:var(--main); font-weight:500; margin-bottom:8px;}
.why p{font-size:10px; line-height:1.7; margin:0;}

.two{display:grid; grid-template-columns:1.35fr 1fr; gap:22px; align-items:start;}
.panel{background:#fff; border:1px solid var(--line); border-radius:6px; padding:20px;}
.panel-h{display:flex; justify-content:space-between; align-items:center; margin-bottom:16px;}
.panel-h h3{font-size:16px; margin:0;}
.more{font-size:11px; color:var(--sub); border:1px solid var(--line); border-radius:999px; padding:5px 14px;}
.more:hover{border-color:var(--rose-lt); color:var(--rose);}

.mini-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:12px;}
.mini{border:1px solid var(--line); border-radius:6px; overflow:hidden; background:#fff; display:flex; flex-direction:column;}
.mini img{aspect-ratio:4/3; object-fit:cover;}
.mini-b{padding:11px; display:flex; flex-direction:column; flex:1;}
.mini-b .c{font-size:9px; color:var(--rose); margin-bottom:3px;}
.mini-b h4{font-size:13px; margin:0 0 2px;}
.mini-b .o{font-size:10px; color:#A99B96; margin:0 0 7px;}
.mini-b .d{font-size:10px; line-height:1.7; margin:0 0 9px; flex:1;}
.mini-b .t{font-size:10px; color:var(--rose); margin:0 0 9px; line-height:1.6;}

.ev-row{display:flex; gap:12px; padding:11px 0; border-bottom:1px dashed #F2E2DF;}
.ev-row:last-child{border-bottom:0;}
.ev-row img{width:74px; height:60px; object-fit:cover; border-radius:5px; flex-shrink:0;}
.ev-row .lbl{display:inline-block; background:var(--pale2); color:var(--rose); font-size:9px; border-radius:3px; padding:2px 8px; margin-bottom:4px;}
.ev-row h4{font-size:12.5px; margin:0 0 3px;}
.ev-row p{font-size:10.5px; margin:0; color:#8B7F7B;}
.ev-row .btn-o{align-self:center; padding:6px 12px; font-size:10px; white-space:nowrap;}

.room-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:12px;}
.room-c{background:#fff; border:1px solid var(--line); border-radius:6px; overflow:hidden;}
.room-c img{aspect-ratio:4/3; object-fit:cover;}
.room-c .rb{padding:13px;}
.room-c h4{font-size:13.5px; margin:0 0 6px;}
.room-c p{font-size:10.5px; line-height:1.7; margin:0 0 10px; min-height:36px;}
.room-c .pr{border-top:1px dashed #F2E2DF; padding-top:9px; font-size:11px;}
.room-c .pr b{font-family:"Noto Serif JP",serif; color:var(--main); font-size:13px; font-weight:500;}
.room-c .pr span{display:block; color:var(--rose); font-size:11px; margin-top:2px;}

.plan-badge{display:inline-block; background:var(--pale2); border:1px solid var(--rose-lt); color:var(--rose);
  font-size:10.5px; font-weight:700; border-radius:999px; padding:4px 12px;}
.terms-row{display:grid; grid-template-columns:repeat(4,1fr) auto; gap:12px; align-items:center; margin-top:16px;
  background:#fff; border:1px solid var(--line); border-radius:6px; padding:14px 18px;}
.terms-row div{font-size:11px; display:flex; align-items:center; gap:8px; line-height:1.6;}
.terms-row i{color:var(--rose-lt); font-size:15px;}

.sup-grid{display:grid; grid-template-columns:1fr repeat(4,1fr); gap:14px; align-items:start;}
.sup-lead h3{font-size:20px; margin:0 0 12px; line-height:1.6;}
.sup-lead p{font-size:11.5px; line-height:1.9; margin:0 0 16px;}
.sup-c{background:#fff; border:1px solid var(--line); border-radius:6px; padding:14px; text-align:center;}
.sup-c h4{font-size:12.5px; margin:0 0 8px;}
.sup-c p{font-size:10px; line-height:1.7; margin:0 0 10px;}
.sup-c img{border-radius:5px; aspect-ratio:4/3; object-fit:cover;}

.voice-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:12px;}
.voice{background:#fff; border:1px solid var(--line); border-radius:6px; padding:14px; display:flex; gap:11px;}
.voice img{width:44px; height:44px; border-radius:50%; object-fit:cover; flex-shrink:0;}
.voice p{font-size:10.5px; line-height:1.8; margin:0 0 8px;}
.voice cite{font-size:9.5px; color:#A99B96; font-style:normal;}

.flow5{display:grid; grid-template-columns:repeat(5,1fr); gap:8px; position:relative;}
.f5{text-align:center;}
.f5 .n{width:34px; height:34px; margin:0 auto 8px; border-radius:50%; background:var(--pale2); color:var(--rose);
  font-family:"Noto Serif JP",serif; font-size:13px; display:flex; align-items:center; justify-content:center;}
.f5 i{font-size:17px; color:var(--rose-lt); display:block; margin-bottom:7px;}
.f5 b{display:block; font-size:11.5px; color:var(--main); font-family:"Noto Serif JP",serif; font-weight:500; margin-bottom:5px;}
.f5 p{font-size:9.5px; line-height:1.7; margin:0;}

.faq-item{background:#fff; border:1px solid var(--line); border-radius:6px; margin-bottom:8px; overflow:hidden;}
.faq-q{width:100%; background:none; border:0; display:flex; justify-content:space-between; align-items:center; gap:14px;
  padding:14px 16px; font-family:inherit; font-size:13px; color:var(--main); text-align:left; cursor:pointer;}
.faq-q .qi{color:var(--rose); font-family:"Noto Serif JP",serif; margin-right:10px;}
.faq-q .ci{color:var(--rose-lt); font-size:12px; transition:transform .2s; flex-shrink:0;}
.faq-item.open .ci{transform:rotate(180deg);}
.faq-a{max-height:0; overflow:hidden; transition:max-height .28s ease, padding .28s ease;}
.faq-item.open .faq-a{max-height:600px; padding:0 16px 16px 42px;}
.faq-a p{font-size:12px; line-height:1.9; margin:0;}

.band{background:linear-gradient(90deg,#F7E9E3 0%,#FBF0EC 100%); padding:44px 0; margin-top:64px;}
.band-in{max-width:1080px; margin:0 auto; padding:0 24px; display:flex; align-items:center; justify-content:space-between; gap:24px;}
.band h2{font-size:22px; margin:0 0 8px;}
.band p{font-size:13px; margin:0;}
.band img{width:150px; height:110px; object-fit:cover; border-radius:8px;}

@media(max-width:1000px){
  .top-hero-in{grid-template-columns:1fr; min-height:auto; padding-top:24px; padding-bottom:34px;}
  .top-hero h1{font-size:33px;}
  .hero-seal{width:120px; height:120px; right:6px;}
  .can-grid,.why-grid{grid-template-columns:repeat(4,1fr);}
  .two,.sup-grid{grid-template-columns:1fr;}
  .mini-grid,.voice-grid,.room-cards{grid-template-columns:repeat(2,1fr);}
  .flow5{grid-template-columns:repeat(3,1fr); gap:16px;}
  .terms-row{grid-template-columns:1fr 1fr;}
  .band-in{flex-direction:column; text-align:center;}
}
@media(max-width:600px){
  .hero-cards{grid-template-columns:repeat(2,1fr);}
  .can-grid,.why-grid{grid-template-columns:repeat(2,1fr);}
  .mini-grid,.voice-grid,.room-cards{grid-template-columns:1fr;}
  .flow5{grid-template-columns:repeat(2,1fr);}
  .terms-row{grid-template-columns:1fr;}
  .top-hero h1{font-size:27px;}
}

/* =====================================================================
   内覧予約・お問い合わせ（contact）
   ===================================================================== */
.ct-steps{display:grid; grid-template-columns:repeat(5,1fr); gap:10px; margin-bottom:34px;}
.ct-step{background:#fff; border:1px solid var(--line); border-radius:6px; padding:16px 10px; text-align:center; position:relative;}
.ct-step .n{width:26px; height:26px; margin:0 auto 8px; border-radius:50%; background:var(--rose); color:#fff;
  font-size:11px; display:flex; align-items:center; justify-content:center; font-family:"Noto Serif JP",serif;}
.ct-step i{font-size:18px; color:var(--rose-lt); display:block; margin-bottom:8px;}
.ct-step b{display:block; font-size:11.5px; color:var(--main); font-family:"Noto Serif JP",serif; font-weight:500; margin-bottom:5px;}
.ct-step p{font-size:9.5px; line-height:1.7; margin:0;}

.ct-layout{display:grid; grid-template-columns:1fr 300px; gap:28px; align-items:start;}
.form-card{background:#fff; border:1px solid var(--line); border-radius:6px; padding:28px;}
.fs{border:0; padding:0; margin:0 0 28px;}
.fs legend{font-size:14px; color:var(--main); font-family:"Noto Serif JP",serif; font-weight:500;
  padding:0 0 9px; margin-bottom:16px; border-bottom:1px solid var(--line); width:100%;}
.fs legend span{color:var(--rose); margin-right:8px;}
.fld{margin-bottom:18px;}
.fld > label{display:block; font-size:12.5px; color:var(--main); font-weight:500; margin-bottom:7px;}
.req{background:var(--rose); color:#fff; font-size:9px; border-radius:2px; padding:2px 6px; margin-left:7px; vertical-align:1px;}
.opt{background:#F0EAE8; color:#8B7F7B; font-size:9px; border-radius:2px; padding:2px 6px; margin-left:7px; vertical-align:1px;}
.fld input[type=text],.fld input[type=tel],.fld input[type=email],.fld input[type=date],
.fld select,.fld textarea{
  width:100%; border:1px solid var(--line); border-radius:4px; padding:11px 12px; font-size:14px;
  font-family:inherit; color:var(--main); background:#FEFDFD;}
.fld textarea{min-height:110px; line-height:1.9; resize:vertical;}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none; border-color:var(--rose-lt);
  box-shadow:0 0 0 3px rgba(233,167,167,.16); background:#fff;}
.fld .hint{font-size:11px; color:#9C8F8B; margin:5px 0 0; line-height:1.7;}
.f2{display:grid; grid-template-columns:1fr 1fr; gap:0 16px;}
.f3{display:grid; grid-template-columns:1fr 1fr 1fr; gap:0 16px;}
.checks{display:flex; flex-wrap:wrap; gap:8px;}
.checks label{display:inline-flex; align-items:center; gap:7px; border:1px solid var(--line); border-radius:4px;
  padding:9px 14px; font-size:12.5px; cursor:pointer; background:#fff; transition:.15s;}
.checks label:hover{border-color:var(--rose-lt);}
.checks input{accent-color:var(--rose); width:15px; height:15px;}
.checks input:checked + span{color:var(--rose); font-weight:500;}
.agree{background:var(--pale); border:1px solid var(--line); border-radius:6px; padding:18px;}
.agree p{font-size:11.5px; line-height:1.9; margin:0 0 12px;}
.agree a{color:var(--rose); text-decoration:underline;}
.agree label{display:flex; align-items:center; gap:9px; font-size:13px; color:var(--main); cursor:pointer;}
.agree input{accent-color:var(--rose); width:17px; height:17px;}
.submit-wrap{text-align:center; margin-top:26px;}
.btn-submit{background:var(--rose); color:#fff; border:0; border-radius:999px; padding:16px 56px; font-size:15px;
  font-weight:700; font-family:inherit; cursor:pointer; box-shadow:0 6px 18px rgba(217,140,140,.3); transition:.2s;}
.btn-submit:hover{background:var(--rose-dk); transform:translateY(-2px);}
.submit-note{font-size:11px; color:#9C8F8B; margin:14px 0 0;}

.ct-side .box{background:#fff; border:1px solid var(--line); border-radius:6px; padding:18px; margin-bottom:16px;}
.ct-side h4{font-size:13px; margin:0 0 12px; padding-bottom:9px; border-bottom:1px solid var(--line); text-align:center;}
.ct-side p{font-size:11.5px; line-height:1.9; margin:0;}
.ct-side .tel{font-family:"Noto Serif JP",serif; font-size:20px; color:var(--main); text-align:center; margin:6px 0;}
.ct-side .tel i{color:var(--rose); font-size:14px; margin-right:6px;}

@media(max-width:900px){
  .ct-layout{grid-template-columns:1fr;}
  .ct-steps{grid-template-columns:repeat(2,1fr);}
  .f2,.f3{grid-template-columns:1fr;}
  .form-card{padding:20px;}
}

/* =====================================================================
   CIELについて（about）
   ===================================================================== */
.ab-hero .hero-txt{width:56%;}
.ab-quote{font-size:26px; line-height:1.7; color:var(--main); font-family:"Noto Serif JP",serif; margin:8px 0 18px;}
.mission{background:linear-gradient(180deg,#FCF1EE 0%,#FDF8F6 100%); padding:56px 0; text-align:center; position:relative; overflow:hidden;}
.mission .lbl{font-family:"Parisienne",cursive; display:none;}
.mission .m-eyebrow{display:flex; align-items:center; justify-content:center; gap:14px; margin-bottom:18px;}
.mission .m-eyebrow span{font-size:12px; letter-spacing:.3em; color:var(--rose);}
.mission h2{font-size:27px; letter-spacing:.06em; margin:0 0 20px;}
.mission p{font-size:13px; line-height:2.1; margin:0;}
.mission .deco{position:absolute; right:6%; top:20%; opacity:.5;}

.value-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:14px;}
.value{text-align:center; position:relative; padding:0 8px;}
.value::after{content:""; position:absolute; right:-7px; top:14%; bottom:14%; border-right:1px dashed var(--line);}
.value:last-child::after{display:none;}
.value .ic{width:74px; height:74px; margin:0 auto 14px; border-radius:50%; background:var(--pale2);
  display:flex; align-items:center; justify-content:center;}
.value .ic i{font-size:26px; color:var(--rose-lt);}
.value b{display:block; font-family:"Noto Serif JP",serif; font-size:15px; color:var(--main); font-weight:500; margin-bottom:10px;}
.value p{font-size:11px; line-height:1.9; margin:0;}

.forwho{display:grid; grid-template-columns:repeat(5,1fr); gap:14px;}
.forwho figure{margin:0; text-align:center;}
.forwho img{border-radius:6px; aspect-ratio:4/3; object-fit:cover; margin-bottom:12px;}
.forwho figcaption{font-size:11.5px; line-height:1.8;}

.msg{display:grid; grid-template-columns:250px 1fr; gap:34px; align-items:center; background:#fff;
  border:1px solid var(--line); border-radius:6px; padding:30px; margin-top:44px;}
.msg-photo img{border-radius:6px; aspect-ratio:3/4; object-fit:cover;}
.msg-photo .cap{background:var(--pale2); text-align:center; font-size:11px; color:var(--main); padding:9px; border-radius:0 0 6px 6px;}
.msg .script{font-size:22px; margin-bottom:4px;}
.msg h3{font-size:19px; margin:0 0 16px; line-height:1.7;}
.msg p{font-size:12.5px; line-height:2.1; margin:0 0 10px;}

/* =====================================================================
   ご利用の流れ（flow）
   ===================================================================== */
.steps7{display:grid; grid-template-columns:repeat(7,1fr); gap:8px; align-items:stretch;}
.st{background:#fff; border:1px solid var(--line); border-radius:6px; padding:16px 10px; text-align:center;
  display:flex; flex-direction:column; position:relative;}
.st .n{width:32px; height:32px; margin:0 auto 10px; border-radius:50%; background:var(--rose); color:#fff;
  font-family:"Noto Serif JP",serif; font-size:12px; display:flex; align-items:center; justify-content:center;}
.st > i{font-size:20px; color:var(--rose-lt); margin-bottom:9px;}
.st b{font-size:12px; color:var(--main); font-family:"Noto Serif JP",serif; font-weight:500; margin-bottom:10px; line-height:1.5;}
.st b small{display:block; font-size:9px; color:#A99B96; font-weight:400;}
.st img{border-radius:4px; aspect-ratio:4/3; object-fit:cover; margin-bottom:10px;}
.st p{font-size:9.5px; line-height:1.7; margin:0 0 10px; flex:1;}
.st .tm{font-size:9.5px; border:1px solid var(--line); border-radius:999px; padding:3px 8px; color:var(--sub); background:var(--pale);}
.st-arrow{position:absolute; right:-9px; top:50%; transform:translateY(-50%); color:var(--rose-lt); font-size:11px; z-index:2;}

.trial{background:linear-gradient(90deg,#FDF4F2,#FDF9F8); border:1px solid var(--line); border-radius:6px;
  padding:28px; margin-top:44px; display:grid; grid-template-columns:220px 1fr; gap:30px; align-items:center;}
.trial-img img{border-radius:50%; aspect-ratio:1; object-fit:cover;}
.trial .script{font-size:22px;}
.trial h3{font-size:21px; margin:0 0 12px;}
.trial > div > p{font-size:12.5px; line-height:2; margin:0 0 18px;}
.trial-pts{display:grid; grid-template-columns:repeat(3,1fr); gap:0;}
.trial-pt{display:flex; align-items:center; gap:10px; font-size:11.5px; line-height:1.7; padding:0 14px;
  border-right:1px dashed var(--line);}
.trial-pt:last-child{border-right:0;}
.trial-pt i{font-size:20px; color:var(--rose-lt); flex-shrink:0;}

.sup3{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.sup3 > div{display:flex; gap:14px; align-items:flex-start;}
.sup3 img{width:96px; height:96px; border-radius:50%; object-fit:cover; flex-shrink:0;}
.sup3 h4{font-size:14px; margin:0 0 8px;}
.sup3 p{font-size:11px; line-height:1.8; margin:0;}
.sup3 .tag{display:inline-block; background:var(--pale2); color:var(--rose); font-size:10px; border-radius:3px;
  padding:3px 9px; margin-top:8px;}

/* =====================================================================
   開業サポート（support）
   ===================================================================== */
.sup-ico{display:grid; grid-template-columns:repeat(4,1fr); gap:18px; text-align:center;}
.sup-ico .ic{width:86px; height:86px; margin:0 auto 14px; border-radius:50%; background:var(--pale2);
  display:flex; align-items:center; justify-content:center;}
.sup-ico .ic i{font-size:30px; color:var(--rose-lt);}
.sup-ico b{display:block; font-family:"Noto Serif JP",serif; font-size:14px; color:var(--main); font-weight:500; margin-bottom:9px;}
.sup-ico p{font-size:11px; line-height:1.9; margin:0;}

.sup-detail{background:var(--pale); padding:44px 0; margin-top:56px;}
.supd-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
.supd{background:#fff; border:1px solid var(--line); border-radius:6px; padding:18px;}
.supd-h{display:flex; align-items:center; gap:11px; margin-bottom:14px;}
.supd-h .n{width:30px; height:30px; border-radius:50%; background:var(--rose); color:#fff; flex-shrink:0;
  font-family:"Noto Serif JP",serif; font-size:11px; display:flex; align-items:center; justify-content:center;}
.supd-h h4{font-size:14px; margin:0;}
.supd img{border-radius:5px; aspect-ratio:16/10; object-fit:cover; margin-bottom:13px;}
.supd > p{font-size:11.5px; line-height:1.9; margin:0 0 13px;}
.supd ul{list-style:none; margin:0; padding:0;}
.supd li{font-size:11px; display:flex; gap:8px; padding:4px 0; line-height:1.7;}
.supd li::before{content:"\f00c"; font-family:"Font Awesome 6 Free"; font-weight:900; color:var(--rose-lt);
  font-size:9px; margin-top:5px; flex-shrink:0;}

.sup-flow{display:grid; grid-template-columns:repeat(6,1fr); gap:8px; position:relative;}
.sf{text-align:center; position:relative; padding:0 6px;}
.sf i{font-size:24px; color:var(--rose-lt); display:block; margin-bottom:11px;}
.sf b{display:block; font-size:12px; color:var(--main); font-family:"Noto Serif JP",serif; font-weight:500; margin-bottom:7px;}
.sf p{font-size:9.5px; line-height:1.7; margin:0;}
.sf::after{content:"\f054"; font-family:"Font Awesome 6 Free"; font-weight:900; position:absolute; right:-6px; top:8px;
  color:#EBBDBB; font-size:10px;}
.sf:last-child::after{display:none;}

/* =====================================================================
   よくある質問（faq）
   ===================================================================== */
.faq-tabs{background:#fff; border:1px solid var(--line); border-radius:6px; display:grid;
  grid-template-columns:repeat(6,1fr); overflow:hidden; margin-bottom:34px;}
.faq-tab{padding:20px 8px; text-align:center; border-right:1px solid #F7E9E6; cursor:pointer; background:none; border-top:0;
  border-bottom:0; border-left:0; font-family:inherit; position:relative;}
.faq-tab:last-child{border-right:0;}
.faq-tab i{font-size:22px; color:var(--rose-lt); display:block; margin-bottom:11px;}
.faq-tab span{font-size:11.5px; color:var(--sub);}
.faq-tab.on span{color:var(--rose); font-weight:500;}
.faq-tab.on::after{content:""; position:absolute; left:50%; transform:translateX(-50%); bottom:10px; width:34px; height:2px;
  background:var(--rose);}
.faq-group{display:none;}
.faq-group.show{display:block;}
.faq-cta{background:var(--pale); border:1px solid var(--line); border-radius:6px; padding:22px 26px; margin-top:36px;
  display:flex; align-items:center; justify-content:space-between; gap:24px;}
.faq-cta i.hs{font-size:30px; color:var(--rose-lt);}
.faq-cta p{margin:0; font-size:13px; line-height:1.9;}

/* =====================================================================
   アクセス（access）
   ===================================================================== */
.acc-grid{display:grid; grid-template-columns:1.15fr 1fr; gap:30px; align-items:start;}
.acc-map{border-radius:6px; overflow:hidden; border:1px solid var(--line); aspect-ratio:16/11; background:var(--pale);}
.acc-map iframe{width:100%; height:100%; border:0; display:block;}
.acc-row{display:flex; gap:14px; margin-bottom:24px;}
.acc-row .pin{width:30px; height:30px; border-radius:50%; background:var(--pale2); display:flex; align-items:center;
  justify-content:center; flex-shrink:0;}
.acc-row .pin i{color:var(--rose); font-size:13px;}
.acc-row .zip{font-size:12.5px; margin:0;}
.acc-row .bld{font-family:"Noto Serif JP",serif; font-size:22px; color:var(--main); margin:6px 0 0;}
.acc-row b{display:block; font-size:13px; color:var(--main); font-family:"Noto Serif JP",serif; font-weight:500; margin-bottom:5px;}
.acc-row p{font-size:12px; line-height:1.9; margin:0;}

.park-list{background:#fff; border:1px solid var(--line); border-radius:6px; padding:10px 16px;}
.park{display:grid; grid-template-columns:26px 1fr auto auto; gap:14px; align-items:center; padding:12px 0;
  border-bottom:1px dashed #F2E2DF;}
.park:last-child{border-bottom:0;}
.park .no{width:24px; height:24px; border-radius:50%; background:var(--rose); color:#fff; font-size:11px;
  display:flex; align-items:center; justify-content:center;}
.park h4{font-size:13px; margin:0 0 2px;}
.park .walk{font-size:10.5px; color:#A99B96;}
.park .max{background:var(--pale2); border-radius:4px; font-size:11.5px; padding:6px 12px; white-space:nowrap; color:var(--main);}
.park .rate{font-size:10.5px; line-height:1.8; text-align:right; color:var(--sub); white-space:nowrap;}

@media(max-width:1000px){
  .value-grid,.forwho{grid-template-columns:repeat(3,1fr);}
  .value::after{display:none;}
  .steps7{grid-template-columns:repeat(4,1fr);}
  .st-arrow{display:none;}
  .msg,.trial{grid-template-columns:1fr; gap:20px;}
  .msg-photo,.trial-img{max-width:220px; margin:0 auto;}
  .sup-ico{grid-template-columns:repeat(2,1fr);}
  .supd-grid,.sup3{grid-template-columns:1fr 1fr;}
  .sup-flow{grid-template-columns:repeat(3,1fr); gap:22px 8px;}
  .sf::after{display:none;}
  .faq-tabs{grid-template-columns:repeat(3,1fr);}
  .acc-grid{grid-template-columns:1fr;}
  .ab-hero .hero-txt{width:100%;}
}
@media(max-width:640px){
  .value-grid,.forwho,.steps7,.supd-grid,.sup3,.trial-pts{grid-template-columns:1fr;}
  .trial-pt{border-right:0; border-bottom:1px dashed var(--line); padding:12px 0;}
  .trial-pt:last-child{border-bottom:0;}
  .sup-flow{grid-template-columns:repeat(2,1fr);}
  .faq-tabs{grid-template-columns:repeat(2,1fr);}
  .ab-quote{font-size:20px;}
  .mission h2{font-size:20px;}
  .park{grid-template-columns:26px 1fr; row-gap:6px;}
  .park .rate{text-align:left;}
  .faq-cta{flex-direction:column; text-align:center;}
}

/* =====================================================================
   contact の 確認画面・完了画面・エラー表示
   ===================================================================== */
.form-err{background:#FCEDEA; border:1px solid #F0CFC7; border-radius:6px; padding:16px 20px; margin-bottom:22px;
  display:flex; gap:12px; align-items:flex-start;}
.form-err i{color:#C4553F; font-size:17px; margin-top:2px;}
.form-err b{display:block; font-size:13px; color:#C4553F; margin-bottom:5px;}
.form-err ul{margin:0; padding-left:18px;}
.form-err li{font-size:12px; color:#8B5545; line-height:1.9;}
.err-msg{font-size:11.5px; color:#C4553F; margin:5px 0 0;}
input.is-err,select.is-err,textarea.is-err{border-color:#E0A99C !important; background:#FDF7F6 !important;}
.agree.is-err{border-color:#E0A99C; background:#FDF7F6;}

.conf-t{width:100%; border-collapse:collapse; font-size:13.5px;}
.conf-t th,.conf-t td{text-align:left; padding:14px 12px; border-bottom:1px solid #F2E8E6; vertical-align:top;}
.conf-t tr:last-child th,.conf-t tr:last-child td{border-bottom:0;}
.conf-t th{width:150px; font-weight:500; color:var(--sub); font-size:12px; background:var(--pale);}
.conf-t td{color:var(--main); line-height:1.9;}

.thanks{background:#fff; border:1px solid var(--line); border-radius:8px; padding:60px 30px; text-align:center;
  max-width:640px; margin:0 auto;}
.thanks > i{font-size:52px; color:var(--rose-lt); display:block; margin-bottom:20px;}
.thanks h2{font-size:23px; margin:0 0 18px;}
.thanks p{font-size:13px; line-height:2.1; margin:0 0 28px;}
.shop-meta i{color:var(--rose-lt); font-size:10px; margin-right:6px;}
.shop-meta .more-n{color:#A99B96; font-size:10px;}
