:root{
  --blue:#5b95d1; --blue-d:#2f5f9e; --blue-l:#eaf2fb; --gray:#8a8a8a;
  --ink:#222a35; --sub:#5a6473; --line:#e1e6ee; --bg:#fff; --bg2:#f4f6f9;
  --serif:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;
  --en:"Libre Baskerville","Noto Serif JP",serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--serif);color:var(--ink);background:var(--bg);line-height:2;font-size:16px;letter-spacing:.04em}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:1180px;margin:0 auto;padding:0 32px}
.sans{font-family:"Noto Sans JP",sans-serif}

/* ---------- header ---------- */
.site-hd{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);backdrop-filter:blur(6px)}
.site-hd .in{display:flex;align-items:center;justify-content:space-between;height:84px;padding:0 3vw}
.site-hd .logo img{height:58px;width:auto}
.gnav ul{display:flex;gap:clamp(18px,3.2vw,56px);list-style:none;font-size:13px}
.gnav a{position:relative;padding:6px 2px}
.gnav a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--blue);transform:scaleX(0);transition:transform .3s}
.gnav a:hover::after,.gnav a.cur::after{transform:scaleX(1)}
.hd-contact{display:inline-flex;align-items:center;gap:10px;background:linear-gradient(135deg,#8fbbe8,var(--blue));color:#fff;padding:14px 26px;font-family:var(--en);font-size:12px;letter-spacing:.12em}
.hd-contact svg{width:15px;height:15px}
.sp-only{display:none}
.menu-btn{display:none;background:none;border:0;cursor:pointer;width:40px;height:40px;position:relative}
.menu-btn span,.menu-btn::before,.menu-btn::after{content:"";position:absolute;left:8px;right:8px;height:1px;background:var(--ink);transition:.3s}
.menu-btn span{top:20px}.menu-btn::before{top:13px}.menu-btn::after{top:27px}
.open .menu-btn span{opacity:0}.open .menu-btn::before{top:20px;transform:rotate(45deg)}.open .menu-btn::after{top:20px;transform:rotate(-45deg)}

/* side vertical name */
.side-name{position:fixed;left:14px;top:50%;transform:translateY(-50%);writing-mode:vertical-rl;font-size:12px;color:var(--blue);letter-spacing:.4em;z-index:40}

/* ---------- hero (top) ---------- */
.hero{position:relative;margin:0 3vw;height:calc(100vh - 120px);min-height:520px;max-height:860px;overflow:hidden}
.hero img{width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,40,70,.25),rgba(20,40,70,.45))}
.hero .copy{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;text-align:center;padding:0 24px}
.hero h1{font-size:clamp(28px,4vw,50px);font-weight:500;line-height:1.9;letter-spacing:.14em;text-shadow:0 2px 18px rgba(0,0,0,.25)}
.hero p{margin-top:20px;font-size:clamp(14px,1.4vw,17px);letter-spacing:.2em}
.hero .en{font-family:var(--en);font-size:12px;letter-spacing:.4em;opacity:.85;margin-top:28px}

/* ---------- headings ---------- */
.ttl{text-align:center;margin-bottom:64px}
.ttl .en{display:block;font-family:var(--en);color:var(--blue);font-size:clamp(34px,5vw,64px);letter-spacing:.12em;line-height:1.2}
.ttl .ja{display:block;font-size:17px;margin-top:10px;letter-spacing:.2em}
.ttl.left{text-align:left;margin-bottom:28px}
section{padding:120px 0;scroll-margin-top:84px}

