:root{
  --ink:#4a3f30;
  --coral:#e5899b;       /* 線・飾り(ローズ。旧 #ef8c78) */
  --coral-deep:#ad3f5a;  /* 小さな文字(ローズ。白 5.78 / 背景 5.51 / 淡いピンク 4.74:1。旧 #e06b56) */
  --sage:#8fae7c;
  --sage-deep:#6f9459;
  --butter:#f6c85f;
  --pink-pale:#fbe4dd;
  --cream:#fff8f8;       /* 本文の背景(ピンクがかった白。旧 #fffaf2) */
  --cream-2:#fdebef;     /* カードの枠・区切り線(ピンク寄りの淡い色。旧 #fff1e0) */
  --white:#ffffff;
  --max:1120px;
  /* ロゴの色(ヘッダー・フッターで使う) */
  --logo-plum:#98657f;
  --logo-plum-deep:#7e4f69;
  --logo-plum-ink:#6e4a5f;
  --logo-pink:#f2c5d9;
  --logo-pink-pale:#fbdee4;
  --logo-lilac:#e5aace;
  --logo-leaf:#939873;
  --logo-gold:#ebbd82;
  --logo-bg-pale:#fcf1f5;
  /* ボタンの色(ローズコーラル。白文字 4.63:1 / ホバー 6.01:1) */
  --btn:#c34b69;
  --btn-hover:#a83e58;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:'Zen Maru Gothic', sans-serif;
  line-height:1.9;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:'Zen Maru Gothic',sans-serif;font-weight:900;letter-spacing:.02em;}
.brand-font{font-family:'Shippori Mincho',serif;}
a{color:inherit;}
img{max-width:100%;display:block;}
.wrap{max-width:var(--max);margin:0 auto;padding:0 28px;}

