/* Dantia v4-2 下層ページ共通（style.css の後に読み込む） */
.top{background:rgba(255,255,255,.0)}
.menu a[aria-current="page"]::after{transform:translateX(-50%) scale(1)}
.drawer nav a[aria-current="page"]{color:var(--gold-d)}

/* page hero */
.sp-hero{position:relative;padding:clamp(150px,13vw,200px) var(--px) clamp(70px,7vw,110px);max-width:1440px;margin:0 auto}
.crumb{display:flex;flex-wrap:wrap;gap:4px 0;font-size:12px;letter-spacing:.12em;color:var(--mute);margin-bottom:clamp(34px,4vw,56px)}
.crumb li{list-style:none;display:flex;align-items:center}
.crumb li+li::before{content:"";width:16px;height:1px;background:var(--gold);margin:0 12px}
.crumb a:hover{color:var(--gold-d)}
.sp-title{font-family:var(--mincho);font-weight:500;font-size:clamp(38px,5vw,76px);line-height:1.35;letter-spacing:.12em;color:var(--ink);margin-top:26px}
.sp-title small{display:block;font-family:var(--sans);font-size:clamp(13px,1vw,15px);letter-spacing:.18em;color:var(--gold-d);margin-top:14px;font-weight:500}
.sp-lead{max-width:640px;margin-top:30px}
.sp-ghost{position:absolute;right:var(--px);top:clamp(120px,11vw,170px);font-family:var(--it);font-style:italic;font-size:clamp(90px,14vw,220px);line-height:1;color:transparent;-webkit-text-stroke:1px rgba(172,133,1,.35);pointer-events:none;user-select:none}