/* ---------- message (vertical) ---------- */
.message{position:relative;overflow:hidden;background:
  radial-gradient(60% 50% at 20% 30%,rgba(190,220,250,.55),transparent 70%),
  radial-gradient(50% 60% at 80% 70%,rgba(160,205,245,.55),transparent 70%),
  radial-gradient(40% 40% at 60% 20%,rgba(215,235,255,.8),transparent 70%),
  linear-gradient(180deg,#f3f8fe,#dcebfa)}
.message .bg-en{position:absolute;left:-1vw;top:60px;font-family:var(--en);font-size:clamp(80px,13vw,190px);color:rgba(91,149,209,.09);letter-spacing:.1em;pointer-events:none;white-space:nowrap}
.message .in{position:relative;display:flex;justify-content:center;gap:60px;align-items:flex-start}
.message .v{writing-mode:vertical-rl;font-size:19px;line-height:2.6;letter-spacing:.18em;height:520px}
.message .v .en{display:block;font-family:var(--en);color:var(--blue);font-size:30px;letter-spacing:.2em;margin-left:40px}
.message .logo-mark{align-self:flex-end;width:200px}

/* ---------- banner ---------- */
.banner{display:block;padding:96px 24px;text-align:center;background:
  repeating-linear-gradient(135deg,rgba(255,255,255,.55) 0 2px,transparent 2px 14px),
  linear-gradient(135deg,#e9ecef 0%,#f6f7f9 45%,#e4e7eb 100%);font-size:18px;letter-spacing:.15em;transition:opacity .3s}
.banner:hover{opacity:.8}
.banner small{display:block;font-family:var(--en);color:var(--blue);font-size:12px;letter-spacing:.3em;margin-bottom:8px}

/* ---------- about split ---------- */
.split{position:relative;overflow:hidden}
.split .blur{position:absolute;inset:-30px;background-size:cover;background-position:center;filter:blur(18px) brightness(1.15);opacity:.45}
.split .in{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.split.rev .in>div:first-child{order:2}
.split img{width:100%;aspect-ratio:8/7;object-fit:cover;box-shadow:0 20px 50px rgba(30,50,80,.12)}
.split p{margin-bottom:20px;line-height:2.2}
.btn{display:inline-flex;align-items:center;gap:14px;background:var(--blue);color:#fff;padding:14px 44px;font-size:13px;letter-spacing:.15em;transition:background .3s;font-family:var(--serif);border:0;cursor:pointer}
.btn:hover{background:var(--blue-d)}
.btn::after{content:"→"}

/* ---------- service cards ---------- */
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.svc-card{background:#fff;transition:transform .3s}
.svc-card:hover{transform:translateY(-4px)}
.svc-card img{aspect-ratio:4/3;object-fit:cover;width:100%}
.svc-card .tx{padding:22px 6px}
.svc-card .no{font-family:var(--en);color:var(--blue);font-size:12px;letter-spacing:.25em}
.svc-card h3{font-size:18px;font-weight:500;margin-top:4px;letter-spacing:.12em}
.svc-card p{font-size:14px;color:var(--sub);line-height:1.9;margin-top:6px}

/* features */
.feat{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.feat>div{padding:40px 28px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}
.feat .no{font-family:var(--en);font-size:34px;color:var(--blue);line-height:1}
.feat h3{font-size:17px;font-weight:500;margin:14px 0 8px;letter-spacing:.1em}
.feat p{font-size:14px;color:var(--sub);line-height:1.9}

/* ---------- contact band ---------- */
.cta{position:relative;text-align:center;color:#fff;padding:110px 24px;overflow:hidden}
.cta img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cta::before{content:"";position:absolute;inset:0;background:rgba(36,74,128,.78);z-index:1}
.cta .in{position:relative;z-index:2}
.cta .en{font-family:var(--en);font-size:clamp(34px,5vw,58px);letter-spacing:.15em;line-height:1.2}
.cta p{margin:14px 0 34px;letter-spacing:.12em}
.cta .btn{background:#fff;color:var(--blue-d)}
.cta .btn:hover{background:var(--blue-l)}

/* ---------- sub page head ---------- */
.page-hd{position:relative;margin:0 3vw;height:340px;overflow:hidden}
.page-hd img{width:100%;height:100%;object-fit:cover}
.page-hd::after{content:"";position:absolute;inset:0;background:rgba(25,50,90,.45)}
.page-hd .copy{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff}
.page-hd .en{font-family:var(--en);font-size:clamp(30px,4.4vw,54px);letter-spacing:.14em;line-height:1.3}
.page-hd h1{font-size:16px;font-weight:500;letter-spacing:.25em;margin-top:8px}
.crumb{margin:18px 3vw 0;font-size:12px;color:var(--sub)}
.crumb a{color:var(--blue)}

/* ---------- generic content ---------- */
.lead{text-align:center;max-width:820px;margin:-30px auto 60px;line-height:2.2}
.box{background:#fff;border:1px solid var(--line);padding:44px}
.bg2{background:var(--bg2)}
.list-check{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:14px 40px}
.list-check li{position:relative;padding-left:30px;line-height:1.8}
.list-check li::before{content:"";position:absolute;left:0;top:.5em;width:16px;height:9px;border-left:2px solid var(--blue);border-bottom:2px solid var(--blue);transform:rotate(-45deg)}
.worries{max-width:900px;margin:0 auto}
.worries li{background:#fff;border:1px solid var(--line);padding:18px 24px 18px 56px;font-size:16px}
.worries li::before{left:22px;top:1.55em}
.arrow-down{width:0;height:0;margin:44px auto;border-left:40px solid transparent;border-right:40px solid transparent;border-top:28px solid var(--blue)}
.resolve{text-align:center;font-size:clamp(20px,2.4vw,28px);letter-spacing:.12em;line-height:1.9}
.resolve b{color:var(--blue-d);font-weight:700;background:linear-gradient(transparent 65%,#dceafa 65%)}

.reason{display:grid;grid-template-columns:110px 1fr;gap:28px;padding:40px 0;border-bottom:1px solid var(--line)}
.reason:first-child{border-top:1px solid var(--line)}
.reason .no{font-family:var(--en);font-size:52px;color:var(--blue);line-height:1}
.reason h3{font-size:21px;font-weight:500;margin-bottom:10px;letter-spacing:.1em}
.reason p{color:var(--sub);line-height:2.1}

.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;counter-reset:s}
.steps li{list-style:none;background:#fff;border:1px solid var(--line);padding:26px 20px;position:relative}
.steps li::before{counter-increment:s;content:"STEP " counter(s);display:block;font-family:var(--en);color:var(--blue);font-size:12px;letter-spacing:.2em;margin-bottom:6px}
.steps h3{font-size:16px;font-weight:500;letter-spacing:.08em}
.steps p{font-size:13px;color:var(--sub);line-height:1.9;margin-top:6px}

/* service detail */
.svc-detail{display:grid;grid-template-columns:1fr 1.1fr;gap:64px;align-items:start;padding:90px 0;border-bottom:1px solid var(--line);scroll-margin-top:84px}
.svc-detail:last-child{border-bottom:0}
.svc-detail.rev>img{order:2}
.svc-detail>img{width:100%;aspect-ratio:4/3;object-fit:cover}
.svc-detail .no{font-family:var(--en);color:var(--blue);font-size:13px;letter-spacing:.25em}
.svc-detail h2{font-size:28px;font-weight:500;letter-spacing:.12em;margin:4px 0 2px}
.svc-detail .sub-en{font-family:var(--en);font-size:12px;color:var(--gray);letter-spacing:.25em;margin-bottom:24px}
.svc-detail .catch{font-size:19px;margin-bottom:16px;line-height:1.9}
.svc-detail p{color:var(--sub);line-height:2.1;margin-bottom:24px}
.svc-detail h4{font-size:15px;font-weight:500;border-left:3px solid var(--blue);padding-left:12px;margin-bottom:14px;letter-spacing:.1em}
.tags{display:flex;flex-wrap:wrap;gap:8px}
.tags span{border:1px solid #c9dbef;color:var(--blue-d);background:var(--blue-l);padding:4px 14px;font-size:13px;font-family:"Noto Sans JP",sans-serif}

/* price */
.plans{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-bottom:28px}
.plan{background:#fff;border:1px solid var(--line);padding:44px 32px;text-align:center}
.plan .who{font-family:var(--en);font-size:12px;letter-spacing:.3em;color:var(--blue)}
.plan h3{font-size:20px;font-weight:500;letter-spacing:.12em;margin:6px 0 14px}
.plan .price{font-size:46px;color:var(--blue-d);line-height:1.3;font-family:var(--en)}
.plan .price small{font-family:var(--serif);font-size:16px;margin-left:4px}
.plan .note{font-size:14px;color:var(--sub);margin-top:6px}
.tbl{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line)}
.tbl th,.tbl td{padding:18px 26px;border-bottom:1px solid var(--line);text-align:left;font-weight:400;vertical-align:top;line-height:1.9}
.tbl th{background:var(--blue-l);width:32%;letter-spacing:.08em}
.tbl tr:last-child th,.tbl tr:last-child td{border-bottom:0}
.note-s{font-size:13px;color:var(--sub);margin-top:14px}

/* profile */
.prof{display:grid;grid-template-columns:380px 1fr;gap:64px;align-items:start}
.prof img{width:100%;aspect-ratio:1;object-fit:cover}
.prof .role{color:var(--blue);font-size:14px;letter-spacing:.2em}
.prof h3{font-size:30px;font-weight:500;letter-spacing:.2em;margin:4px 0 20px}
.prof p{color:var(--sub);line-height:2.1;margin-bottom:16px}
.career{list-style:none;margin-top:20px;border-top:1px solid var(--line)}
.career li{padding:12px 0;border-bottom:1px solid var(--line);font-size:15px}

/* faq */
.faq-cat{max-width:900px;margin:0 auto 64px}
.faq-cat h2{font-size:20px;font-weight:500;letter-spacing:.15em;padding-bottom:12px;margin-bottom:20px;border-bottom:1px solid var(--blue)}
.faq-cat details{border-bottom:1px solid var(--line)}
.faq-cat summary{list-style:none;cursor:pointer;padding:22px 44px 22px 44px;position:relative;line-height:1.8}
.faq-cat summary::-webkit-details-marker{display:none}
.faq-cat summary::before{content:"Q";position:absolute;left:6px;top:18px;font-family:var(--en);color:var(--blue);font-size:22px}
.faq-cat summary::after{content:"";position:absolute;right:12px;top:30px;width:10px;height:10px;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);transform:rotate(45deg);transition:.3s}
.faq-cat details[open] summary::after{transform:rotate(-135deg);top:34px}
.faq-cat .a{position:relative;padding:0 20px 26px 44px;color:var(--sub);line-height:2.1}
.faq-cat .a::before{content:"A";position:absolute;left:6px;top:-6px;font-family:var(--en);color:#d9a54a;font-size:22px}

/* form */
.form{max-width:820px;margin:0 auto;background:#fff;border:1px solid var(--line);padding:56px}
.form .row{display:grid;grid-template-columns:220px 1fr;gap:24px;padding:20px 0;border-bottom:1px solid var(--line);align-items:start}
.form label.k{font-size:15px;padding-top:10px;letter-spacing:.08em}
.req{display:inline-block;background:var(--blue);color:#fff;font-size:11px;padding:0 8px;margin-left:10px;font-family:"Noto Sans JP",sans-serif;line-height:1.9}
.form input[type=text],.form input[type=email],.form input[type=tel],.form select,.form textarea{width:100%;border:1px solid #cfd8e3;padding:12px 14px;font:inherit;font-family:"Noto Sans JP",sans-serif;font-size:15px;background:#fbfcfe}
.form textarea{min-height:180px}
.radios{display:flex;flex-wrap:wrap;gap:10px 22px;padding-top:8px;font-family:"Noto Sans JP",sans-serif;font-size:15px}
.radios label{display:flex;align-items:center;gap:6px;cursor:pointer}
.agree{text-align:center;margin:30px 0 26px;font-size:14px}
.agree a{color:var(--blue);text-decoration:underline}
.form .submit{text-align:center}
.form .btn{padding:18px 80px;font-size:15px}
.hp{position:absolute;left:-9999px}
.policy{max-width:820px;margin:60px auto 0;font-size:13px;color:var(--sub);line-height:2}
.policy h3{font-size:15px;color:var(--ink);font-weight:500;margin-bottom:8px}

/* ---------- footer ---------- */
.site-ft{background:#1d2a3d;color:#c2cad7;padding:70px 0 30px;font-size:13px}
.site-ft .in{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap}
.site-ft .fl img{height:64px;background:#fff;padding:8px 14px}
.site-ft .fl p{margin-top:16px;line-height:1.9}
.site-ft ul{list-style:none;display:grid;grid-template-columns:repeat(2,auto);gap:8px 48px}
.site-ft a:hover{color:#fff}
.site-ft .copy{text-align:center;margin-top:50px;font-family:var(--en);font-size:11px;letter-spacing:.15em;color:#8a96a8}

/* fade-in */
.fade{opacity:0;transform:translateY(24px);transition:opacity 1s,transform 1s}
.fade.on{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media (max-width:1024px){
  .gnav{position:fixed;inset:84px 0 auto 0;background:#fff;border-top:1px solid var(--line);display:none;box-shadow:0 10px 30px rgba(0,0,0,.08)}
  .open .gnav{display:block}
  .gnav .sp-only{display:block}
  .gnav ul{flex-direction:column;gap:0;padding:10px 28px 24px;font-size:15px}
  .gnav li a{display:block;padding:14px 0;border-bottom:1px solid var(--line)}
  .gnav a::after{display:none}
  .menu-btn{display:block}
  .hd-contact{display:none}
  .side-name{display:none}
  .svc-grid,.feat{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  body{font-size:15px}
  .wrap{padding:0 18px}
  .site-hd .in{height:68px;padding:0 12px 0 16px}
  .site-hd .logo img{height:46px}
  .gnav{inset:68px 0 auto 0}
  section{padding:80px 0;scroll-margin-top:68px}
  .hero{margin:0;height:78vh;min-height:460px}
  .page-hd{margin:0;height:220px}
  .crumb{margin:12px 16px 0}
  .message .in{flex-direction:column;align-items:center;gap:20px}
  .message .v{writing-mode:horizontal-tb;height:auto;font-size:14px;line-height:2.2;letter-spacing:.06em;text-align:center}
  .hero h1{font-size:22px;letter-spacing:.08em}
  .hero p{font-size:13px;letter-spacing:.08em}
  .message .v .en{display:block;margin:0 0 18px;font-size:24px}
  .message .logo-mark{align-self:center;width:150px}
  .split .in,.svc-detail,.prof,.plans{grid-template-columns:1fr;gap:32px}
  .split.rev .in>div:first-child,.svc-detail.rev>img{order:0}
  .svc-detail{padding:60px 0}
  .svc-grid,.feat,.list-check,.steps{grid-template-columns:1fr}
  .reason{grid-template-columns:1fr;gap:8px}
  .box,.form{padding:28px 18px}
  .form .row{grid-template-columns:1fr;gap:6px}
  .form .btn{padding:16px 40px;width:100%;justify-content:center}
  .tbl th,.tbl td{display:block;width:100%;padding:12px 16px}
  .tbl th{border-bottom:0}
  .prof img{max-width:320px;margin:0 auto}
  .site-ft ul{grid-template-columns:1fr 1fr;gap:8px 24px}
}

/* ===== Wix寄せの上書き ===== */
.hero::after{background:linear-gradient(180deg,rgba(20,40,70,.05),rgba(20,40,70,.25))}
.hero h1{letter-spacing:.18em}
.message{background:url(img/watercolor.webp) center/cover no-repeat}
.page-hd{margin:0;height:380px}
.page-hd::after{background:rgba(20,30,50,.38)}
.page-hd h1{font-size:clamp(22px,2.6vw,32px);letter-spacing:.2em;margin:0}

.sttl{text-align:center;margin-bottom:56px}
.sttl .en{display:block;font-family:var(--en);font-size:13px;letter-spacing:.2em}
.sttl h2{font-size:clamp(22px,2.4vw,30px);font-weight:500;letter-spacing:.15em;margin-top:6px}
.sttl h2 em{font-style:normal;color:#d9a54a}
.sttl::after{content:"";display:block;width:60px;height:2px;background:var(--blue);margin:22px auto 0}

.svc-band{padding:90px 0;background:
  radial-gradient(40% 70% at 50% 40%,rgba(130,190,200,.55),transparent 70%),
  linear-gradient(90deg,#d8d6dc,#c9d3da 50%,#d8d6dc)}
.svc-band.light{background:
  repeating-linear-gradient(135deg,rgba(255,255,255,.6) 0 2px,transparent 2px 60px),
  linear-gradient(135deg,#eceef1,#f7f8fa 50%,#e8eaee)}
.icon-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.icon-cards a{position:relative;background:#fff;padding:54px 20px 34px;text-align:center;box-shadow:0 10px 30px rgba(30,50,80,.08);transition:transform .3s}
.icon-cards a:hover{transform:translateY(-4px)}
.icon-cards svg{width:64px;height:64px;fill:none;stroke:#2a2f38;stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round;margin:0 auto}
.icon-cards h3{font-size:18px;font-weight:500;letter-spacing:.15em;margin-top:18px}
.icon-cards .v-no{position:absolute;right:12px;top:14px;writing-mode:vertical-rl;font-family:var(--en);font-size:11px;letter-spacing:.15em;color:var(--sub)}

.cta{color:var(--ink)}
.cta img{filter:blur(12px) brightness(1.35) saturate(.6);transform:scale(1.08)}
.cta::before{background:rgba(255,255,255,.62)}
.cta .en{color:var(--blue)}
.cta .ja{font-size:18px;letter-spacing:.2em;margin-top:6px}
.cta p{margin:26px 0 36px}
.btn-contact{display:inline-flex;align-items:center;gap:12px;background:linear-gradient(90deg,var(--blue),#c3dbf3);color:#fff;padding:18px 64px;font-family:var(--en);font-size:14px;letter-spacing:.12em;transition:opacity .3s}
.btn-contact:hover{opacity:.85}
.btn-contact svg{width:18px;height:18px}

.bubbles{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;max-width:1120px;margin:0 auto}
.bubbles>div{position:relative;aspect-ratio:1;border-radius:50%;background:#e8f3fd;display:flex;align-items:center;justify-content:center;padding:14%;box-shadow:0 6px 20px rgba(91,149,209,.12)}
.bubbles p{text-align:center;font-size:15px;line-height:1.9;letter-spacing:.06em}
.bubbles svg{position:absolute;right:2%;bottom:0;width:64px;height:64px;background:#fff;border-radius:50%;padding:6px;fill:none;stroke:#3a3f48;stroke-width:2.4;stroke-linecap:round}
.chev{width:22px;height:22px;margin:40px auto;border-right:2px solid var(--blue);border-bottom:2px solid var(--blue);transform:rotate(45deg)}
.resolve img{display:inline-block;height:2.8em;vertical-align:middle;margin:0 .3em}

.site-ft{background:#fff;color:var(--ink);border-top:1px solid var(--line)}
.site-ft .fl img{background:none;padding:0;height:70px}
.site-ft .copy{color:var(--sub)}

@media (max-width:1024px){
  .icon-cards,.bubbles{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  .page-hd{height:220px}
  .icon-cards{gap:14px}
  .icon-cards a{padding:40px 10px 24px}
  .icon-cards svg{width:48px;height:48px}
  .icon-cards h3{font-size:15px;letter-spacing:.06em}
  .bubbles{gap:16px}
  .bubbles p{font-size:12px;line-height:1.7}
  .bubbles svg{width:44px;height:44px}
  .resolve{font-size:15px;letter-spacing:.04em}
  .resolve img{height:2.4em;margin:0 .15em}
  .hero h1{font-size:19px;letter-spacing:.06em}
  .btn-contact{padding:16px 40px}
}

/* ===== 料金ページ ===== */
.sim-wrap{display:grid;grid-template-columns:1fr 1fr;gap:0;max-width:1080px;margin:0 auto;box-shadow:0 14px 40px rgba(30,50,80,.10)}
.sim{background:#fff;padding:40px 40px 28px;font-family:"Noto Sans JP",sans-serif}
.sim .r{margin-bottom:20px}
.sim .r>label{display:block;font-size:14px;font-weight:500;margin-bottom:6px;letter-spacing:.04em}
.sim select,.sim input[type=number]{width:100%;border:1px solid #cfd8e3;padding:11px 12px;font:inherit;font-size:16px;background:#fbfcfe}
.sim .num{display:flex;align-items:center;gap:8px}
.sim .num span{white-space:nowrap;font-size:14px}
.seg{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--blue)}
.seg label{cursor:pointer}
.seg input{position:absolute;opacity:0}
.seg span{display:block;text-align:center;padding:10px;font-size:15px;color:var(--blue-d);transition:.2s}
.seg input:checked+span{background:var(--blue);color:#fff}
.seg input:focus-visible+span{outline:2px solid var(--blue-d);outline-offset:2px}
.sim .chk{display:flex;align-items:center;gap:8px;font-size:15px;cursor:pointer}
.sim .chk input{width:18px;height:18px}
.sim.is-corp .indiv-only{display:none}
.sim-out{background:linear-gradient(160deg,#2f5f9e,#5b95d1);color:#fff;padding:40px;font-family:"Noto Sans JP",sans-serif}
.sim-total{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:6px}
.sim-total>div{background:rgba(255,255,255,.12);padding:16px 18px}
.sim-total span{display:block;font-size:13px;opacity:.85}
.sim-total b{font-family:var(--en);font-size:30px;font-weight:400;letter-spacing:.02em}
.sim-total small{font-size:12px;margin-left:4px}
.sim-in{font-size:13px;opacity:.85;margin-bottom:18px}
.sim-tbl{width:100%;border-collapse:collapse;font-size:13px}
.sim-tbl th,.sim-tbl td{padding:9px 6px;border-bottom:1px solid rgba(255,255,255,.22);text-align:right;font-weight:400;line-height:1.6}
.sim-tbl th:first-child,.sim-tbl td:first-child{text-align:left}
.sim-tbl th{opacity:.8;font-size:12px}
.sim-note{margin-top:16px;background:#fff6e0;color:#7a5a12;padding:10px 14px;font-size:13px;line-height:1.8}
.sim-note2{margin-top:14px;font-size:12px;opacity:.85;line-height:1.8}
.tbl-h{font-size:19px;font-weight:500;letter-spacing:.12em;margin:48px 0 14px;padding-left:14px;border-left:3px solid var(--blue)}
.tbl-h:first-of-type{margin-top:0}
.price-tbl .hd th,.price-tbl .hd td{background:var(--blue);color:#fff;font-size:14px}
.price-tbl td{text-align:right;font-family:"Noto Sans JP",sans-serif}
.ex-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.ex-card{background:#fff;border:1px solid var(--line);padding:32px 28px;text-align:center}
.ex-card h3{font-size:18px;font-weight:500;letter-spacing:.1em}
.ex-card .d{font-size:13px;color:var(--sub);margin:6px 0 18px;line-height:1.8;min-height:3.6em}
.ex-card .v{font-family:var(--en);font-size:20px;color:var(--blue-d)}
.ex-card .v span{font-family:var(--serif);font-size:13px;color:var(--sub);margin-right:10px}
.ex-card .v.big{font-size:28px;margin-top:4px}
.ex-card .s{font-size:12px;color:var(--sub)}
@media (max-width:900px){
  .sim-wrap{grid-template-columns:1fr}
  .ex-grid{grid-template-columns:1fr}
}
@media (max-width:760px){
  .sim,.sim-out{padding:26px 18px}
  .sim-total b{font-size:24px}
  .price-tbl tr{display:grid;grid-template-columns:1fr 1fr}
  .price-tbl th{grid-column:1/-1}
  .price-tbl td{display:block;width:auto;text-align:left;padding:8px 16px 12px}
  .price-tbl .hd{display:none}
  .price-tbl td:nth-of-type(1)::before{content:"月額 ";color:var(--sub);font-size:12px}
  .price-tbl td:nth-of-type(2)::before{content:"申告 ";color:var(--sub);font-size:12px}
}