/* ---- header(全ページ共通。開閉は js/menu.js)。色はロゴに合わせる ---- */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,253,252,.93);
  backdrop-filter:blur(8px);
}
/* 下の線: ロゴのピンクのやわらかいグラデーション */
.site-header::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--logo-pink),var(--logo-lilac) 50%,var(--logo-pink));pointer-events:none;}
.nav{max-width:var(--max);margin:0 auto;padding:12px 28px 14px;display:flex;align-items:center;justify-content:space-between;gap:20px;}
.brand{display:flex;align-items:center;gap:14px;min-width:0;}
.brand-logo{display:block;flex:0 0 auto;border-radius:8px;}
.brand-logo img{height:52px;width:auto;}
.brand-tagline{font-size:.7rem;letter-spacing:.12em;color:var(--logo-plum-deep);font-weight:500;white-space:nowrap;padding-left:14px;border-left:2px solid var(--logo-pink-pale);line-height:1.6;}
.site-nav .menu{display:flex;align-items:center;gap:22px;list-style:none;margin:0;padding:0;font-size:.85rem;font-weight:500;color:var(--logo-plum-ink);}
.site-nav a{text-decoration:none;white-space:nowrap;border-bottom:2px solid transparent;padding-bottom:2px;transition:border-color .2s,color .2s,background .2s;}
.site-nav a:hover{border-color:var(--logo-lilac);}
.site-nav a:focus-visible,.menu-toggle:focus-visible,.brand-logo:focus-visible{outline:3px solid var(--logo-plum);outline-offset:3px;border-radius:6px;}
/* 今いるページ */
.site-nav a[aria-current="page"],.site-nav .is-current > a{border-color:var(--logo-lilac);font-weight:700;}
/* 供花のご注文(ローズコーラルのボタン。本文のボタンと同じ色) */
.site-nav a.menu-cta{display:inline-block;background:var(--btn);color:var(--white);border:0;padding:8px 18px;border-radius:99px;font-weight:700;box-shadow:0 6px 14px rgba(195,75,105,.26);}
.site-nav a.menu-cta:hover{background:var(--btn-hover);color:var(--white);}
/* 今いるページが供花のご注文のとき: 少し濃い色 + 白いすき間 + ローズの輪(ホバーと区別でき、ボタンの形は崩さない) */
.site-nav a.menu-cta[aria-current="page"]{background:var(--btn-hover);color:var(--white);box-shadow:0 0 0 2px var(--white),0 0 0 4px var(--btn);}
/* プランのサブメニュー(PC: マウスを載せる・キーボードで移動すると開く) */
.has-sub{position:relative;}
.has-sub > a::after{content:"";display:inline-block;width:6px;height:6px;margin-left:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-3px) rotate(45deg);opacity:.7;}
.sub-menu{list-style:none;margin:0;padding:0;}
.menu-toggle{display:none;}
/* PC(1025px以上)。「1024px以下でない」と書いて、拡大表示などで幅が 1024.5px のような端数になっても隙間ができないようにする */
@media not all and (max-width:1024px){
  .sub-menu{
    position:absolute;top:100%;left:50%;transform:translateX(-50%);min-width:220px;padding-top:12px;
    visibility:hidden;opacity:0;transition:opacity .15s,visibility 0s linear .15s;
  }
  .sub-menu::before{content:"";position:absolute;inset:12px 0 0;background:var(--white);border:2px solid var(--logo-pink-pale);border-radius:16px;box-shadow:0 16px 32px rgba(110,74,95,.14);z-index:-1;}
  .sub-menu li:first-child{padding-top:8px;}
  .sub-menu li:last-child{padding-bottom:8px;}
  /* 開くときは visibility をすぐ切り替える(Tabキーで子のリンクにすぐ移れるように) */
  .has-sub:hover > .sub-menu,.has-sub:focus-within > .sub-menu{visibility:visible;opacity:1;transition:opacity .15s,visibility 0s;}
  .has-sub.is-dismissed > .sub-menu{visibility:hidden;opacity:0;}
  .sub-menu a{display:block;padding:9px 20px;border:0;font-size:.84rem;}
  .sub-menu a:hover{background:var(--logo-bg-pale);}
  .sub-menu a[aria-current="page"]{background:var(--logo-pink-pale);}
}
/* スマホ・タブレット(1024px以下。横向きタブレットも含む): ハンバーガーメニュー */
@media(max-width:1024px){
  .nav{padding:10px 18px 12px;}
  .brand-logo img{height:40px;}
  /* ロゴ横の一言(スマホでも小さく1行で出す) */
  .brand{gap:10px;}
  .brand-tagline{font-size:.66rem;letter-spacing:.04em;padding-left:10px;}
  .menu-toggle{
    display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;flex:0 0 auto;
    width:48px;height:48px;padding:0;border:2px solid var(--logo-pink);border-radius:14px;background:var(--white);color:var(--logo-plum-ink);cursor:pointer;
  }
  .menu-toggle-bar{display:block;width:22px;height:2px;border-radius:2px;background:currentColor;transition:transform .2s,opacity .2s;}
  .site-header.is-open .menu-toggle-bar:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .site-header.is-open .menu-toggle-bar:nth-child(2){opacity:0;}
  .site-header.is-open .menu-toggle-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  .site-nav{
    display:none;position:absolute;top:100%;left:0;right:0;
    background:#fffdfc;border-bottom:3px solid var(--logo-pink);box-shadow:0 18px 30px rgba(110,74,95,.16);
    max-height:calc(100vh - 70px);max-height:calc(100dvh - 70px);overflow-y:auto;overscroll-behavior:contain;
  }
  .site-header.is-open .site-nav{display:block;}
  .site-nav .menu{flex-direction:column;align-items:stretch;gap:0;padding:8px 22px 22px;font-size:.98rem;}
  .site-nav .menu > li{border-bottom:1px dashed var(--logo-pink-pale);}
  .site-nav .menu > li.menu-item-cta{border-bottom:0;padding:16px 0 4px;}
  .site-nav a{display:block;padding:13px 4px;border-bottom:0;}
  .site-nav a:hover{background:var(--logo-bg-pale);}
  .site-nav a[aria-current="page"],.site-nav .is-current > a{border-bottom:0;color:var(--logo-plum);}
  .site-nav a[aria-current="page"]:not(.menu-cta)::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--logo-lilac);margin-right:8px;transform:translateY(-2px);}
  .has-sub > a::after{display:none;}
  .sub-menu{padding:0 0 10px 1.4em;}
  .sub-menu a{padding:8px 4px;font-size:.9rem;}
  .sub-menu a::before{content:"– ";color:var(--logo-lilac);}
  .sub-menu a[aria-current="page"]::before{content:"";}
  .site-nav a.menu-cta{display:block;text-align:center;padding:14px 18px;}
  .site-nav a.menu-cta:hover{background:var(--btn-hover);}
  /* メニューを開いている間は背景をスクロールさせない・うすく暗くする */
  html.menu-open,html.menu-open body{overflow:hidden;}
  html.menu-open body::after{content:"";position:fixed;inset:0;background:rgba(110,74,95,.26);z-index:40;}
}
@media(max-width:520px){ .nav{padding:10px 14px 12px;gap:8px;} }
/* とても狭い画面(359px以下)では、ロゴ横に入らないのでロゴの下に置く */
@media(max-width:359px){ .brand{flex-direction:column;align-items:flex-start;gap:0;} .brand-tagline{padding-left:2px;border-left:0;line-height:1.4;} }