/* business hero */
.bz-hero{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(40px,6vw,100px);align-items:end}
.bz-hero>nav{grid-column:1/-1}.bz-hero .crumb{margin-bottom:0}
.bz-catch{font-family:var(--mincho);font-weight:400;font-size:clamp(22px,2.3vw,34px);line-height:1.75;letter-spacing:.08em;color:var(--ink);margin-top:clamp(30px,3.4vw,48px);padding-left:20px;border-left:1px solid var(--gold)}
.bz-hero .sp-lead{margin-top:26px}
.bz-photo{position:relative;aspect-ratio:4/3;overflow:hidden}
.bz-photo::after{content:"";position:absolute;inset:14px;border:1px solid rgba(255,255,255,.55);pointer-events:none}
.bz-photo picture,.bz-photo img{display:block;width:100%;height:100%;object-fit:cover}
.bz-no{position:absolute;z-index:2;left:22px;bottom:14px;font-family:var(--it);font-size:clamp(48px,5vw,80px);line-height:1;color:#fff;text-shadow:0 2px 20px rgba(0,0,0,.35)}

/* generic sections */
.sp-sec{padding:clamp(100px,11vw,170px) var(--px)}
.sp-sec.soft{background:var(--soft)}
.sp-in{max-width:1200px;margin:0 auto}
.sp-h2{font-family:var(--mincho);font-weight:500;font-size:clamp(28px,3.2vw,48px);line-height:1.55;letter-spacing:.1em;color:var(--ink);margin:26px 0 0}
.dark .sp-h2{color:#fff}
.cols{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(40px,7vw,120px);align-items:start}
.cols .body>p+p{margin-top:1.2em}
.cols .body{padding-top:clamp(0px,4vw,60px)}

/* features (dark) */
.feat{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:0 clamp(24px,3vw,48px);margin-top:clamp(50px,6vw,90px)}
.feat.f4{grid-template-columns:repeat(4,1fr)}
.feat.f2{grid-template-columns:repeat(2,1fr)}
.feat li{border-top:1px solid rgba(255,255,255,.2);padding:28px 0 10px}
.sp-sec:not(.dark) .feat li{border-top-color:var(--ink)}
.feat .no{font-family:var(--it);font-size:22px;color:var(--gold-l);line-height:1}
.sp-sec:not(.dark) .feat .no{color:var(--gold)}
.feat h3{font-family:var(--mincho);font-weight:500;font-size:clamp(20px,1.7vw,25px);line-height:1.6;letter-spacing:.08em;color:#fff;margin:18px 0 12px}
.sp-sec:not(.dark) .feat h3{color:var(--ink)}
.feat p{font-size:15px}

/* flow */
.flow{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:clamp(50px,6vw,80px);counter-reset:st}
.flow li{background:#fff;padding:34px 28px 30px;position:relative}
.flow .st{font-family:var(--it);font-style:italic;font-size:15px;color:var(--gold);letter-spacing:.06em}
.flow .st b{font-style:normal;font-weight:400;font-size:40px;line-height:1;margin-left:6px;color:var(--ink)}
.flow h3{font-family:var(--mincho);font-weight:500;font-size:22px;letter-spacing:.1em;color:var(--ink);margin:18px 0 10px}
.flow p{font-size:14px;line-height:1.9}
.flow li:not(:last-child)::after{content:"";position:absolute;z-index:1;right:-7px;top:50px;width:13px;height:13px;border-top:1px solid var(--gold);border-right:1px solid var(--gold);transform:rotate(45deg);background:#fff}

/* tags / chips */
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.chips li{border:1px solid var(--ink);padding:6px 18px;font-size:14px;letter-spacing:.1em;color:var(--ink)}
.dark .chips li{border-color:rgba(255,255,255,.4);color:#fff}
.chips.en li{font-family:var(--it);font-size:18px;letter-spacing:.04em;padding:4px 20px}

.note{font-size:13px;color:var(--mute);margin-top:22px}
.dark .note{color:rgba(255,255,255,.55)}
.sample{display:inline-block;font-size:12px;letter-spacing:.08em;line-height:24px;padding:0 10px;border:1px dashed var(--gold);color:var(--gold-d);background:rgba(172,133,1,.06);font-weight:500;vertical-align:middle}
.dark .sample{color:var(--gold-l);border-color:var(--gold-l);background:rgba(212,171,1,.08)}
.tbd{color:var(--gold-d)}

/* FAQ */
.faq-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px}
.faq{margin-top:clamp(40px,5vw,70px);border-top:1px solid var(--ink)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:44px 1fr 24px;gap:12px;align-items:baseline;padding:26px 0;color:var(--ink);font-weight:500;font-size:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q";font-family:var(--it);font-size:26px;line-height:1;color:var(--gold)}
.faq summary::after{content:"";width:12px;height:12px;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);transform:translateY(-4px) rotate(45deg);transition:transform .3s;justify-self:end}
.faq details[open] summary::after{transform:translateY(2px) rotate(-135deg)}
.faq .ans{display:grid;grid-template-columns:44px 1fr;gap:12px;padding:0 36px 28px 0;font-size:15px}
.faq .ans::before{content:"A";font-family:var(--it);font-size:26px;line-height:1.1;color:var(--mute)}

/* CTA (dark) */
.cta{padding:clamp(110px,11vw,170px) var(--px);text-align:center;display:flex;flex-direction:column;align-items:center}
.cta .eyebrow::after{content:"";width:28px;height:1px;background:var(--gold);align-self:center}
.cta-title{font-family:var(--mincho);font-weight:500;font-size:clamp(28px,3.2vw,46px);line-height:1.6;letter-spacing:.12em;color:#fff;margin:30px 0 20px}
.cta-btns{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:36px}
.cta-btns .btn{min-width:280px;min-height:60px}
.btn-ghost{border:1px solid rgba(255,255,255,.6);color:#fff}.btn-ghost:hover{background:#fff;color:var(--ink)}
.btn-lineapp{background:#fff;color:var(--ink);gap:12px}.btn-lineapp:hover{background:var(--gold-l)}
.btn-lineapp::before{content:"LINE";font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.04em;color:#fff;background:#06C755;border-radius:5px;padding:2px 5px;line-height:1.4}
.cta .ct-tel{margin-top:40px}

/* company */
.msg-full{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(40px,7vw,120px)}
.msg-full .body>p+p{margin-top:1.3em}
.msg-full .sign{align-items:flex-end;text-align:right}
.msg-photo{aspect-ratio:3/4;margin-top:40px;max-width:360px;border:1px dashed rgba(172,133,1,.6);display:grid;place-items:center;text-align:center;font-size:13px;color:var(--mute);background:var(--soft)}
.co-wrap{max-width:900px;margin:0 auto}
.co-wrap .facts>div{grid-template-columns:160px 1fr;padding:22px 0}
.hist{margin-top:40px;border-top:1px solid var(--ink)}
.hist>div{display:grid;grid-template-columns:160px 1fr;gap:16px;padding:20px 0;border-bottom:1px solid var(--line)}
.hist dt{font-family:var(--it);font-size:20px;color:var(--ink);line-height:1.5}
.hist dd{color:var(--ink)}
.access{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(30px,5vw,80px);margin-top:clamp(40px,5vw,70px);align-items:start}
.map-box{position:relative;aspect-ratio:16/10;border:1px solid var(--line);background:#f1efea;overflow:hidden}
.map-box iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;filter:grayscale(.9) contrast(1.05);transition:filter .5s}
.map-box:hover iframe,.map-box:focus-within iframe{filter:grayscale(0)}
.access dl>div{padding:16px 0;border-bottom:1px solid var(--line)}
.access dl>div:first-child{border-top:1px solid var(--ink)}
.access dt{font-size:13px;color:var(--mute);letter-spacing:.12em}
.access dd{color:var(--ink)}
.ph-band{height:clamp(260px,36vw,520px);overflow:hidden}
.ph-band img{height:118%;margin-top:-6%}

/* recruit */
.rc-hero-img{height:clamp(280px,40vw,560px);overflow:hidden;position:relative;background:var(--black)}
.rc-hero-img img{opacity:.85;filter:grayscale(1) contrast(1.05)}
.job-list{list-style:none;margin-top:clamp(40px,5vw,60px);border-top:1px solid var(--ink)}
.job-list a{display:grid;grid-template-columns:1.4fr 1fr 140px 30px;gap:20px;align-items:center;padding:28px 0;border-bottom:1px solid var(--line);transition:padding .3s}
.job-list a:hover{padding-left:12px}
.job-list b{font-family:var(--mincho);font-weight:500;font-size:clamp(19px,1.6vw,23px);letter-spacing:.08em;color:var(--ink)}
.job-list .biz-tag{font-size:14px;color:var(--mute)}
.job-list .type{justify-self:start;font-size:13px;border:1px solid var(--line);padding:0 12px;line-height:26px;color:var(--mute)}
.job-list i{font-style:normal;color:var(--ink);justify-self:end;transition:transform .3s}
.job-list a:hover i{transform:translateX(6px);color:var(--gold)}

/* contact form */
.ct-wrap{display:grid;grid-template-columns:.75fr 1.25fr;gap:clamp(40px,7vw,120px);align-items:start}
.ct-side .box{border-top:1px solid var(--ink);padding:24px 0;border-bottom:1px solid var(--line)}
.ct-side .box p.t{font-size:13px;color:var(--mute);letter-spacing:.12em}
.ct-side .tel{font-family:var(--it);font-size:34px;color:var(--ink);line-height:1.4;white-space:nowrap}
.ct-side .btn{width:100%;margin-top:14px}
.ct-side .btn-lineapp{background:var(--ink);color:#fff}.ct-side .btn-lineapp:hover{background:var(--gold-d)}
.form fieldset{border:0}
.form .row{padding:26px 0;border-bottom:1px solid var(--line)}
.form .row:first-child{border-top:1px solid var(--ink)}
.form label.lb,.form legend{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:700;letter-spacing:.1em;color:var(--ink);margin-bottom:12px;padding:0}
.req,.opt{font-size:11px;font-weight:500;letter-spacing:.06em;line-height:20px;padding:0 8px}
.req{background:var(--ink);color:#fff}.opt{border:1px solid var(--line);color:var(--mute)}
.form input[type=text],.form input[type=email],.form input[type=tel],.form textarea{width:100%;font:inherit;font-size:16px;color:var(--ink);background:var(--soft);border:1px solid transparent;border-bottom-color:rgba(22,24,29,.3);padding:14px 16px;border-radius:0;transition:border-color .3s,background .3s}
.form input:focus,.form textarea:focus{outline:none;border-color:var(--gold);background:#fff}
.form textarea{min-height:200px;resize:vertical;line-height:1.8}
.form ::placeholder{color:#a5a5a5}
.types{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.types label{position:relative;cursor:pointer}
.types input{position:absolute;opacity:0;inset:0}
.types span{display:flex;flex-direction:column;gap:2px;height:100%;border:1px solid var(--line);padding:16px 18px;transition:border-color .3s,background .3s}
.types span b{font-family:var(--mincho);font-weight:500;font-size:17px;color:var(--ink);letter-spacing:.06em}
.types span small{font-size:12px;color:var(--mute);line-height:1.7}
.types input:checked+span{border-color:var(--ink);background:var(--ink)}
.types input:checked+span b{color:#fff}.types input:checked+span small{color:rgba(255,255,255,.7)}
.types input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
.agree{display:flex;align-items:flex-start;gap:12px;font-size:15px;color:var(--ink);cursor:pointer}
.agree input{width:20px;height:20px;margin-top:6px;accent-color:var(--ink);flex:none}
.agree a{text-decoration:underline;text-underline-offset:3px}
.form .submit{margin-top:40px;text-align:center}
.form .submit .btn{min-width:300px;min-height:62px;border:0;cursor:pointer;font-family:inherit}

/* privacy */
.legal{max-width:860px;margin:0 auto}
.legal h2{font-family:var(--mincho);font-weight:500;font-size:clamp(20px,1.8vw,24px);letter-spacing:.08em;color:var(--ink);margin:56px 0 16px;padding-top:24px;border-top:1px solid var(--line);display:flex;gap:16px;align-items:baseline}
.legal h2 em{font-size:20px;color:var(--gold);font-style:normal;font-weight:400}
.legal p+p,.legal p+ol,.legal ol+p,.legal ul+p,.legal p+ul{margin-top:1em}
.legal ol,.legal ul{padding-left:1.4em}
.legal li{margin:.3em 0}
.legal .meta{margin-top:56px;text-align:right;color:var(--ink)}
.legal .win{margin-top:16px;background:var(--soft);padding:22px 26px}

@media (max-width:900px){
  .sp-hero{padding:120px 24px 64px}
  .sp-ghost{top:96px;right:20px;font-size:84px}
  .crumb{margin-bottom:30px}
  .sp-title{letter-spacing:.08em}
  .bz-hero{grid-template-columns:1fr;gap:0}
  .bz-hero .crumb{margin-bottom:30px}
  .bz-photo{margin-top:40px;aspect-ratio:4/3;margin-left:-24px;margin-right:-24px}
  .bz-photo::after{inset:10px}
  .bz-catch{padding-left:16px}
  .sp-sec{padding:90px 24px}
  .cols,.msg-full,.access,.ct-wrap{grid-template-columns:1fr}
  .cols .body{padding-top:0}
  .feat,.feat.f4,.feat.f2{grid-template-columns:1fr}
  .flow{grid-template-columns:1fr}
  .flow li{padding:26px 22px 24px 22px;display:grid;grid-template-columns:86px 1fr;gap:0 14px;align-items:start}
  .flow .st{grid-row:span 2}
  .flow h3{margin:2px 0 6px;font-size:20px}
  .flow li:not(:last-child)::after{right:auto;left:40px;top:auto;bottom:-7px;transform:rotate(135deg)}
  .faq summary{grid-template-columns:32px 1fr 20px;font-size:15px;padding:22px 0}
  .faq .ans{grid-template-columns:32px 1fr;padding-right:0}
  .cta{padding:100px 24px}
  .cta-btns{flex-direction:column;width:100%}
  .cta-btns .btn{min-width:0;width:100%}
  .co-wrap .facts>div,.hist>div{grid-template-columns:92px 1fr}
  .hist dt{font-size:17px}
  .msg-full .sign{align-items:flex-start;text-align:left}
  .msg-photo{max-width:none;aspect-ratio:4/3}
  .job-list a{grid-template-columns:1fr auto;gap:6px 12px;padding:22px 0}
  .job-list b{grid-column:1/2}
  .job-list i{grid-row:1/4;grid-column:2;align-self:center}
  .job-list .type{grid-column:1}
  .types{grid-template-columns:1fr}
  .form .submit .btn{min-width:0;width:100%}
  .legal .meta{text-align:left}
}
@media (max-width:900px){.bz-catch{font-size:clamp(18px,5.2vw,24px);letter-spacing:.04em}}
@media (max-width:900px){.sp-ghost{top:auto;bottom:14px;right:16px;font-size:64px;-webkit-text-stroke-color:rgba(172,133,1,.22)}}
/* privacy: 要確認・A/B案マーカー（下書き用・公開前に解消） */
.legal h3{font-family:var(--mincho);font-weight:500;font-size:17px;letter-spacing:.06em;color:var(--ink);margin:28px 0 8px}
.legal h2+h3{margin-top:8px}
.legal ul{margin-top:.6em}
.legal a{text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
mark.chk{background:rgba(172,133,1,.07);color:var(--gold-d);border:1px solid rgba(172,133,1,.55);border-radius:2px;padding:0 .3em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.legal .alt{border-left:2px solid rgba(172,133,1,.45);padding:2px 0 4px 18px;margin-top:22px}
.legal .alt h3{margin-top:10px}
.legal .alt-tag{font-size:13px;font-weight:500}
.legal .meta.sig{margin-top:12px}
mark.chk{display:inline-block;max-width:100%;line-height:1.7;text-indent:0}
@media (max-width:900px){.map-box{aspect-ratio:4/3}}

.msg-photo.has-img{border:0;background:none;display:block;margin-left:0;margin-right:0}
.msg-photo.has-img img{width:100%;height:100%;object-fit:cover;object-position:50% 20%;display:block}
@media (max-width:768px){.msg-photo.has-img{aspect-ratio:3/4;max-width:300px;margin-left:auto;margin-right:auto}}

.feat .price{margin:6px 0 10px;color:var(--gold,#AC8501);line-height:1.2}
.feat .price b{font-family:"EB Garamond",serif;font-size:40px;font-weight:500;margin:0 2px;letter-spacing:.02em}
.feat .price small{font-size:12px;color:inherit}
.dark .feat .price{color:#D4AB01}

/* 組み込み時に追加（システム管理室）: 幅375px未満では改行位置の固定を外して横はみ出しを防ぐ */
@media (max-width:374px){.nw{white-space:normal}}
