/*
Theme Name: アイビーマリッジ
Theme URI: https://ivy-marriage.com/
Author: 株式会社トライオ
Description: 結婚相談所アイビーマリッジ オリジナルテーマ（プラグイン不要・問合せはLINE）
Version: 1.1.0
Requires PHP: 7.4
Text Domain: ivymarriage
*/
:root{--bg:#f5f3ee;--card:#fffdf8;--green:#1e7551;--green-d:#175c41;--green-l:#dcebe2;--beige:#eadfc9;--ink:#404040;--muted:#7a7160;--rule:#e2d7bf}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Hiragino Sans","Yu Gothic",Meiryo,sans-serif;line-height:1.9;font-size:16px}
img{max-width:100%;height:auto}
a{color:var(--green-d)}
.wrap{max-width:960px;margin:0 auto;padding:0 20px}
header.site{background:var(--card);border-bottom:1px solid var(--rule);position:sticky;top:0;z-index:10}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px}
header.site .name{font-weight:700;font-size:18px;color:var(--green-d);text-decoration:none;letter-spacing:.04em;line-height:1.4}
header.site .name small{display:block;font-weight:400;font-size:11px;color:var(--muted);letter-spacing:.1em}
nav.main{display:flex;gap:4px 18px;flex-wrap:wrap;font-size:14px}
nav.main a{text-decoration:none;color:var(--ink);padding:4px 0;border-bottom:2px solid transparent}
nav.main a[aria-current="page"],nav.main a:hover{border-bottom-color:var(--green);color:var(--green-d)}
.hero{background:linear-gradient(180deg,rgba(228,237,220,.62),rgba(248,242,231,.86)),url(images/hero-v2.jpg) center/cover;padding:72px 0 64px;text-align:center}
.hero .eyebrow{font-size:13px;color:var(--green-d);letter-spacing:.2em;margin:0 0 12px}
.hero h1{font-size:30px;line-height:1.5;margin:0 0 16px;font-weight:700}
.hero p{max-width:640px;margin:0 auto 28px;color:var(--muted)}
.page-head{background:var(--green-l);padding:44px 0;text-align:center}
.page-head h1{margin:0;font-size:26px}
.page-head p{margin:8px 0 0;color:var(--muted);font-size:14px}
.btn{display:inline-block;background:var(--green);color:#fff;text-decoration:none;padding:14px 32px;border-radius:999px;font-weight:700;letter-spacing:.05em}
.btn:hover{background:var(--green-d)}
.btn.ghost{background:transparent;color:var(--green-d);border:2px solid var(--green)}
section{padding:56px 0}
section.alt{background:var(--card);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
h2{font-size:22px;margin:0 0 28px;text-align:center;position:relative;padding-bottom:14px}
h2::after{content:"";position:absolute;left:50%;bottom:0;width:48px;height:3px;background:var(--green);transform:translateX(-50%)}
.grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.card{background:var(--card);border:1px solid var(--rule);border-radius:10px;padding:24px}
.card h3{margin:0 0 8px;font-size:17px;color:var(--green-d)}
.card .no{font-size:12px;letter-spacing:.2em;color:var(--muted)}
.card p{margin:0}
.photo{background:var(--beige);border-radius:10px;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:13px;min-height:200px;text-align:center;padding:12px}
.note{font-size:13px;color:var(--muted)}
.tbl{overflow-x:auto;margin-bottom:28px}
table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--rule)}
th,td{padding:12px 16px;border-bottom:1px solid var(--rule);text-align:left;font-size:15px}
thead th{background:var(--green-l);color:var(--green-d)}
td.num{text-align:right;white-space:nowrap}
h3.course{font-size:18px;color:var(--green-d);margin:32px 0 12px}
.steps{list-style:none;margin:0;padding:0;counter-reset:s}
.steps li{counter-increment:s;background:var(--card);border:1px solid var(--rule);border-radius:10px;padding:20px 24px 20px 76px;margin-bottom:16px;position:relative}
.steps li::before{content:counter(s);position:absolute;left:20px;top:18px;width:40px;height:40px;border-radius:50%;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}
.steps li strong{display:block;color:var(--green-d);margin-bottom:4px}
.message{max-width:720px;margin:0 auto}
.message p{margin:0 0 1.2em}
.message .quote{font-weight:700;color:var(--green-d);text-align:center;margin:1.6em 0}
.sign{text-align:right;font-weight:700}
.contact-box{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-bottom:40px}
form .row{margin-bottom:16px}
form label{display:block;font-weight:700;font-size:14px;margin-bottom:4px}
form input,form select,form textarea{width:100%;padding:10px 12px;border:1px solid var(--rule);border-radius:6px;font:inherit;background:#fff}
footer.site{background:var(--green-d);color:#fff;padding:32px 0;text-align:center;font-size:13px}
footer.site a{color:#fff}
.draft{background:#fff4d6;border:1px dashed #d4a72c;color:#6b5200;font-size:12px;padding:6px 10px;border-radius:6px;margin:16px auto 0;max-width:920px}
@media(max-width:600px){.hero h1{font-size:24px}.steps li{padding-left:64px}}

.ph{display:block;width:100%;height:180px;object-fit:cover;border-radius:10px;margin-bottom:12px}
.ph.card-ph{height:120px;margin:0 0 12px}
.ph.step{height:170px;margin:14px 0 0}
.ph.tall{height:100%;min-height:200px;margin:0}
.hero--photo{background-size:cover;background-position:center;padding:96px 0;color:#fff}
.hero--photo h1{color:#fff;font-size:40px;margin:0}
.serif{font-family:"Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",serif;letter-spacing:.08em;font-weight:600}
h2.left{text-align:left;color:var(--green-d);font-weight:500;border-bottom:1px solid #c9a96b;padding-bottom:10px}
h2.left::after{display:none}
.badges{display:block;max-width:760px;width:100%;margin:12px auto 0}
.tiles{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.tiles img{display:block;width:100%;background:#fff;border:1px solid var(--rule);border-radius:6px}
ul.plain{margin:20px 0 0;padding-left:20px;font-size:14px}
table.kv{width:100%;border-collapse:collapse;background:#fff;margin:0 0 4px;border:2px solid #3b8a63}
table.kv th{width:30%;text-align:left;background:#1e7551;color:#fff;border:1px solid #fff;padding:12px 16px}
table.kv td{padding:12px 16px;border:1px solid #cfe3d8;color:var(--ink)}
table.kv.male{border-color:#4b7fc4}table.kv.male th{background:#cfe0f7;color:#1f3f6e}
table.kv.female{border-color:#d9808f}table.kv.female th{background:#fbdde3;color:#7a2a3b}
h4.sex{margin:24px 0 8px;color:var(--green-d)}
@media(max-width:600px){.hero--photo h1{font-size:30px}table.kv th{width:38%}}
/* 参考事例の方向性（生成り・明朝・大きな写真・柔らかい影）に寄せた上書き */
:root{--bg:#f5f3ee;--card:#fffdfa;--rule:#eadfca;--pink:#efe4cc;--gold:#1e7551}
body{background:linear-gradient(180deg,#f8f1e4 0%,#f3e9d8 100%);font-family:"Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",serif;letter-spacing:.03em}
header.site{background:rgba(248,241,228,.94);border-bottom:0;box-shadow:0 2px 14px rgba(120,95,60,.08)}
header.site .name{font-family:inherit}
nav.main{font-size:13px;letter-spacing:.08em}
nav.main a{color:#5a4f3d}
.hero{background:linear-gradient(180deg,rgba(40,30,20,.28),rgba(40,30,20,.5)),url(images/hero-v2.jpg) center/cover;color:#fff;padding:140px 0 120px}
.hero h1,.hero p,.hero .eyebrow{color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.35)}
.hero h1{font-weight:600;letter-spacing:.08em}
.page-head{background:transparent;padding:72px 0 8px}
.page-head h1{font-size:30px;font-weight:600;letter-spacing:.14em;color:#4a3f2e}
.page-head p{letter-spacing:.2em}
h2{font-weight:600;letter-spacing:.12em;color:#4a3f2e}
h2::after{background:var(--gold);height:2px;width:56px}
.card{border:0;border-radius:6px;box-shadow:0 12px 34px rgba(120,95,60,.13)}
.card h3{color:#4a3f2e}
section.alt{background:var(--pink);border:0}
.photo,.ph{border-radius:4px}
.btn{border-radius:2px;background:var(--green);letter-spacing:.12em;box-shadow:0 6px 18px rgba(30,117,81,.3)}
.btn.ghost{background:transparent;box-shadow:none}
.steps li{border:0;border-radius:6px;box-shadow:0 12px 34px rgba(120,95,60,.12)}
.tiles img{border:0;box-shadow:0 10px 28px rgba(120,95,60,.12)}
h2.left{color:#4a3f2e;border-bottom-color:var(--gold)}
.banner{display:block;width:100%;border-radius:12px;box-shadow:0 10px 28px rgba(120,95,60,.15)}
/* 料金表：カード式 */
h3.course.center{text-align:center;font-size:19px;letter-spacing:.2em;color:#4a3f2e;margin:56px 0 20px;position:relative}
h3.course.center::before,h3.course.center::after{content:"";display:inline-block;width:36px;height:1px;background:var(--gold);vertical-align:middle;margin:0 14px}
h3.course.young{color:var(--green-d)}
.fee-panel{max-width:620px;margin:0 auto;background:var(--pink);border-radius:14px;padding:26px 34px 18px;box-shadow:0 14px 36px rgba(120,95,60,.12)}
.fee-panel h3{margin:0 0 10px;text-align:center;letter-spacing:.3em;color:#4a3f2e;font-size:17px}
dl{margin:0}
dl div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:14px 2px;border-bottom:1px dotted rgba(185,143,74,.6)}
dl div:last-child{border-bottom:0}
dt{color:#5a4f3d;letter-spacing:.1em}
dd{margin:0;font-size:26px;color:var(--green-d);font-weight:600;letter-spacing:.04em}
dd small{font-size:14px;margin-left:2px;color:var(--green-d)}
.plans{display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));max-width:820px;margin:0 auto}
.plan{background:#fffdf9;border-radius:14px;padding:26px 30px 14px;box-shadow:0 14px 36px rgba(120,95,60,.13);border-top:4px solid var(--green)}
.plan.female{border-top-color:var(--green)}
.plan h4{margin:0 0 6px;text-align:center;letter-spacing:.4em;font-size:17px;color:#4a3f2e}
@media(max-width:600px){dd{font-size:22px}.fee-panel{padding:22px 20px 12px}}
/* サンマリエの方向性：余白・白と生成り・大きな人物写真・短いコピー・丸いボタン */
body{background:#f7f3ec;font-family:"Hiragino Sans","Yu Gothic","Meiryo",sans-serif;letter-spacing:.02em;color:#3d3a34}
header.site{background:#fff;box-shadow:none;border-bottom:1px solid #e9e3d6}
header.site .name{color:var(--green-d);font-family:"Hiragino Mincho ProN","Yu Mincho",serif}
nav.main{font-family:inherit;letter-spacing:.04em;font-size:13px}
nav.main a{color:#3d3a34}
.hero:not(.hero--photo){background:linear-gradient(90deg,rgba(247,243,236,.96) 0%,rgba(247,243,236,.82) 42%,rgba(247,243,236,.05) 100%),url(images/hero-v2.jpg) center/cover;color:#3d3a34;text-align:left;padding:110px 0 100px}
.hero:not(.hero--photo) .wrap{max-width:960px}
.hero:not(.hero--photo) h1{color:#3d3a34;text-shadow:none;font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:34px;line-height:1.7;font-weight:500;letter-spacing:.06em;max-width:700px}
.hero:not(.hero--photo) p,.hero:not(.hero--photo) .eyebrow{color:#5b564b;text-shadow:none;margin-left:0;max-width:520px}
.hero:not(.hero--photo) .eyebrow{color:var(--green-d)}
.btn{border-radius:999px;box-shadow:0 4px 12px rgba(30,117,81,.25);letter-spacing:.06em;padding:15px 36px}
.btn.ghost{border-radius:999px}
h2{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-weight:500;letter-spacing:.1em}
h2::after{width:40px;height:2px}
.card,.plan,.fee-panel,.steps li{border:1px solid #ece5d6;border-radius:20px;box-shadow:0 2px 14px rgba(90,80,50,.06)}
.card h3{color:var(--green-d)}
.card .no{color:var(--green);letter-spacing:.14em}
section.alt{background:#fff;border-top:1px solid #ece5d6;border-bottom:1px solid #ece5d6}
.fee-panel{background:#faf6ee}
.tiles img{border-radius:16px;box-shadow:none;border:1px solid #ece5d6}
.photo,.ph{border-radius:16px}
.page-head h1{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-weight:500}
.banner{border-radius:20px;box-shadow:0 2px 14px rgba(90,80,50,.08)}
/* 実績バンド */
section.award{background:#fff;border-top:1px solid #ece5d6;border-bottom:1px solid #ece5d6;padding:64px 0;text-align:center}
.award-lead{margin:0;color:var(--green-d);letter-spacing:.3em;font-size:14px}
.award-title{font-size:30px;margin:6px 0 32px}
.medals{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));max-width:820px;margin:0 auto 20px}
.medal{background:radial-gradient(circle at 50% 30%,#fff 0%,#eef6f0 100%);border:2px solid var(--green);border-radius:50%;aspect-ratio:1/1;max-width:240px;width:100%;margin:0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;box-shadow:0 0 0 6px #fff,0 0 0 8px rgba(30,117,81,.35)}
.medal-sub{font-size:12px;letter-spacing:.2em;color:var(--green-d)}
.medal strong{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:30px;line-height:1.25;color:var(--green-d)}
.medal-tag{font-size:13px;background:var(--green);color:#fff;border-radius:999px;padding:2px 14px;letter-spacing:.1em}
.award-note{font-size:12px;color:#6d675a;margin:16px auto 0;max-width:640px}
.stats{display:flex;justify-content:center;gap:48px;flex-wrap:wrap;margin-top:36px}
.stats span{display:block;font-size:14px;color:#5b564b}
.stats strong{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:46px;color:var(--green-d);line-height:1.2}
/* LP：起承転結 */
.act{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 0 14px;color:var(--green-d);font-size:14px;letter-spacing:.12em}
.act span{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--green);color:#fff;font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:18px;letter-spacing:0}
.lp-eyebrow{text-align:center;margin:0 0 6px;font-size:13px;letter-spacing:.2em;color:#7a7160}
.lp-empathy{text-align:center;background:#fff;padding:72px 0}
.bubbles{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;max-width:760px;margin:0 auto 28px}
.bubbles p{margin:0;background:#f7f3ec;border:1px solid #e9e3d6;border-radius:999px;padding:12px 22px;color:#4a463d}
.lp-lead{max-width:640px;margin:0 auto;font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:18px;line-height:2}
.mini-steps{list-style:none;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin:0 0 24px;padding:0}
.mini-steps li{background:#fff;border:1px solid #ece5d6;border-radius:16px;padding:16px;text-align:center;font-size:14px}
.mini-steps li span{display:flex;margin:0 auto 6px;width:30px;height:30px;border-radius:50%;background:var(--green);color:#fff;align-items:center;justify-content:center;font-weight:700}
a.mini-voice{text-decoration:none;color:inherit;display:block}
.lp-final{background:linear-gradient(180deg,#e7f0ea,#dcebe2);text-align:center;padding:72px 0 110px}
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:20;background:rgba(255,255,255,.94);border-top:1px solid #e9e3d6;text-align:center;padding:10px 16px}
.sticky-cta .btn{padding:12px 32px}
.gallery{column-count:3;column-gap:12px;max-width:900px;margin:0 auto}
.gallery img{display:block;width:100%;margin:0 0 12px;border-radius:10px;break-inside:avoid}
@media(max-width:700px){.gallery{column-count:2}}
/* 動き（JSが動く環境のみ。動きを減らす設定では無効） */
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .9s ease,transform .9s ease}
.js .reveal.in{opacity:1;transform:none}
.medal.pop{animation:pop .8s cubic-bezier(.2,.9,.3,1.3) both}
@keyframes pop{0%{transform:scale(.6);opacity:0}100%{transform:scale(1);opacity:1}}
.hero:not(.hero--photo) h1,.hero:not(.hero--photo) p,.hero:not(.hero--photo) .btn{animation:rise .9s ease both}
.hero:not(.hero--photo) p{animation-delay:.15s}.hero:not(.hero--photo) .btn{animation-delay:.3s}
@keyframes rise{0%{opacity:0;transform:translateY(16px)}100%{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}.medal.pop,.hero h1,.hero p,.hero .btn{animation:none}}
/* 成婚実績（イラスト版） */
.seiko-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));max-width:960px;margin:0 auto}
.seiko{background:#fff;border:1px solid #ece5d6;border-radius:20px;padding:18px 14px 20px;text-align:center;box-shadow:0 2px 14px rgba(90,80,50,.06)}
.seiko-ill svg{width:100%;max-width:150px;height:auto;display:block;margin:0 auto 8px}
.seiko-who{margin:0;font-weight:700;color:var(--green-d);font-size:15px}
.seiko-term{margin:4px 0 0;font-size:13px;color:#4a463d;line-height:1.7}
.couple .heart,.rep-ill .rep-heart,.rep-leaf,.rep-eyes,.rep-body{transform-box:fill-box;transform-origin:center}
.couple .heart{animation:beat 2.6s ease-in-out infinite}
.seiko:nth-child(4n+2) .heart{animation:floaty 3.2s ease-in-out infinite}
.seiko:nth-child(4n+3) .heart{animation:sway 3s ease-in-out infinite}
.seiko:nth-child(4n) .heart{animation:twinkle 2.2s ease-in-out infinite}
.seiko:nth-child(3n+1) .heart{animation-delay:-.7s}
.seiko:nth-child(3n+2) .heart{animation-delay:-1.4s}
.seiko{transition:transform .3s ease,box-shadow .3s ease}
.seiko:hover{transform:translateY(-6px);box-shadow:0 10px 26px rgba(90,80,50,.14)}
.seiko:hover .heart{animation:beat .7s ease-in-out infinite}
@keyframes beat{0%,100%{transform:scale(1)}50%{transform:scale(1.2)}}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes sway{0%,100%{transform:rotate(-8deg)}50%{transform:rotate(8deg)}}
@keyframes twinkle{0%,100%{opacity:.55;transform:scale(.94)}50%{opacity:1;transform:scale(1.1)}}
.js .reveal .seiko{opacity:0;transform:translateY(24px) scale(.96)}
.js .reveal.in .seiko{opacity:1;transform:none;animation:seikoIn .7s cubic-bezier(.2,.8,.3,1) backwards}
@keyframes seikoIn{0%{opacity:0;transform:translateY(24px) scale(.96)}100%{opacity:1;transform:none}}
/* 代表イラスト */
.rep-ill{text-align:center}
.rep-ill svg{width:100%;height:auto;display:block;border-radius:16px}
.rep-ill .note{margin:6px 0 0}
.rep-body{animation:breathe 4s ease-in-out infinite}
.rep-eyes{animation:blink 5s infinite}
.rep-leaf.l1{animation:drift 6s ease-in-out infinite}
.rep-leaf.l2{animation:drift 7s ease-in-out -2s infinite}
.rep-leaf.l3{animation:drift 8s ease-in-out -4s infinite}
.rep-heart{animation:floaty 3s ease-in-out infinite}
@keyframes breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes blink{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.1)}}
@keyframes drift{0%,100%{transform:translate(0,0) rotate(0)}50%{transform:translate(6px,-8px) rotate(14deg)}}
/* 相談ボタン（LINE／メール） */
.cta-btns{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));max-width:760px;margin:24px auto}
.cta-btn{display:flex;align-items:center;gap:14px;padding:18px 28px;border-radius:999px;text-decoration:none;text-align:left;border:2px solid var(--green);transition:transform .25s ease,box-shadow .25s ease}
.cta-btn svg{width:36px;height:36px;flex:none}
.cta-btn small{display:block;font-size:12px;opacity:.85}
.cta-btn strong{display:block;font-size:18px}
.cta-btn::after{content:"›";margin-left:auto;font-size:26px;line-height:1}
.cta-btn.line{background:var(--green);color:#fff}
.cta-btn.mail{background:#fff;color:var(--green-d)}
.cta-points{list-style:none;display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:20px 0 28px;padding:0}
.cta-points li{background:#fff;border:1px solid var(--green);color:var(--green-d);border-radius:999px;padding:8px 18px;font-size:14px}
.cta-points b{font-size:17px;margin:0 2px}
.cta-ask{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:18px;color:var(--green-d);margin:0 0 12px}
.lp-final .bubbles{margin-bottom:8px}
.cta-btn.line{animation:ctaGlow 3s ease-in-out infinite}
@keyframes ctaGlow{0%,100%{box-shadow:0 0 0 0 rgba(30,117,81,.35)}50%{box-shadow:0 0 0 10px rgba(30,117,81,0)}}
.ig-card{display:inline-flex;align-items:center;gap:16px;background:#fff;border:1px solid #ece5d6;border-radius:20px;padding:18px 28px;margin-top:20px;color:var(--green-d);text-align:left;box-shadow:0 2px 14px rgba(90,80,50,.06)}
.ig-card svg{width:44px;height:44px;flex:none}
.ig-card strong{display:block;font-size:20px}
.ig-card span{font-size:13px;color:#5b564b}
.cta-btn:hover{transform:translateY(-3px);box-shadow:0 8px 20px rgba(30,117,81,.25)}
@media (prefers-reduced-motion:reduce){.couple .heart,.rep-body,.rep-eyes,.rep-leaf,.rep-heart{animation:none!important}.js .reveal .seiko{opacity:1;transform:none;animation:none!important}.cta-btn,.seiko{transition:none}}
.ig-posts{max-width:600px;margin:24px auto 0;container-type:inline-size}
.ig-posts iframe{display:block;width:100%;height:calc(86px + 33.4cqw);border:1px solid #ece5d6;border-radius:16px;background:#fff}
.sns-cards{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));max-width:900px;margin:24px auto 0}
.sns-cards .ig-card{display:flex;margin:0;text-decoration:none;transition:transform .25s ease,box-shadow .25s ease}
.sns-cards .ig-card:hover{transform:translateY(-4px);box-shadow:0 10px 24px rgba(30,117,81,.18)}
.sns-cards .ig-card strong{font-size:18px}
.blog-card{text-decoration:none;color:inherit;display:block}
.blog-card .no{margin:0 0 4px;font-size:13px;color:#7a7160}
.blog-card h3{font-size:16px;margin:0 0 8px;line-height:1.6}
.blog-post{max-width:720px;margin:0 auto}
.blog-post .no{margin:0 0 6px;color:#7a7160;font-size:13px}
.blog-post h2{font-size:24px;line-height:1.5;margin:0 0 20px}
.blog-post h3{font-size:19px;margin:32px 0 10px;color:var(--green-d)}
.blog-post img{display:block;max-width:100%;height:auto;border-radius:12px;margin:16px auto}
.blog-post hr{border:0;border-top:1px solid #e2d7bf;margin:28px 0}
.blog-nav{display:flex;justify-content:space-between;gap:12px;max-width:720px;margin:36px auto 0;font-size:14px}

/* アイビー（ツタの葉）のモチーフ：現行サイトの飾りを使う（緑がイメージカラー） */
h2{padding-bottom:0}
h2::after{display:none}
h2::before,.page-head h1::before,.lp-final h2::before{content:"";display:block;width:240px;max-width:70%;height:66px;margin:0 auto 6px;background:url(images/ivy-garland.png) center/contain no-repeat}
h2.left::before,.blog-post h2::before,.hero h1::before{display:none}
.page-head h1::before{height:60px;margin-bottom:10px}
header.site .name{display:flex;align-items:center;gap:10px}
header.site .name .logo{height:46px;width:auto;display:block}
header.site .name small{display:block}
.lp-final::before,.lp-final::after{display:none}
@keyframes leafin{0%{opacity:0;transform:translateY(-8px) scale(.94)}100%{opacity:1;transform:none}}
.js .reveal.in h2::before{animation:leafin .9s ease both}
@media (prefers-reduced-motion:reduce){.js .reveal.in h2::before{animation:none}}

h2,.page-head h1{color:var(--green-d)}
h2.left{color:var(--green-d)}
.sns-cards .ig-card{gap:14px;padding:18px 20px}
.sns-cards .ig-card span{line-height:1.7;display:block;margin-top:2px}
.sns-cards .ig-card svg{width:48px;height:48px}

/* 見出しの飾りは一辺倒にしない：セクションごとに変える */
:root{--sprig:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 80 40%22 width=%2280%22 height=%2240%22%3E%3Cpath d=%22M40 38C40 30 40 24 40 18%22 stroke=%22%231e7551%22 stroke-width=%222%22 fill=%22none%22/%3E%3Cg transform=%22translate(40 22) rotate(0) scale(0.5) translate(-20 -43)%22%3E%3Cpath d=%22M20 43C19 38 18 34 18 34C11 35 3 30 2 21C7 21 11 22 14 25C8 17 11 8 20 1C29 8 32 17 26 25C29 22 33 21 38 21C37 30 29 35 22 34C22 34 21 38 20 43Z%22 fill=%22%231e7551%22/%3E%3C/g%3E%3Cg transform=%22translate(40 34) rotate(-62) scale(0.34) translate(-20 -43)%22%3E%3Cpath d=%22M20 43C19 38 18 34 18 34C11 35 3 30 2 21C7 21 11 22 14 25C8 17 11 8 20 1C29 8 32 17 26 25C29 22 33 21 38 21C37 30 29 35 22 34C22 34 21 38 20 43Z%22 fill=%22%2344a17b%22/%3E%3C/g%3E%3Cg transform=%22translate(40 34) rotate(62) scale(0.34) translate(-20 -43)%22%3E%3Cpath d=%22M20 43C19 38 18 34 18 34C11 35 3 30 2 21C7 21 11 22 14 25C8 17 11 8 20 1C29 8 32 17 26 25C29 22 33 21 38 21C37 30 29 35 22 34C22 34 21 38 20 43Z%22 fill=%22%2344a17b%22/%3E%3C/g%3E%3C/svg%3E")}
main>section h2::before{width:76px;height:38px;max-width:none;margin:0 auto 8px;background:var(--sprig) center/contain no-repeat}
main>section:nth-of-type(3n+1) h2::before{width:240px;max-width:70%;height:66px;background:url(images/ivy-garland.png) center/contain no-repeat}
main>section:nth-of-type(6n+4) h2::before{transform:scaleX(-1)}
main>section:nth-of-type(3n) h2::before{display:none}
main>section:nth-of-type(3n) h2{padding-bottom:16px}
main>section:nth-of-type(3n) h2::after{display:block;content:"";position:absolute;left:50%;bottom:0;width:44px;height:3px;border-radius:2px;background:var(--green);transform:translateX(-50%)}
.lp-final h2::before{width:240px;max-width:70%;height:66px;background:url(images/ivy-garland.png) center/contain no-repeat;transform:none}
.page-head h1::before{width:200px;height:56px}
.cta-banner{display:block;max-width:760px;margin:24px auto 8px;transition:transform .35s ease,filter .35s ease}
.cta-banner img{display:block;width:100%;height:auto;border-radius:24px}
.cta-banner:hover{transform:translateY(-4px) scale(1.012);filter:drop-shadow(0 12px 18px rgba(30,117,81,.28))}
.act-flow{list-style:none;margin:0 auto;padding:0 0 56px;max-width:720px;display:grid;gap:12px;position:relative}
.act-flow::after{content:"";position:absolute;right:-20px;bottom:-6px;width:210px;height:58px;background:url(images/ivy-garland.png) center/contain no-repeat;transform:rotate(-4deg);pointer-events:none}
.act-flow li{display:flex;background:#fff;border:1px solid var(--green);border-radius:14px;overflow:hidden}
.act-flow li b{flex:none;width:84px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:32px;font-weight:700;letter-spacing:.02em}
.act-flow li:nth-child(1) b{background:#6fb08f}.act-flow li:nth-child(2) b{background:#52a07c}.act-flow li:nth-child(3) b{background:#3b8c68}.act-flow li:nth-child(4) b{background:#2a7d5b}.act-flow li:nth-child(5) b{background:#1e7551}
.act-flow li div{padding:14px 20px;text-align:left}
.act-flow li strong{display:block;font-size:19px;color:#404040}
.act-flow li span{font-size:14px;color:#5b564b}
.js .reveal .act-flow li{opacity:0;transform:translateX(-28px)}
.js .reveal.in .act-flow li{opacity:1;transform:none;transition:opacity .7s ease,transform .7s ease}
.js .reveal.in .act-flow li:nth-child(2){transition-delay:.12s}.js .reveal.in .act-flow li:nth-child(3){transition-delay:.24s}.js .reveal.in .act-flow li:nth-child(4){transition-delay:.36s}.js .reveal.in .act-flow li:nth-child(5){transition-delay:.48s}
@media (max-width:520px){.act-flow li b{width:64px;font-size:24px}.act-flow li strong{font-size:17px}}
@media (prefers-reduced-motion:reduce){.js .reveal .act-flow li{opacity:1;transform:none}}
.laurel{display:flex;align-items:center;gap:6px;color:var(--green-d);font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:24px;margin:0 0 6px}
.laurel svg{width:26px;height:52px}.laurel svg.r{transform:scaleX(-1)}
.laurel b{font-size:40px;font-weight:600;margin:0 2px}
.hero:not(.hero--photo) h1{font-size:46px;line-height:1.5;letter-spacing:.08em;color:var(--green-d)}
.hero-badges{display:flex;gap:16px;flex-wrap:wrap;margin:8px 0 28px}
.hero-badges>div{width:132px;height:132px;border-radius:50%;background:radial-gradient(circle at 50% 30%,#fff,#eef2ea);border:3px solid var(--green);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--green-d);font-family:"Hiragino Mincho ProN","Yu Mincho",serif;box-shadow:0 0 0 4px rgba(255,255,255,.7);animation:badgeIn .8s cubic-bezier(.2,.9,.3,1.2) both}
.hero-badges>div:nth-child(2){animation-delay:.12s}.hero-badges>div:nth-child(3){animation-delay:.24s}
.hero-badges strong{font-size:19px;line-height:1.25}.hero-badges small{font-size:10px;line-height:1.4;color:#404040}
.hero-badges .silver{border-color:#b9bcc0;color:#6b6f75}.hero-badges .silver strong{font-size:30px}
@keyframes badgeIn{0%{opacity:0;transform:scale(.7)}100%{opacity:1;transform:none}}
@media (max-width:600px){.hero:not(.hero--photo) h1{font-size:28px}.hero-badges>div{width:104px;height:104px}.hero-badges strong{font-size:15px}.hero-badges small{font-size:9px}}
@media (prefers-reduced-motion:reduce){.hero-badges>div{animation:none}}
.tms-title{text-align:center;margin:40px 0 14px;font-size:17px;color:var(--green-d);font-family:"Hiragino Mincho ProN","Yu Mincho",serif}
.tms-tiles{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.tms-tiles img{width:150px;height:150px;object-fit:cover;border-radius:12px;border:1px solid #ece5d6;background:#fff}

/* バッジ（現行の二重リング・ツヤ感に合わせて刷新） */
.hero-badges{gap:22px;margin:14px 0 32px}
.hero-badges>div{position:relative;overflow:hidden;width:172px;height:172px;border:6px solid transparent;border-radius:50%;
 background:radial-gradient(circle at 50% 28%,#fff 0%,#f1f5ef 70%,#e3ece4 100%) padding-box,linear-gradient(135deg,#b8e0c9 0%,#1e7551 38%,#7cc09c 62%,#175c41 100%) border-box;
 box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 4px rgba(30,117,81,.35),0 16px 34px rgba(23,92,65,.25);color:var(--green-d);font-family:"Hiragino Mincho ProN","Yu Mincho",serif}
.hero-badges>div::after{content:"";position:absolute;top:-30%;left:-60%;width:40%;height:160%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.75),transparent);transform:rotate(18deg);animation:shine 5.5s ease-in-out infinite}
.hero-badges>div:nth-child(2)::after{animation-delay:.6s}.hero-badges>div:nth-child(3)::after{animation-delay:1.2s}
@keyframes shine{0%,55%{left:-60%}100%{left:130%}}
.hero-badges strong{font-size:30px;line-height:1.2;font-weight:800;letter-spacing:.04em}
.hero-badges strong span{font-size:38px}
.hero-badges small{font-size:12px;font-weight:700;margin-top:6px;color:#404040;letter-spacing:.02em}
.hero-badges .silver{background:radial-gradient(circle at 50% 28%,#fff 0%,#f4f4f5 70%,#e6e7e9 100%) padding-box,linear-gradient(135deg,#f5f6f7 0%,#a7abb0 40%,#e8e9ea 60%,#8f9399 100%) border-box;color:#6a6e75;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 4px rgba(120,125,132,.35),0 16px 34px rgba(80,84,90,.22)}
.hero-badges .silver i{font-style:normal;font-size:12px;letter-spacing:.2em;color:#a2a6ab}
.hero-badges .silver svg{width:26px;height:17px;margin:2px 0}
.hero-badges .silver small{font-size:17px;font-weight:800;letter-spacing:.06em;color:#6a6e75;margin:0;font-family:Arial,"Hiragino Sans",sans-serif}
.hero-badges .silver em{display:block;width:60%;height:1px;background:#b8bcc1;margin:6px 0 4px}
.hero-badges .silver strong{font-size:38px;font-family:Arial,"Hiragino Sans",sans-serif;font-weight:800}
@media (max-width:600px){.hero-badges{gap:12px}.hero-badges>div{width:108px;height:108px;border-width:4px}.hero-badges strong{font-size:18px}.hero-badges strong span{font-size:23px}.hero-badges small{font-size:8px}.hero-badges .silver i{font-size:8px}.hero-badges .silver small{font-size:11px}.hero-badges .silver strong{font-size:24px}.hero-badges .silver svg{width:16px;height:10px}}
@media (prefers-reduced-motion:reduce){.hero-badges>div::after{animation:none;display:none}}

/* 最初の画面：現行の写真（緑のぼかしの2人）を使う */
.hero:not(.hero--photo){background:linear-gradient(90deg,rgba(245,243,238,.97) 0%,rgba(245,243,238,.9) 36%,rgba(245,243,238,.35) 62%,rgba(245,243,238,0) 100%),url(images/hero-couple-v2.jpg) right center/auto 100% no-repeat,#eef3ea;min-height:560px;padding:96px 0 88px}
@media (max-width:1000px){.hero:not(.hero--photo){background:linear-gradient(180deg,rgba(245,243,238,.88),rgba(245,243,238,.72)),url(images/hero-couple-v2.jpg) 70% center/cover no-repeat}}
.worries{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;max-width:900px;margin:0 auto 28px}
.worries img{width:calc(50% - 6px);min-width:280px;height:auto;border-radius:18px;box-shadow:0 4px 18px rgba(30,117,81,.10)}

/* 大切にしていること4つ（現行の花びら図を、今風のカードに） */
.values{position:relative;display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));max-width:960px;margin:34px auto 0}
.value{background:#fff;border-radius:24px;padding:28px 24px 26px;box-shadow:0 8px 28px rgba(30,117,81,.10);border:1px solid #e3ece4;transition:transform .35s ease,box-shadow .35s ease;position:relative;overflow:hidden}
.value::before{content:"";position:absolute;right:-40px;top:-40px;width:130px;height:130px;border-radius:50%;opacity:.55}
.value.v1::before{background:#f3e3d6}.value.v2::before{background:#f8ecc9}.value.v3::before{background:#cfe0f3}.value.v4::before{background:#e1d8ee}
.value:hover{transform:translateY(-6px);box-shadow:0 16px 36px rgba(30,117,81,.18)}
.vi{width:62px;height:62px;border-radius:20px;background:linear-gradient(135deg,#e6f1ea,#c9e3d4);color:var(--green-d);display:flex;align-items:center;justify-content:center;margin-bottom:14px;position:relative}
.vi svg{width:34px;height:34px}
.value h3{margin:0 0 8px;font-size:20px;color:var(--green-d);position:relative}
.value p{margin:0;font-size:14px;line-height:1.9;color:#404040;position:relative}
.value-core{display:none}
.js .reveal .value{opacity:0;transform:translateY(26px)}
.js .reveal.in .value{opacity:1;transform:none;transition:opacity .7s ease,transform .35s ease,box-shadow .35s ease}
.js .reveal.in .value.v2{transition-delay:.12s,0s,0s}.js .reveal.in .value.v3{transition-delay:.24s,0s,0s}.js .reveal.in .value.v4{transition-delay:.36s,0s,0s}
@media (prefers-reduced-motion:reduce){.js .reveal .value{opacity:1;transform:none}}
.values{grid-template-columns:repeat(4,1fr);max-width:1040px}
@media (max-width:900px){.values{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.values{grid-template-columns:1fr}}

.rep-photo img{display:block;width:100%;height:auto;animation:floaty 6s ease-in-out infinite}
.rep-top{text-align:center;margin:0 0 18px}
.rep-top img{width:min(300px,70%);height:auto;animation:floaty 6s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.rep-photo img,.rep-top img{animation:none}}

/* 成婚率50%以上：大きく */
.laurel{gap:6px;margin:0 0 14px;font-family:"Hiragino Mincho ProN","Yu Mincho",serif;animation:laurelIn .9s cubic-bezier(.2,.9,.3,1.25) both}
.laurel svg{width:58px;height:154px;color:#1e7551;filter:drop-shadow(0 4px 8px rgba(30,117,81,.28))}
.laurel svg.r{transform:scaleX(-1)}
.laurel span{display:flex;align-items:baseline;gap:6px;white-space:nowrap}
.laurel em{font-style:normal;font-size:34px;font-weight:700;color:#175c41;letter-spacing:.06em}
.laurel b{font-size:112px;line-height:1;font-weight:800;letter-spacing:-.02em;background:linear-gradient(135deg,#175c41 10%,#2c9467 55%,#175c41 90%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none;filter:drop-shadow(0 6px 10px rgba(30,117,81,.22))}
.laurel b i{font-style:normal;font-size:60px;margin-left:2px}
@keyframes laurelIn{0%{opacity:0;transform:scale(.8) translateY(14px)}100%{opacity:1;transform:none}}
@media (max-width:760px){.laurel svg{width:34px;height:92px}.laurel em{font-size:20px}.laurel b{font-size:62px}.laurel b i{font-size:32px}}
@media (prefers-reduced-motion:reduce){.laurel{animation:none}}

/* 魅力4つ（写真付き）・サポート内容8つ */
.points{display:grid;gap:22px;max-width:980px;margin:30px auto 0}
.point{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:0;background:#fff;border-radius:26px;overflow:hidden;box-shadow:0 10px 32px rgba(30,117,81,.12);border:1px solid #e3ece4;transition:transform .35s ease,box-shadow .35s ease}
.point:nth-child(even){grid-template-columns:minmax(0,6fr) minmax(0,5fr)}
.point:nth-child(even) img{order:2}
.point:hover{transform:translateY(-5px);box-shadow:0 18px 40px rgba(30,117,81,.2)}
.point img{width:100%;height:100%;min-height:220px;object-fit:cover;display:block}
.point>div{padding:26px 28px;display:flex;flex-direction:column;justify-content:center}
.point h3{margin:0 0 10px;font-size:19px;line-height:1.55;color:var(--green-d)}
.point p{margin:0;font-size:14.5px;line-height:1.95;color:#404040}
@media (max-width:760px){.point,.point:nth-child(even){grid-template-columns:1fr}.point:nth-child(even) img{order:0}.point img{min-height:0;aspect-ratio:16/10}}
.sups{display:grid;gap:16px;grid-template-columns:repeat(4,1fr);max-width:980px;margin:30px auto 0}
@media (max-width:900px){.sups{grid-template-columns:repeat(2,1fr)}}
.sup{background:#fff;border:1px solid #e3ece4;border-radius:22px;padding:24px 14px 20px;text-align:center;box-shadow:0 6px 20px rgba(30,117,81,.08);transition:transform .3s ease,box-shadow .3s ease}
.sup:hover{transform:translateY(-5px);box-shadow:0 14px 30px rgba(30,117,81,.18)}
.sup .vi{margin:0 auto 12px;width:68px;height:68px;border-radius:50%}
.sup .vi svg{width:36px;height:36px}
.sup h3{margin:0;font-size:15px;line-height:1.55;color:#404040}
.sup p{margin:6px 0 0;font-size:12px;color:#6b665a;line-height:1.6}
.js .reveal .point,.js .reveal .sup{opacity:0;transform:translateY(24px)}
.js .reveal.in .point,.js .reveal.in .sup{opacity:1;transform:none;transition:opacity .7s ease,transform .35s ease,box-shadow .35s ease}
@media (prefers-reduced-motion:reduce){.js .reveal .point,.js .reveal .sup{opacity:1;transform:none}}

/* 流れ：矢印・アイコン・順に現れる動き */
.steps-flow{list-style:none;margin:0 0 28px;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:26px;max-width:1040px;margin-left:auto;margin-right:auto}
.steps-flow li{position:relative;background:#fff;border:1px solid #e3ece4;border-radius:22px;padding:20px 8px 18px;text-align:center;box-shadow:0 6px 20px rgba(30,117,81,.08)}
.steps-flow .vi{margin:0 auto 10px;width:62px;height:62px;border-radius:50%}
.steps-flow .vi svg{width:34px;height:34px}
.steps-flow .st em{display:block;font-style:normal;font-size:11px;letter-spacing:.16em;color:var(--green)}
.steps-flow .st strong{display:block;font-size:14px;line-height:1.5;color:#404040}
.steps-flow li:not(:last-child)::after{content:"";position:absolute;right:-22px;top:50%;width:16px;height:16px;border-top:4px solid var(--green);border-right:4px solid var(--green);transform:translateY(-50%) rotate(45deg);animation:arrowR 1.6s ease-in-out infinite}
.steps-flow li:nth-child(2)::after{animation-delay:.2s}.steps-flow li:nth-child(3)::after{animation-delay:.4s}.steps-flow li:nth-child(4)::after{animation-delay:.6s}.steps-flow li:nth-child(5)::after{animation-delay:.8s}
@keyframes arrowR{0%,100%{opacity:.35;margin-right:0}50%{opacity:1;margin-right:-6px}}
@keyframes arrowD{0%,100%{opacity:.35;margin-top:0}50%{opacity:1;margin-top:5px}}
.js .reveal .steps-flow li{opacity:0;transform:translateY(20px)}
.js .reveal.in .steps-flow li{opacity:1;transform:none;transition:opacity .6s ease,transform .6s ease}
.js .reveal.in .steps-flow li:nth-child(2){transition-delay:.15s}.js .reveal.in .steps-flow li:nth-child(3){transition-delay:.3s}.js .reveal.in .steps-flow li:nth-child(4){transition-delay:.45s}.js .reveal.in .steps-flow li:nth-child(5){transition-delay:.6s}.js .reveal.in .steps-flow li:nth-child(6){transition-delay:.75s}
@media (max-width:900px){
 .steps-flow{grid-template-columns:1fr;gap:30px;max-width:420px}
 .steps-flow li{display:flex;align-items:center;gap:16px;text-align:left;padding:14px 18px}
 .steps-flow .vi{margin:0;flex:none}
 .steps-flow .st strong{font-size:17px}
 .steps-flow li:not(:last-child)::after{right:auto;left:50%;top:auto;bottom:-24px;transform:translateX(-50%) rotate(135deg);animation-name:arrowD}
}
/* 活動の流れ：矢印でつなぐ */
.act-flow{gap:30px}
.act-flow li{position:relative;overflow:visible}
.act-flow li b{border-radius:13px 0 0 13px}
.act-flow li:not(:last-child)::after{content:"";position:absolute;left:42px;bottom:-24px;width:14px;height:14px;border-right:4px solid var(--green);border-bottom:4px solid var(--green);transform:translateX(-50%) rotate(45deg);animation:arrowD 1.6s ease-in-out infinite}
.act-flow li:nth-child(2)::after{animation-delay:.25s}.act-flow li:nth-child(3)::after{animation-delay:.5s}.act-flow li:nth-child(4)::after{animation-delay:.75s}
@media (prefers-reduced-motion:reduce){.steps-flow li::after,.act-flow li::after{animation:none!important}.js .reveal .steps-flow li{opacity:1;transform:none}}

.sup .sup-ill{width:100%;max-width:150px;height:auto;display:block;margin:0 auto 10px}
.sup h3{font-size:16px;font-weight:700}
.sup{padding:20px 12px 18px}
.sup:hover .sup-ill{animation:bob .9s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@media (prefers-reduced-motion:reduce){.sup:hover .sup-ill{animation:none}}

/* ご成婚実績：写真（現行サイトの12枚） */
.gallery2{column-count:3;column-gap:16px;max-width:980px;margin:30px auto 0}
.gallery2 .shot{display:block;margin:0 0 16px;break-inside:avoid;border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);border:var(--bd);background:#fff;transition:transform .35s ease,box-shadow .35s ease}
.gallery2 img{display:block;width:100%;height:auto;transition:transform .6s ease}
.gallery2 .shot:hover{transform:translateY(-5px);box-shadow:0 16px 36px rgba(30,117,81,.2)}
.gallery2 .shot:hover img{transform:scale(1.04)}
@media (max-width:760px){.gallery2{column-count:2}}
@media (max-width:480px){.gallery2{column-count:1}}
.js .reveal .shot{opacity:0;transform:translateY(24px)}
.js .reveal.in .shot{opacity:1;transform:none;transition:opacity .7s ease,transform .35s ease,box-shadow .35s ease}
.js .reveal.in .shot:nth-child(3n+2){transition-delay:.12s,0s,0s}.js .reveal.in .shot:nth-child(3n){transition-delay:.24s,0s,0s}
@media (prefers-reduced-motion:reduce){.js .reveal .shot{opacity:1;transform:none}}

/* ===== 統一（全ページ共通の決まり） ===== */
:root{--r:24px;--sh:0 8px 28px rgba(30,117,81,.10);--bd:1px solid #e3ece4}
.card,.value,.sup,.point,.steps-flow li,.act-flow li,.ig-card,.mini-voice,.blog-card,.fee-panel,.plan,.plan-card,.contact-box,.medal-card{background:#fff;border:var(--bd);border-radius:var(--r);box-shadow:var(--sh)}
.act-flow li{border-radius:18px}.act-flow li b{border-radius:17px 0 0 17px}
.steps-flow li{border-radius:22px}
.card h3,.value h3,.point h3,.blog-card h3,.mini-voice h3{color:var(--green-d);font-weight:700;font-size:18px;line-height:1.55}
.card p,.value p,.point p,.blog-card .note{font-size:14.5px;line-height:1.95;color:#404040}
.card .no,.blog-card .no{color:var(--green);letter-spacing:.14em;font-size:12px;font-weight:700}
section{padding:76px 0}
@media (max-width:700px){section{padding:52px 0}}
section.alt,section.lp-empathy,section.award{background:#fff;border-top:0;border-bottom:0}
section.award{background:linear-gradient(180deg,#fff,#f1f6f1)}
.lp-final{background:linear-gradient(180deg,#eaf3ec,#dcebe2)}
.lp-eyebrow{color:var(--green);font-weight:700;letter-spacing:.2em;font-size:12.5px}
h2{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-weight:600;color:var(--green-d)}
.btn{background:var(--green);color:#fff;border:2px solid var(--green);border-radius:999px;font-weight:700;box-shadow:0 8px 20px rgba(30,117,81,.22)}
.btn.ghost{background:#fff;color:var(--green-d)}
.btn:hover{background:var(--green-d);border-color:var(--green-d)}
.btn.ghost:hover{background:var(--green);color:#fff}

/* 担当者紹介：写真と文章を横にバランスよく */
.rep-profile{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:48px;align-items:center;max-width:960px;margin:0 auto}
.rep-profile .rep-photo img{width:100%;max-width:340px;margin:0 auto}
.rep-name{margin:0;font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:34px;font-weight:600;color:var(--green-d);letter-spacing:.12em;line-height:1.3}
.rep-role{margin:4px 0 22px;color:#5b564b;font-size:14px;letter-spacing:.08em}
.rep-profile .rep-h{font-size:20px;line-height:1.6;margin:0 0 14px;padding-bottom:10px;border-bottom:2px solid var(--green)}
.rep-profile .rep-text p{font-size:15px;line-height:2;color:#404040;margin:0 0 12px}
.rep-profile .rep-text .lp-eyebrow{margin:0 0 4px}
@media (max-width:760px){.rep-profile{grid-template-columns:1fr;gap:24px}.rep-profile .rep-photo{max-width:300px;margin:0 auto}}
/* ページ見出しの飾りと、直後の見出しの飾りが重ならないように */
.page-head + main > section:first-child h2::before{display:none}
.page-head + main > section:first-child h2{margin-top:0}

.hero-badges .silver{padding:0;background:#111 padding-box,linear-gradient(135deg,#f5f6f7 0%,#a7abb0 40%,#e8e9ea 60%,#8f9399 100%) border-box}
.hero-badges .silver img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.34);border-radius:50%}

/* カード数に合わせて並びを整える（3＋1の偏りを防ぐ） */
.grid:has(> :nth-child(4):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
.grid:has(> :nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
.grid:has(> :nth-child(5):last-child),.grid:has(> :nth-child(6):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:700px){.grid:has(> :nth-child(n+2)){grid-template-columns:1fr}}
.laurel svg{overflow:visible;width:76px;height:160px}
@media (max-width:760px){.laurel svg{width:46px;height:96px}}

/* ブログ一覧：サムネイル付き */
.blog-card{padding:14px 14px 20px;overflow:hidden;display:block}
.bthumb{display:block;aspect-ratio:16/10;border-radius:18px;overflow:hidden;margin-bottom:12px;background:#eaf3ec}
.bthumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}
.blog-card:hover .bthumb img{transform:scale(1.05)}
.bthumb.noimg{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e6f1ea,#cfe6d8)}
.bthumb.noimg img{width:72%;height:auto;object-fit:contain}
.blog-card .no,.blog-card h3,.blog-card .bex{padding:0 6px}
.blog-card .no{margin:0 0 4px}
.blog-card h3{margin:0 0 8px}
.blog-card .bex{margin:0;font-size:13.5px;line-height:1.85;color:#5b564b}

/* AI・MQ：画像つきリンクカード */
.ai-card{display:block;text-decoration:none;color:inherit;padding:14px 14px 22px;overflow:hidden}
.ai-card img{display:block;width:100%;height:auto;border-radius:18px;margin-bottom:14px;transition:transform .6s ease}
.ai-card:hover img{transform:scale(1.03)}
.ai-card h3,.ai-card p{padding:0 8px}
.ai-card h3{margin:0 0 8px}
.ai-card p{margin:0 0 14px}
.more{display:inline-flex;align-items:center;gap:8px;margin:0 8px;padding:9px 20px;border-radius:999px;background:var(--green);color:#fff;font-weight:700;font-size:14px;transition:background .25s,gap .25s}
.more::after{content:"→";transition:transform .25s}
.ai-card:hover .more{background:var(--green-d)}
.ai-card:hover .more::after{transform:translateX(4px)}
.tms-tiles a{display:block;transition:transform .3s ease,box-shadow .3s ease;border-radius:12px}.tms-tiles a:hover{transform:translateY(-4px);box-shadow:0 10px 22px rgba(30,117,81,.2)}

.ig-pill{display:inline-flex;align-items:center;gap:12px;padding:10px 24px 10px 12px;border-radius:999px;background:#fff;border:var(--bd);box-shadow:var(--sh);color:var(--green-d);font-weight:700;text-decoration:none;transition:transform .25s ease,box-shadow .25s ease}
.ig-pill svg{width:38px;height:38px;flex:none}
.ig-pill span{display:flex;flex-direction:column;line-height:1.35;text-align:left}
.ig-pill small{font-size:12px;font-weight:400;color:#5b564b}
.ig-pill:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(30,117,81,.2)}

/* ===== スマホ（幅700px以下）の整え ===== */
@media (max-width:700px){
  header.site{position:static}
  header.site .wrap{padding-top:8px;padding-bottom:0;gap:6px}
  header.site .name .logo{height:40px}
  header.site .name small{font-size:10px}
  nav.main{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:2px;width:100%;margin:0 -4px;padding:0 4px 6px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  nav.main::-webkit-scrollbar{display:none}
  nav.main a{flex:none;font-size:13px;padding:8px 10px;white-space:nowrap}
  .hero:not(.hero--photo){min-height:0;padding:44px 0 56px}
  .hero:not(.hero--photo) h1{font-size:26px;line-height:1.55}
  .hero:not(.hero--photo) .eyebrow{font-size:14px!important}
  .hero-badges{gap:10px;flex-wrap:nowrap}
  .hero-badges>div{width:30%;height:auto;aspect-ratio:1/1;max-width:112px}
  .hero-badges strong{font-size:15px}
  .hero-badges strong span{font-size:19px}
  .hero-badges small{font-size:8px}
  .laurel{gap:2px}
  .laurel span{gap:3px}
  .laurel em{font-size:18px}.laurel b{font-size:54px}.laurel b i{font-size:28px}
  .laurel svg{width:34px;height:76px}
  h2{font-size:20px}
  .wrap{padding:0 16px}
  .sticky-cta{padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px))}
  .sticky-cta .btn{width:100%;padding:13px 10px;font-size:15px}
  .lp-final{padding-bottom:96px}
}
.nb{display:inline-block}
@media (max-width:700px){
  .medals{grid-template-columns:repeat(3,1fr);gap:8px}
  .medal{box-shadow:0 0 0 3px #fff,0 0 0 4px rgba(30,117,81,.35);gap:2px;padding:4px}
  .medal-sub{font-size:8px;letter-spacing:.05em}
  .medal strong{font-size:15px;line-height:1.3}
  .medal-tag{font-size:9px;padding:1px 8px}
  .stats{gap:22px}
  .stats strong{font-size:34px}
  .gallery2{column-count:2;column-gap:10px}
  .gallery2 .shot{margin-bottom:10px;border-radius:16px}
  .tms-tiles img{width:calc(50vw - 28px);height:calc(50vw - 28px)}
}
@media (max-width:480px){.gallery2{column-count:2}}
h2,h3,.lp-lead{text-wrap:balance;word-break:auto-phrase;line-break:strict}
@media (max-width:700px){.point img{aspect-ratio:16/9}.point>div{padding:20px 20px 22px}.value{padding:22px 20px}.sup{padding:16px 8px 14px}.sup .sup-ill{max-width:120px}}
.point img{object-position:left top}
@media (max-width:760px){
  .point{display:block}
  .point img{width:100%;height:auto;min-height:0;aspect-ratio:auto;object-fit:contain;display:block}
}
.more{white-space:nowrap}
@media (max-width:700px){
  .grid:has(> :nth-child(2):last-child),.grid:has(> :nth-child(4):last-child),.grid:has(> :nth-child(5):last-child),.grid:has(> :nth-child(6):last-child),.grid:has(> :nth-child(3):last-child){grid-template-columns:1fr}
  .ai-card h3{font-size:17px}
  .ai-card .more{width:calc(100% - 16px);justify-content:center}
}

/* スマホ：上に張り付くヘッダー＋メニューボタン */
.nav-toggle{display:none}
@media (max-width:700px){
  header.site{position:sticky;top:0;z-index:30;box-shadow:0 2px 12px rgba(30,117,81,.10)}
  header.site .wrap{flex-wrap:nowrap;align-items:center;justify-content:space-between;padding-top:6px;padding-bottom:6px}
  header.site .name small{display:none}
  header.site .name .logo{height:38px}
  .nav-toggle{display:inline-flex;align-items:center;gap:8px;border:2px solid var(--green);background:#fff;color:var(--green-d);border-radius:999px;padding:7px 14px 7px 12px;font-weight:700;font-size:13px;cursor:pointer;position:relative}
  .nav-toggle span{display:block;width:16px;height:2px;background:var(--green);border-radius:2px;transition:transform .25s,opacity .2s;position:absolute;left:12px}
  .nav-toggle span:nth-child(1){top:10px}.nav-toggle span:nth-child(2){top:15px}.nav-toggle span:nth-child(3){top:20px}
  .nav-toggle em{font-style:normal;margin-left:22px}
  .nav-toggle.on span:nth-child(1){transform:translateY(5px) rotate(45deg)}
  .nav-toggle.on span:nth-child(2){opacity:0}
  .nav-toggle.on span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
  nav.main{display:none;position:absolute;top:100%;left:0;right:0;width:auto;margin:0;background:#fff;flex-direction:column;overflow:visible;padding:6px 16px 14px;border-top:1px solid #e3ece4;box-shadow:0 14px 24px rgba(30,117,81,.14)}
  nav.main.open{display:flex}
  nav.main a{font-size:16px;padding:15px 8px;border-bottom:1px solid #eef3ee;text-align:left}
  nav.main a:last-child{border-bottom:0}
}

/* LINE一本化: ボタン1つのとき */
.cta-btns{grid-template-columns:minmax(0,420px);justify-content:center}
.cta-btns .cta-btn{width:100%}

/* ご成婚までの流れ：イラスト＋矢印の縦タイムライン */
.fl-steps{list-style:none;margin:36px auto 0;padding:0;max-width:880px;display:grid;gap:52px}
.fl-steps>li{position:relative;display:grid;grid-template-columns:156px 1fr;grid-template-areas:"ill head" "ill text";column-gap:28px;row-gap:6px;align-items:start;background:#fff;border:1px solid #e3ece4;border-radius:24px;padding:26px 30px 26px 24px;box-shadow:0 8px 26px rgba(30,117,81,.09)}
.fl-ill{grid-area:ill;position:relative;width:156px;height:156px;border-radius:50%;background:linear-gradient(135deg,#e6f1ea,#c9e3d4);display:flex;align-items:center;justify-content:center;align-self:center}
.fl-ill svg{width:112px;height:112px;overflow:visible}
.fl-no{position:absolute;left:-4px;top:-4px;width:40px;height:40px;border-radius:50%;background:var(--green);color:#fff;font-weight:700;font-size:20px;display:flex;align-items:center;justify-content:center;border:3px solid #fff;box-shadow:0 3px 8px rgba(30,117,81,.3)}
.fl-head{grid-area:head;align-self:end}
.fl-head em{display:block;font-style:normal;font-size:12px;letter-spacing:.2em;color:var(--green)}
.fl-head h3{margin:2px 0 0;font-size:22px;line-height:1.4;color:var(--green-d)}
.fl-sub{margin:4px 0 0;font-size:15px;font-weight:700;color:#7a6a3a;line-height:1.6}
.fl-text{grid-area:text;margin:6px 0 0;font-size:15.5px;line-height:1.95}
.fl-steps>li:not(:last-child)::after{content:"";position:absolute;left:92px;bottom:-40px;width:20px;height:20px;border-right:5px solid var(--green);border-bottom:5px solid var(--green);transform:rotate(45deg);animation:flArrow 1.5s ease-in-out infinite}
@keyframes flArrow{0%,100%{opacity:.35;margin-bottom:0}50%{opacity:1;margin-bottom:-7px}}
@keyframes flDot{0%,70%,100%{transform:translateY(0)}35%{transform:translateY(-5px)}}
@keyframes flSearch{0%,100%{transform:translate(0,0)}50%{transform:translate(-14px,-10px)}}
@keyframes flCheck{0%{stroke-dashoffset:40}35%,100%{stroke-dashoffset:0}}
@keyframes flPop{0%,100%{transform:scale(1)}50%{transform:scale(1.1)}}
@keyframes flTw{0%,100%{opacity:.25;transform:scale(.7)}50%{opacity:1;transform:scale(1.15)}}
@keyframes flGo{0%,100%{transform:translateX(0)}50%{transform:translateX(6px)}}
.fl-dot,.fl-twinkle,.fl-pop,.fl-search,.fl-go{transform-box:fill-box;transform-origin:center}
.fl-dot{animation:flDot 1.4s ease-in-out infinite}.fl-dot.d2{animation-delay:.2s}.fl-dot.d3{animation-delay:.4s}
.fl-check{stroke-dasharray:40;animation:flCheck 2.4s ease-in-out infinite}
.fl-pop{animation:flPop 2.4s ease-in-out infinite}
.fl-search{animation:flSearch 2.6s ease-in-out infinite}
.fl-twinkle{animation:flTw 2s ease-in-out infinite}.fl-twinkle.d2{animation-delay:.6s}.fl-twinkle.d3{animation-delay:1.1s}
.fl-go{animation:flGo 1.3s ease-in-out infinite}
.fl-beat{transform-box:view-box;transform-origin:0 0;animation:flBeatA 1.6s ease-in-out infinite}
@keyframes flBeatA{0%,100%{opacity:1}50%{opacity:.78}}
.fl-js .fl-steps>li{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}
.fl-js .fl-steps>li.in{opacity:1;transform:none}
@media (max-width:700px){
 .fl-steps{gap:48px}
 .fl-steps>li{grid-template-columns:92px 1fr;grid-template-areas:"ill head" "text text";column-gap:16px;padding:20px 18px 22px}
 .fl-ill{width:92px;height:92px}.fl-ill svg{width:66px;height:66px}
 .fl-no{width:32px;height:32px;font-size:16px;left:-6px;top:-6px}
 .fl-head h3{font-size:18px}.fl-sub{font-size:14px}
 .fl-text{font-size:15px;line-height:1.9;margin-top:10px}
 .fl-steps>li:not(:last-child)::after{left:calc(50% - 10px)}
}
@media (prefers-reduced-motion:reduce){.fl-dot,.fl-check,.fl-pop,.fl-search,.fl-twinkle,.fl-go,.fl-beat,.fl-steps>li::after{animation:none!important}.fl-check{stroke-dashoffset:0}}

/* 流れページ：ゴールの写真 */
.fl-end{position:relative;max-width:880px;margin:64px auto 0;border-radius:24px;overflow:hidden;aspect-ratio:2/1;box-shadow:0 10px 30px rgba(30,117,81,.16)}
.fl-end img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.fl-end::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(255,255,255,.88) 0,rgba(255,255,255,.55) 26%,rgba(255,255,255,0) 52%)}
.fl-end-cap{position:absolute;z-index:1;left:0;right:0;bottom:18px;text-align:center;padding:0 16px}
.fl-end-cap strong{display:block;font-size:24px;letter-spacing:.08em;color:var(--green-d);font-family:"Noto Serif JP","Shippori Mincho",serif}
.fl-end-cap span{display:block;margin-top:4px;font-size:14px;color:#4a5a50}
.fl-end-arrow{position:absolute;z-index:2;left:50%;top:-44px;width:20px;height:20px;border-right:5px solid var(--green);border-bottom:5px solid var(--green);transform:rotate(45deg);animation:flArrow 1.5s ease-in-out infinite}
.fl-end{overflow:visible}.fl-end img{border-radius:24px}.fl-end::after{border-radius:24px}
@media (max-width:700px){.fl-end{aspect-ratio:4/3;margin-top:56px}.fl-end img{object-position:50% 30%}.fl-end-cap strong{font-size:19px}.fl-end-cap span{font-size:13px}}
@media (prefers-reduced-motion:reduce){.fl-end-arrow{animation:none}}

/* スマホで横に6pxはみ出す不具合：大切にしていること4枚の葉の飾りを枠で切る */
.value{overflow:hidden}

/* スマホで横に動く不具合：スクロールで出てくる動き（横から入る）の開始位置が画面の外へ出る分を、枠で切る */
main section{overflow-x:clip}

/* スマホ：ボタン文字を1行に */
@media(max-width:600px){.btn{font-size:15px;letter-spacing:.02em;padding-left:14px;padding-right:14px}.hero .btn,.hero:not(.hero--photo) .btn{white-space:nowrap}}

/* PC幅：ヒーロー写真を背景いっぱいに広げる */
@media (min-width:1001px){.hero:not(.hero--photo){background:linear-gradient(90deg,rgba(245,243,238,.96) 0%,rgba(245,243,238,.84) 38%,rgba(245,243,238,.2) 60%,rgba(245,243,238,0) 100%),url(images/hero-couple-v2.jpg) right 30%/max(62vw,760px) auto no-repeat,#eef3ea}}

/* 代表の名前と肩書きを写真の下へ */
.rep-cap{text-align:center;margin-top:20px}.rep-cap .lp-eyebrow{margin:0 0 4px}.rep-cap .rep-name{font-size:28px}.rep-cap .rep-role{margin:6px 0 0}

/* 予約の帯（HTMLで作り直し） */
.cta-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;max-width:760px;margin:28px auto 12px;padding:30px 24px 26px;border-radius:28px;text-decoration:none;text-align:center;color:#fff;background:radial-gradient(120% 140% at 85% -10%,#4fb88c 0%,rgba(79,184,140,0) 55%),linear-gradient(135deg,#1b6d4b 0%,#2a8f66 100%);box-shadow:0 18px 40px rgba(30,117,81,.28);overflow:hidden;transition:transform .35s ease,box-shadow .35s ease}
.cta-card:hover{transform:translateY(-4px);box-shadow:0 24px 46px rgba(30,117,81,.34)}
.cta-card-ivy{width:150px;max-width:50%;height:auto;margin-bottom:2px;filter:brightness(0) invert(1);opacity:.85}
.cta-card-eb{font-size:14px;letter-spacing:.14em;opacity:.95}
.cta-card-ti{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:34px;font-weight:600;letter-spacing:.1em;line-height:1.4;margin:2px 0 12px}
.cta-card-bt{position:relative;display:inline-flex;align-items:center;gap:10px;background:#fff;color:#1b6d4b;border-radius:999px;padding:14px 22px 14px 18px;font-weight:700;font-size:17px;letter-spacing:.04em;box-shadow:0 8px 20px rgba(0,0,0,.18);overflow:hidden}
.cta-card-bt svg{width:30px;height:30px;padding:5px;border-radius:50%;background:#06C755;flex:none}
.cta-card-bt i{font-style:normal;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:#1b6d4b;color:#fff;font-size:20px;line-height:1;padding-bottom:3px}
.cta-card-bt::after{content:"";position:absolute;top:-30%;left:-60%;width:40%;height:160%;background:linear-gradient(100deg,transparent,rgba(30,117,81,.18),transparent);transform:rotate(18deg);animation:shine 5.5s ease-in-out infinite}
.cta-card-nt{font-size:13px;letter-spacing:.06em;opacity:.92;margin-top:10px}
@media(max-width:600px){.cta-card{padding:24px 14px 22px;border-radius:22px}.cta-card-ti{font-size:25px;letter-spacing:.06em}.cta-card-bt{font-size:15px;padding:12px 16px 12px 12px;gap:8px}.cta-card-bt svg{width:26px;height:26px}.cta-card-nt{font-size:12px}}
@media(prefers-reduced-motion:reduce){.cta-card-bt::after{animation:none;display:none}}

/* 追従メニュー：LINEと電話 */
.sticky-cta{display:flex;gap:10px;justify-content:center;align-items:center}
.sticky-cta .btn.line{flex:0 1 auto}
.sticky-cta .btn.tel{display:inline-flex;align-items:center;gap:8px;background:#fff;color:var(--green-d);border:2px solid var(--green);box-shadow:none;padding:10px 22px;white-space:nowrap}
.sticky-cta .btn.tel:hover{background:var(--green);color:#fff}
.sticky-cta .btn.tel svg{width:20px;height:20px;flex:none}
.sticky-cta .short{display:none}
@media(max-width:600px){.sticky-cta{gap:8px}.sticky-cta .btn.line{flex:1 1 0;min-width:0;width:auto}.sticky-cta .full{display:none}.sticky-cta .short{display:inline}.sticky-cta .btn.tel{padding:11px 16px;gap:5px;flex:none;width:auto}.sticky-cta .btn.tel .tn{display:none}}

/* 「50%」の色を料金の丸の数字と同じ金茶色に */
.laurel b{background:none;-webkit-background-clip:border-box;background-clip:border-box;color:#a47020;-webkit-text-fill-color:#a47020}

/* 追従メニューが最下部の文字に重ならないように */
footer.site{padding-bottom:96px}

/* ===== 2026-10-26 修正依頼：配色（白・アイボリー・淡いグリーン＋ピンクのアクセント／文字は濃いグリーン）・飾りを控えめに・新しい部品 ===== */
:root{--bg:#faf6ec;--card:#fffdf6;--green:#1f5c40;--green-d:#174a33;--green-l:#e3eedf;--beige:#f1ead8;--ink:#254636;--muted:#5d7164;--rule:#e4dcc6;--pink:#f6dde1;--pink-d:#d9788a;--line:#06c755;--line-d:#05a847}
body{background:var(--bg);color:var(--ink)}
h1,h2,h3,h4,.page-head h1,h2.left,.card h3{color:var(--green-d)}
.lp-eyebrow{color:var(--pink-d)}
a{color:var(--green-d)}
section.alt{background:#f2f7ef;border-top:1px solid #e0ead9;border-bottom:1px solid #e0ead9}
.page-head{background:#e8f1e4}
.btn{background:var(--green);box-shadow:0 4px 12px rgba(31,92,64,.25)}
.btn:hover{background:var(--green-d)}
.btn.ghost{background:transparent;color:var(--green-d);border:2px solid var(--green);box-shadow:none}
.btn.line,.sticky-cta .btn,.cta-btn.line{background:var(--line);color:#fff;box-shadow:0 4px 12px rgba(6,199,85,.28)}
.btn.line:hover,.sticky-cta .btn:hover,.cta-btn.line:hover{background:var(--line-d)}
.sticky-cta{background:rgba(255,253,246,.96)}

/* 葉っぱの飾りは、見出しの上の小さなワンポイントだけ。連番の丸は出さない */
main>section h2::before,main>section:nth-of-type(n) h2::before,.page-head h1::before,.lp-final h2::before{display:block;content:"";width:44px;max-width:none;height:22px;margin:0 auto 8px;background:var(--sprig) center/contain no-repeat;transform:none}
main>section:nth-of-type(n) h2::after{display:none}
.act-flow::after{display:none}
.fl-no{display:none}
h2.left::before,.blog-post h2::before{display:none}

/* TOPの最初の画面 */
.hero2{background:linear-gradient(135deg,#fffdf6 0%,#f0f6ec 100%);padding:56px 0 48px;border-bottom:1px solid #e0ead9}
.hero2 .wrap{display:grid;grid-template-columns:1.05fr 1fr;gap:36px;align-items:center}
.hero2 .eyebrow{font-size:13px;letter-spacing:.18em;color:var(--pink-d);margin:0 0 12px}
.hero2 h1{font-size:34px;line-height:1.6;margin:0 0 16px;font-weight:600;letter-spacing:.06em;font-family:"Hiragino Mincho ProN","Yu Mincho",serif;color:var(--green-d)}
.hero2 .hero2-sub{margin:0 0 22px;color:var(--ink)}
.hero2 .hero2-photo img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:18px;box-shadow:0 14px 34px rgba(31,92,64,.16)}
.hero2 .draft{grid-column:1/-1}
.hero2 .btn{padding:15px 36px}
@media(max-width:760px){.hero2{padding:36px 0 32px}.hero2 .wrap{grid-template-columns:1fr;gap:22px}.hero2 h1{font-size:26px}.hero2 .hero2-photo{order:-1}}

/* 婚活のお悩み */
.worry-list{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;max-width:780px;margin:0 auto 22px}
.worry-list p{margin:0;background:#fff;border:1px solid #ead7da;border-radius:999px;padding:10px 20px;font-size:15px;color:var(--ink)}
.worry-list p:nth-child(odd){background:#fff7f8}

/* 選ばれる3つの理由（連番なし） */
.reasons{display:grid;gap:18px;grid-template-columns:repeat(3,1fr)}
.reason{background:#fff;border:1px solid var(--rule);border-top:4px solid var(--pink-d);border-radius:14px;padding:24px 22px}
.reason svg{width:40px;height:40px;color:var(--green);display:block;margin:0 0 10px}
.reason h3{margin:0 0 8px;font-size:17px;line-height:1.55}
.reason p{margin:0;font-size:15px}
@media(max-width:760px){.reasons{grid-template-columns:1fr}}

/* 代表紹介（TOP） */
.rep-short{display:grid;grid-template-columns:220px 1fr;gap:28px;align-items:center;max-width:800px;margin:0 auto}
.rep-short .rep-photo img{display:block;width:100%;height:auto;border-radius:16px}
.rep-short .rep-name{font-size:22px;font-weight:700;margin:0;color:var(--green-d)}
.rep-short .rep-role{font-size:13px;color:var(--muted);margin:0 0 10px}
.rep-short p{margin:0 0 .9em}
@media(max-width:640px){.rep-short{grid-template-columns:1fr;text-align:center}.rep-short .rep-photo{max-width:220px;margin:0 auto}}

/* 料金の概要表 */
.sum-wrap{overflow-x:auto;max-width:560px;margin:0 auto}
table.sum{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--rule)}
table.sum th,table.sum td{padding:10px 14px;border-bottom:1px solid var(--rule);font-size:15px;text-align:right;white-space:nowrap}
table.sum th:first-child{text-align:left;font-weight:600;color:var(--green-d)}
table.sum thead th{background:#e8f1e4;color:var(--green-d);text-align:right}
table.sum thead th:first-child{text-align:left}

/* よくあるご質問（開閉式） */
.faq-list{max-width:760px;margin:0 auto}
.faq-list details{background:#fff;border:1px solid var(--rule);border-radius:12px;margin:0 0 10px;overflow:hidden}
.faq-list summary{cursor:pointer;list-style:none;padding:16px 48px 16px 56px;font-weight:700;color:var(--green-d);position:relative;line-height:1.6}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::before{content:"Q";position:absolute;left:16px;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:50%;background:var(--pink);color:var(--pink-d);font-weight:700;display:flex;align-items:center;justify-content:center;font-size:14px}
.faq-list summary::after{content:"";position:absolute;right:20px;top:50%;width:9px;height:9px;border-right:2px solid var(--green);border-bottom:2px solid var(--green);transform:translateY(-70%) rotate(45deg);transition:transform .2s}
.faq-list details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq-list .ans{padding:0 20px 16px 56px;font-size:15px}
.faq-list .ans p{margin:0}

/* ブログの絞り込み */
.cat-filter{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:0 0 24px}
.cat-filter button{font:inherit;font-size:14px;background:#fff;color:var(--green-d);border:1px solid var(--green);border-radius:999px;padding:8px 18px;cursor:pointer}
.cat-filter button[aria-pressed="true"]{background:var(--green);color:#fff}

img.badges{display:block;max-width:520px;width:100%;margin-left:auto;margin-right:auto}

@media(max-width:480px){table.sum th,table.sum td{padding:9px 8px;font-size:14px}.worry-list p{font-size:14px;padding:9px 16px}}

/* ===== 先方の完成図（PDF）に合わせたTOP・共通部品（2026-10-26） ===== */
:root{--pink-d:#ec4a7e;--pink-dd:#d63a6c;--pink:#fde8ee;--line:#ec4a7e;--line-d:#d63a6c}
.btn.line,.sticky-cta .btn,.cta-btn.line,.head-line{background:var(--pink-d);color:#fff;box-shadow:0 6px 16px rgba(236,74,126,.28)}
.btn.line:hover,.sticky-cta .btn:hover,.cta-btn.line:hover,.head-line:hover{background:var(--pink-dd)}
.head-line{display:inline-block;text-decoration:none;font-weight:700;font-size:14px;padding:10px 22px;border-radius:999px;white-space:nowrap}
header.site .wrap{flex-wrap:nowrap}
header.site nav.main{flex-wrap:wrap;gap:4px 16px;font-size:13px;justify-content:center;flex:1 1 auto}
header.site nav.main a{white-space:nowrap}
header.site .name small{white-space:nowrap}
@media(max-width:1180px){.head-line{display:none}header.site .name small{display:none}}

.wrap.wide{max-width:1120px}
.hero3{background:linear-gradient(90deg,rgba(255,253,246,.96) 0%,rgba(255,253,246,.84) 38%,rgba(255,253,246,0) 70%),url(images/hero-top-v2.jpg) center/cover no-repeat;padding:76px 0 68px}
.hero3 .wrap{max-width:1120px}
.hero3 h1{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-weight:600;font-size:42px;line-height:1.55;letter-spacing:.05em;margin:0 0 14px;color:#2f3a34}
.hero3 h1 .pk{color:var(--pink-d)}
.hero3 .hero3-sub{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:19px;line-height:1.9;color:#47524b;margin:0 0 22px}
.hero3 .btn{padding:16px 40px;font-size:17px}
.hero3 .draft{max-width:560px}
@media(max-width:760px){.hero3{background:linear-gradient(180deg,rgba(255,253,246,.9) 0%,rgba(255,253,246,.78) 100%),url(images/hero-top-v2.jpg) center/cover no-repeat;padding:44px 0 38px}.hero3 h1{font-size:28px}.hero3 .hero3-sub{font-size:16px}}

.top-row{padding:22px 0}
.top-row h2.left{font-size:22px;margin:0;text-align:left}
.top-row h2.left::before{display:none}
.row-head{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap;margin:0 0 16px}
.row-head .sub{margin:4px 0 0;font-size:14px;color:var(--muted)}
a.mlink{font-size:14px;font-weight:700;text-decoration:none;color:var(--green-d);white-space:nowrap}
a.mlink.ghost{border:2px solid var(--green);border-radius:999px;padding:8px 18px;background:#fff}
a.mlink.ghost:hover{background:#eef5ea}
.worry-row{display:grid;grid-template-columns:1.5fr 1fr;gap:18px}
.panel{border-radius:18px;padding:26px 30px}
.panel-pink{background:linear-gradient(90deg,#fff0f3,#fffaf7);border:1px solid #f6dde3}
.panel-green{background:#edf4e9;border:1px solid #dfead8}
.panel h2.left{font-size:20px;line-height:1.6;margin:0 0 12px}
.panel p{margin:0}
ul.checks{list-style:none;margin:0;padding:0}
ul.checks li{position:relative;padding:3px 0 3px 26px;font-size:15px}
ul.checks li::before{content:"";position:absolute;left:4px;top:.65em;width:11px;height:6px;border-left:2.5px solid var(--pink-d);border-bottom:2.5px solid var(--pink-d);transform:rotate(-45deg)}
@media(max-width:900px){.worry-row{grid-template-columns:1fr}}

.reasons2{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.reason2{display:grid;grid-template-columns:118px 1fr;gap:0;background:#fff;border:1px solid var(--rule);border-radius:16px;overflow:hidden}
.reason2 img{width:118px;height:100%;min-height:150px;object-fit:cover;display:block}
.reason2 div{padding:14px 16px}
.reason2 h3{margin:0 0 6px;font-size:15.5px;line-height:1.5}
.reason2 p{margin:0;font-size:13.5px;line-height:1.75}
@media(max-width:1000px){.reasons2{grid-template-columns:1fr}.reason2{grid-template-columns:130px 1fr}}

.duo{display:grid;grid-template-columns:1.85fr 1fr;gap:28px;align-items:start}
.duo-main,.duo-side{min-width:0}
@media(max-width:1000px){.duo{grid-template-columns:1fr}}
.voices3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.vcard{display:block;background:#fff;border:1px solid var(--rule);border-radius:14px;overflow:hidden;text-decoration:none;color:var(--ink)}
.vcard img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.vcard div{padding:12px 14px 14px}
.vcard h3{margin:0 0 6px;font-size:15px;line-height:1.55}
.vcard .note{margin:0;font-size:12.5px;line-height:1.7}
@media(max-width:700px){.voices3{grid-template-columns:1fr}}
.rep-box{display:grid;grid-template-columns:110px 1fr;gap:14px;background:#fff;border:1px solid var(--rule);border-radius:16px;padding:14px;margin:0 0 14px;align-items:start}
.rep-box img{width:110px;height:auto;border-radius:12px;display:block}
.rep-box .rep-role{margin:0;font-size:12px;color:var(--muted)}
.rep-box .rep-name{margin:0 0 6px;font-size:20px;font-weight:700;color:var(--green-d)}
.rep-box p{margin:0 0 .6em;font-size:13.5px;line-height:1.75}

.plans2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.plan2{background:#fff;border:1px solid var(--rule);border-radius:14px;padding:16px 18px}
.plan2.young{border-color:#f2c4d0;background:#fff9fb}
.plan2 h3{margin:0 0 10px;text-align:center;font-size:17px}
.plan2 dl{margin:0}
.plan2 dl div{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-top:1px solid #eee6d4;font-size:13.5px}
.plan2 dt{color:var(--muted);flex:none}
.plan2 dd{margin:0;text-align:right;font-weight:600}
@media(max-width:700px){.plans2{grid-template-columns:1fr}}

.flow-mini .steps-flow{grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 14px;max-width:none}
.flow-mini .steps-flow li{padding:12px 4px 10px;border-radius:14px;display:block;text-align:center}
.flow-mini .steps-flow li::after{display:none}
.flow-mini .steps-flow .vi{width:46px;height:46px;margin:0 auto 6px}
.flow-mini .steps-flow .vi svg{width:26px;height:26px}
.flow-mini .steps-flow .st strong{font-size:12.5px}
.flow-mini .steps-flow .st em{font-size:10px}

.faq-list{max-width:none;margin:0 0 14px}
.line-panel{background:#fff;border:2px solid #f6cdd8;border-radius:18px;padding:22px 22px 24px;text-align:center}
.line-panel .lp-eyebrow{font-size:12px;margin:0 0 6px}
.line-panel h2{font-size:24px;color:var(--green-d);margin:0 0 10px;padding:0}
.line-panel h2::before{display:none}
.line-panel ul.checks{text-align:left;display:inline-block;margin:0 0 14px}
.line-panel .btn{padding:14px 28px}

.top-row .grid{grid-template-columns:repeat(3,1fr)}
@media(max-width:800px){.top-row .grid{grid-template-columns:1fr}}

.cta-band{background:linear-gradient(90deg,rgba(255,253,246,.94),rgba(255,253,246,.7)),url(images/hero-v2.jpg) center/cover;text-align:center;padding:56px 0;border-top:1px solid #e0ead9}
.cta-band h2{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:28px;line-height:1.6;margin:0 0 12px;padding:0}
.cta-band h2::before{display:none}
.cta-band .btn{padding:16px 40px;font-size:17px}
@media(max-width:760px){.cta-band h2{font-size:22px}}

.plan2 dl div{padding:6px 0;align-items:baseline}
.plan2 dl dt{font-size:12.5px}
.plan2 dl dd{font-size:13.5px;line-height:1.6;font-weight:600;color:var(--ink)}

@media(max-width:420px){.hero3 h1{font-size:23px}.hero3 .hero3-sub{font-size:15px}}

/* WordPress版：記事ページは題名を1回だけ・長い題名でも大きくなりすぎない */
body.single .page-head h1{font-size:clamp(20px,5.2vw,30px);line-height:1.55}
.rep-intro{max-width:720px;margin:0 auto;text-align:left}.rep-intro p{margin:0 0 14px;line-height:2}.rep-intro .rep-quote{font-weight:700;color:var(--green-d);font-size:1.1em;margin:20px 0}

/* 完成図に近づける調整（10/26）：ヘッダを1段に・背景を白に近づける */
body{background:#fdfcf9}
header.site .name small{display:none}
header.site .wrap{flex-wrap:nowrap;max-width:1200px}
header.site nav.main{flex-wrap:nowrap;gap:4px 16px;font-size:13px}
header.site .head-line{white-space:nowrap}
@media (max-width:1180px){header.site .wrap{flex-wrap:wrap}header.site nav.main{flex-wrap:wrap}}

/* TOPのヒーロー：金子さん提供の写真（ブーケと手つなぎ・出どころ未確認。公開前に要確認＝00_確認待ちメモ.md）。右に写真、左のクリーム色の余白に文字を重ねる */
.hero3{background:linear-gradient(90deg,rgba(255,255,255,.62) 0%,rgba(255,255,255,.28) 42%,rgba(255,255,255,0) 68%),url(images/hero-top-v2.jpg) right center/cover no-repeat;padding:70px 0 64px}
@media (max-width:760px){.hero3{background:linear-gradient(180deg,rgba(255,255,255,.78) 0%,rgba(255,255,255,.55) 100%),url(images/hero-top-v2.jpg) 70% center/cover no-repeat;padding:44px 0 38px}}

/* 修正依頼との突き合わせ（10/26）：料金の比較表・連番の削除に伴う調整 */
.cmp-wrap{max-width:860px;margin:0 auto 28px;overflow-x:auto}
table.cmp{width:100%;border-collapse:collapse;background:#fff;font-size:14px}
table.cmp th,table.cmp td{border:1px solid #e3ece4;padding:10px 12px;text-align:center;line-height:1.6}
table.cmp thead th{background:#e9f3ec;color:var(--green-d)}
table.cmp tbody th{background:#f6faf7;color:var(--green-d);text-align:left;white-space:nowrap}
.fl-steps .fl-head{padding-left:0}

/* TOPのLINE相談パネルの写真（Pexels素材 ID 4350179・イメージ） */
.line-panel .lp-photo{display:block;width:100%;height:auto;max-height:170px;object-fit:cover;object-position:center 20%;border-radius:12px;margin:0 0 14px}

/* 「こんなお悩みはありませんか？」パネルの女性の写真（Pexels素材 ID 34357807・イメージ） */
.panel-pink{position:relative;overflow:hidden}
.panel-pink .worry-photo{position:absolute;right:0;bottom:0;height:100%;max-height:340px;width:auto;max-width:44%;object-fit:cover;object-position:left center;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 38%);mask-image:linear-gradient(90deg,transparent 0,#000 38%)}
.panel-pink h2,.panel-pink .checks{position:relative;z-index:1;max-width:62%}
@media (max-width:760px){.panel-pink .worry-photo{position:static;display:block;width:100%;max-width:100%;height:auto;max-height:220px;margin-top:12px;-webkit-mask-image:none;mask-image:none;border-radius:12px}.panel-pink h2,.panel-pink .checks{max-width:100%}}
/* 写真の差し替えに伴う位置合わせ（Pexels素材） */
.line-panel .lp-photo{object-position:center 28%}

/* ===== 下層ページの見た目（10/26）：参考サイト（ivylink-kekkon.com／loveliftpartners.com）の方向に合わせる =====
   ①ページ上部のバナー：ツタを左右の角に、タイトルは中央の明朝  ②FAQ：Q・Aのバッジ  ③流れ：縦線つきの行  ④魅力の4つ：写真が上のカード */
.page-head{position:relative;overflow:hidden;background:linear-gradient(180deg,#ffffff 0%,#f9f5e8 100%);padding:70px 0 54px;border-bottom:1px solid #eadfc4}
.page-head::before,.page-head::after{content:"";position:absolute;top:-10px;width:360px;height:130px;background:url(images/ivy-garland.png) center/contain no-repeat;pointer-events:none}
.page-head::before{left:-70px;transform:rotate(-10deg)}
.page-head::after{right:-70px;transform:scaleX(-1) rotate(-10deg)}
.page-head h1::before{display:none!important}
.page-head h1{position:relative;z-index:1;font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-weight:500;font-size:30px;letter-spacing:.16em;color:var(--green-d)}
.page-head p{position:relative;z-index:1;color:#6b6a5e;letter-spacing:.2em}
@media (max-width:760px){.page-head{padding:54px 0 38px}.page-head::before,.page-head::after{width:220px;height:80px}.page-head::before{left:-60px}.page-head::after{right:-60px}.page-head h1{font-size:23px;letter-spacing:.1em}}

/* FAQ：Q（濃い緑の四角）とA（枠のみの四角） */
.faq-list details{background:transparent;border:0;border-bottom:1px solid #e3dcc6;border-radius:0;box-shadow:none;margin:0;padding:6px 0}
.faq-list details summary{display:flex;gap:14px;align-items:flex-start;padding:16px 36px 16px 4px;font-weight:700;color:var(--green-d);line-height:1.7;cursor:pointer;list-style:none;position:relative}
.faq-list details summary::-webkit-details-marker{display:none}
.faq-list details summary::before{content:"Q";flex:0 0 32px;height:32px;display:inline-flex;align-items:center;justify-content:center;background:var(--green-d);color:#fff;border-radius:3px;font-weight:700;font-size:15px}
.faq-list details summary::after{content:"";position:absolute;right:10px;top:26px;width:9px;height:9px;border-right:2px solid var(--green-d);border-bottom:2px solid var(--green-d);transform:rotate(45deg);transition:transform .2s}
.faq-list details[open] summary::after{transform:rotate(-135deg);top:30px}
.faq-list details .ans{display:flex;gap:14px;align-items:flex-start;padding:2px 4px 18px}
.faq-list details .ans::before{content:"A";flex:0 0 32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--green-d);color:var(--green-d);background:#fff;border-radius:3px;font-weight:700;font-size:15px}
.faq-list details .ans p{margin:4px 0 0;line-height:1.95;color:#404040}

/* 流れ：縦線つきの行（番号は出さない）。左にイラスト、右に見出しと本文 */
.fl-steps>li{background:transparent;border:0;box-shadow:none;border-left:2px solid #c9d8c9;border-radius:0;padding:6px 0 6px 28px;margin-left:12px}
.fl-steps>li::before{content:"";position:absolute;left:-7px;top:12px;width:12px;height:12px;border-radius:50%;background:var(--green-d)}
.fl-steps>li:not(:last-child)::after{display:none}
.fl-head h3{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-weight:500;letter-spacing:.08em}
.fl-sub{color:var(--green-d);font-weight:500}

/* 魅力の4つ：写真が上、題名は帯の中（loveliftpartners の特徴カードの形） */
@media (min-width:900px){
  .points{grid-template-columns:repeat(2,1fr);max-width:1000px;gap:26px}
  .point,.point:nth-child(even){display:block;border-radius:6px;border:1px solid #e3dcc6;box-shadow:0 8px 24px rgba(60,50,30,.1)}
  .point img,.point:nth-child(even) img{order:0;width:100%;height:200px;min-height:0;object-fit:cover}
  .point>div{padding:0}
  .point h3{margin:0;padding:16px 22px;background:#e9e4d4;text-align:center;font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-weight:500;letter-spacing:.06em}
  .point p{padding:18px 24px 22px}
}
.faq-list details summary::before{position:static!important;left:auto!important;top:auto!important;transform:none!important;margin:0!important;border-radius:3px!important;width:32px!important;height:32px!important}
.faq-list details summary{padding-left:4px!important}

/* ===== 下層ページのつくり直し（2026-10-26）：参考サイト（ivylink-kekkon.com／loveliftpartners.com）のつくり =====
   写真素材：Pexels（lw-step1〜6・lw-price）。クラス名は .lw- で始める */
/* 流れ：左に縦線と点、中央に見出しと本文、右に写真。帯の色を交互に */
.lw-band{padding:0}
.lw-b1{background:#fff}
.lw-b2{background:#f7f2e4}
.lw-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,380px);gap:34px;align-items:center;max-width:960px;margin:0 auto;padding:54px 0 54px 52px}
.lw-row::before{content:"";position:absolute;left:21px;top:0;bottom:0;width:2px;background:#b9cdbc}
.lw-row::after{content:"";position:absolute;left:14px;top:50%;width:16px;height:16px;margin-top:-8px;border-radius:50%;background:var(--green-d);box-shadow:0 0 0 6px rgba(23,92,65,.13)}
.lw-body h3{margin:0;font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-weight:500;font-size:26px;letter-spacing:.08em;color:var(--green-d);line-height:1.5}
.lw-sub{margin:6px 0 14px;font-size:15px;font-weight:700;color:#7a6a3a;line-height:1.7}
.lw-text{margin:0;font-size:15.5px;line-height:2;color:#404040}
.lw-photo{margin:0}
.lw-photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:6px;box-shadow:0 12px 28px rgba(40,40,30,.18)}
.lw-end{background:#fff;padding:40px 0 56px}
.lw-end-box{position:relative;max-width:960px;margin:0 auto;border-radius:8px;overflow:hidden;box-shadow:0 12px 28px rgba(40,40,30,.16)}
.lw-end-box img{display:block;width:100%;height:280px;object-fit:cover}
.lw-end-cap{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff;background:linear-gradient(rgba(30,50,40,.38),rgba(30,50,40,.5));padding:0 18px}
.lw-end-cap strong{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-weight:500;font-size:26px;letter-spacing:.12em}
.lw-end-cap span{margin-top:8px;font-size:15px;letter-spacing:.08em}
@media (max-width:820px){
  .lw-row{grid-template-columns:minmax(0,1fr);gap:18px;padding:38px 0 38px 34px}
  .lw-row::before{left:12px}
  .lw-row::after{left:5px;top:50px;margin-top:0}
  .lw-body h3{font-size:21px}
  .lw-end-box img{height:200px}.lw-end-cap strong{font-size:20px}
}
/* 料金：先頭の写真の帯と、コースの見出し・プランのカード */
.lw-strip{max-height:260px;overflow:hidden;background:#eee}
.lw-strip img{display:block;width:100%;height:260px;object-fit:cover}
h3.course{background:linear-gradient(90deg,#e3efe6,#f5efdd);padding:14px 20px;border-radius:6px;font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-weight:500;letter-spacing:.16em;color:var(--green-d)}
.plans .plan{border-radius:10px;box-shadow:0 10px 26px rgba(40,60,45,.12);padding:26px 24px}
@media (max-width:760px){.lw-strip,.lw-strip img{height:150px;max-height:150px}}
/* アイビーマリッジについて：代表を大きな写真と本文の2列に */
.rep-profile{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:start;max-width:1000px;margin-left:auto;margin-right:auto}
.rep-photo img{display:block;width:100%;height:auto;border-radius:10px;box-shadow:0 14px 32px rgba(60,50,30,.18)}
@media (max-width:820px){.rep-profile{grid-template-columns:minmax(0,1fr);gap:22px}.rep-photo{max-width:340px;margin:0 auto}}
/* FAQ：上のLINE無料相談の案内 */
.lw-linehead{background:#f7f2e4;padding:46px 0 30px}
.lw-linebox{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:34px;align-items:center;max-width:960px;margin:0 auto;background:#fff;border:1px solid #e3dcc6;border-radius:10px;overflow:hidden;box-shadow:0 12px 30px rgba(60,50,30,.12)}
.lw-linebox img{display:block;width:100%;height:100%;min-height:280px;object-fit:cover;object-position:center 30%}
.lw-linebox>div{padding:28px 32px 30px 0}
.lw-linebox h2{margin:4px 0 14px;text-align:left;font-size:26px}
.lw-linebox h2::before{display:none}
.lw-eb{margin:0;color:var(--pink-d,#e0457b);font-weight:700;font-size:13.5px;letter-spacing:.06em}
.lw-linebox .checks{margin:0 0 18px}
@media (max-width:820px){.lw-linebox{grid-template-columns:minmax(0,1fr);gap:0}.lw-linebox img{min-height:0;height:200px}.lw-linebox>div{padding:22px 20px 26px}}
/* ブログ一覧：カードの余白・日付・題名 */
.blog-card{border-radius:8px;overflow:hidden;box-shadow:0 8px 22px rgba(60,50,30,.1)}
.blog-card .no{margin:12px 16px 4px;color:#8a7a52;font-size:12.5px;letter-spacing:.08em}
.blog-card h3{margin:0 16px 8px;font-size:16.5px;line-height:1.65}
.blog-card .bex{margin:0 16px 16px;font-size:13px;line-height:1.8;color:#555}
.lw-linebox img{object-position:center 28%}

/* スマホで写真の顔が見切れる件（10/26）：TOPの選ばれる理由 */
@media (max-width:760px){.reason2{grid-template-columns:1fr}.reason2 img{width:100%;height:auto;min-height:0;aspect-ratio:720/425}}
@media (min-width:761px) and (max-width:1000px){.reason2{grid-template-columns:42% 1fr}.reason2 img{width:100%;object-position:center 25%}}
/* 悩み写真：スマホ・PCとも顔が切れないように */
@media (max-width:760px){.panel-pink .worry-photo{max-height:none;height:auto;aspect-ratio:520/536;object-fit:cover;object-position:center top}}
.panel-pink .worry-photo{object-position:center 12%}

/* 写真の顔が見切れないように（10/26・PCとスマホで同じ見え方に） */
.reason2{grid-template-columns:1fr}
.reason2 img{width:100%;height:auto;min-height:0;aspect-ratio:720/425;object-position:center 25%}
.bthumb img{object-position:center 18%}
.points .point img{object-position:center 22%}
@media (max-width:820px){
  .lw-linebox img{height:auto;aspect-ratio:700/560;object-position:center 22%}
  .line-panel .lp-photo{max-height:none;aspect-ratio:1000/400;height:auto}
}

/* スマホで短い見出しが2段に折れないように（10/26） */
@media (max-width:520px){.flow-mini .steps-flow{grid-template-columns:repeat(2,1fr)}.flow-mini .steps-flow .st strong{white-space:nowrap}}

/* スマホで文字が1〜2字だけ折れて残らないように（10/26） */
p,li,summary,td,th,.sub,figcaption{text-wrap:wrap;word-break:auto-phrase;line-break:strict}
@media (max-width:420px){
  .cta-card-eb{font-size:12.5px;letter-spacing:.06em;white-space:nowrap}
  .cta-card-ti{font-size:21px;letter-spacing:.04em;white-space:nowrap}
  .cta-card-bt{font-size:13.5px;white-space:nowrap;padding:11px 14px 11px 10px;gap:6px;letter-spacing:.02em}
  .cta-card-nt{font-size:11.5px;white-space:nowrap;letter-spacing:.02em}
}
@media (max-width:520px){
  table.cmp{font-size:13px}
  table.cmp td,table.cmp thead th{white-space:nowrap;padding:9px 8px}
}
@media (max-width:520px){table:not(.cmp) th{white-space:nowrap}ul.checks li{font-size:14.5px}}

/* スマホの「ご成婚までの流れ」：縦に並べて下向きの矢印で順番を見せる（10/26・番号は出さない） */
@media (max-width:520px){
  .flow-mini .steps-flow{grid-template-columns:1fr;gap:24px}
  .flow-mini .steps-flow li{display:flex;align-items:center;gap:14px;text-align:left;padding:10px 18px}
  .flow-mini .steps-flow .vi{margin:0;flex:none}
  .flow-mini .steps-flow li:not(:last-child)::after{display:block;content:"";position:absolute;left:50%;right:auto;top:auto;bottom:-19px;width:11px;height:11px;border-top:3px solid var(--green);border-right:3px solid var(--green);transform:translateX(-50%) rotate(135deg);animation:none}
}
/* TOPのLINE相談パネル：スマホでは上半身まで写る写真に（10/26） */
@media (max-width:760px){.line-panel .lp-photo{aspect-ratio:700/560;width:100%;height:auto;max-height:none;object-fit:cover;object-position:center 20%}}
/* TOPのLINE相談パネル：PCもスマホも同じ写真・同じ切り抜き（10/26） */
.line-panel .lp-photo{aspect-ratio:700/560;width:100%;height:auto;max-height:none;object-fit:cover;object-position:center 20%}

/* TOPヒーロー：スマホでは文字の下に写真を置き、文字と人が重ならないように（10/26） */
@media (max-width:760px){
  .hero3{background:#fffdf6 url(images/hero-top-v2.jpg) 85% bottom/auto 235px no-repeat;padding:44px 0 250px}
}

/* 見出し上の葉っぱの装飾をすべて外す（10/26）。ページ上部の蔦の帯（.page-head）は残す */
h2::before,main>section h2::before,main>section:nth-of-type(n) h2::before,.page-head h1::before,.lp-final h2::before{display:none!important;content:none!important;height:0!important;margin:0!important}

/* 蔦の飾りをすべて外す：ページ上部の帯・緑のカード内の蔦 */
.page-head::before,.page-head::after,.cta-card-ivy,.act-flow::after{display:none!important;content:none!important}

/* TOPのファーストビュー：見出しと説明文を1文字ずつ表示する（front-page.php のスクリプトと対）。
   html に tw-pre が付くのはスクリプトが動くときだけ＝動かなければ最初から全部見える */
.tw-pre .hero3 h1,.tw-pre .hero3 .hero3-sub{opacity:0}
.tw-pre.tw-go .hero3 h1,.tw-pre.tw-go .hero3 .hero3-sub{opacity:1}
.tw-pre .hero3 .btn,.tw-pre .hero3 .note{opacity:0}
.tw-pre.tw-end .hero3 .btn,.tw-pre.tw-end .hero3 .note{opacity:1;transition:opacity .7s ease}
.tw-pre .tw-c{opacity:0;transition:opacity .3s ease}
.tw-pre .tw-c.on{opacity:1}
.tw-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;-webkit-user-select:none;user-select:none}
@media (prefers-reduced-motion:reduce){.tw-pre .hero3 h1,.tw-pre .hero3 .hero3-sub,.tw-pre .hero3 .btn,.tw-pre .hero3 .note{opacity:1}.tw-pre .tw-c{opacity:1;transition:none}}
/* 保険（CSSだけ）：スクリプトが途中で止まっても、8秒後には必ず全部見える */
@keyframes twFs{to{opacity:1}}
.tw-pre .hero3 h1,.tw-pre .hero3 .hero3-sub,.tw-pre .hero3 .btn,.tw-pre .hero3 .note,.tw-pre .tw-c{animation:twFs .4s 8s forwards}