/* ---- flower divider ---- */
.stem-divider{display:flex;align-items:center;justify-content:center;gap:14px;margin:0 auto;padding:50px 0 36px;}
.stem-divider .line{flex:0 0 auto;width:56px;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--butter));}
.stem-divider .line.r{background:linear-gradient(270deg,transparent,var(--butter));}
.stem-divider svg{width:22px;height:22px;color:var(--coral);}

/* ---- hero ---- */
.hero{position:relative;padding-top:56px;}
.hero-photo{position:relative;border-radius:0 0 32px 32px;overflow:hidden;}
.hero-photo .img-slot{min-height:64vh;border-radius:0 0 32px 32px;}
.hero-card{
  position:relative;z-index:3;max-width:720px;margin:-64px auto 0;
  background:var(--white);border-radius:24px;padding:40px 44px;
  box-shadow:0 20px 46px rgba(74,63,48,.14);text-align:center;
}
.eyebrow{
  display:inline-block;font-size:.76rem;letter-spacing:.18em;color:var(--coral-deep);
  background:var(--pink-pale);padding:6px 16px;border-radius:99px;margin-bottom:20px;font-weight:700;
}
.hero-card h1{font-size:clamp(1.8rem,4.4vw,2.9rem);line-height:1.45;margin:0 0 18px;color:var(--ink);}
.hero-card h1 span{color:var(--coral-deep);}
.hero-card p.lead{font-size:.96rem;color:#6b5f4e;margin:0 0 30px;}
.cta-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}
.cta{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--btn);color:var(--white);text-decoration:none;font-weight:700;
  padding:14px 28px;border-radius:99px;font-size:.9rem;letter-spacing:.03em;
  box-shadow:0 10px 22px rgba(195,75,105,.28);transition:transform .2s,box-shadow .2s,background .2s;
}
.cta:hover{background:var(--btn-hover);transform:translateY(-2px);box-shadow:0 14px 26px rgba(195,75,105,.36);}
.cta.ghost{background:var(--white);color:var(--ink);border:2px solid var(--pink-pale);box-shadow:none;}
.cta.ghost:hover{background:var(--white);}
@media(max-width:640px){ .hero-card{margin-top:-40px;padding:30px 24px;border-radius:20px;} }

