:root{
  --cream:#FBF6EC;
  --paper:#FFFDF7;
  --ink:#3A2E26;
  --brown:#6B4F3A;
  --persimmon:#E0662E;
  --persimmon-dark:#C4531F;
  --miso:#C99B4A;
  --leaf:#5E7C4A;
  --leaf-dark:#48613A;
  --azuki:#8E4A3D;
  --font-base:'Noto Sans JP',sans-serif;
  --font-head:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;
  --font-accent:'Zen Old Mincho',serif;
  --shadow:0 8px 24px rgba(58,46,38,.10);
  --radius:20px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:80px;}
body{
  font-family:var(--font-base);
  color:var(--ink);
  background:var(--cream);
  line-height:1.9;
  overflow-x:hidden;
}
h1,h2,h3{font-family:var(--font-head);letter-spacing:.02em;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}

/* ===== ヘッダー ===== */
header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(251,246,236,.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid rgba(107,79,58,.12);
}
.header-inner{
  max-width:1100px;margin:0 auto;padding:12px 20px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.logo{display:flex;align-items:center;font-family:var(--font-head);font-weight:700;font-size:1.05rem;letter-spacing:.04em;}
.logo small{display:block;font-size:.62rem;font-weight:500;color:var(--brown);letter-spacing:.12em;}
nav ul{display:flex;gap:2px;list-style:none;}
nav a{
  display:block;padding:8px 11px;border-radius:999px;
  font-size:.82rem;font-weight:700;transition:.25s;white-space:nowrap;
}
nav a:hover{background:var(--persimmon);color:#fff;}
nav a.current{background:var(--miso);color:#fff;}
.nav-toggle{display:none;background:none;border:none;font-size:1.6rem;color:var(--brown);cursor:pointer;}

/* ===== ヒーロー(トップ) ===== */
.hero{
  min-height:92vh;
  display:flex;align-items:center;
  padding:120px 20px 80px;
  position:relative;
}
.hero-inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center;}
.hero h1{
  font-family:var(--font-accent);
  font-size:clamp(2.1rem,5.2vw,3.6rem);
  font-weight:700;line-height:1.45;letter-spacing:.1em;
  margin-bottom:18px;
}
.hero h1 .accent{color:var(--persimmon);}
.hero-copy .hero-tagline{
  font-size:.92rem;color:var(--brown);letter-spacing:.06em;
  font-weight:500;margin-bottom:28px;
}
.hero p.lead{font-size:1.05rem;color:var(--brown);margin-bottom:32px;max-width:32em;}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;}
.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:14px 28px;border-radius:999px;font-weight:700;font-size:.95rem;
  transition:.25s;box-shadow:var(--shadow);
}
.btn-primary{background:var(--persimmon);color:#fff;}
.btn-primary:hover{background:var(--persimmon-dark);transform:translateY(-3px);}
.btn-ghost{background:#fff;color:var(--leaf-dark);border:2px solid var(--leaf);}
.btn-ghost:hover{background:var(--leaf);color:#fff;transform:translateY(-3px);}

/* ヒーローの写真スライドショー */
.hero-visual{position:relative;display:grid;place-items:center;}
.hero-slideshow{
  position:relative;width:100%;aspect-ratio:4/3;border-radius:var(--radius);
  overflow:hidden;box-shadow:var(--shadow);
}
.hero-slideshow .slide{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transition:opacity 1.2s ease;
}
.hero-slideshow .slide.is-active{opacity:1;}

/* ===== 下層ページのタイトル帯 ===== */
.page-hero{padding:150px 20px 40px;text-align:center;}
.page-hero .en{
  display:inline-block;font-size:.8rem;font-weight:700;letter-spacing:.3em;
  color:var(--persimmon);text-transform:uppercase;margin-bottom:8px;
}
.page-hero h1{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:700;letter-spacing:.08em;}
.page-hero h1 .deco{color:var(--miso);font-size:.8em;margin:0 .3em;}
.page-hero p.sub{color:var(--brown);margin-top:12px;font-size:.95rem;}
.breadcrumb{
  max-width:1100px;margin:0 auto 18px;font-size:.78rem;color:var(--brown);
  text-align:left;
}
.breadcrumb a{color:var(--persimmon);font-weight:700;}

/* ===== セクション共通 ===== */
section{padding:64px 20px 88px;}
.section-inner{max-width:1100px;margin:0 auto;}
.section-head{text-align:center;margin-bottom:52px;}
.section-head .en{
  display:inline-block;font-size:.8rem;font-weight:700;letter-spacing:.3em;
  color:var(--persimmon);text-transform:uppercase;margin-bottom:8px;
}
.section-head h2{font-size:clamp(1.6rem,3.5vw,2.3rem);font-weight:700;letter-spacing:.08em;}
.section-head h2 .deco{color:var(--miso);font-size:.8em;margin:0 .3em;}
.section-head p.sub{color:var(--brown);margin-top:12px;font-size:.95rem;}

/* スクロールで出現 */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease;}
.reveal.on{opacity:1;transform:none;}

/* ===== 台所のこよみ ===== */
.month-tabs{
  display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:40px;
}
.month-tabs button{
  font-family:var(--font-accent);font-size:.88rem;
  background:#fff;border:1px solid rgba(201,155,74,.5);color:var(--brown);
  border-radius:999px;padding:7px 16px;cursor:pointer;transition:.25s;
  letter-spacing:.04em;
}
.month-tabs button:hover{border-color:var(--persimmon);color:var(--persimmon);}
.month-tabs button.current{
  background:var(--persimmon);border-color:var(--persimmon);color:#fff;
}
.koyomi-card{
  max-width:820px;margin:0 auto;background:#fff;
  border-radius:var(--radius);padding:44px 40px;box-shadow:var(--shadow);
  border-top:2px solid var(--miso);
}
.k-head{display:flex;align-items:baseline;gap:16px;margin-bottom:20px;}
.k-month{font-family:var(--font-accent);color:var(--persimmon);line-height:1;}
.k-month .k-num{font-size:3rem;font-weight:700;}
.k-month .k-unit{font-size:1.1rem;margin-left:4px;}
.k-yobina{
  font-family:var(--font-accent);font-size:1.15rem;color:var(--brown);
  letter-spacing:.2em;
}
.k-note{
  font-size:.95rem;line-height:2.1;color:var(--ink);
  padding:20px 24px;background:var(--cream);border-radius:14px;
  border:1.5px dashed var(--miso);margin-bottom:32px;
}
.k-rows{display:flex;flex-direction:column;gap:24px;}
.k-row{display:grid;grid-template-columns:190px 1fr;gap:18px;align-items:start;}
.k-label{
  font-size:.88rem;font-weight:700;color:var(--brown);
  display:flex;align-items:center;gap:8px;padding-top:5px;
}
.k-chips{display:flex;flex-wrap:wrap;gap:8px;}
.k-chip{
  font-size:.86rem;border-radius:999px;padding:5px 15px;
  background:var(--cream);color:var(--ink);border:1px solid transparent;
}
.k-chip.k-work{background:#F6EAD6;border-color:rgba(201,155,74,.5);}
.k-chip.k-veg{background:#EBF1E4;border-color:rgba(94,124,74,.35);}
.k-chip.k-fish{background:#E4EDF1;border-color:rgba(74,110,124,.3);}
.k-chip.k-event{background:#F7E7E1;border-color:rgba(142,74,61,.3);}
@media(max-width:700px){
  .koyomi-card{padding:32px 24px;}
  .k-row{grid-template-columns:1fr;gap:10px;}
  .k-label{padding-top:0;}
}

/* トップページの「今月のこよみ」 */
.koyomi-teaser .koyomi-card{border-top-color:var(--persimmon);}
.koyomi-more{text-align:center;margin-top:36px;}
.koyomi-more a{
  font-size:.88rem;font-weight:700;color:var(--brown);
  border-bottom:1px solid rgba(107,79,58,.35);padding-bottom:3px;transition:.25s;
}
.koyomi-more a:hover{color:var(--persimmon);border-bottom-color:var(--persimmon);}

/* ===== NEWS(お知らせ) ===== */
.news-list{
  list-style:none;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:32px;
}
.news-card{
  display:flex;flex-direction:column;height:100%;
  transition:transform .3s;
}
a.news-card:hover{transform:translateY(-6px);}
.news-thumb{
  aspect-ratio:16/9;border-radius:var(--radius);overflow:hidden;
  background:linear-gradient(145deg,#F6E7CE,#EAD3A8);
  box-shadow:var(--shadow);margin-bottom:18px;
}
.news-thumb img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .5s ease;
}
a.news-card:hover .news-thumb img{transform:scale(1.05);}
.news-body{display:flex;flex-direction:column;gap:8px;flex-grow:1;}
.news-meta{display:flex;align-items:center;gap:12px;}
.news-date{
  font-family:var(--font-accent);font-size:.82rem;color:var(--miso);
  letter-spacing:.08em;white-space:nowrap;
}
.news-cat{
  font-size:.68rem;font-weight:700;color:var(--brown);
  border:1px solid rgba(201,155,74,.55);border-radius:999px;
  padding:2px 12px;white-space:nowrap;
}
.news-title{
  font-family:var(--font-head);font-size:1.02rem;font-weight:700;
  line-height:1.65;transition:.25s;
}
a.news-card:hover .news-title{color:var(--persimmon);}
.news-text{font-size:.86rem;color:var(--brown);line-height:1.85;}
.news-empty{padding:24px 4px;color:var(--brown);font-size:.92rem;text-align:center;}
.news-more{text-align:center;margin-top:48px;}
.news-more a{
  font-size:.88rem;font-weight:700;color:var(--brown);
  border-bottom:1px solid rgba(107,79,58,.35);padding-bottom:3px;transition:.25s;
}
.news-more a:hover{color:var(--persimmon);border-bottom-color:var(--persimmon);}

/* ===== トップ:お品書きメニュー ===== */
.menu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;}
.menu-card{
  background:#fff;border-radius:var(--radius);padding:34px 28px;
  box-shadow:var(--shadow);display:flex;flex-direction:column;gap:10px;
  border-top:2px solid var(--miso);
  transition:transform .3s,box-shadow .3s;position:relative;
}
.menu-card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(58,46,38,.14);}
.menu-card .num{
  font-family:var(--font-accent);font-size:.85rem;color:var(--miso);
  letter-spacing:.1em;
}
.menu-card h3{font-size:1.2rem;font-weight:800;}
.menu-card p{font-size:.88rem;color:var(--brown);flex-grow:1;}
.menu-card .go{
  font-size:.85rem;font-weight:700;color:var(--persimmon);
  display:inline-flex;align-items:center;gap:6px;
}
.menu-card .go::after{content:"→";transition:transform .25s;}
.menu-card:hover .go::after{transform:translateX(5px);}

/* ===== PROFILE ===== */
.bg-paper{background:var(--paper);border-radius:48px;}
.profile-grid{display:grid;grid-template-columns:340px 1fr;gap:48px;align-items:start;}
.profile-photo{
  position:relative;border-radius:var(--radius);overflow:hidden;
  background:linear-gradient(145deg,#F6E7CE,#EAD3A8);
  aspect-ratio:3/3.6;display:grid;place-items:center;
  box-shadow:var(--shadow);
}
.profile-photo .placeholder{text-align:center;color:var(--brown);font-size:.85rem;padding:16px;}
.profile-photo .placeholder span{font-size:4rem;display:block;margin-bottom:8px;}
.profile-photo .tape{
  position:absolute;top:-10px;left:50%;transform:translateX(-50%) rotate(-3deg);
  width:120px;height:32px;background:rgba(224,102,46,.75);border-radius:4px;
}
.profile-name{margin-bottom:18px;}
.profile-name h3{font-size:1.7rem;font-weight:800;}
.profile-name .yomi{font-size:.8rem;color:var(--brown);letter-spacing:.2em;}
.profile-text{margin-bottom:24px;color:var(--ink);}
.badge-list{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:28px;}
.badge{
  background:#fff;border:1.5px solid var(--miso);color:var(--brown);
  padding:6px 16px;border-radius:999px;font-size:.82rem;font-weight:700;
}
.badge::before{content:"❋ ";color:var(--persimmon);}
.hobby-box{
  background:var(--cream);border-radius:var(--radius);padding:22px 26px;
  border:1.5px dashed var(--miso);
}
.hobby-box h4{font-size:.95rem;color:var(--persimmon);margin-bottom:8px;font-weight:700;}
.hobby-box p{font-size:.9rem;color:var(--brown);}

/* ===== 仕事・教室カード ===== */
.work-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:24px;}
.work-card{
  background:#fff;border-radius:var(--radius);padding:32px 26px;
  box-shadow:var(--shadow);position:relative;overflow:hidden;
  transition:transform .3s,box-shadow .3s;
  border-top:6px solid var(--persimmon);
}
.work-card:nth-child(2){border-top-color:var(--leaf);}
.work-card:nth-child(3){border-top-color:var(--miso);}
.work-card:nth-child(4){border-top-color:var(--azuki);}
.work-card:hover{transform:translateY(-8px) rotate(-.5deg);box-shadow:0 18px 40px rgba(58,46,38,.16);}
.work-card h3{font-size:1.15rem;font-weight:800;margin-bottom:6px;}
.work-card .when{font-size:.78rem;font-weight:700;color:var(--persimmon);margin-bottom:10px;}
.work-card p{font-size:.9rem;color:var(--brown);}
.work-card .m-link{
  display:inline-flex;align-items:center;gap:6px;margin-top:12px;
  font-size:.85rem;font-weight:700;color:var(--persimmon);
}
.work-card .m-link::after{content:"→";}

/* ===== タイムライン ===== */
.timeline{position:relative;max-width:760px;margin:0 auto;padding-left:36px;}
.timeline::before{
  content:"";position:absolute;left:10px;top:8px;bottom:8px;width:3px;
  background:repeating-linear-gradient(180deg,var(--miso) 0 10px,transparent 10px 20px);
  border-radius:3px;
}
.tl-item{position:relative;margin-bottom:32px;}
.tl-item::before{
  content:"";position:absolute;left:-33.5px;top:10px;width:18px;height:18px;border-radius:50%;
  background:var(--persimmon);border:4px solid var(--cream);box-shadow:0 0 0 2px var(--persimmon);
  box-sizing:border-box;
}
.tl-card{
  background:#fff;border-radius:var(--radius);padding:24px 28px;box-shadow:var(--shadow);
  display:flex;gap:20px;align-items:center;transition:transform .3s;
}
.tl-card:hover{transform:translateX(8px);}
.tl-date{
  min-width:86px;text-align:center;background:var(--cream);border-radius:14px;padding:10px 8px;
  font-family:var(--font-accent);
}
.tl-date .month{font-size:.72rem;color:var(--persimmon);font-weight:700;letter-spacing:.1em;}
.tl-date .day{font-size:1.5rem;font-weight:800;line-height:1.2;}
.tl-body h3{font-size:1.05rem;font-weight:800;margin-bottom:4px;}
.tl-body p{font-size:.86rem;color:var(--brown);}
.tl-tag{
  display:inline-block;font-size:.7rem;font-weight:700;color:#fff;
  background:var(--leaf);border-radius:999px;padding:2px 12px;margin-bottom:6px;
}
.tl-item.coming .tl-tag{background:var(--miso);}

/* ===== グッズ ===== */
.goods-dark{background:var(--azuki);color:#FBF3EA;border-radius:48px;margin:0 12px;}
.goods-dark .section-head .en{color:#F0B98A;}
.goods-dark .section-head h2{color:#fff;}
.goods-dark .section-head p.sub{color:#E8CDBB;}
.goods-feature{
  display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:center;
  max-width:960px;margin:0 auto;
}
.cola-visual{
  background:linear-gradient(160deg,#A05948,#7A3D31);
  border-radius:var(--radius);aspect-ratio:1;display:grid;place-items:center;
  box-shadow:0 20px 50px rgba(0,0,0,.3);position:relative;overflow:hidden;
}
.cola-visual::before{
  content:"";position:absolute;width:180%;height:180%;
  background:radial-gradient(circle,rgba(255,255,255,.12) 2px,transparent 2.5px);
  background-size:26px 26px;transform:rotate(15deg);
}
.cola-visual .bottle{
  position:relative;text-align:center;color:#F6E3D6;padding:0 24px;
}
.cola-visual .bottle .b-name{
  font-family:var(--font-accent);font-size:1.9rem;font-weight:700;
  letter-spacing:.16em;display:block;margin-bottom:12px;
}
.cola-visual .bottle .b-rule{
  display:block;width:40px;height:1px;background:rgba(246,227,214,.5);margin:0 auto 12px;
}
.cola-visual .bottle .b-en{
  font-size:.7rem;letter-spacing:.3em;color:#F0B98A;display:block;
}
.goods-body h3{font-size:1.9rem;font-weight:800;margin-bottom:6px;color:#fff;}
.goods-body .sub-name{font-size:.85rem;color:#F0B98A;letter-spacing:.25em;margin-bottom:18px;}
.goods-body p{font-size:.95rem;color:#EFD9C8;margin-bottom:20px;}
.goods-points{list-style:none;margin-bottom:28px;}
.goods-points li{
  padding:8px 0 8px 34px;position:relative;font-size:.92rem;color:#FBEDDD;
  border-bottom:1px dashed rgba(255,255,255,.2);
}
.goods-points li::before{content:"◉";position:absolute;left:2px;color:#F0B98A;}
.btn-goods{background:#F0B98A;color:#5C2E22;}
.btn-goods:hover{background:#fff;transform:translateY(-3px);}

/* ===== メディアカード ===== */
.media-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;}
.media-card{
  background:#fff;border-radius:var(--radius);padding:30px 26px;box-shadow:var(--shadow);
  display:flex;flex-direction:column;gap:12px;transition:transform .3s,box-shadow .3s;
  position:relative;
}
.media-card:hover{transform:translateY(-8px);box-shadow:0 18px 40px rgba(58,46,38,.16);}
.media-card::before{
  content:"";position:absolute;top:0;left:26px;right:26px;height:2px;
  border-radius:0 0 2px 2px;background:var(--miso);
}
.m-note::before{background:#2CB696;}
.m-nadia::before{background:var(--persimmon);}
.m-insta::before{background:linear-gradient(90deg,#F58529,#DD2A7B,#8134AF);}
.m-yt::before{background:#E53935;}
.m-note .m-label{color:#2CB696;}
.m-nadia .m-label{color:var(--persimmon);}
.m-insta .m-label{color:#DD2A7B;}
.m-yt .m-label{color:#E53935;}
.media-card h3{font-size:1.1rem;font-weight:800;}
.media-card .m-label{font-size:.72rem;font-weight:700;letter-spacing:.15em;color:var(--miso);text-transform:uppercase;}
.media-card p{font-size:.86rem;color:var(--brown);flex-grow:1;}
.media-card .m-link{
  font-size:.85rem;font-weight:700;color:var(--persimmon);
  display:inline-flex;align-items:center;gap:6px;
}
.media-card .m-link::after{content:"→";transition:transform .25s;}
.media-card:hover .m-link::after{transform:translateX(5px);}

/* ===== リード文(出張料理 冒頭) ===== */
.lead-copy{
  max-width:760px;margin:0 auto;
  font-size:1.02rem;line-height:2.1;
}
.lead-copy p{margin-bottom:22px;}
.lead-copy .theme-line{
  font-family:var(--font-accent);font-weight:700;
  font-size:1.35rem;color:var(--persimmon);letter-spacing:.14em;
  text-align:center;margin:34px 0 18px;
}

/* ===== こんな方に(チェックリスト) ===== */
.check-list{
  max-width:680px;margin:0 auto;list-style:none;
  background:#fff;border-radius:var(--radius);padding:30px 34px;box-shadow:var(--shadow);
}
.check-list li{
  padding:13px 0 13px 38px;position:relative;font-size:.95rem;
  border-bottom:1px dashed rgba(201,155,74,.4);
}
.check-list li:last-child{border-bottom:none;}
.check-list li::before{
  content:"✓";position:absolute;left:4px;top:13px;
  color:#fff;background:var(--leaf);width:22px;height:22px;border-radius:50%;
  display:grid;place-items:center;font-size:.75rem;font-weight:700;
}

/* ===== プラン ===== */
.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;margin-bottom:40px;}
.plan-card{
  background:#fff;border-radius:var(--radius);padding:30px 26px;
  box-shadow:var(--shadow);border-top:6px solid var(--miso);
  display:flex;flex-direction:column;gap:8px;
  transition:transform .3s,box-shadow .3s;
}
.plan-card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(58,46,38,.16);}
.plan-card.recommend{border-top-color:var(--persimmon);}
.plan-card .plan-tag{
  align-self:flex-start;font-size:.68rem;font-weight:700;color:#fff;
  background:var(--persimmon);border-radius:999px;padding:3px 14px;
}
.plan-card h3{font-size:1.2rem;font-weight:800;}
.plan-card .price{
  font-family:var(--font-accent);font-size:1.15rem;font-weight:600;
  color:var(--ink);line-height:1.5;opacity:.85;
}
.plan-card .price .unit{font-size:.75rem;color:var(--brown);margin-right:7px;font-family:var(--font-base);font-weight:400;}
.plan-card p{font-size:.9rem;color:var(--brown);}

/* ===== オプション ===== */
.opt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px;margin-bottom:28px;}
.opt-card{
  background:#fff;border-radius:var(--radius);padding:26px 24px;
  box-shadow:var(--shadow);display:flex;flex-direction:column;gap:7px;
  border:1.5px solid rgba(201,155,74,.35);
}

.opt-card h3{font-size:1.02rem;font-weight:700;}
.opt-card .opt-price{
  font-family:var(--font-accent);font-size:.98rem;font-weight:600;
  color:var(--brown);opacity:.85;
}
.opt-card p{font-size:.86rem;color:var(--brown);}

/* 料金テーブル */
.price-table{
  width:100%;border-collapse:collapse;background:#fff;
  border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);
  margin-bottom:28px;
}
.price-table th,.price-table td{
  padding:16px 22px;text-align:left;font-size:.92rem;
  border-bottom:1px dashed rgba(201,155,74,.4);
}
.price-table tr:last-child th,.price-table tr:last-child td{border-bottom:none;}
.price-table th{font-weight:700;color:var(--ink);width:45%;}
.price-table td{color:var(--brown);font-weight:600;text-align:right;}
.table-wrap{overflow-x:auto;}

/* 注記リスト */
.note-list{
  max-width:760px;margin:0 auto;list-style:none;
  background:var(--cream);border-radius:var(--radius);
  padding:26px 30px;border:1.5px dashed var(--miso);
}
.note-list li{
  padding:7px 0 7px 22px;position:relative;font-size:.88rem;color:var(--brown);
}
.note-list li::before{content:"・";position:absolute;left:2px;color:var(--miso);font-weight:700;}

/* ===== FAQ ===== */
.faq-list{max-width:800px;margin:0 auto;}
.faq-item{
  background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);
  margin-bottom:16px;overflow:hidden;
}
.faq-item summary{
  padding:22px 56px 22px 26px;cursor:pointer;position:relative;
  font-weight:700;font-size:.98rem;list-style:none;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::before{content:"Q. ";color:var(--persimmon);font-family:var(--font-accent);font-weight:700;}
.faq-item summary::after{
  content:"＋";position:absolute;right:24px;top:50%;transform:translateY(-50%);
  color:var(--persimmon);font-weight:700;transition:transform .25s;
}
.faq-item[open] summary::after{content:"−";}
.faq-item summary:hover{background:var(--cream);}
.faq-item .faq-body{padding:0 26px 24px;font-size:.92rem;color:var(--brown);}
.faq-item .faq-body p{margin-bottom:12px;}
.faq-item .faq-body p:last-child{margin-bottom:0;}

/* ===== 対応エリア ===== */
.area-box{
  max-width:760px;margin:0 auto;background:#fff;border-radius:var(--radius);
  padding:34px 32px;box-shadow:var(--shadow);text-align:center;
}

.area-box h3{font-size:1.2rem;font-weight:800;margin-bottom:10px;}
.area-box p{font-size:.94rem;color:var(--brown);margin-bottom:8px;}
.area-box .area-sub{
  display:inline-block;margin-top:14px;background:var(--cream);
  border-radius:14px;padding:12px 22px;font-size:.88rem;color:var(--brown);
  border:1.5px dashed var(--miso);
}

/* ===== CONTACT / CTA ===== */
.contact-box{
  max-width:640px;margin:0 auto;text-align:center;
  background:var(--cream);border-radius:var(--radius);padding:48px 32px;
  border:2px solid var(--miso);
}

.contact-box h3{font-size:1.3rem;font-weight:800;margin-bottom:10px;}
.contact-box p{font-size:.92rem;color:var(--brown);margin-bottom:24px;}

/* ===== フッター ===== */
footer{padding:48px 20px 32px;text-align:center;color:var(--brown);}
.footer-theme{
  font-family:var(--font-accent);font-weight:700;font-size:1.5rem;
  color:var(--persimmon);letter-spacing:.18em;margin-bottom:10px;
}
.footer-logo{font-family:var(--font-head);font-weight:700;font-size:1.05rem;margin-bottom:8px;letter-spacing:.04em;}
footer .sns{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 20px;margin:20px 0 14px;}
footer .sns a{
  font-size:.8rem;font-weight:700;letter-spacing:.06em;
  padding-bottom:2px;border-bottom:1px solid rgba(107,79,58,.3);transition:.25s;
}
footer .sns a:hover{color:var(--persimmon);border-bottom-color:var(--persimmon);}
footer small{font-size:.75rem;opacity:.7;}
.footer-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 18px;margin:8px 0 4px;font-size:.82rem;}
.footer-nav a{font-weight:700;}
.footer-nav a:hover{color:var(--persimmon);}

/* ===== レスポンシブ ===== */
@media(max-width:920px){
  .hero-inner{grid-template-columns:1fr;text-align:center;}
  .hero-cta{justify-content:center;}
  .hero-visual{order:-1;}
  .profile-grid{grid-template-columns:1fr;}
  .profile-photo{max-width:320px;margin:0 auto;}
  .goods-feature{grid-template-columns:1fr;}
  .cola-visual{max-width:300px;margin:0 auto;}
  nav{position:fixed;top:62px;right:0;left:0;background:rgba(251,246,236,.98);
      transform:translateY(-140%);transition:.35s;box-shadow:0 12px 24px rgba(58,46,38,.12);}
  nav.open{transform:none;}
  nav ul{flex-direction:column;padding:16px;}
  nav a{text-align:center;}
  .nav-toggle{display:block;}
}
