
/* ===== 追加修正（2026-09-24） ===== */
/* 製品ステージ：反射・影を外し、ホバーは拡大のみ */
.stage .obj .rf,.stage .obj .pl{display:none}
.stage .obj img{transition:transform .6s var(--ease)}
.stage:hover .obj img{transform:scale(1.04)}
/* 必須表示：赤文字のみ */
.f label i{background:none;color:var(--error);padding:0;margin-left:.5rem;font-size:.8125rem;font-weight:500}
/* スマホ追従バー：形を揃える／問い合わせ・DLページでは非表示 */
.spbar{border-radius:10px;padding:.5rem;background:var(--ink)}
.spbar .btn{border-radius:8px}
.spbar .btn.ghost-w{border-color:transparent;color:#fff}
body.no-spbar .spbar{display:none!important}

.h4{font-size:inherit;margin:0 0 .75rem}
.box .h4,.cinfo .h4{font-family:var(--mono);font-size:.75rem;letter-spacing:0.02em;color:var(--brass-dp);font-weight:500}

/* ================= 下層ページ共通 ================= */
body.sub .gh{background:rgba(255,255,255,.78);backdrop-filter:saturate(160%) blur(14px);padding:0.75rem 0;border-bottom:1px solid var(--line)}
.ph{position:relative;overflow:hidden;background:var(--paper);padding:10.625rem 0 5.625rem}
.ph .mist-a{width:50vw;height:50vw;right:-14vw;top:-22vw}
.ph .wrap{position:relative;z-index:2}
.ph .eyebrow{display:flex;align-items:center;gap:0.875rem;color:var(--brass-dp);margin:1.75rem 0 1.375rem}
.ph .eyebrow::before{content:"";width:34px;height:1px;background:var(--brass)}
.ph h1{font-size:clamp(36px,4.8vw,62px);line-height:1.25;letter-spacing:0.02em;font-weight:500;max-width:22em}
.ph.ph-article h1{font-size:clamp(26px,2.6vw,36px);line-height:1.55;max-width:30em}
.ph .lead{margin:1.625rem 0 0;font-size:1rem;line-height:1.8;color:var(--ink-2);max-width:40em;font-weight:300}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:0.625rem;color:var(--mute)}
.crumbs a{text-decoration:none;color:var(--mute)}
.crumbs a:hover{color:var(--ink)}
.crumbs i{font-style:normal;opacity:.5}
.crumbs span{color:var(--ink)}

/* 定義文 */
.def{padding:7.5rem 0;background:#fff;border-bottom:1px solid var(--line)}
.def-g{display:grid;grid-template-columns:1fr 3fr;gap:3.75rem;align-items:start}
.def-g .k{color:var(--brass);padding-top:0.75rem;display:flex;align-items:center;gap:0.75rem}
.def-g .k::before{content:"";width:24px;height:1px;background:var(--brass)}
.def p.lead{margin:0 0 1.375rem;font-family:var(--serif);font-size:clamp(22px,2.4vw,32px);line-height:1.8;letter-spacing:0.02em;max-width:26em}
.def p.lead b{font-weight:600}
.def p.sub{margin:0;font-size:0.9375rem;line-height:1.8;color:var(--ink-2);max-width:40em;font-weight:300}
.def-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:2.75rem;border-top:1px solid var(--line)}
.def-facts>div{padding:1.25rem 1.5rem 0 0;border-right:1px solid var(--line);margin-right:1.5rem}
.def-facts>div:last-child{border:0;margin:0}
.def-facts span{display:block;color:var(--mute);margin-bottom:0.375rem}
.def-facts b{font-family:var(--serif);font-size:1.5rem;font-weight:500;line-height:1}
.def-facts b small{font-family:var(--sans);font-size:0.875rem;color:var(--mute);margin-left:3px;letter-spacing:0.06em}

/* 選ばれる理由：ピラー */
.pillars{display:grid;grid-template-columns:230px 1fr;gap:4.375rem;align-items:start}
.pnav{position:sticky;top:120px;display:flex;flex-direction:column;gap:2px}
.pnav a{display:flex;align-items:center;gap:0.875rem;padding:0.875rem 0;text-decoration:none;font-size:1rem;letter-spacing:0.02em;color:var(--mute);
  border-top:1px solid var(--line);transition:.3s var(--ease)}
.pnav a:last-child{border-bottom:1px solid var(--line)}
.pnav a .mono{color:var(--brass);min-width:22px}
.pnav a.on{color:var(--ink);padding-left:0.5rem}
.pillar{display:grid;grid-template-columns:1.1fr .9fr;gap:3.5rem;align-items:center;padding:0 0 6.875rem;margin-bottom:6.875rem;border-bottom:1px solid var(--line)}
.pillar:last-child{border:0;margin:0;padding-bottom:0}
.pillar .k{color:var(--brass-dp);display:flex;align-items:center;gap:0.75rem;margin-bottom:1.375rem}
.pillar .k::before{content:"";width:24px;height:1px;background:var(--brass)}
.pillar h2{font-family:var(--serif);font-size:clamp(26px,2.6vw,34px);line-height:1.45;letter-spacing:0.02em;margin-bottom:1.375rem}
.pillar p{margin:0 0 1rem;font-size:1rem;line-height:1.8;color:var(--ink-2);font-weight:300}
.pillar p a{color:var(--brass-dp)}
.plinks{display:flex;gap:1.875rem;flex-wrap:wrap;margin-top:0.625rem}
.pvis{border-radius:12px;background:#fff;border:1px solid var(--line);padding:2.5rem;min-height:380px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.pvis.photo{aspect-ratio:4/3;min-height:0;padding:0;border:0;background:var(--g,linear-gradient(160deg,#EDE8DF,#D8D0C2));
  background-size:cover;background-position:center}