/* ---- image slot placeholder ---- */
.img-slot{
  background:linear-gradient(135deg, var(--pink-pale), var(--cream-2) 50%, #fdeec0);
  border:2px dashed var(--coral);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  color:var(--coral-deep);text-align:center;gap:8px;min-height:220px;border-radius:18px;
}
.img-slot svg{width:32px;height:32px;opacity:.7;}
.img-slot .slot-label{font-size:.78rem;font-weight:500;color:var(--ink);opacity:.75;}
.img-slot .slot-tag{font-size:.68rem;letter-spacing:.1em;color:var(--coral-deep);text-transform:uppercase;font-weight:700;}

/* ---- real photos ---- */
.hero-photo img{width:100%;height:64vh;object-fit:cover;display:block;}
.photo-frame{border-radius:18px;overflow:hidden;}
.photo-frame img{width:100%;height:100%;object-fit:cover;display:block;}
.concept .photo-frame{min-height:400px;}
.gallery-grid .photo-frame{aspect-ratio:4/3;}

/* ---- section base ---- */
section{padding:20px 0 10px;}
.section-head{max-width:640px;margin:0 auto 44px;text-align:center;}
.section-head .kicker{display:block;font-size:.78rem;letter-spacing:.24em;color:var(--coral-deep);margin-bottom:12px;font-weight:700;}
.section-head h2{font-size:clamp(1.5rem,3.2vw,2.05rem);margin:0 0 16px;color:var(--ink);}
.section-head p{color:#6b5f4e;font-size:.95rem;}

/* ---- concept ---- */
.concept{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center;padding-bottom:60px;}
.concept .img-slot{min-height:400px;}
.concept .text h2{font-size:clamp(1.5rem,3vw,1.95rem);color:var(--ink);margin:0 0 20px;}
.concept .text p{color:#5c5040;font-size:.96rem;margin:0 0 16px;}
.concept .signature-line{
  font-family:'Shippori Mincho',serif;font-size:1.12rem;color:var(--coral-deep);
  background:var(--pink-pale);border-radius:14px;padding:18px 22px;margin:24px 0;font-weight:600;
}
@media(max-width:860px){ .concept{grid-template-columns:1fr;gap:30px;} }

/* ---- strengths ---- */
.strengths{background:var(--white);padding:64px 0;}
.str-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;}
.str-card{padding:26px;background:var(--cream);border-radius:20px;}
.str-icon-wrap{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:18px;}
.str-card:nth-child(1) .str-icon-wrap{background:var(--pink-pale);}
.str-card:nth-child(2) .str-icon-wrap{background:#eaf1e3;}
.str-card:nth-child(3) .str-icon-wrap{background:#fef1cf;}
.str-icon{width:26px;height:26px;}
.str-card:nth-child(1) .str-icon{color:var(--coral-deep);}
.str-card:nth-child(2) .str-icon{color:var(--sage-deep);}
.str-card:nth-child(3) .str-icon{color:#c78f1e;}
.str-card h3{font-size:1.05rem;color:var(--ink);margin:0 0 12px;}
.str-card p{font-size:.9rem;color:#6b5f4e;margin:0;}
@media(max-width:860px){ .str-grid{grid-template-columns:1fr;gap:22px;} }

/* ---- plans ---- */
.plans-note{
  text-align:center;font-size:.8rem;color:var(--sage-deep);font-weight:700;
  background:#eaf1e3;display:inline-block;padding:8px 18px;border-radius:99px;
  margin:0 auto 40px;position:relative;left:50%;transform:translateX(-50%);
}
.plan-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.plan-card{background:var(--white);border:2px solid var(--cream-2);border-radius:22px;padding:28px 20px;display:flex;flex-direction:column;gap:14px;position:relative;}
.plan-card.feature{border-color:var(--coral);box-shadow:0 16px 32px rgba(229,137,155,.18);}
.plan-tag{font-size:.72rem;letter-spacing:.1em;color:var(--coral-deep);font-weight:700;}
.plan-card h3{margin:0;font-size:1.12rem;color:var(--ink);}
.plan-price{font-size:1.6rem;font-weight:900;color:var(--ink);line-height:1.4;}
.plan-price small{font-size:.78rem;font-weight:500;color:var(--logo-plum-deep);margin-left:6px;}
.plan-card ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;}
.plan-card li{font-size:.86rem;color:#5c5040;padding-left:22px;position:relative;}
.plan-card li::before{content:"🌼";position:absolute;left:0;top:-1px;font-size:.8rem;}
  .plan-photo{border-radius:14px;overflow:hidden;aspect-ratio:4/3;margin:-6px -4px 4px;}
.plan-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.plan-photo.empty{background:linear-gradient(135deg,var(--pink-pale),var(--cream-2) 50%,#fdeec0);border:2px dashed var(--coral);display:flex;align-items:center;justify-content:center;color:var(--coral-deep);font-size:.74rem;font-weight:700;}
.plan-photo.empty img{display:none;}
.plan-photo.empty::after{content:"写真 準備中";}
.plan-tax{font-size:.74rem;color:var(--logo-plum-deep);margin-top:-10px;line-height:1.6;}
.plan-extra{font-size:.72rem;color:var(--coral-deep);font-weight:700;margin-top:-6px;}
.plan-card li{font-size:.84rem;}
.plan-notes{margin:34px auto 0;max-width:820px;background:var(--white);border:2px solid var(--cream-2);border-radius:18px;padding:22px 28px;}
.plan-notes h3{margin:0 0 10px;font-size:.95rem;color:var(--ink);}
.plan-notes ul{margin:0;padding-left:1.2em;font-size:.82rem;color:#5c5040;line-height:1.9;}
.options{margin:30px auto 0;max-width:560px;}
.opt-card{background:var(--white);border:2px solid var(--cream-2);border-radius:18px;padding:22px 24px;}
.opt-card h3{margin:0 0 12px;font-size:1rem;color:var(--ink);}
/* 供花(トップ): 価格入りの写真1枚 + 注記 + ご注文ボタン。写真が読み込めなくても注記とボタンは残る */
.kyoka-list{display:block;width:100%;height:auto;aspect-ratio:1054/1492;object-fit:contain;border-radius:12px;background:var(--cream);}
.kyoka-card-note{font-size:.82rem;color:var(--ink);margin:12px 0 0;text-align:center;}
.kyoka-card-cta{display:flex;justify-content:center;margin-top:14px;}
.photo-note{font-size:.72rem;color:var(--logo-plum-deep);text-align:center;margin:14px 0 0;}
.hero-photo .photo-note-hero{position:absolute;right:16px;bottom:78px;z-index:2;margin:0;font-size:.7rem;color:#fff;background:rgba(74,63,48,.75);padding:3px 10px;border-radius:99px;}
/* 4列でカードが狭い幅(1001〜1100px)では「お別れ付き直葬(火葬式)」が2行になるため、4枚とも見出しを2行分の高さにして、比較などの開始位置をそろえる(1000px以下の2列では元に戻す。端数の幅でも隙間ができないよう 1100px以下で指定し、1000px以下で打ち消す) */
@media(max-width:1100px){ .plan-card h3{min-height:3.8em;} }
@media(max-width:1000px){ .plan-grid{grid-template-columns:1fr 1fr;} .plan-card h3{min-height:0;} }
@media(max-width:560px){ .plan-grid{grid-template-columns:1fr;} }

/* ---- gallery ---- */
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;}
.gallery-grid .img-slot{min-height:190px;}
@media(max-width:860px){ .gallery-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:520px){ .gallery-grid{grid-template-columns:1fr;} }

/* ---- contact ---- */
.contact{background:linear-gradient(135deg, var(--butter), var(--coral) 140%);padding:76px 0;text-align:center;border-radius:32px;margin:40px 28px 0;max-width:calc(var(--max) - 56px);margin-left:auto;margin-right:auto;}
.contact h2{color:var(--ink);font-size:clamp(1.5rem,3.2vw,2.1rem);margin:0 0 16px;}
.contact p{color:var(--ink);max-width:460px;margin:0 auto 30px;font-size:.94rem;font-weight:500;}
.contact .cta{background:var(--white);color:var(--btn);box-shadow:0 10px 24px rgba(0,0,0,.12);}
.contact-info{margin-top:36px;font-size:.82rem;color:var(--ink);letter-spacing:.02em;font-weight:500;}

/* ---- footer(全ページ共通)。色はロゴに合わせる ---- */
.site-footer{position:relative;background:var(--logo-bg-pale);color:var(--logo-plum-ink);padding:56px 0 30px;margin-top:40px;}
.site-footer::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--logo-pink),var(--logo-lilac) 50%,var(--logo-pink));}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;gap:28px 24px;}
.footer-brand{display:flex;flex-direction:column;align-items:flex-start;gap:6px;}
.footer-logo{display:block;border-radius:10px;}
.footer-logo img{width:132px;height:auto;}
.footer-logo:focus-visible{outline:3px solid var(--logo-plum);outline-offset:3px;}
.footer-tagline{font-size:.74rem;letter-spacing:.12em;color:var(--logo-plum-deep);margin:0;}
/* LINEでご相談(サイト内のボタン。友だち追加の URL はテーマの HANASHIRUBE_LINE_URL と、静的ページ7ページのフッター) */
.line-cta{margin-top:12px;padding:12px 22px;font-size:.86rem;min-height:48px;}
.line-cta svg{width:20px;height:20px;flex:0 0 auto;}
/* QR コードは PC(1025px以上)だけ */
.footer-line-qr{display:none;}
@media not all and (max-width:1024px){
  .footer-line-qr{display:flex;align-items:center;gap:12px;margin-top:12px;}
  .footer-line-qr img{width:128px;height:auto;aspect-ratio:1/1;object-fit:contain;flex:0 0 auto;border:2px solid var(--logo-pink-pale);border-radius:10px;background:var(--white);}
  .footer-line-qr p{font-size:.74rem;line-height:1.7;color:var(--logo-plum-ink);margin:0;}
}
.footer-col h2{font-size:.8rem;letter-spacing:.14em;color:var(--logo-plum-deep);margin:0 0 12px;font-weight:700;}
.footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;}
.footer-col li,.footer-col p{font-size:.82rem;line-height:1.7;margin:0;}
.footer-col a{text-decoration:none;color:var(--logo-plum-ink);}
.footer-col a:hover{color:var(--logo-plum-deep);text-decoration:underline;text-decoration-color:var(--logo-lilac);text-underline-offset:3px;}
.footer-col a:focus-visible{outline:3px solid var(--logo-plum);outline-offset:2px;border-radius:4px;}
.footer-col a[aria-current="page"]{color:var(--logo-plum-deep);font-weight:700;}
.footer-copy{text-align:center;font-size:.72rem;letter-spacing:.03em;color:var(--logo-plum-deep);margin:40px 0 0;padding-top:20px;border-top:1px dashed var(--logo-pink);}
@media(max-width:1000px){ .footer-grid{grid-template-columns:repeat(4,1fr);} .footer-brand{grid-column:1 / -1;} }
@media(max-width:760px){ .footer-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:520px){ .footer-grid{grid-template-columns:1fr;gap:24px;} .site-footer{padding-top:44px;} .footer-logo img{width:116px;} }

/* ---- shared additions ---- */
a.logo{text-decoration:none;}
.plan-more{
  margin-top:auto;align-self:center;display:inline-block;text-decoration:none;
  font-size:.84rem;font-weight:700;color:var(--btn);
  border:2px solid var(--pink-pale);border-radius:99px;padding:8px 22px;
  transition:background .2s,border-color .2s;
}
.plan-more:hover{background:var(--pink-pale);border-color:var(--btn);}
.plan-more::after{content:" ›";}

/* ---- plan detail pages ---- */
.breadcrumb{font-size:.74rem;color:#7d7160;padding-top:20px;}
.breadcrumb a{text-decoration:none;}
.breadcrumb a:hover{color:var(--coral-deep);}
.pd-photo{margin-top:14px;border-radius:24px;overflow:hidden;aspect-ratio:16/7;}
.pd-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.pd-photo.empty{background:linear-gradient(135deg,var(--pink-pale),var(--cream-2) 50%,#fdeec0);border:2px dashed var(--coral);display:flex;align-items:center;justify-content:center;color:var(--coral-deep);font-size:.9rem;font-weight:700;}
.pd-photo.empty img{display:none;}
.pd-photo.empty::after{content:"写真 準備中";}
.pd-photo-note{font-size:.72rem;color:var(--logo-plum-deep);text-align:right;margin:8px 4px 0;}
.pd-head{
  max-width:720px;margin:28px auto 0;background:var(--white);border-radius:24px;
  padding:36px 40px;box-shadow:0 20px 46px rgba(74,63,48,.10);text-align:center;
}
.pd-head .plan-tag{display:block;margin-bottom:6px;}
.pd-head h1{font-size:clamp(1.6rem,4vw,2.3rem);line-height:1.45;margin:0 0 18px;}
.pd-price{font-size:clamp(2.2rem,6vw,2.9rem);font-weight:900;line-height:1.3;}
.pd-price small{font-size:.95rem;font-weight:500;color:var(--logo-plum-deep);margin-left:6px;}
.pd-tax{font-size:1.05rem;font-weight:700;color:#6b5f4e;margin-top:4px;}
.pd-extra{display:inline-block;margin-top:14px;font-size:.9rem;font-weight:700;color:var(--coral-deep);background:var(--pink-pale);padding:6px 18px;border-radius:99px;}
.pd-lead{font-size:.95rem;color:#5c5040;margin:20px 0 0;}
.pd-cols{display:grid;grid-template-columns:1fr 1fr;gap:22px;max-width:900px;margin:44px auto 0;}
.pd-box{background:var(--white);border:2px solid var(--cream-2);border-radius:20px;padding:26px 28px;}
.pd-box h2{font-size:1.1rem;margin:0 0 14px;}
.pd-box ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.pd-box li{font-size:.9rem;color:#5c5040;padding-left:24px;position:relative;}
.pd-box.included li::before{content:"🌼";position:absolute;left:0;top:-1px;font-size:.84rem;}
.pd-box.excluded{background:var(--cream);}
.pd-box.excluded li::before{content:"";position:absolute;left:6px;top:.8em;width:8px;height:8px;border-radius:50%;background:var(--coral);}
.pd-box .pd-note{font-size:.76rem;color:var(--logo-plum-deep);margin:16px 0 0;line-height:1.8;}
.pd-box .pd-note a{color:var(--coral-deep);}
@media(max-width:760px){ .pd-cols{grid-template-columns:1fr;gap:18px;} }
@media(max-width:640px){
  .pd-photo{aspect-ratio:4/3;border-radius:20px;}
  .pd-head{padding:28px 22px;border-radius:20px;}
  .pd-box{padding:22px 20px;}
  .pd-photo-note{text-align:center;}
}
.plan-switch{max-width:900px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.plan-switch a{
  display:flex;flex-direction:column;gap:2px;text-decoration:none;background:var(--white);
  border:2px solid var(--cream-2);border-radius:18px;padding:16px 14px;text-align:center;
  transition:border-color .2s,transform .2s;
}
.plan-switch a:hover{border-color:var(--coral);transform:translateY(-2px);}
.plan-switch a[aria-current="page"]{border-color:var(--coral);background:var(--pink-pale);pointer-events:none;}
.plan-switch .ps-name{font-weight:700;font-size:.9rem;line-height:1.5;}
.plan-switch .ps-price{font-size:.8rem;color:#6b5f4e;}
.plan-switch .ps-price small{display:block;font-size:.72rem;color:var(--logo-plum-deep);}
@media(max-width:760px){ .plan-switch{grid-template-columns:1fr 1fr;} }
.pd-back{text-align:center;margin:26px 0 0;}
.nw{white-space:nowrap;}


/* ---- legal pages (privacy / tokushoho) ---- */
.legal-doc{max-width:820px;margin:28px auto 0;background:var(--white);border-radius:24px;padding:44px 48px;box-shadow:0 20px 46px rgba(74,63,48,.08);}
.legal-doc h1{font-size:clamp(1.5rem,3.6vw,2rem);text-align:center;margin:0 0 8px;}
.legal-doc .legal-lead{text-align:center;font-size:.9rem;color:#6b5f4e;margin:0 0 30px;}
.legal-doc h2{font-size:1.05rem;margin:34px 0 10px;padding-left:14px;border-left:4px solid var(--coral);line-height:1.6;}
.legal-doc p,.legal-doc li{font-size:.92rem;color:#5c5040;}
.legal-doc p{margin:0 0 10px;}
.legal-doc ul{margin:0 0 10px;padding-left:1.3em;}
.legal-doc .legal-date{margin-top:36px;text-align:right;font-size:.86rem;}
.tbc{display:inline-block;font-size:.82rem;font-weight:700;color:var(--coral-deep);background:var(--pink-pale);border-radius:6px;padding:0 8px;}
.legal-table{margin:0;border-top:2px solid var(--cream-2);}
.legal-row{display:grid;grid-template-columns:200px 1fr;gap:16px;padding:16px 4px;border-bottom:2px solid var(--cream-2);}
.legal-row dt{font-weight:700;font-size:.9rem;}
.legal-row dd{margin:0;font-size:.9rem;color:#5c5040;}
.legal-row dd p{margin:0 0 6px;font-size:.9rem;}
.legal-row dd p:last-child{margin-bottom:0;}
.price-list{display:grid;grid-template-columns:auto auto auto;gap:4px 18px;justify-content:start;margin:4px 0 8px;}
.price-list span{white-space:nowrap;}
.price-list .pl-in{font-weight:700;}
@media(max-width:640px){
  .legal-doc{padding:30px 20px;border-radius:20px;}
  .legal-row{grid-template-columns:1fr;gap:4px;}
  .price-list{gap:2px 12px;}
}

/* ---- プラン比較(トップのプランカード内。○/－ と「あり/なし」を併記) ---- */
.plan-compare{margin:2px 0 0;padding:6px 12px;background:var(--cream);border-radius:12px;}
.pc-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:5px 0;font-size:.8rem;line-height:1.6;}
.pc-row + .pc-row{border-top:1px dashed var(--cream-2);}
.pc-row dt{color:var(--ink);font-weight:500;}
.pc-row dd{margin:0;display:inline-flex;align-items:center;gap:4px;white-space:nowrap;}
.pc-mark{display:inline-block;width:1.1em;text-align:center;font-weight:700;}
.pc-yes dd{color:var(--coral-deep);font-weight:700;}
.pc-no dd{color:var(--ink);}
/* 補足つきの行(お別れの時間): 補足は行の下に、行の幅いっぱいを使って小さく添える(カードが狭くても1行に収まる)。
   4枚とも同じ高さの余白を取るので、補足の無いカード(直葬)とも行の高さがそろう */
.pc-has-note{position:relative;padding-bottom:calc(5px + 1.5 * .7rem);}
.pc-val{display:inline-flex;align-items:center;gap:4px;}
.pc-note{position:absolute;right:0;bottom:4px;font-size:.7rem;font-weight:500;line-height:1.5;white-space:nowrap;color:var(--logo-plum-ink);}

/* ---- 葬儀の流れ(各プランページ。1025px以上は横、1024px以下は縦) ---- */
.pd-flow{max-width:900px;margin:44px auto 0;padding:28px 28px 30px;background:var(--white);border:2px solid var(--cream-2);border-radius:20px;}
.pd-flow h2{font-size:1.1rem;margin:0 0 22px;text-align:center;}
.flow{list-style:none;margin:0;padding:0;display:flex;justify-content:center;gap:44px;}
.flow-step{position:relative;flex:0 1 140px;min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;}
.flow-step img{width:84px;height:84px;}
.flow-text{display:flex;flex-direction:column;gap:2px;}
.flow-label{font-weight:700;font-size:.92rem;color:var(--ink);}
.flow-note{font-size:.74rem;line-height:1.6;color:var(--logo-plum-ink);}
/* 矢印(次のステップへ) */
.flow-step:not(:last-child)::after{content:"";position:absolute;top:36px;right:-30px;width:12px;height:12px;border-top:3px solid var(--coral);border-right:3px solid var(--coral);transform:rotate(45deg);}
@media(max-width:1024px){
  .flow{flex-direction:column;align-items:center;gap:30px;}
  .flow-step{flex:none;width:100%;max-width:360px;flex-direction:row;align-items:center;text-align:left;gap:16px;}
  .flow-step img{width:64px;height:64px;flex:0 0 auto;}
  .flow-step:not(:last-child)::after{top:auto;right:auto;bottom:-24px;left:26px;transform:rotate(135deg);}
}
@media(max-width:640px){ .pd-flow{padding:22px 18px 24px;} }

/* ---- 含まれるもの・別料金のタイル(各プランページ。価格のすぐ下。1025px以上は横に並べ、1024px以下は3列、640px以下は2列) ---- */
.pd-tiles{max-width:900px;margin:44px auto 0;padding:26px 28px 28px;background:var(--white);border:2px solid var(--cream-2);border-radius:20px;}
.tile-group + .tile-group{margin-top:26px;}
.tile-group h2{font-size:1.1rem;margin:0 0 14px;}
.tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(124px,1fr));gap:12px;}
.tile{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;padding:14px 10px;background:var(--cream);border:2px solid var(--cream-2);border-radius:16px;}
.tile img{width:72px;height:72px;}
.tile-name{font-weight:700;font-size:.9rem;line-height:1.5;color:var(--ink);}
.tile-note{font-size:.74rem;line-height:1.6;color:var(--logo-plum-ink);}
/* お花のタイル(先頭に置く。枠をアクセント色にして少しだけ目立たせる) */
.tile-flower{border-color:var(--coral);}
/* 別料金(色だけでなく「別途」の文字ラベルを付ける) */
.tile-extra{background:var(--white);border-style:dashed;}
.tile-label{display:inline-block;font-size:.72rem;font-weight:700;line-height:1.5;padding:1px 10px;border-radius:99px;}
.tile-extra .tile-label{color:var(--coral-deep);background:var(--pink-pale);}
@media(max-width:1024px){ .tiles{grid-template-columns:repeat(3,minmax(0,1fr));} }
@media(max-width:640px){
  .pd-tiles{padding:22px 18px 24px;}
  .tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
}
