/*
Theme Name: さくら工業
Theme URI: https://sakura5115.com/
Author: PEEES
Description: 有限会社さくら工業 オリジナルテーマ（テンプレ01ベース）
Version: 1.0.0
Text Domain: sakura5115
*/
:root{
  --ink:#161616;        /* 墨：見出し・ダーク面 */
  --ink-2:#262626;
  --ink-3:#3a3a3a;
  --text:#2b2b2b;       /* 本文 */
  --gray:#6b6b6b;       /* 補足 */
  --line:#e3e3e3;
  --mist:#f6f5f4;       /* 薄グレー面（NEWS・想い） */
  --white:#fff;
  --pink:#d6336c;       /* 桜ピンク：ボタン・強調（白文字 4.62:1） */
  --pink-soft:#f08cad;  /* ダーク面上のピンク文字・装飾 */
  --pink-pale:#fdf0f4;  /* 不動産帯・タグ面 */
  --en:"Cinzel","Times New Roman",serif;
  --mincho:"Shippori Mincho B1","Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",serif;
  --gothic:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans JP",sans-serif;
  --wrap:1180px;
  --hd:84px;
  --ease:cubic-bezier(.16,1,.3,1);
}
*,*::before,*::after{box-sizing:border-box}
:root{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
html{scroll-padding-top:calc(var(--hd) + env(safe-area-inset-top,0px));-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--gothic);color:var(--text);background:var(--white);font-size:16px;line-height:1.95;letter-spacing:.04em;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,h4,p{margin:0}
:focus-visible{outline:2px solid var(--pink);outline-offset:3px}
.wrap{width:min(var(--wrap),88%);margin:0 auto}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pc-only{display:inline}.sp-only{display:none}
@media (max-width:768px){.pc-only{display:none}.sp-only{display:inline}}

/* PEEES規約：PCでは電話リンクを無効化 */
@media (min-width:769px){a.tel-link{pointer-events:none}}

/* ---------- 桜の花びら（本案件のシグネチャ） ---------- */
.petal{display:inline-block;width:14px;height:14px;background:var(--pink);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.0 12.4C5.52 10.02 4.01 4.19 7.36 1.17L12.0 3.33L16.64 1.17C19.99 4.19 18.48 10.02 12.0 12.4ZM12.0 12.4C12.26 5.5 17.34 2.26 21.25 4.51L20.63 9.6L24.12 13.35C22.28 17.46 16.26 17.83 12.0 12.4ZM12.0 12.4C18.64 10.51 23.29 14.34 22.36 18.76L17.33 19.74L14.84 24.22C10.36 23.74 8.15 18.13 12.0 12.4ZM12.0 12.4C15.85 18.13 13.64 23.74 9.16 24.22L6.67 19.74L1.64 18.76C0.71 14.34 5.36 10.51 12.0 12.4ZM12.0 12.4C7.74 17.83 1.72 17.46 -0.12 13.35L3.37 9.6L2.75 4.51C6.66 2.26 11.74 5.5 12.0 12.4Z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.0 12.4C5.52 10.02 4.01 4.19 7.36 1.17L12.0 3.33L16.64 1.17C19.99 4.19 18.48 10.02 12.0 12.4ZM12.0 12.4C12.26 5.5 17.34 2.26 21.25 4.51L20.63 9.6L24.12 13.35C22.28 17.46 16.26 17.83 12.0 12.4ZM12.0 12.4C18.64 10.51 23.29 14.34 22.36 18.76L17.33 19.74L14.84 24.22C10.36 23.74 8.15 18.13 12.0 12.4ZM12.0 12.4C15.85 18.13 13.64 23.74 9.16 24.22L6.67 19.74L1.64 18.76C0.71 14.34 5.36 10.51 12.0 12.4ZM12.0 12.4C7.74 17.83 1.72 17.46 -0.12 13.35L3.37 9.6L2.75 4.51C6.66 2.26 11.74 5.5 12.0 12.4Z'/%3E%3C/svg%3E") center/contain no-repeat}

/* ---------- 見出し（テンプレ①：英字＋和文サブ＋下線） ---------- */
.ttl{margin:0 0 48px}
.ttl .en{display:flex;align-items:center;gap:10px;font-family:var(--en);font-size:13px;letter-spacing:.28em;color:var(--pink);font-weight:600}
.ttl .en .petal{width:12px;height:12px;transform:rotate(-18deg)}
.ttl h2,.ttl .h2{display:block;font-family:var(--mincho);font-weight:700;font-size:clamp(26px,3vw,38px);line-height:1.5;color:var(--ink);letter-spacing:.06em;margin-top:14px}
.ttl .lead{margin-top:22px;max-width:640px;color:var(--text)}
.ttl.center{text-align:center}.ttl.center .en{justify-content:center}.ttl.center .lead{margin-left:auto;margin-right:auto}
.ttl.on-dark .en{color:var(--pink-soft)}.ttl.on-dark h2,.ttl.on-dark .h2{color:#fff}.ttl.on-dark .lead{color:rgba(255,255,255,.82)}
.ttl em,.hero h1 em{font-style:normal;color:var(--pink)}
.ttl.on-dark em{color:var(--pink-soft)}

/* 小見出し（下層） */
.lower-hd{font-family:var(--mincho);font-weight:700;font-size:clamp(21px,2.2vw,26px);color:var(--ink);padding:0 0 14px;margin:0 0 30px;border-bottom:1px solid var(--ink);position:relative;display:flex;align-items:center;gap:12px}
.lower-hd::after{content:"";position:absolute;left:0;bottom:-1px;width:72px;height:3px;background:var(--pink)}

/* ---------- ボタン ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:56px;padding:0 30px;border:1px solid var(--ink);color:var(--ink);font-weight:700;font-size:15px;letter-spacing:.1em;transition:background .3s,color .3s,border-color .3s;background:transparent}
.btn .arw{width:28px;height:1px;background:currentColor;position:relative;transition:width .3s var(--ease)}
.btn .arw::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}
.btn:hover{background:var(--ink);color:#fff}.btn:hover .arw{width:40px}
.btn.pink{background:var(--pink);border-color:var(--pink);color:#fff}
.btn.pink:hover{background:var(--ink);border-color:var(--ink)}
.btn.light{border-color:rgba(255,255,255,.7);color:#fff}
.btn.light:hover{background:#fff;color:var(--ink)}

/* ---------- reveal ---------- */
.js .rv{opacity:0;transform:translateY(28px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.js .rv.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.js .rv{opacity:1;transform:none}}

/* =========================================================
   _header.scss
   ========================================================= */
.site-hd{position:fixed;inset:0 0 auto;z-index:100;height:var(--hd);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(16px,3vw,44px);transition:background .4s,box-shadow .4s,color .4s;color:#fff;padding-top:env(safe-area-inset-top,0px);height:calc(var(--hd) + env(safe-area-inset-top,0px))}
.site-hd.is-solid,.is-lower .site-hd{background:rgba(255,255,255,.97);color:var(--ink);box-shadow:0 1px 0 var(--line)}
.logo{display:flex;align-items:center;gap:12px;line-height:1.2}
.logo svg{width:66px;height:auto;flex:none}
.logo .lg-txt{display:flex;flex-direction:column}
.logo .lg-sub{font-size:10px;letter-spacing:.18em}
.logo .lg-name{font-family:var(--mincho);font-weight:700;font-size:22px;letter-spacing:.14em}
.gnav{display:flex;align-items:center;gap:clamp(18px,2.2vw,36px)}
.gnav ul{display:flex;gap:clamp(16px,2vw,34px)}
.gnav ul a{font-size:14px;font-weight:500;letter-spacing:.1em;position:relative;padding:6px 0}
.gnav ul a::after{content:"";position:absolute;left:50%;right:50%;bottom:0;height:2px;background:var(--pink);transition:left .3s,right .3s}
.gnav ul a:hover::after,.gnav ul a.current::after{left:0;right:0}
.hd-tel{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--pink);color:#fff;padding:8px 20px;line-height:1.25}
.hd-tel small{font-size:10px;letter-spacing:.12em}
.hd-tel b{font-family:var(--en);font-size:19px;letter-spacing:.06em}
.burger{display:none}

/* SP：テンプレ①の下部固定バー */
.sp-bar{display:none}
@media (max-width:1024px){
  .gnav ul{display:none}
}
@media (max-width:768px){
  :root{--hd:64px}
  .logo svg{width:50px}.logo .lg-name{font-size:18px}.logo .lg-sub{font-size:9px}
  .hd-tel{display:none}
  .sp-bar{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;z-index:110;background:var(--ink);color:#fff;padding-bottom:env(safe-area-inset-bottom,0px)}
  .sp-bar a,.sp-bar button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;height:60px;font-family:var(--en);font-size:10px;letter-spacing:.1em;color:#fff;background:none;border:0;border-right:1px solid rgba(255,255,255,.12)}
  .sp-bar .ic{width:20px;height:20px;fill:none;stroke:#fff;stroke-width:1.6}
  .sp-bar a.tel{background:var(--pink)}
  body{padding-bottom:60px}
}
@media (min-width:769px) and (max-width:1024px){
  .burger{display:flex}
}
.burger{width:48px;height:48px;align-items:center;justify-content:center;flex-direction:column;gap:6px;background:none;border:0;color:inherit}
.burger span{display:block;width:26px;height:2px;background:currentColor;transition:transform .3s,opacity .3s}
.menu-open .burger span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.menu-open .burger span:nth-child(2){opacity:0}
.menu-open .burger span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
.sp-menu{position:fixed;inset:0;z-index:105;background:rgba(22,22,22,.97);color:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:28px;opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s;padding:80px 24px 100px}
.menu-open .sp-menu{opacity:1;visibility:visible}
.sp-menu ul{text-align:center}
.sp-menu ul li+li{margin-top:16px}
.sp-menu ul a{font-family:var(--mincho);font-size:20px;letter-spacing:.14em}
.sp-menu ul a small{display:block;font-family:var(--en);font-size:10px;color:var(--pink-soft);letter-spacing:.24em}
.sp-menu .pol{font-size:12px;color:rgba(255,255,255,.6)}
.sp-menu .close{position:absolute;top:calc(14px + env(safe-area-inset-top,0px));right:16px;width:44px;height:44px;background:none;border:0;color:#fff;font-size:28px}

/* =========================================================
   _front-page.scss
   ========================================================= */
/* --- MV --- */
.hero{position:relative;height:100svh;min-height:620px;max-height:1000px;color:#fff;overflow:hidden;background:var(--ink)}
.hero .slides{position:absolute;inset:0}
.hero .slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.08);transition:opacity 1.6s ease,transform 7s linear}
.hero .slides img.on{opacity:1;transform:scale(1)}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,14,14,.82) 0%,rgba(14,14,14,.55) 48%,rgba(14,14,14,.15) 100%)}
.hero .inner{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:center;width:min(var(--wrap),88%);margin:0 auto;padding-top:var(--hd)}
.hero .label{font-family:var(--en);font-size:12px;letter-spacing:.32em;display:flex;align-items:center;gap:14px;color:rgba(255,255,255,.85)}
.hero .label::before{content:"";width:46px;height:1px;background:var(--pink-soft)}
.hero h1{font-family:var(--mincho);font-weight:700;font-size:clamp(40px,6.4vw,88px);line-height:1.3;letter-spacing:.08em;margin-top:26px}
.hero h1 em{color:var(--pink-soft)}
.hero h1 .ln{display:inline-block}
.hero .lead{margin-top:28px;font-size:clamp(15px,1.3vw,17px);line-height:2.1;max-width:560px;color:rgba(255,255,255,.9)}
.hero .acts{margin-top:40px;display:flex;flex-wrap:wrap;align-items:center;gap:18px 28px}
.hero .tel-big{display:flex;flex-direction:column;line-height:1.3}
.hero .tel-big b{font-family:var(--en);font-size:clamp(26px,2.6vw,34px);letter-spacing:.04em}
.hero .tel-big small{font-size:12px;color:rgba(255,255,255,.75)}
.hero .vert{position:absolute;right:clamp(16px,3vw,44px);bottom:60px;z-index:2;writing-mode:vertical-rl;font-family:var(--en);font-size:11px;letter-spacing:.4em;color:rgba(255,255,255,.6)}
.hero .scroll{position:absolute;left:50%;bottom:22px;z-index:2;width:1px;height:58px;background:rgba(255,255,255,.25);overflow:hidden}
.hero .scroll::after{content:"";position:absolute;left:0;top:-58px;width:1px;height:58px;background:#fff;animation:scl 2.4s ease-in-out infinite}
@keyframes scl{to{top:58px}}
/* 舞う花びら */
.fall{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.fall i{position:absolute;top:-20px;width:12px;height:12px;background:var(--pink-soft);opacity:.75;animation:fall linear infinite;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.0 22.0C0.0 17.6 -2.8 6.8 3.4 1.2L12.0 5.2L20.6 1.2C26.8 6.8 24.0 17.6 12.0 22.0Z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.0 22.0C0.0 17.6 -2.8 6.8 3.4 1.2L12.0 5.2L20.6 1.2C26.8 6.8 24.0 17.6 12.0 22.0Z'/%3E%3C/svg%3E") center/contain no-repeat}
@keyframes fall{0%{transform:translate(0,0) rotate(0)}100%{transform:translate(-120px,110vh) rotate(540deg)}}

/* --- 信頼帯 --- */
.cred{background:var(--ink);color:#fff}
.cred ul{display:grid;grid-template-columns:repeat(4,1fr)}
.cred li{padding:30px 26px;border-left:1px solid rgba(255,255,255,.12)}
.cred li:last-child{border-right:1px solid rgba(255,255,255,.12)}
.cred dt{font-size:12px;color:var(--pink-soft);letter-spacing:.14em;font-weight:700}
.cred dd{margin:8px 0 0;font-size:14px;line-height:1.75}
.cred dd b{font-family:var(--en);font-size:18px;letter-spacing:.04em}

/* --- 事業内容（TOP） --- */
.sec{padding:clamp(80px,10vw,140px) 0}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.svc-card{display:flex;flex-direction:column;background:#fff}
.svc-card .ph{position:relative;aspect-ratio:4/3;overflow:hidden;background:#ddd}
.svc-card .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.svc-card:hover .ph img{transform:scale(1.05)}
.svc-card .no{position:absolute;left:0;bottom:0;background:var(--ink);color:#fff;font-family:var(--en);font-size:14px;padding:8px 14px;letter-spacing:.1em}
.svc-card .main{position:absolute;right:0;top:0;background:var(--pink);color:#fff;font-size:11px;font-weight:700;padding:5px 12px;letter-spacing:.14em}
.svc-card h3{font-family:var(--mincho);font-size:22px;font-weight:700;color:var(--ink);margin:24px 0 12px;letter-spacing:.08em}
.svc-card p{font-size:15px;line-height:1.95}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.tags li{font-size:12px;border:1px solid var(--line);padding:3px 12px;letter-spacing:.06em}
.estate-band{margin-top:56px;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);background:var(--pink-pale)}
.estate-band .ph{min-height:300px;position:relative}
.estate-band .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.estate-band .tx{padding:clamp(32px,4vw,56px)}
.estate-band .tx .en{font-family:var(--en);font-size:12px;letter-spacing:.28em;color:var(--pink);font-weight:600}
.estate-band h3{font-family:var(--mincho);font-size:clamp(22px,2.3vw,28px);font-weight:700;color:var(--ink);margin:10px 0 16px;letter-spacing:.06em}
.estate-band .tags li{background:#fff;border-color:#f3c6d5}
.sec-foot{margin-top:56px;display:flex;justify-content:space-between;align-items:center;gap:24px;border-top:1px solid var(--line);padding-top:34px}
.sec-foot p{font-size:14px;color:var(--gray)}

/* --- 想い --- */
.mind{background:var(--mist);position:relative;overflow:hidden}
.mind .grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,96px);align-items:center}
.mind .ph{position:relative}
.mind .ph img{width:100%;aspect-ratio:4/5;object-fit:cover}
.mind .ph::before{content:"";position:absolute;left:-22px;top:-22px;width:48%;height:48%;border-left:3px solid var(--pink);border-top:3px solid var(--pink)}
.mind .body p+p{margin-top:1.4em}
.origin{margin-top:40px;background:#fff;padding:28px 30px;display:flex;gap:20px;align-items:flex-start;border-left:3px solid var(--pink)}
.origin .petal{width:30px;height:30px;flex:none;margin-top:4px}
.origin h4{font-family:var(--mincho);font-size:17px;color:var(--ink);margin-bottom:6px;letter-spacing:.08em}
.origin p{font-size:14px;line-height:1.95}
.mind .bg-txt{position:absolute;right:-1vw;bottom:-2vw;font-family:var(--en);font-size:clamp(80px,13vw,190px);color:rgba(214,51,108,.06);letter-spacing:.04em;line-height:1;pointer-events:none;white-space:nowrap}

/* --- 強み（テンプレ①のダークグラデ面） --- */
.strength{background:linear-gradient(180deg,#575757 0%,#2a2a2a 100%);color:#fff}
.str-list{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.str-list li{background:#fff;color:var(--text);padding:36px 30px 34px;box-shadow:8px 8px 0 rgba(0,0,0,.6);position:relative}
.str-list .num{font-family:var(--en);font-size:44px;line-height:1;color:var(--pink)}
.str-list h3{font-family:var(--mincho);font-size:20px;color:var(--ink);margin:16px 0 12px;padding-bottom:14px;border-bottom:1px solid var(--ink);letter-spacing:.06em}
.str-list p{font-size:15px}
.figs{display:grid;grid-template-columns:repeat(3,1fr);margin-top:56px;border-top:1px solid rgba(255,255,255,.2);border-bottom:1px solid rgba(255,255,255,.2)}
.figs div{text-align:center;padding:30px 10px}
.figs div+div{border-left:1px solid rgba(255,255,255,.2)}
.figs b{font-family:var(--en);font-size:clamp(34px,4vw,52px);line-height:1;letter-spacing:.02em}
.figs b small{font-family:var(--gothic);font-size:16px;margin-left:4px}
.figs span{display:block;margin-top:8px;font-size:13px;color:rgba(255,255,255,.75);letter-spacing:.12em}

/* --- 施工実績（TOP） --- */
.works-pre .strip{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.works-pre figure{margin:0}
.works-pre figure img{width:100%;aspect-ratio:4/3;object-fit:cover}
.works-pre figcaption{font-size:13px;margin-top:10px;display:flex;gap:8px;align-items:baseline}
.works-pre figcaption b{font-family:var(--en);color:var(--pink);font-size:13px}
.works-pre .case-ttl{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-bottom:22px}
.works-pre .case-ttl h3{font-family:var(--mincho);font-size:20px;color:var(--ink);letter-spacing:.06em}
.works-pre .case-ttl span{font-size:13px;color:var(--gray)}

/* --- RECRUIT（テンプレ①：写真＋白カード） --- */
.recruit-top{background:linear-gradient(180deg,#3a3a3a 0%,#1e1e1e 100%);padding:clamp(80px,9vw,130px) 0}
.recruit-top .grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}
.recruit-top .ph img{width:100%;aspect-ratio:5/4;object-fit:cover}
.recruit-top .card{background:#fff;padding:clamp(32px,4vw,52px);margin-left:-60px;position:relative;z-index:2;box-shadow:10px 10px 0 rgba(0,0,0,.7)}
.recruit-top .card .ttl{margin-bottom:22px}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:26px 0 30px}
.facts div{background:var(--pink-pale);padding:14px 10px;text-align:center}
.facts dt{font-size:11px;color:var(--pink);font-weight:700;letter-spacing:.12em}
.facts dd{margin:4px 0 0;font-weight:700;color:var(--ink);font-size:14px;line-height:1.5}

/* --- 3タイル（テンプレ①） --- */
.tiles{display:grid;grid-template-columns:repeat(3,1fr);background:var(--ink)}
.tile{position:relative;aspect-ratio:16/11;overflow:hidden;display:block;color:#fff}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease),filter .6s}
.tile::before{content:"";position:absolute;inset:0;background:rgba(10,10,10,.42);z-index:1;transition:background .5s}
.tile:hover img{transform:scale(1.06)}
.tile:hover::before{background:rgba(10,10,10,.25)}
.tile .lb{position:absolute;left:50%;bottom:16%;transform:translateX(-50%);z-index:2;text-align:center;min-width:62%}
.tile .lb b{display:block;background:#fff;color:var(--ink);font-family:var(--en);font-size:18px;letter-spacing:.14em;padding:6px 10px}
.tile .lb span{display:block;background:var(--pink);font-size:12px;letter-spacing:.14em;padding:4px 10px}
.tile .fr{position:absolute;inset:16px;z-index:2;pointer-events:none}
.tile .fr i{position:absolute;background:rgba(255,255,255,.9);transition:all .6s var(--ease)}
.tile .fr i:nth-child(1){left:0;top:0;height:1px;width:0}
.tile .fr i:nth-child(2){right:0;top:0;width:1px;height:0}
.tile .fr i:nth-child(3){right:0;bottom:0;height:1px;width:0}
.tile .fr i:nth-child(4){left:0;bottom:0;width:1px;height:0}
.tile:hover .fr i:nth-child(odd){width:100%}
.tile:hover .fr i:nth-child(even){height:100%}

/* =========================================================
   _footer.scss（CONTACT帯＋フッター）
   ========================================================= */
.cta{position:relative;color:#fff;text-align:center;padding:clamp(80px,9vw,120px) 0;overflow:hidden;background:var(--ink)}
.cta .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.28}
.cta .wrap{position:relative}
.cta h2{font-family:var(--mincho);font-size:clamp(24px,2.8vw,34px);font-weight:700;margin-top:14px;letter-spacing:.08em}
.cta .btns{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:820px;margin:40px auto 0}
.cta .b-tel,.cta .b-form{display:flex;align-items:center;justify-content:center;gap:12px;min-height:76px;font-family:var(--en);font-size:26px;letter-spacing:.06em;transition:background .3s,color .3s}
.cta .b-tel{background:#fff;color:var(--ink)}
.cta .b-form{background:var(--pink);color:#fff;font-size:17px;letter-spacing:.2em}
.cta .b-form:hover{background:#fff;color:var(--pink)}
.cta .b-tel svg,.cta .b-form svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6}
.cta .info{margin-top:30px;font-size:14px;line-height:2;color:rgba(255,255,255,.85)}
.site-ft{background:#111;color:rgba(255,255,255,.85);padding:64px 0 28px}
.site-ft .top{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap}
.site-ft .logo{color:#fff}
.site-ft address{font-style:normal;font-size:13px;line-height:2;margin-top:18px}
.site-ft nav ul{display:flex;flex-wrap:wrap;gap:10px 28px;justify-content:flex-end;font-size:13px}
.site-ft nav a:hover{color:var(--pink-soft)}
.site-ft .copy{margin-top:48px;padding-top:22px;border-top:1px solid rgba(255,255,255,.12);font-size:11px;color:rgba(255,255,255,.5);text-align:center;font-family:var(--en);letter-spacing:.1em}
.to-top{position:fixed;right:20px;bottom:80px;z-index:90;width:48px;height:48px;background:var(--pink);color:#fff;border:0;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.to-top.show{opacity:1;visibility:visible}
.to-top::before{content:"";width:12px;height:12px;border-left:2px solid #fff;border-top:2px solid #fff;transform:translateY(3px) rotate(45deg)}
@media (max-width:768px){.to-top{bottom:76px;right:12px;width:42px;height:42px}}

/* =========================================================
   下層共通（#lower）
   ========================================================= */
.lower{position:relative;height:clamp(300px,38vw,440px);display:flex;align-items:center;justify-content:center;color:#fff;overflow:hidden;margin-top:var(--hd)}
.lower img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lower::after{content:"";position:absolute;inset:0;background:rgba(14,14,14,.55)}
.lower .in{position:relative;z-index:2;text-align:center}
.lower .in .en{font-family:var(--en);font-size:13px;letter-spacing:.34em;color:var(--pink-soft);display:flex;align-items:center;justify-content:center;gap:10px}
.lower h1{font-family:var(--mincho);font-weight:700;font-size:clamp(30px,3.6vw,44px);letter-spacing:.14em;margin-top:10px}
.crumb{border-bottom:1px solid var(--line);font-size:12px;color:var(--gray)}
.crumb ol{display:flex;gap:10px;padding:14px 0}
.crumb li+li::before{content:"/";margin-right:10px;color:#bbb}
.intro{max-width:780px;margin:0 auto;text-align:center;font-size:16px;line-height:2.2}
.intro .h{font-family:var(--mincho);font-size:clamp(22px,2.6vw,32px);font-weight:700;color:var(--ink);line-height:1.6;margin-bottom:24px;letter-spacing:.06em}

/* --- 事業内容 --- */
.svc-row{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(36px,5vw,80px);align-items:center}
.svc-row+.svc-row{margin-top:clamp(72px,8vw,120px)}
.svc-row.rev .ph{order:2}
.svc-row .ph{position:relative}
.svc-row .ph img{width:100%;aspect-ratio:4/3;object-fit:cover}
.svc-row .ph .no{position:absolute;left:-14px;top:-26px;font-family:var(--en);font-size:clamp(56px,6vw,84px);line-height:1;color:var(--pink);opacity:.9}
.svc-row .badge{display:inline-block;background:var(--pink);color:#fff;font-size:12px;font-weight:700;padding:4px 12px;letter-spacing:.1em}
.svc-row h3{font-family:var(--mincho);font-size:clamp(24px,2.6vw,30px);color:var(--ink);margin:14px 0 18px;letter-spacing:.08em}
.svc-row .en-s{font-family:var(--en);font-size:12px;letter-spacing:.24em;color:var(--gray)}
.chk{margin-top:22px;border-top:1px solid var(--line)}
.chk li{padding:13px 0 13px 28px;border-bottom:1px solid var(--line);position:relative;font-weight:500}
.chk li::before{content:"";position:absolute;left:4px;top:22px;width:12px;height:12px;background:var(--pink);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.0 12.4C5.52 10.02 4.01 4.19 7.36 1.17L12.0 3.33L16.64 1.17C19.99 4.19 18.48 10.02 12.0 12.4ZM12.0 12.4C12.26 5.5 17.34 2.26 21.25 4.51L20.63 9.6L24.12 13.35C22.28 17.46 16.26 17.83 12.0 12.4ZM12.0 12.4C18.64 10.51 23.29 14.34 22.36 18.76L17.33 19.74L14.84 24.22C10.36 23.74 8.15 18.13 12.0 12.4ZM12.0 12.4C15.85 18.13 13.64 23.74 9.16 24.22L6.67 19.74L1.64 18.76C0.71 14.34 5.36 10.51 12.0 12.4ZM12.0 12.4C7.74 17.83 1.72 17.46 -0.12 13.35L3.37 9.6L2.75 4.51C6.66 2.26 11.74 5.5 12.0 12.4Z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.0 12.4C5.52 10.02 4.01 4.19 7.36 1.17L12.0 3.33L16.64 1.17C19.99 4.19 18.48 10.02 12.0 12.4ZM12.0 12.4C12.26 5.5 17.34 2.26 21.25 4.51L20.63 9.6L24.12 13.35C22.28 17.46 16.26 17.83 12.0 12.4ZM12.0 12.4C18.64 10.51 23.29 14.34 22.36 18.76L17.33 19.74L14.84 24.22C10.36 23.74 8.15 18.13 12.0 12.4ZM12.0 12.4C15.85 18.13 13.64 23.74 9.16 24.22L6.67 19.74L1.64 18.76C0.71 14.34 5.36 10.51 12.0 12.4ZM12.0 12.4C7.74 17.83 1.72 17.46 -0.12 13.35L3.37 9.6L2.75 4.51C6.66 2.26 11.74 5.5 12.0 12.4Z'/%3E%3C/svg%3E") center/contain no-repeat}
.sub-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.sub-card{background:#fff;border:1px solid var(--line)}
.sub-card img{width:100%;aspect-ratio:3/2;object-fit:cover}
.sub-card .tx{padding:24px 24px 28px}
.sub-card h4{font-family:var(--mincho);font-size:20px;color:var(--ink);margin-bottom:10px;display:flex;align-items:center;gap:10px;letter-spacing:.06em}
.sub-card p{font-size:15px}
.bg-mist{background:var(--mist)}
.bg-pale{background:var(--pink-pale)}
.estate-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:8px}
.estate-grid li{background:#fff;padding:32px 28px;border-top:3px solid var(--pink)}
.estate-grid .en{font-family:var(--en);font-size:11px;letter-spacing:.24em;color:var(--pink)}
.estate-grid h4{font-family:var(--mincho);font-size:21px;color:var(--ink);margin:6px 0 12px;letter-spacing:.06em}
.estate-grid p{font-size:15px}
.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:0;counter-reset:f}
.flow li{position:relative;padding:28px 22px;background:#fff;border:1px solid var(--line);margin-right:-1px}
.flow li b{font-family:var(--en);color:var(--pink);font-size:13px;letter-spacing:.2em}
.flow li h4{font-family:var(--mincho);font-size:18px;color:var(--ink);margin:8px 0 8px}
.flow li p{font-size:14px;line-height:1.85}
.flow li:not(:last-child)::after{content:"";position:absolute;right:-9px;top:50%;width:16px;height:16px;background:#fff;border-top:1px solid var(--line);border-right:1px solid var(--line);transform:translateY(-50%) rotate(45deg);z-index:2}
.area-box{display:grid;grid-template-columns:auto 1fr;gap:32px;align-items:center;background:var(--ink);color:#fff;padding:36px 40px;margin-top:48px}
.area-box .k{font-family:var(--mincho);font-size:26px;font-weight:700;letter-spacing:.1em}
.area-box .k small{display:block;font-family:var(--en);font-size:11px;letter-spacing:.3em;color:var(--pink-soft);font-weight:400}

/* --- 施工実績 --- */
.case{border-top:1px solid var(--ink);padding-top:40px}
.case+.case{margin-top:80px}
.case-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:40px;align-items:start;margin-bottom:36px}
.case-head .cat{display:inline-block;background:var(--pink);color:#fff;font-size:12px;font-weight:700;padding:3px 12px;letter-spacing:.1em}
.case-head h2{font-family:var(--mincho);font-size:clamp(23px,2.4vw,30px);color:var(--ink);margin:12px 0 14px;letter-spacing:.06em;line-height:1.55}
.case-meta{width:100%;border-collapse:collapse;font-size:14px}
.case-meta th,.case-meta td{border-bottom:1px solid var(--line);padding:11px 6px;text-align:left;vertical-align:top}
.case-meta th{width:96px;color:var(--gray);font-weight:500}
.process{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;counter-reset:st}
.process li{position:relative}
.process button{display:block;width:100%;padding:0;border:0;background:none;text-align:left;position:relative}
.process img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:opacity .3s}
.process button:hover img{opacity:.8}
.process .st{position:absolute;left:0;top:0;background:var(--ink);color:#fff;font-family:var(--en);font-size:12px;padding:5px 10px;letter-spacing:.1em}
.process h4{font-family:var(--mincho);font-size:17px;color:var(--ink);margin:14px 0 6px}
.process p{font-size:13px;line-height:1.85}
.process li:not(:last-child)::after{content:"";position:absolute;right:-12px;top:calc(37.5% - 4px);width:8px;height:8px;border-top:2px solid var(--pink);border-right:2px solid var(--pink);transform:rotate(45deg)}
.works-note{margin-top:60px;text-align:center;font-size:14px;color:var(--gray);background:var(--mist);padding:22px}
.lb-modal{position:fixed;inset:0;z-index:200;background:rgba(10,10,10,.92);display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.lb-modal.on{opacity:1;visibility:visible}
.lb-modal figure{margin:0;max-width:min(960px,100%);color:#fff;text-align:center}
.lb-modal img{width:100%;max-height:78vh;object-fit:contain}
.lb-modal figcaption{margin-top:12px;font-size:14px}
.lb-modal .x{position:absolute;top:calc(16px + env(safe-area-inset-top,0px));right:16px;width:48px;height:48px;border:0;background:none;color:#fff;font-size:32px}

/* --- 求人情報 --- */
.jobs{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.job{background:#fff;border:1px solid var(--line);padding:34px 28px 30px;position:relative}
.job .en{font-family:var(--en);font-size:11px;letter-spacing:.24em;color:var(--pink)}
.job h3{font-family:var(--mincho);font-size:24px;color:var(--ink);margin:6px 0 14px;letter-spacing:.1em}
.job p{font-size:15px}
.job .ic{position:absolute;right:24px;top:28px;width:44px;height:44px;fill:none;stroke:var(--pink);stroke-width:1.4}
.welcome{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.welcome li{background:#fff;padding:26px 24px;display:flex;gap:16px;align-items:flex-start}
.welcome .petal{width:22px;height:22px;flex:none;margin-top:4px}
.welcome b{display:block;font-family:var(--mincho);font-size:18px;color:var(--ink);margin-bottom:4px}
.welcome p{font-size:14px}
.spec{width:100%;border-collapse:collapse;border-top:2px solid var(--ink)}
.spec th,.spec td{padding:22px 20px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:15px}
.spec th{width:200px;background:var(--mist);font-weight:700;color:var(--ink);letter-spacing:.06em}
.spec td .wage{font-family:var(--en);font-size:22px;color:var(--pink);font-weight:600;letter-spacing:.02em}
.apply{margin-top:48px;display:flex;justify-content:center;gap:20px;flex-wrap:wrap}

/* --- 会社概要 --- */
.greet{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,6vw,90px);align-items:start}
.greet .ph img{width:100%;aspect-ratio:4/5;object-fit:cover}
.greet .h{font-family:var(--mincho);font-size:clamp(23px,2.6vw,32px);font-weight:700;color:var(--ink);line-height:1.65;margin-bottom:26px;letter-spacing:.06em}
.greet p+p{margin-top:1.3em}
.greet .sign{margin-top:32px;text-align:right;font-family:var(--mincho);color:var(--ink)}
.greet .sign b{font-size:24px;margin-left:16px;letter-spacing:.2em}
.co-table{width:100%;border-collapse:collapse;border-top:2px solid var(--ink)}
.co-table th,.co-table td{padding:20px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:15px}
.co-table th{width:200px;font-weight:700;color:var(--ink);background:var(--mist)}
.map{margin-top:48px;aspect-ratio:16/7;background:#e9e9e9}
.map iframe{width:100%;height:100%;border:0}

/* --- お問い合わせ --- */
.tel-card{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;background:var(--ink);color:#fff;padding:34px 40px;margin-bottom:64px}
.tel-card .k{font-family:var(--mincho);font-size:20px;font-weight:700}
.tel-card .k small{display:block;font-size:13px;font-family:var(--gothic);font-weight:400;color:rgba(255,255,255,.75);margin-top:4px}
.tel-card .n{text-align:right;line-height:1.4}
.tel-card .n b{font-family:var(--en);font-size:clamp(28px,3vw,38px);letter-spacing:.04em}
.tel-card .n small{display:block;font-size:13px;color:rgba(255,255,255,.75)}
.form{max-width:860px;margin:0 auto}
.form .f{display:grid;grid-template-columns:230px 1fr;gap:20px;padding:22px 0;border-bottom:1px solid var(--line)}
.form .f:first-child{border-top:1px solid var(--line)}
.form label.k,.form .k{font-weight:700;color:var(--ink);padding-top:10px;display:flex;align-items:flex-start;gap:10px}
.req,.opt{font-size:11px;padding:2px 8px;color:#fff;background:var(--pink);flex:none;margin-top:3px;letter-spacing:.06em}
.opt{background:#9a9a9a}
.form input[type=text],.form input[type=tel],.form input[type=email],.form textarea{width:100%;border:1px solid #cfcfcf;background:#fafafa;padding:14px 16px;font:inherit;font-size:16px;color:var(--text);border-radius:0}
.form input:focus,.form textarea:focus{outline:2px solid var(--pink);outline-offset:0;background:#fff}
.form textarea{min-height:200px;resize:vertical}
.radios{display:flex;flex-wrap:wrap;gap:10px 24px;padding-top:10px}
.radios label{display:flex;align-items:center;gap:8px;cursor:pointer}
.radios input{accent-color:var(--pink);width:18px;height:18px}
.agree{text-align:center;margin-top:36px;font-size:14px}
.agree a{color:var(--pink);text-decoration:underline}
.agree input{accent-color:var(--pink);width:18px;height:18px;vertical-align:-3px;margin-right:8px}
.submit{display:flex;justify-content:center;margin-top:30px}
.submit .btn{min-width:300px}

/* --- プライバシーポリシー --- */
.policy{max-width:860px;margin:0 auto}
.policy h2{font-family:var(--mincho);font-size:20px;color:var(--ink);margin:44px 0 12px;padding-left:14px;border-left:3px solid var(--pink)}
.policy p,.policy li{font-size:15px}
.policy ul{list-style:disc;padding-left:1.4em;margin-top:8px}

/* =========================================================
   レスポンシブ
   ========================================================= */
@media (max-width:1024px){
  .cred ul{grid-template-columns:repeat(2,1fr)}
  .cred li:nth-child(2){border-right:1px solid rgba(255,255,255,.12)}
  .cred li:nth-child(n+3){border-top:1px solid rgba(255,255,255,.12)}
  .svc-grid{grid-template-columns:repeat(2,1fr)}
  .str-list{grid-template-columns:1fr 1fr}
  .works-pre .strip{grid-template-columns:repeat(3,1fr)}
  .works-pre figure:nth-child(n+4){display:none}
  .recruit-top .card{margin-left:-40px}
  .process{grid-template-columns:repeat(3,1fr)}
  .process li:nth-child(3)::after{display:none}
  .sub-grid,.estate-grid,.jobs{grid-template-columns:1fr 1fr}
  .welcome{grid-template-columns:1fr}
  .flow{grid-template-columns:1fr 1fr}
  .flow li{margin:0 -1px -1px 0}
  .flow li::after{display:none}
  .case-head{grid-template-columns:1fr}
}
@media (max-width:768px){
  body{font-size:15px}
  .hero{min-height:560px}
  .hero .vert{display:none}
  .hero::after{background:linear-gradient(180deg,rgba(14,14,14,.45) 0%,rgba(14,14,14,.78) 100%)}
  .hero .acts .btn{width:100%}
  .cred li{padding:20px 16px}
  .cred dd{font-size:13px}
  .svc-grid{grid-template-columns:1fr;gap:44px}
  .estate-band{grid-template-columns:1fr}
  .estate-band .ph{min-height:220px}
  .sec-foot{flex-direction:column;align-items:stretch;text-align:left}
  .mind .grid,.greet{grid-template-columns:1fr}
  .mind .ph::before{left:-10px;top:-10px}
  .origin{padding:22px 20px}
  .str-list{grid-template-columns:1fr}
  .figs{grid-template-columns:1fr 1fr 1fr}
  .figs b{font-size:28px}.figs b small{font-size:12px}.figs span{font-size:11px;letter-spacing:.04em}
  .works-pre .strip{grid-template-columns:1fr 1fr}
  .works-pre figure:nth-child(3){display:none}
  .recruit-top .grid{grid-template-columns:1fr}
  .recruit-top .card{margin:-40px 16px 0}
  /* 求人ポイント：スマホは1列にして、項目名と内容を横並び1行で */
  .facts{grid-template-columns:1fr;gap:6px}
  .facts div{display:flex;align-items:center;gap:16px;text-align:left;padding:12px 16px}
  .facts dt{flex:none;width:5em;letter-spacing:.06em}
  .facts dd{margin:0;font-size:15px;white-space:nowrap;letter-spacing:.02em}
  .facts dd br{display:none}
  .figs b{white-space:nowrap}
  .tiles{grid-template-columns:1fr}
  .tile{aspect-ratio:16/8}
  .cta .btns{grid-template-columns:1fr;gap:14px}
  .cta .b-tel{font-size:24px}
  .site-ft nav ul{justify-content:flex-start}
  .svc-row,.svc-row.rev{grid-template-columns:1fr}
  .svc-row.rev .ph{order:0}
  .svc-row .ph .no{left:8px;top:-20px}
  .sub-grid,.estate-grid,.jobs{grid-template-columns:1fr}
  .flow{grid-template-columns:1fr}
  .area-box{grid-template-columns:1fr;gap:12px;padding:28px 24px}
  .process{grid-template-columns:1fr 1fr;gap:20px 12px}
  .process li::after{display:none}
  .spec th,.spec td,.co-table th,.co-table td{display:block;width:100%;padding:12px 14px}
  .spec th,.co-table th{border-bottom:0}
  .tel-card{grid-template-columns:1fr;padding:26px 22px;text-align:left}
  .tel-card .n{text-align:left}
  .form .f{grid-template-columns:1fr;gap:8px;padding:18px 0}
  .form .k{padding-top:0}
  .submit .btn{min-width:0;width:100%}
  .map{aspect-ratio:4/3}
  .greet .ph img{aspect-ratio:4/3}
}
/* 見出しの泣き別れ対策 */
.ttl h2,.estate-band h3,.intro .h,.greet .h,.cta h2{text-wrap:balance}

/* =========================================================
   WordPress 実装用の追加分
   ========================================================= */
/* 管理バー表示時のヘッダー位置 */
.admin-bar .site-hd{top:32px}
@media (max-width:782px){.admin-bar .site-hd{top:46px}}
@media (max-width:600px){.admin-bar .site-hd{top:0}}

/* ロゴ（画像を登録した場合） */
.logo img{height:52px;width:auto}
@media (max-width:768px){.logo img{height:40px}}
.site-ft .logo img{height:56px}
.logo .lg-img-white{display:none}
.site-hd:not(.is-solid) .logo.has-white .lg-img-dark{display:none}
.site-hd:not(.is-solid) .logo.has-white .lg-img-white{display:block}
.is-lower .site-hd .logo.has-white .lg-img-dark{display:block}
.is-lower .site-hd .logo.has-white .lg-img-white{display:none}

/* 下層MV：TOPバナーと同じ写真を使うため、人物の顔が切れないよう位置を調整 */
.pg-recruit .lower img{object-position:center 15%}

/* 会社概要：写真なしの代表あいさつ */
.greet.no-ph{grid-template-columns:1fr;max-width:880px;margin:0 auto}
/* 求人：写真なしのメッセージは中央揃え（右側が空かないように） */
.greet.msg-center{text-align:center}
.greet.msg-center .ttl .en{justify-content:center}
.greet.msg-center p+p{margin-top:1.6em}
@media (max-width:768px){.greet.msg-center p{text-align:left}}

/* 施工実績：ページ送り */
.wp-pagenavi{margin-top:64px;display:flex;justify-content:center;flex-wrap:wrap;gap:8px;font-family:var(--en)}
.wp-pagenavi a,.wp-pagenavi span{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 12px;border:1px solid var(--line);color:var(--ink);font-size:14px}
.wp-pagenavi span.current{background:var(--pink);border-color:var(--pink);color:#fff}
.wp-pagenavi a:hover{border-color:var(--pink);color:var(--pink)}
.wp-pagenavi .pages{display:none}

/* ---------- お問い合わせ（Contact Form 7） ---------- */
.step-bar{display:flex;justify-content:center;margin:0 auto 48px;max-width:560px}
.step-bar li{flex:1;text-align:center;font-size:13px;font-weight:700;color:var(--gray);padding:12px 6px;background:var(--mist);letter-spacing:.06em;line-height:1.5}
.step-bar li+li{margin-left:2px}
.step-bar li.on{background:var(--ink);color:#fff}
.step-bar li b{display:block;font-family:var(--en);font-size:11px;letter-spacing:.2em;font-weight:400}
.form .wpcf7-form-control-wrap{display:block}
.form .f .val{padding-top:10px;white-space:pre-wrap;overflow-wrap:anywhere}
.form .wpcf7-radio{display:flex;flex-wrap:wrap;gap:10px 24px;padding-top:10px}
.form .wpcf7-list-item{margin:0}
.form .wpcf7-radio label,.form .wpcf7-acceptance label{display:inline-flex;align-items:center;gap:8px;cursor:pointer}
.form .wpcf7-radio input,.form .wpcf7-acceptance input{accent-color:var(--pink);width:18px;height:18px;margin:0}
.form .wpcf7-not-valid-tip{font-size:13px;margin-top:6px;color:#d60000}
.form .wpcf7-response-output{margin:28px 0 0!important;padding:14px 18px!important;font-size:14px;text-align:center}
/* 必須＝赤／任意＝青（ご指定） */
.form .red,.form .blue{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;color:#fff;flex:none;margin-top:3px;letter-spacing:.06em;line-height:1.6}
.form .red{background:#d60000}
.form .blue{background:#1d63c4}
.form .btns-row{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:30px}
.form input[type=submit],.form input[type=button],.form .wpcf7-previous{appearance:none;-webkit-appearance:none;border-radius:0;min-width:280px;min-height:58px;padding:0 30px;font:inherit;font-weight:700;font-size:15px;letter-spacing:.12em;cursor:pointer;transition:background .3s,color .3s,border-color .3s}
.form input[type=submit]{background:var(--pink);border:1px solid var(--pink);color:#fff}
.form input[type=submit]:hover{background:var(--ink);border-color:var(--ink)}
.form input[type=submit]:disabled{opacity:.45;cursor:not-allowed}
.form input[type=button],.form .wpcf7-previous{background:#fff;border:1px solid var(--ink);color:var(--ink)}
.form input[type=button]:hover,.form .wpcf7-previous:hover{background:var(--ink);color:#fff}
.thanks{text-align:center;max-width:720px;margin:0 auto}
.thanks .h{font-family:var(--mincho);font-weight:700;font-size:clamp(22px,2.6vw,30px);color:var(--ink);margin-bottom:22px;letter-spacing:.06em}
.thanks .btn{margin-top:36px}

/* ---------- 改行・段落ちの対策 ---------- */
/* 見出しは文節で折り返し、行の長さをそろえる */
.ttl h2,.ttl .h2,.hero h1,.hero .lead,.lower h1,.intro .h,.greet .h,.cta h2,.estate-band h3,.svc-card h3,.svc-row h3,.str-list h3,.job h3,.case-head h2,.thanks .h,.origin h4,.welcome b,.sub-card h4,.estate-grid h4,.flow li h4,.case-ttl h3,.tel-card .k{word-break:auto-phrase;text-wrap:balance}
/* 本文は文節で折り返し、最終行に1〜2文字だけ残るのを防ぐ */
p,li,dd,td{word-break:auto-phrase;text-wrap:pretty;overflow-wrap:anywhere}
.nowrap{white-space:nowrap}
@media (max-width:768px){
  /* 長い文章は中央揃えだと読みにくいので、スマホでは左揃え */
  .intro p:not(.h),.ttl.center .lead,.cta .info,.works-note,.thanks p:not(.h){text-align:left}
  .hero .lead br,.ttl .lead br{display:none}
  .step-bar li{font-size:12px;padding:10px 4px}
  .form input[type=submit],.form input[type=button],.form .wpcf7-previous{min-width:0;width:100%}
}