.pvis.photo::after{content:"";position:absolute;inset:0;opacity:.35;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence baseFrequency='1.1' numOctaves='2'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .05 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
.pvis.photo span{position:absolute;left:22px;bottom:20px;z-index:2;font-size:1rem;letter-spacing:0.02em;padding:0.375rem 0.75rem;border-radius:999px;background:rgba(255,255,255,.75)}
/* 01 rings */
.pvis.rings{aspect-ratio:1/1;min-height:0;padding:0;background:radial-gradient(circle at 50% 50%,#fff 0%,#FBFAF7 60%,#F4F1EA 100%)}
.ring{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:1px solid var(--line);border-radius:50%;display:flex;align-items:flex-start;justify-content:center}
.ring span{position:absolute;top:10px;font-size:1rem;letter-spacing:0.02em;color:var(--mute);background:#fff;padding:2px 0.625rem;border-radius:999px}
.ring.r3{width:86%;height:86%}
.ring.r2{width:56%;height:56%;border-color:rgba(168,137,79,.5)}
.ring.r1{width:26%;height:26%;background:var(--ink);border-color:var(--ink);align-items:center}
.ring.r1 span{position:static;background:none;color:#F1ECE3;font-size:1.375rem;letter-spacing:0.02em;padding:0}
.lbl-r{position:absolute;left:24px;bottom:20px;color:var(--mute)}
/* 02 year */
.yr{width:100%}
.yr-h{display:flex;justify-content:space-between;color:var(--mute);margin-bottom:0.875rem}
.months{display:grid;grid-template-columns:repeat(12,1fr);gap:0.375rem}
.mo{text-align:center}
.mo i{display:block;height:6px;border-radius:3px;background:var(--line);margin-bottom:0.5rem}
.mo.v i{background:var(--brass);height:14px;margin-top:-0.5rem}
.mo span{font-family:var(--mono);font-size:1rem;color:var(--mute)}
.mo.v span{color:var(--ink)}
.yr-note{margin-top:1.625rem;color:var(--brass-dp)}
/* 03 flows */
.flows{display:grid;grid-template-columns:1fr 1fr;gap:1.125rem;width:100%}
.fl{border-radius:12px;padding:1.375rem 1.25rem}
.fl.x{background:var(--paper)}
.fl.me{background:var(--ink);color:#F1ECE3}
.fl-h{color:var(--mute);margin-bottom:0.875rem}
.fl.me .fl-h{color:var(--brass-2)}
.fl ol{margin:0;padding:0;list-style:none;counter-reset:f}
.fl li{position:relative;padding:0.5rem 0 0.5rem 1.875rem;font-size:1rem;border-top:1px dashed rgba(22,20,15,.15)}
.fl.me li{border-color:rgba(255,255,255,.14)}
.fl li:first-child{border:0}
.fl li::before{counter-increment:f;content:counter(f);position:absolute;left:0;top:9px;width:20px;height:20px;border-radius:50%;font-family:var(--mono);font-size:1rem;
  display:grid;place-items:center;background:#fff;color:var(--mute);border:1px solid var(--line)}
.fl.me li::before{background:var(--brass);color:#fff;border-color:var(--brass)}
/* 04 nums */
.tnums{display:grid;grid-template-columns:1fr 1fr;gap:0.875rem;width:100%}
.tnums>div{padding:1.375rem 1.375rem;border:1px solid var(--line);border-radius:12px;background:var(--paper)}
.tnums b{display:block;font-family:var(--serif);font-size:clamp(30px,3vw,42px);line-height:1;font-weight:500;margin-bottom:0.5rem;white-space:nowrap}
.tnums b small{font-family:var(--sans);font-size:0.875rem;color:var(--mute);margin-left:3px}
.tnums span{color:var(--mute);font-size:1rem}

/* 4点セット */
.set{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.set>div{background:#fff;padding:2.375rem 1.875rem}
.set .n{font-family:var(--serif);font-size:2.5rem;line-height:1;color:transparent;-webkit-text-stroke:1px var(--brass);margin-bottom:1.375rem}
.set h3{font-family:var(--serif);font-size:1.25rem;letter-spacing:0.02em;margin-bottom:0.625rem}
.set p{margin:0;font-size:1rem;color:var(--ink-2);line-height:1.8;font-weight:300}

/* 3カラム汎用 */
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.trio>*{border:1px solid var(--line);border-radius:12px;padding:2.25rem 2rem;background:#fff;text-decoration:none;color:var(--ink);transition:.35s var(--ease)}
.trio a:hover{border-color:var(--ink);transform:translateY(-4px)}
.trio .k{color:var(--brass-dp);margin-bottom:1rem}
.trio h3{font-family:var(--serif);font-size:1.3125rem;letter-spacing:0.02em;margin-bottom:0.75rem;line-height:1.5}
.trio p{margin:0;font-size:1rem;color:var(--ink-2);line-height:1.8;font-weight:300}
.trio .ar{display:inline-block;margin-top:1.125rem;font-size:0.875rem;letter-spacing:0.08em;color:var(--brass-dp)}

/* 2カラム記事 */
.two{display:grid;grid-template-columns:1fr 1fr;gap:4.375rem;align-items:start}
.two .txt h3{font-family:var(--serif);font-size:1.625rem;line-height:1.5;letter-spacing:0.02em;margin-bottom:1.875rem}
.two .txt p{margin:0 0 1rem;font-size:1rem;line-height:1.8;color:var(--ink-2);font-weight:300}
.pane{border-radius:12px;background:var(--paper);padding:2.5rem;min-height:320px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center}
.pane ul{margin-top:auto}
.pane .big+.cap+ul{margin-top:1.875rem}
.pane.dark{background:var(--deep);color:#F1ECE3}
.pane .big{font-family:var(--serif);font-size:clamp(44px,5vw,72px);line-height:1;font-weight:500}
.pane .big small{font-family:var(--sans);font-size:0.875rem;color:var(--mute);margin-left:0.375rem}
.pane.dark .big small{color:#9E968A}
.pane .cap{margin:0.875rem 0 0;font-size:1rem;color:var(--mute);letter-spacing:0.02em}
.pane ul{list-style:none;margin:0;padding:0}
.pane li{display:flex;justify-content:space-between;padding:0.875rem 0;border-bottom:1px solid var(--line);font-size:1rem}
.pane.dark li{border-color:var(--line-w)}
.pane li:last-child{border:0}
.pane li span:first-child{color:var(--mute)}

/* スペック表 */
.spec-t{width:100%;border-collapse:collapse;font-size:1rem}
.spec-t th,.spec-t td{padding:1.125rem 1.25rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.spec-t th{font-weight:500;color:var(--mute);font-size:1rem;width:200px}
.spec-t thead th{color:var(--ink);font-family:var(--serif);font-size:1.25rem;letter-spacing:0.02em;border-bottom:2px solid var(--ink);width:auto}
.spec-t td b{font-family:var(--serif);font-size:1.5rem;font-weight:500}

/* 香り一覧（グリッド） */
.sgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.125rem}
.sgrid .sc{flex:none;aspect-ratio:auto;min-height:300px}
.sgrid .sc h3{font-size:1.125rem;white-space:nowrap;letter-spacing:0}
.sgrid .sc{min-height:380px;justify-content:flex-end;display:flex;flex-direction:column}
.sc.photo .oils{color:rgba(255,255,255,.72);font-size:0.875rem}.sc.photo .place{color:var(--brass-2)}
.scat{margin-bottom:3.5rem}
.scat h3{font-family:var(--serif);font-size:1.375rem;letter-spacing:0.02em;margin-bottom:1.125rem;display:flex;align-items:baseline;gap:0.875rem}
.scat h3 small{font-family:var(--mono);font-size:0.875rem;letter-spacing:0.08em;color:var(--brass-dp)}
.legend{display:flex;gap:1.125rem;flex-wrap:wrap;margin-bottom:2.125rem;font-size:1rem;color:var(--ink-2)}
.legend span{display:inline-flex;align-items:center;gap:0.5rem}
.legend i{width:10px;height:10px;border-radius:50%}
.rec{display:grid;grid-template-columns:repeat(3,1fr);gap:1.125rem}
.rec>div{border:1px solid var(--line);border-radius:12px;padding:1.875rem}
.rec h4{font-family:var(--serif);font-size:1.1875rem;margin:0 0 0.875rem;letter-spacing:0.02em}
.rec ol{margin:0;padding-left:1.25rem;font-size:1rem;line-height:1.8}

/* シーン */
.scene{display:grid;grid-template-columns:1fr 1fr;gap:3.75rem;align-items:center;padding:4.375rem 0;border-top:1px solid var(--line)}
.scene:first-child{border-top:0;padding-top:0}
.scene:nth-child(even) .vis{order:2}
.scene .vis{aspect-ratio:4/3;border-radius:12px;background:var(--g);position:relative;overflow:hidden}
.scene .vis::after{content:"";position:absolute;inset:0;opacity:.45;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence baseFrequency='1.1' numOctaves='2'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .05 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
.scene .vis span{position:absolute;left:24px;bottom:22px;z-index:2;font-size:1rem;letter-spacing:0.02em;padding:0.375rem 0.75rem;border-radius:999px;background:rgba(255,255,255,.7)}
.scene .k{color:var(--brass-dp);margin-bottom:1rem}
.scene h3{font-family:var(--serif);font-size:1.75rem;line-height:1.45;letter-spacing:0.02em;margin-bottom:1rem}
.scene p{margin:0 0 1.375rem;font-size:1rem;line-height:1.8;color:var(--ink-2);font-weight:300}
.scene dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:0.5rem 1.25rem;font-size:1rem;padding-top:1.25rem;border-top:1px solid var(--line)}
.scene dt{color:var(--mute);margin:0}.scene dd{margin:0}

/* 比較表 */
.cmp{width:100%;border-collapse:collapse;font-size:1rem}
.cmp th,.cmp td{padding:1.375rem 1.5rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;line-height:1.8}
.cmp thead th{font-family:var(--mono);font-size:1rem;letter-spacing:0.02em;color:var(--mute);font-weight:400;border-bottom:1px solid var(--ink);padding-bottom:0.875rem}
.cmp thead th.me{color:var(--brass-dp)}
.cmp td:first-child{color:var(--mute);font-size:1rem;width:180px}
.cmp td.me{font-weight:500;background:linear-gradient(90deg,rgba(201,173,110,.10),transparent)}
.cmp td.x{color:var(--mute)}

/* 数字バンド */
.pnums{display:grid;grid-template-columns:repeat(4,1fr);gap:1.125rem}
.pnums>div{border:1px solid var(--line);border-radius:12px;padding:2.125rem 1.875rem;background:#fff}
.pnums b{display:block;font-family:var(--serif);font-size:clamp(36px,3.6vw,52px);line-height:1;font-weight:500;margin-bottom:0.625rem}
.pnums b small{font-family:var(--sans);font-size:0.875rem;color:var(--mute);margin-left:0.25rem}
.pnums span{font-size:1rem;color:var(--mute);letter-spacing:0.02em}

/* フィルタ */
.filters{display:flex;flex-wrap:wrap;gap:0.5rem;margin-bottom:2.75rem}
.filters button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:0.5625rem 1.125rem;font-size:0.875rem;letter-spacing:0.06em;cursor:pointer;font-family:var(--sans);transition:.25s}
.filters button.on,.filters button:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.filters .lab{font-family:var(--mono);font-size:0.875rem;color:var(--mute);align-self:center;margin-right:0.375rem}
.cases.grid3{align-items:stretch}
.cases.grid3 .case:nth-child(n){margin-top:0}

/* 記事一覧 */
.tabs{display:flex;gap:1.625rem;border-bottom:1px solid var(--line);margin-bottom:2.5rem;overflow-x:auto}
.tabs a{text-decoration:none;font-size:1rem;letter-spacing:0.02em;color:var(--mute);padding:0.875rem 0;white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs a.on{color:var(--ink);border-color:var(--ink)}
.postgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.625rem 1.5rem}
.pcard{text-decoration:none;color:var(--ink)}
.pcard .th{aspect-ratio:16/10;border-radius:12px;background:var(--g);margin-bottom:1.125rem;position:relative;overflow:hidden;transition:.5s var(--ease)}
.pcard:hover .th{transform:translateY(-4px)}
.pcard .th::after{content:"";position:absolute;inset:0;opacity:.45;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence baseFrequency='1.1' numOctaves='2'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .05 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
.pcard .m{display:flex;gap:0.875rem;align-items:center;color:var(--mute);margin-bottom:0.625rem}
.pcard .m .c{color:var(--brass-dp)}
.pcard h3{font-size:1.0312rem;line-height:1.7;font-weight:500;letter-spacing:0.02em}

/* 記事本文 */
.art{display:grid;grid-template-columns:1fr 300px;gap:4.375rem;align-items:start}
.art .body{max-width:720px}
.art .body h2{font-family:var(--serif);font-size:1.625rem;line-height:1.5;letter-spacing:0.02em;margin:3.5rem 0 1.125rem;padding-top:1.625rem;border-top:1px solid var(--line)}
.art .body h2:first-child{margin-top:0;padding-top:0;border:0}
.art .body h3{font-size:1.125rem;margin:2.125rem 0 0.75rem;font-weight:600}
.art .body p{margin:0 0 1.125rem;font-size:1rem;line-height:1.8;color:var(--ink-2)}
.art .body .ans{padding:1.375rem 1.625rem;background:var(--paper);border-left:2px solid var(--brass);border-radius:0 10px 10px 0;margin:0 0 1.5rem;font-size:1rem;line-height:1.8}
.art .body table{width:100%;border-collapse:collapse;font-size:1rem;margin:0.5rem 0 1.625rem}
.art .body th,.art .body td{padding:0.8125rem 0.875rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;line-height:1.8}
.art .body th{font-weight:500;background:var(--paper);font-size:1rem}
.art .body ul{margin:0 0 1.25rem;padding-left:1.375rem;font-size:1rem;line-height:1.8}
.art .meta{display:flex;flex-wrap:wrap;gap:1.125rem;align-items:center;color:var(--mute);margin-bottom:2.125rem}
.art .meta .c{color:var(--brass-dp)}
.art aside{position:sticky;top:110px}
.art aside .box{border:1px solid var(--line);border-radius:12px;padding:1.625rem;margin-bottom:1.125rem}
.art aside h4{font-family:var(--mono);font-size:1rem;letter-spacing:0.02em;color:var(--brass-dp);margin:0 0 0.875rem;font-weight:400}
.art aside ul{list-style:none;margin:0;padding:0}
.art aside li{padding:0.5625rem 0;border-top:1px solid var(--line);font-size:1rem;line-height:1.7}
.art aside li:first-child{border:0;padding-top:0}
.art aside a{text-decoration:none}
.art aside .box.dk{background:var(--deep);color:#F1ECE3;border-color:var(--deep)}
.art aside .box.dk h4{color:var(--brass-2)}
.art aside .box.dk p{margin:0 0 1rem;font-size:1rem;line-height:1.8;color:#B6AE9F}
.author{display:flex;gap:1rem;align-items:center;margin-top:3.125rem;padding-top:1.625rem;border-top:1px solid var(--line)}
.author .av{width:52px;height:52px;border-radius:50%;background:var(--paper-2);flex:none;overflow:hidden}
.author .av img{width:100%;height:100%;object-fit:cover;display:block}
.author b{display:block;font-weight:500;font-size:0.875rem}
.author span{font-size:0.875rem;color:var(--mute)}

/* 資料 */
.docgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.docc{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;transition:.35s var(--ease)}
.docc:hover{border-color:var(--ink);transform:translateY(-4px)}
.docc .cv{aspect-ratio:4/3;background:var(--g);position:relative;display:flex;align-items:flex-end;padding:1.375rem}
.docc .cv::after{content:"";position:absolute;inset:0;opacity:.4;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence baseFrequency='1.1' numOctaves='2'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .05 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
.docc .cv .t{position:relative;z-index:2;font-family:var(--serif);font-size:1.25rem;line-height:1.45;letter-spacing:0.02em;max-width:12em}
.docc .cv .t small{display:block;font-family:var(--mono);font-size:0.875rem;letter-spacing:0.08em;color:var(--brass-dp);margin-bottom:0.625rem}
.docc .bd{padding:1.5rem 1.625rem 1.75rem;flex:1;display:flex;flex-direction:column}
.docc .bd p{margin:0 0 1.125rem;font-size:1rem;line-height:1.8;color:var(--ink-2);font-weight:300;flex:1}
.docc .bd .dl{font-size:1rem;letter-spacing:0.02em;color:var(--brass-dp)}
.dl-wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:3.75rem;align-items:start}
.dl-wrap .cover{aspect-ratio:4/3;border-radius:12px;background:var(--g);display:flex;align-items:flex-end;padding:2.125rem;position:relative;overflow:hidden}
.dl-wrap .cover .t{position:relative;z-index:2;font-family:var(--serif);font-size:1.75rem;line-height:1.4}
.dl-wrap .cover .t small{display:block;font-family:var(--mono);font-size:0.875rem;letter-spacing:0.08em;color:var(--brass-dp);margin-bottom:0.75rem}
.dl-wrap .toc{margin-top:2.125rem}
.dl-wrap .toc h3{font-family:var(--mono);font-size:1rem;letter-spacing:0.02em;color:var(--brass-dp);font-weight:400;margin-bottom:0.875rem}
.dl-wrap .toc ol{margin:0;padding-left:1.375rem;font-size:1rem;line-height:1.8}

/* フォーム */
.form{border:1px solid var(--line);border-radius:12px;padding:2.5rem;background:#fff}
.form h3{font-family:var(--serif);font-size:1.375rem;letter-spacing:0.02em;margin-bottom:0.375rem}
.form .sub{font-size:0.875rem;color:var(--mute);margin:0 0 1.75rem}
.f{margin-bottom:1.375rem}
.f label{display:block;font-size:1rem;margin-bottom:0.5rem;font-weight:500}
.f label i{font-style:normal;color:var(--brass-dp);font-family:var(--mono);font-size:1rem;margin-left:0.5rem;letter-spacing:0.02em}
.f input,.f select,.f textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:0.875rem 1rem;font-size:1rem;font-family:var(--sans);background:#fff;transition:.25s}
.f input:focus,.f select:focus,.f textarea:focus{border-color:var(--ink)}
.f textarea{min-height:140px;resize:vertical}
.f .chk{display:flex;gap:0.75rem;align-items:flex-start;font-size:1rem;line-height:1.8}
.f .chk input{width:auto;margin-top:0.375rem}
.form .btn{width:100%;justify-content:center;padding:1.125rem;margin-top:0.5rem}
.form .note{font-size:0.875rem;color:var(--mute);margin-top:1rem;line-height:1.8}
.two.form-two{grid-template-columns:1fr 1.1fr}
.side-info{display:grid;gap:1.125rem}
.side-info>div{border:1px solid var(--line);border-radius:12px;padding:1.625rem 1.75rem}
.side-info h4{font-family:var(--mono);font-size:1rem;letter-spacing:0.02em;color:var(--brass-dp);font-weight:400;margin:0 0 0.75rem}
.side-info p{margin:0;font-size:1rem;line-height:1.8}
.side-info .tel{font-family:var(--serif);font-size:1.75rem;letter-spacing:0.02em}
.side-info ol{margin:0;padding-left:1.25rem;font-size:1rem;line-height:1.8}

/* 完了 */
.thanks{padding:11.25rem 0 8.75rem;text-align:center;background:var(--paper);position:relative;overflow:hidden}
.thanks .k{color:var(--brass-dp);margin-bottom:1.375rem}
.thanks h1{font-family:var(--serif);font-size:clamp(30px,4vw,52px);letter-spacing:0.02em;margin-bottom:1.375rem}
.thanks p{font-size:1rem;line-height:1.8;color:var(--ink-2);max-width:34em;margin:0 auto 2.125rem}
.thanks .acts{display:flex;gap:0.75rem;justify-content:center;flex-wrap:wrap}

/* 料金 */
.pgrid.sub-p .pc .amt b{font-size:clamp(56px,6vw,84px)}

/* フロー詳細 */
.steps{counter-reset:st}
.stp{display:grid;grid-template-columns:120px 1fr 1fr;gap:2.5rem;padding:3.25rem 0;border-top:1px solid var(--line);align-items:start}
.stp:last-child{border-bottom:1px solid var(--line)}
.stp .n{font-family:var(--serif);font-size:3.5rem;line-height:1;color:transparent;-webkit-text-stroke:1px var(--brass)}
.stp .n::before{counter-increment:st;content:"0" counter(st)}
.stp h3{font-family:var(--serif);font-size:1.625rem;letter-spacing:0.02em;line-height:1.45;margin-bottom:0.75rem}
.stp .who{font-family:var(--mono);font-size:1rem;letter-spacing:0.02em;color:var(--brass-dp);margin-bottom:0.75rem}
.stp p{margin:0;font-size:1rem;line-height:1.8;color:var(--ink-2);font-weight:300}
.stp.key h3{color:var(--brass-dp)}
.stp .pt{font-size:1rem;line-height:1.8;padding:1.375rem 1.5rem;background:var(--paper);border-radius:12px}
.stp .pt b{display:block;font-family:var(--mono);font-size:1rem;letter-spacing:0.02em;color:var(--brass-dp);margin-bottom:0.5rem;font-weight:400}

/* FAQカテゴリ */
.faqcat{margin-bottom:4.375rem}
.faqcat h3{font-family:var(--serif);font-size:1.5rem;letter-spacing:0.02em;margin-bottom:0.5rem;display:flex;align-items:baseline;gap:0.875rem}
.faqcat h3 small{font-family:var(--mono);font-size:0.875rem;letter-spacing:0.08em;color:var(--brass-dp)}
.faqnav{display:flex;flex-wrap:wrap;gap:0.5rem;margin-bottom:3.5rem}
.faqnav a{text-decoration:none;border:1px solid var(--line);border-radius:999px;padding:0.5625rem 1.125rem;font-size:1rem;letter-spacing:0.02em;transition:.25s}
.faqnav a:hover{background:var(--ink);color:#fff;border-color:var(--ink)}

/* 会社概要 */
.co-story{max-width:760px}
.co-story .big{font-family:var(--serif);font-size:clamp(30px,3.6vw,50px);line-height:1.4;letter-spacing:0.02em;margin-bottom:2.5rem}
.co-story p{font-size:1rem;line-height:1.8;color:var(--ink-2);margin:0 0 1.375rem}
.co-story p.em{font-family:var(--serif);font-size:1.25rem;color:var(--ink);line-height:1.8;margin-top:1.875rem}
.ctable{width:100%;border-collapse:collapse;font-size:1rem}
.ctable th,.ctable td{padding:1.375rem 1.25rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;line-height:1.8}
.ctable th{width:200px;font-weight:500;color:var(--mute);font-size:1rem}
.domains{display:grid;grid-template-columns:repeat(4,1fr);gap:1.125rem}
.domains>div{border:1px solid var(--line);border-radius:12px;padding:2.125rem 1.75rem;background:#fff}
.domains>div.me{background:var(--deep);color:#F1ECE3;border-color:var(--deep)}
.domains .k{color:var(--brass-dp);margin-bottom:1rem}
.domains>div.me .k{color:var(--brass-2)}
.domains h3{font-family:var(--serif);font-size:1.3125rem;letter-spacing:0.02em;margin-bottom:0.625rem}
.domains p{margin:0;font-size:1rem;line-height:1.8;color:var(--ink-2);font-weight:300}
.domains>div.me p{color:#B6AE9F}
.map{aspect-ratio:21/9;border-radius:12px;background:var(--paper-2);overflow:hidden;position:relative}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:saturate(.75) contrast(1.02)}
.fill{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;display:block;color:transparent;font-size:0}
.case .ph,.scene .vis,.pcard .th,.pvis.photo,.case-body .vis{background:var(--g,linear-gradient(160deg,#EDE8DF,#D8D0C2))}
.sc .fill{z-index:1}.sc::after{z-index:2}
.sc.photo .no,.sc.photo .ch,.sc.photo h3,.sc.photo p{z-index:3}
.sc.photo h3,.sc.photo p{color:#fff}.sc.photo p{color:rgba(255,255,255,.85)}
.sc.photo .no{color:rgba(255,255,255,.8)}
.sc.photo::before{background:linear-gradient(180deg,rgba(20,18,14,.22) 0%,rgba(20,18,14,.30) 45%,rgba(20,18,14,.88) 100%);z-index:2}
.sc.photo::after{display:none}
.sc.photo::before{background:linear-gradient(180deg,rgba(20,18,14,.18) 0%,rgba(20,18,14,.28) 40%,rgba(20,18,14,.92) 100%)}
.sc.photo h3,.sc.photo p{text-shadow:0 1px 3px rgba(0,0,0,.5)}
.sc.photo .ch{background:rgba(255,255,255,.92);color:var(--ink)}

/* 規約 */
.legal{max-width:820px}
.legal h2{font-family:var(--serif);font-size:1.375rem;letter-spacing:0.02em;margin:3.5rem 0 1rem;padding-top:1.5rem;border-top:1px solid var(--line);line-height:1.5}
.legal h2:first-of-type{margin-top:0;padding-top:0;border:0}
.legal h3{font-size:1rem;margin:1.625rem 0 0.625rem;font-weight:600}
.legal p{margin:0 0 1rem;font-size:1rem;line-height:1.8;color:var(--ink-2)}
.legal ul{margin:0 0 1.125rem;padding-left:1.375rem;font-size:1rem;line-height:1.8;color:var(--ink-2)}
.legal table{width:100%;border-collapse:collapse;font-size:1rem;margin:0 0 1.375rem}
.legal th,.legal td{padding:0.875rem 1rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;line-height:1.8}
.legal th{width:180px;font-weight:500;color:var(--mute);font-size:1rem}
.legal .date{margin-top:3rem;font-size:1rem;color:var(--mute)}

/* サイトマップ */
.smap{display:grid;grid-template-columns:repeat(4,1fr);gap:2.5rem}
.smap h3{font-family:var(--mono);font-size:1rem;letter-spacing:0.02em;color:var(--brass-dp);font-weight:400;margin:0 0 1.125rem}
.smap ul{list-style:none;margin:0;padding:0}
.smap li{padding:0.625rem 0;border-top:1px solid var(--line);font-size:1rem}
.smap li:first-child{border:0}
.smap a{text-decoration:none}
.smap a:hover{color:var(--brass-dp)}

/* 事例詳細 */
.case-hero .tags{display:flex;gap:0.5rem;flex-wrap:wrap;margin:1.375rem 0 0}
.case-hero .tags span{font-size:0.875rem;letter-spacing:0.08em;padding:0.375rem 0.75rem;border-radius:999px;border:1px solid var(--line);background:#fff}
.case-sum{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:5rem}
.case-sum>div{background:#fff;padding:1.625rem 1.75rem}
.case-sum .k{color:var(--mute);margin-bottom:0.5rem}
.case-sum b{font-weight:500;font-size:1rem}
.case-body{display:grid;grid-template-columns:200px 1fr;gap:3.125rem;padding:3.5rem 0;border-top:1px solid var(--line)}
.case-body .k{font-family:var(--serif);font-size:1.375rem;letter-spacing:0.03em;line-height:1.5}
.case-body .k small{display:block;font-family:var(--mono);font-size:0.875rem;letter-spacing:0.08em;color:var(--brass-dp);margin-bottom:0.625rem}
.case-body p{margin:0 0 1rem;font-size:1rem;line-height:1.8;color:var(--ink-2)}
.case-body .quote{font-family:var(--serif);font-size:1.25rem;line-height:1.8;color:var(--ink);padding:1.875rem 2.25rem;background:var(--paper);border-radius:12px}
.case-body .quote small{display:block;font-family:var(--sans);font-size:0.875rem;color:var(--mute);margin-top:0.875rem}
.case-body .vis{aspect-ratio:16/9;border-radius:12px;background:var(--g);margin-bottom:1.375rem;position:relative;overflow:hidden}
.case-body .vis span{position:absolute;left:20px;bottom:18px;font-size:1rem;letter-spacing:0.02em;padding:0.375rem 0.75rem;border-radius:999px;background:rgba(255,255,255,.7)}

@media (max-width:1080px){
  .def-g{grid-template-columns:1fr;gap:1rem}
  .def-facts{grid-template-columns:1fr 1fr;gap:1.125rem 0}
  .pillars{grid-template-columns:1fr;gap:1.875rem}
  .pnav{position:static;flex-direction:row;flex-wrap:wrap;gap:0.5rem}
  .pnav a,.pnav a:last-child{border:1px solid var(--line);border-radius:999px;padding:0.5625rem 0.875rem;font-size:1rem}
  .pnav a.on{background:var(--ink);color:#fff;border-color:var(--ink);padding-left:0.875rem}
  .pillar{grid-template-columns:1fr;gap:1.75rem;padding-bottom:4.375rem;margin-bottom:4.375rem}
  .set{grid-template-columns:1fr 1fr}
  .trio,.sgrid,.rec,.postgrid,.docgrid{grid-template-columns:1fr 1fr}
  .pnums,.domains,.smap{grid-template-columns:1fr 1fr}
  .two,.dl-wrap,.art{grid-template-columns:1fr;gap:2.5rem}
  .art aside{position:static}
  .scene{grid-template-columns:1fr;gap:1.75rem}
  .scene:nth-child(even) .vis{order:0}
  .stp{grid-template-columns:80px 1fr;gap:1.25rem}
  .stp .pt{grid-column:2}
  .case-sum{grid-template-columns:1fr 1fr}
  .case-body{grid-template-columns:1fr;gap:1rem}
}
@media (max-width:680px){
  .ph{padding:7.375rem 0 3.5rem}
  .ph h1{font-size:1.75rem;line-height:1.45}
  .ph.ph-article h1{font-size:1.375rem;line-height:1.55}
  .ph .lead{font-size:1rem;margin-top:1.125rem}
  .ph .eyebrow{margin:1.25rem 0 1rem;font-size:0.875rem}
  .crumbs{font-size:0.875rem}
  .def{padding:4.75rem 0}
  .def p.lead{font-size:1.25rem;line-height:1.75}
  .def p.sub{font-size:0.875rem}
  .def-facts{grid-template-columns:1fr 1fr;margin-top:1.875rem}
  .def-facts>div{padding:1rem 0 0;border:0;margin:0}
  .def-facts b{font-size:1.25rem}
  .set>div{padding:1.625rem 1.375rem}
  .set .n{font-size:1.875rem;margin-bottom:0.875rem}
  .trio>*{padding:1.625rem 1.375rem}
  .trio h3{font-size:1.1875rem}
  .two{gap:1.375rem}
  .two .txt h3{font-size:1.375rem}
  .two .txt p{font-size:1rem}
  .pane{padding:1.75rem 1.5rem;min-height:0;border-radius:12px}
  .pane .big{font-size:2.5rem}
  .pvis{padding:1.5rem;min-height:0;border-radius:12px}
  .pvis.rings{aspect-ratio:1/1}
  .months{gap:0.25rem}
  .mo span{font-size:1rem}
  .flows{grid-template-columns:1fr;gap:0.75rem}
  .tnums{grid-template-columns:1fr;gap:0.625rem}
  .tnums>div{display:flex;align-items:baseline;justify-content:space-between;gap:0.75rem;padding:1rem 1.125rem}
  .tnums b{margin:0;font-size:1.625rem}
  .pillar h2{font-size:1.625rem}
  .pillar p{font-size:1rem}
  .sgrid .sc{min-height:220px}
  .scat h3{font-size:1.25rem}
  .rec>div{padding:1.5rem}
  .scene{padding:2.75rem 0}
  .scene h3{font-size:1.375rem}
  .scene p{font-size:1rem}
  .stp{padding:1.875rem 0}
  .stp .n{font-size:2.125rem}
  .stp h3{font-size:1.3125rem}
  .faqcat{margin-bottom:2.75rem}
  .faqcat h3{font-size:1.25rem}
  .faqnav{margin-bottom:2.125rem}
  .co-story .big{font-size:1.875rem}
  .co-story p{font-size:1rem}
  .ctable th,.ctable td{display:block;width:auto;padding:0.375rem 0}
  .ctable th{padding-top:1.125rem;font-size:1rem;font-family:var(--mono);letter-spacing:0.02em;border:0}
  .ctable td{padding-bottom:1.125rem}
  .domains>div{padding:1.625rem 1.375rem}
  .legal h2{font-size:1.1875rem}
  .legal p,.legal ul{font-size:1rem}
  .legal th{display:block;width:auto;padding:0.75rem 0 2px;border:0;font-size:1rem}
  .legal td{display:block;padding:0 0 0.75rem}
  .thanks{padding:8.125rem 0 5.625rem}
  .thanks h1{font-size:1.75rem}
  .case-hero .tags{gap:0.375rem}
  .case-body .k{font-size:1.1875rem}
  .case-body p{font-size:1rem}
  .case-body .quote{font-size:1.0625rem;padding:1.375rem 1.5rem}
  .art .body h2{font-size:1.375rem;margin-top:2.5rem}
  .art .body p{font-size:1rem}
  .art .body .ans{font-size:1rem;padding:1.125rem 1.25rem}
  .art .meta{gap:0.75rem}
  .docc .bd{padding:1.25rem 1.375rem 1.5rem}
  .dl-wrap .cover{padding:1.625rem}
  .dl-wrap .cover .t{font-size:1.375rem}
  .set,.trio,.sgrid,.rec,.postgrid,.docgrid,.pnums,.domains,.smap{grid-template-columns:1fr}
  .spec-t th{width:120px}
  .cmp td:first-child{width:auto}
  .cmp th,.cmp td{padding:0.875rem 0.625rem;font-size:1rem}
  .form{padding:1.625rem 1.375rem}
  .stp{grid-template-columns:1fr}
  .stp .pt{grid-column:1}
  .case-sum{grid-template-columns:1fr}
  .two.form-two{grid-template-columns:1fr}
}
