/* Fonts are enqueued as a real <link> by zenweb-jp-design-loader.php (zwjp-fonts) —
   an @import here would serialise the font request behind this stylesheet. */
*, *::before, *::after{box-sizing:border-box;margin:0;padding:0}
:root{--gold-text:#a80730;--indigo:#d30939;--indigo-600:#e63a5e;--indigo-700:#a80730;--indigo-tint:#fdf0f3;--indigo-soft:#e9eaf4;
  --ink:#16162a;--ink-2:#33334a;--slate:#62676c;--slate-2:#8a8f98;--line:#e4e5ee;--bg:#fff;--bg-soft:#f7f8fc;
  --gold:#d30939;--wa:#25D366;
  --shadow-sm:0 1px 4px rgba(22,22,42,.07);--shadow-md:0 8px 28px rgba(22,22,42,.1);--shadow-lg:0 22px 60px rgba(22,22,42,.16);
  --ease:cubic-bezier(.4,0,.2,1);--maxw:1200px;}
html{scroll-behavior:smooth}
body{font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:hidden}
h1, h2, h3, h4{font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;line-height:1.1;letter-spacing:-.005em;color:var(--ink)}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.sec{padding:92px 0}
.shead{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:50px}
.shead .l{max-width:680px}
.sindex{font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:800;font-size:13px;letter-spacing:.18em;color:var(--gold-text,#a80730);opacity:.5}
.elementor-6 .eyebrow{display:inline-flex;align-items:center;gap:9px;font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:700;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-text,#a80730);margin:10px 0 0}
.elementor-6 .eyebrow::before, .elementor-6 .eyebrow::after{content:"";width:24px;height:2px;background:var(--indigo);opacity:.55;border-radius:2px}
/* Google-review section replicated on service pages (matches the homepage "Reviews" block).
   .eyebrow is otherwise scoped to .elementor-6, so mirror it under the .review-sec wrapper. */
.review-sec .eyebrow{display:inline-flex;align-items:center;gap:9px;font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:700;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-text,#a80730);margin:10px 0 0}
.review-sec .eyebrow::before, .review-sec .eyebrow::after{content:"";width:24px;height:2px;background:var(--indigo);opacity:.55;border-radius:2px}
.shead h2{font-size:clamp(28px,3.6vw,42px);font-weight:800;letter-spacing:-.01em;margin-top:12px}
.shead .lead{color:var(--slate);font-size:16.5px;line-height:1.7;margin-top:14px}
.shead .act{margin-top:26px}
@media(max-width:760px){.shead .act{margin-top:22px}}
.btn{display:inline-flex;align-items:center;gap:8px;font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:700;font-size:15px;padding:13px 24px;border-radius:999px;cursor:pointer;border:none;white-space:nowrap;transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .2s}
.btn svg{width:18px;height:18px}
.btn-primary{background:var(--indigo);color:#16162a;box-shadow:0 10px 24px rgba(211,9,57,.28)}
.btn-primary:hover{background:var(--indigo-600);transform:translateY(-2px);box-shadow:0 16px 32px rgba(211,9,57,.36)}
.btn-wa{background:var(--wa);color:#06351c;box-shadow:0 10px 24px rgba(37,211,102,.3)}
.btn-wa:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(37,211,102,.4)}
.btn-light{background:#fff;color:var(--gold-text,#a80730);box-shadow:var(--shadow-sm)}
.btn-light:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.btn-outline{background:transparent;color:var(--gold-text,#a80730);border:1.5px solid var(--indigo-soft)}
.btn-outline:hover{background:var(--indigo-tint);transform:translateY(-2px)}
.btn-outline-light{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.4)}
.btn-outline-light:hover{background:rgba(255,255,255,.12);border-color:#fff;transform:translateY(-2px)}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:var(--ink-2);transform:translateY(-2px);box-shadow:var(--shadow-md)}
.header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.9);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);transition:box-shadow .3s}
.header.scrolled{box-shadow:var(--shadow-sm)}
.nav{display:flex;align-items:center;justify-content:space-between;height:74px}
.brand img{height:46px;width:auto;display:block}
.nav-links{display:flex;align-items:center;gap:2px}
.nav-links a{font-weight:600;font-size:15px;color:var(--ink);padding:9px 14px;border-radius:8px;position:relative;transition:.2s}
.nav-links a:hover{color:var(--gold-text,#a80730);background:var(--indigo-tint)}
.nav-links a.active{color:var(--gold-text,#a80730)}
.nav-links a.active::after{content:"";position:absolute;left:14px;right:14px;bottom:2px;height:2px;background:var(--indigo);border-radius:2px}
.hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px}
.hamburger span{width:24px;height:2.4px;background:var(--ink);border-radius:2px;transition:.3s}
@media(max-width:980px){.nav-links, .nav-cta .btn{display:none}
.hamburger{display:flex}}
.mobile-menu{display:none;flex-direction:column;background:#fff;border-bottom:1px solid var(--line);box-shadow:var(--shadow-md)}
.mobile-menu.open{display:flex}
.mobile-menu a{display:block;padding:15px 24px;font-weight:600;border-bottom:1px solid var(--line);font-size:16px}
.mobile-menu a:hover{background:var(--indigo-tint);color:var(--gold-text,#a80730)}
.mobile-menu .btn{margin:18px 24px;justify-content:center}
.elementor-6 .hero{position:relative;min-height:clamp(600px,86vh,820px);display:flex;align-items:center;justify-content:center;overflow:hidden;background:#16162a}
.elementor-6 .hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%;z-index:0}
.elementor-6 .hero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(18,18,34,.58) 0%,rgba(18,18,34,.4) 42%,rgba(18,18,34,.74) 100%),radial-gradient(120% 120% at 50% 38%,rgba(18,18,34,.12),rgba(18,18,34,.78))}
.elementor-6 .hero::after{content:"";position:absolute;inset:0;z-index:1;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:46px 46px;-webkit-mask-image:radial-gradient(circle at 50% 0%,#000,transparent 72%);mask-image:radial-gradient(circle at 50% 0%,#000,transparent 72%)}
.elementor-6 .hero .wrap{position:relative;z-index:2;width:100%;max-width:940px;margin:0 auto;padding:120px 28px;text-align:center}
.elementor-6 .hero-l{max-width:840px;margin:0 auto}
.elementor-6 .hero-eyebrow{display:inline-flex;align-items:center;gap:9px;font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:700;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:#e9eaf4;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);padding:9px 16px;border-radius:999px;backdrop-filter:blur(4px)}
.elementor-6 .hero h1{color:#fff;font-size:clamp(40px,6vw,72px);font-weight:800;line-height:1.04;letter-spacing:-.01em;margin:24px auto 0;max-width:14em;text-shadow:0 2px 34px rgba(0,0,0,.32)}
.elementor-6 .hero h1 em{font-style:normal;color:#9e9ef2;position:relative}
.elementor-6 .hero .sub{color:#e9eaf4;font-size:clamp(16px,1.6vw,18.5px);line-height:1.72;max-width:640px;margin:22px auto 34px}
.elementor-6 .hero-btns{display:flex;gap:13px;flex-wrap:wrap;justify-content:center}
.elementor-6 .hero .trust{display:flex;flex-wrap:nowrap;justify-content:center;align-items:center;gap:18px 30px;width:min(1180px,92vw);position:relative;left:50%;transform:translateX(-50%);margin-top:46px;padding-top:30px;border-top:1px solid rgba(255,255,255,.18)}
.elementor-6 .hero .trust>div{display:flex;align-items:center;gap:10px;font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:700;font-size:clamp(13px,1.15vw,16px);line-height:1.3;letter-spacing:.005em;color:#fff;white-space:nowrap}
.elementor-6 .hero .trust>div svg{flex-shrink:0;width:22px;height:22px;color:#9e9ef2}
@media(max-width:760px){.elementor-6 .hero .trust{flex-wrap:wrap;width:auto;left:auto;transform:none}}
@media(max-width:880px){.elementor-6 .hero{min-height:0}
.elementor-6 .hero .wrap{padding:96px 24px}
.elementor-6 .hero-l{max-width:none}}
@media(max-width:560px){.elementor-6 .hero .trust{flex-direction:column;align-items:center;gap:16px}
.elementor-6 .hero .trust>div{font-size:15px}}
@media(max-width:520px){.elementor-6 .hero h1{font-size:clamp(34px,9vw,44px)}}
.clients{padding:58px 0 62px;background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.clients .lbl{text-align:center;font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:700;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--slate-2);margin-bottom:36px}
.clients .lbl b{color:var(--gold-text,#a80730);font-weight:800}
.marquee{overflow:hidden;width:100vw;margin-left:calc(50% - 50vw)}
.marquee-track{display:flex;align-items:center;gap:56px;width:max-content;animation:scroll 46s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.client-logo{height:50px;width:150px;flex-shrink:0;object-fit:contain;opacity:1;transition:transform .3s var(--ease)}
.client-logo:hover{transform:scale(1.07)}
@media(max-width:680px){.marquee-track{gap:40px}
.client-logo{height:40px;width:122px}
.clients{padding:44px 0 46px}
.clients .lbl{margin-bottom:26px}}
.welcome .wrap{display:grid;grid-template-columns:.92fr 1.08fr;gap:58px;align-items:center}
.w-media{position:relative;border-radius:22px;overflow:hidden;aspect-ratio:4/4.4;background:linear-gradient(150deg,#a80730,#16162a);box-shadow:var(--shadow-lg)}
.w-media img{width:100%;height:100%;object-fit:cover}
.w-badge{position:absolute;right:22px;bottom:22px;background:rgba(255,255,255,.97);border-radius:14px;padding:15px 19px;box-shadow:var(--shadow-md);display:flex;align-items:center;gap:13px}
.w-badge b{font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-size:30px;font-weight:800;color:var(--gold-text,#a80730);line-height:1}
.w-badge span{font-size:12.5px;color:var(--slate);font-weight:500}
.welcome h2{font-size:clamp(26px,3.3vw,38px);font-weight:800;letter-spacing:-.01em;margin:12px 0 18px}
.welcome p{color:var(--slate);font-size:16px;line-height:1.78;margin-bottom:16px}
.welcome .btn{margin-top:8px}
@media(max-width:860px){.welcome .wrap{grid-template-columns:1fr;gap:36px}
.w-media{max-width:430px}}
.svc{background:var(--bg-soft)}
.svc-cols{display:grid;grid-template-columns:1fr 1fr;gap:30px 56px}
.svc-group h3.gt{font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:800;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-text,#a80730);padding-bottom:14px;border-bottom:2px solid var(--indigo-soft);margin-bottom:6px;display:flex;align-items:center;gap:9px}
.svc-group .gt small{color:var(--slate-2);font-weight:600;letter-spacing:0;text-transform:none;font-size:13px}
.srow{display:flex;align-items:flex-start;gap:16px;padding:20px 6px;border-top:1px solid var(--line);transition:padding .25s var(--ease),background .25s}
.srow:first-of-type{border-top:0}
.srow:hover{background:#fff;border-radius:14px;padding-left:16px;padding-right:16px;box-shadow:var(--shadow-sm)}
.srow-ic{width:46px;height:46px;border-radius:12px;background:var(--indigo-tint);color:var(--gold-text,#a80730);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:.25s}
.srow-ic svg{width:23px;height:23px}
.srow:hover .srow-ic{background:var(--indigo);color:#16162a}
.srow-tx{flex:1}
.srow-tx b{font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:800;font-size:16.5px;display:block;margin-bottom:3px}
.srow-tx i{font-style:normal;color:var(--slate);font-size:14px;line-height:1.6}
.srow-ar{color:var(--gold-text,#a80730);opacity:0;transform:translateX(-6px);transition:.25s;margin-top:12px}
.srow-ar svg{width:18px;height:18px}
.srow:hover .srow-ar{opacity:1;transform:none}
.svc-cta{margin-top:50px;display:flex;justify-content:center}
@media(max-width:820px){.svc-cols{grid-template-columns:1fr;gap:8px}
.svc-group+.svc-group{margin-top:30px}}
.why{background:var(--ink);position:relative;overflow:hidden}
.why::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:42px 42px;-webkit-mask-image:radial-gradient(circle at 10% 0,#000,transparent 70%);mask-image:radial-gradient(circle at 10% 0,#000,transparent 70%)}
.why .wrap{position:relative;display:grid;grid-template-columns:.82fr 1.18fr;gap:56px}
.why-rail .sindex{color:#9e9ef2;opacity:.8}
.elementor-6 .why-rail .eyebrow{color:#9e9ef2}
.elementor-6 .why-rail .eyebrow::before, .elementor-6 .why-rail .eyebrow::after{background:#9e9ef2;opacity:1}
.why-rail h2{color:#fff;font-size:clamp(28px,3.6vw,42px);font-weight:800;margin-top:12px}
.why-rail p{color:#d3d6e1;font-size:15.5px;line-height:1.7;margin-top:16px;max-width:330px}
.why-list{display:grid;grid-template-columns:1fr 1fr;gap:2px 40px}
.wrow{display:flex;gap:16px;padding:24px 0;border-top:1px solid rgba(255,255,255,.1)}
.wrow-no{font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:800;font-size:14px;color:#9e9ef2;padding-top:2px}
.wrow h3{color:#fff;font-size:17px;font-weight:800;margin-bottom:7px}
.wrow p{color:#cdd0dc;font-size:14.5px;line-height:1.62}
@media(max-width:880px){.why .wrap{grid-template-columns:1fr;gap:40px}
.why-list{grid-template-columns:1fr}}
.ind-head{max-width:660px;margin:0 auto 48px;text-align:center}
.ind-head h2{font-size:clamp(26px,3.3vw,38px);font-weight:800;margin-top:12px}
.ind-head p{color:var(--slate);font-size:16px;line-height:1.7;margin-top:14px}
.ind-carousel{position:relative;margin-top:18px}
.ind-grid{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:6px 2px 16px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.ind-grid::-webkit-scrollbar{display:none}
.ind-grid>.ind-card{flex:0 0 calc((100% - 72px)/4);scroll-snap-align:start}
@media(max-width:980px){.ind-grid>.ind-card{flex-basis:calc((100% - 24px)/2)}}
@media(max-width:560px){.ind-grid>.ind-card{flex-basis:calc(100% - 40px)}}
.ind-nav{position:absolute;top:42%;transform:translateY(-50%);z-index:6;width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);box-shadow:var(--shadow-md);cursor:pointer;display:grid;place-items:center;transition:.2s var(--ease)}
.ind-nav:hover{background:var(--indigo);color:#16162a;border-color:var(--gold-text,#a80730)}
.ind-nav svg{width:20px;height:20px}
.ind-nav.prev{left:-20px}
.ind-nav.next{right:-20px}
@media(max-width:600px){.ind-nav.prev{left:0}
.ind-nav.next{right:0}}
.ind-nav[disabled]{opacity:0;pointer-events:none}
.ind-card{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-sm);transition:.3s var(--ease);display:flex;flex-direction:column}
.ind-card:hover{box-shadow:var(--shadow-md);transform:translateY(-4px);border-color:var(--indigo-soft)}
.ind-photo{position:relative;aspect-ratio:4/3;background:linear-gradient(150deg,#a80730,#33334a);overflow:hidden}
.ind-photo img{width:100%;height:100%;object-fit:cover;display:block}
.ind-ph-ic{position:absolute;inset:0;display:grid;place-items:center;opacity:0;pointer-events:none}
.ind-photo.noimg .ind-ph-ic{opacity:1}
.ind-ph-ic svg{width:46px;height:46px;color:#fff;opacity:.92}
.ind-body{padding:24px 22px 28px;text-align:center}
.ind-body h3{font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:800;font-size:21px;letter-spacing:-.01em;color:var(--ink);margin:0}
.ind-body p{font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-size:14.5px;line-height:1.6;color:var(--slate);margin:0}
@media(max-width:560px){.ind-photo{aspect-ratio:16/9}}
.proc{background:var(--bg-soft)}
.tl{position:relative;max-width:780px;margin:0 auto;padding-left:8px}
.tl::before{content:"";position:absolute;left:31px;top:14px;bottom:14px;width:2px;background:linear-gradient(var(--indigo-soft),var(--line))}
.tstep{position:relative;display:flex;gap:26px;padding:0 0 30px}
.tstep:last-child{padding-bottom:0}
.tnode{position:relative;z-index:1;width:48px;height:48px;border-radius:14px;background:var(--indigo);color:#fff;font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:800;font-size:18px;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 8px 18px rgba(211,9,57,.3)}
.tbody{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 22px;flex:1;margin-top:-2px;transition:.25s}
.tstep:hover .tbody{box-shadow:var(--shadow-md);transform:translateX(4px)}
.tbody h3{font-size:17px;font-weight:800;margin-bottom:6px}
.tbody p{color:var(--slate);font-size:14.5px;line-height:1.6}
.areas{background:linear-gradient(135deg,#12121f,#33334a);position:relative;overflow:hidden}
.areas::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:38px 38px;-webkit-mask-image:radial-gradient(circle at 90% 100%,#000,transparent 70%);mask-image:radial-gradient(circle at 90% 100%,#000,transparent 70%)}
.areas .wrap{position:relative;text-align:center}
.elementor-6 .areas .eyebrow{color:#c2c2f7}
.elementor-6 .areas .eyebrow::before, .elementor-6 .areas .eyebrow::after{background:#9e9ef2;opacity:1}
.areas .sindex{color:#9e9ef2;opacity:.8}
.areas h2{color:#fff;font-size:clamp(26px,3.3vw,38px);font-weight:800;margin:12px 0 16px}
.areas-head{max-width:680px;margin:0 auto}
.areas-head p{color:#e9eaf4;font-size:16px;line-height:1.75;margin:0 auto;max-width:620px}
.areas-stats{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:720px;margin:42px auto 0}
.astat{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);border-radius:18px;padding:32px 28px;color:#fff;backdrop-filter:blur(4px)}
.astat .big{font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:800;font-size:46px;line-height:1;letter-spacing:-.01em}
.astat .big span{color:#9e9ef2;font-size:.55em}
.astat p{color:#e9eaf4;font-size:14.5px;line-height:1.6;margin:12px 0 0}
.area-map{max-width:760px;margin:46px auto 0;border-radius:18px;overflow:hidden;border:1px solid rgba(255,255,255,.18);box-shadow:0 18px 50px rgba(0,0,0,.30);background:rgba(255,255,255,.06)}
.area-map iframe{display:block;width:100%;height:420px;border:0}
@media(max-width:760px){.area-map iframe{height:330px}}
.area-list{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:38px}
.area{display:inline-flex;align-items:center;gap:7px;font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:600;font-size:14px;color:#fff;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);padding:9px 16px;border-radius:10px}
.area::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold)}
@media(max-width:600px){.areas-stats{grid-template-columns:1fr;gap:14px}}
.csr-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
@media(max-width:760px){.csr-grid{grid-template-columns:1fr}}
.csr{border:1px solid var(--line);border-radius:18px;padding:34px 32px;background:#fff;display:flex;gap:20px;align-items:flex-start;transition:.3s}
.csr:hover{box-shadow:var(--shadow-md);transform:translateY(-4px)}
.csr .ic{width:52px;height:52px;border-radius:13px;background:var(--indigo-tint);color:var(--gold-text,#a80730);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.csr .ic svg{width:26px;height:26px}
.csr h3{font-size:19px;font-weight:800;margin-bottom:9px}
.csr p{color:var(--slate);font-size:14.5px;line-height:1.7}
.csr-link{display:inline-flex;align-items:center;gap:7px;margin-top:16px;font-size:13.5px;font-weight:800;color:var(--gold-text,#a80730);text-decoration:none;transition:.2s}
.csr-link svg{width:15px;height:15px;transition:transform .2s}
.csr-link:hover{color:var(--indigo-600)}
.csr-link:hover svg{transform:translateX(3px)}
.cert-embed{margin-top:18px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--bg-soft);box-shadow:var(--shadow-sm)}
.cert-embed iframe{display:block;width:100%;height:440px;border:0}
@media(max-width:760px){.cert-embed iframe{height:380px}}
.testi-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:24px;align-items:stretch}
.t-feat{background:linear-gradient(150deg,#33334a,#12121f);color:#fff;border-radius:22px;padding:40px;display:flex;flex-direction:column;gap:20px;box-shadow:var(--shadow-lg)}
.t-feat .stars{color:#ffd479}
.t-feat .t-quote{font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:600;font-size:22px;line-height:1.5;letter-spacing:-.01em;flex:1}
.t-col{display:flex;flex-direction:column;gap:24px}
.t-small{background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px;display:flex;flex-direction:column;gap:13px;flex:1}
.t-small p{color:var(--ink-2);font-size:14.5px;line-height:1.65;flex:1}
.stars{display:flex;gap:3px;color:var(--gold)}
.stars svg{width:17px;height:17px}
.t-by{display:flex;align-items:center;gap:12px}
.t-feat .t-by{border-top:1px solid rgba(255,255,255,.2);padding-top:18px}
.t-small .t-by{border-top:1px solid var(--line);padding-top:14px}
.t-av{width:44px;height:44px;border-radius:50%;background:#fff;color:var(--gold-text,#a80730);font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}
.t-av.sm{background:var(--indigo);color:#16162a;width:40px;height:40px;font-size:15px}
.t-by b{font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-size:15px;display:block}
.t-by i{font-style:normal;font-size:12.5px;opacity:.8}
.t-feat .t-by i{color:#e9eaf4}
.t-small .t-by i{color:var(--slate-2)}
@media(max-width:860px){.testi-grid{grid-template-columns:1fr}}
.faq .wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:54px;align-items:start}
.faq-rail h2{font-size:clamp(26px,3.3vw,38px);font-weight:800;margin-top:12px}
.faq-rail p{color:var(--slate);font-size:15.5px;line-height:1.7;margin:14px 0 22px}
.faq-list{display:flex;flex-direction:column;gap:12px}
.faq-item{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;transition:box-shadow .25s,border-color .25s}
.faq-item.open{box-shadow:var(--shadow-md);border-color:var(--indigo-soft)}
.faq-q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 22px;background:none;border:none;cursor:pointer;text-align:left;font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:700;font-size:16px;color:var(--ink)}
.faq-ic{width:20px;height:20px;color:var(--gold-text,#a80730);flex-shrink:0;transition:transform .3s var(--ease)}
.faq-item.open .faq-ic{transform:rotate(180deg)}
/* Let a long question wrap to the next line instead of overflowing and being clipped
   (flex items default to min-width:auto, which stops the text shrinking below one line).
   The chevron stays vertically centred against the wrapped text. */
.faq-q, .faq-q span{white-space:normal}
.faq-q span{flex:1;min-width:0;overflow-wrap:break-word}
/* Mobile: the FAQ's 2-column (heading | list) flex never collapsed, so the question list
   kept its desktop width and ran off the right edge. Stack to one full-width column and let
   the flex children shrink so long questions wrap instead of being clipped. */
@media(max-width:767px){
  .elementor-6 .faq{flex-direction:column !important}
  .elementor-6 .faq-rail, .elementor-6 .faq-list-wrap{width:100% !important;max-width:100% !important;min-width:0}
  .faq-list, .faq-item{min-width:0;max-width:100%}
}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s var(--ease)}
.faq-a p{padding:20px 22px;color:var(--slate);font-size:14.5px;line-height:1.72}
@media(max-width:820px){.faq .wrap{grid-template-columns:1fr;gap:30px}}
.elementor-6 .cta{position:relative;background:linear-gradient(135deg,#12121f,#33334a);overflow:hidden;isolation:isolate}
.elementor-6 .cta::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 120% at 80% 0,rgba(211,9,57,.5),transparent 60%);z-index:-1}
.elementor-6 .cta::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:40px 40px;-webkit-mask-image:radial-gradient(circle at 80% 0,#000,transparent 65%);mask-image:radial-gradient(circle at 80% 0,#000,transparent 65%);z-index:-1}
.elementor-6 .cta .wrap{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center;padding:74px 28px}
.elementor-6 .cta h2{color:#fff;font-size:clamp(27px,3.4vw,40px);font-weight:800;letter-spacing:-.005em}
.elementor-6 .cta p{color:#e4e5ee;font-size:17px;line-height:1.6;margin-top:12px;max-width:520px}
.elementor-6 .cta-actions{display:flex;gap:13px;flex-wrap:wrap}
@media(max-width:820px){.elementor-6 .cta .wrap{grid-template-columns:1fr;gap:26px}}
.footer{background:var(--ink-2);color:#c4c7d6;padding:72px 0 0}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:48px}
.f-logo{height:44px;width:auto;margin-bottom:18px}
.f-about{font-size:14px;line-height:1.72;color:#8a8f98;max-width:280px;margin-bottom:22px}
.f-soc{display:flex;gap:10px}
.f-soc a{width:36px;height:36px;border-radius:9px;background:rgba(255,255,255,.07);display:flex;align-items:center;justify-content:center;transition:.25s}
.f-soc a svg{width:17px;height:17px;color:#c4c7d6}
.f-soc a:hover{background:var(--indigo);transform:translateY(-3px)}
.f-soc a:hover svg{color:#fff}
.footer h3,.footer h4{font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:800;font-size:14px;color:#fff;letter-spacing:.04em;margin-bottom:18px}
.footer ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.footer ul a{font-size:14px;color:#8a8f98;transition:.2s}
.footer ul a:hover{color:#fff}
.f-contact{list-style:none;display:flex;flex-direction:column;gap:12px}
.f-contact li{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:#8a8f98}
.f-contact li svg{width:17px;height:17px;color:var(--indigo-soft);flex-shrink:0;margin-top:3px}
.f-contact a{color:#8a8f98;transition:.2s}
.f-contact a:hover{color:#fff}
.f-bottom{border-top:1px solid rgba(255,255,255,.08);margin-top:56px;padding:24px 0;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:13px;color:#858b95}
.f-bottom .cidb{display:inline-flex;align-items:center;gap:8px}
.f-bottom .cidb b{color:#d8dae6}
@media(max-width:900px){.foot-grid{grid-template-columns:1fr 1fr;gap:36px}}
@media(max-width:520px){.foot-grid{grid-template-columns:1fr}}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.reveal.in{opacity:1;transform:none}
/* Scroll-reveal enhancer (JS-driven, see izi-design.js). .rv is added only to
   below-the-fold blocks, then removed once revealed so native hover transitions resume. */
.rv{opacity:0;transform:translateY(22px);transition:opacity .6s var(--ease),transform .6s var(--ease);will-change:opacity,transform}
.rv.in{opacity:1;transform:none}
.nav-links .nav-item{position:relative;display:flex;align-items:center}
.nav-dd-trigger{font-family:inherit;font-weight:600;font-size:15px;color:var(--ink,#16162a);background:none;border:0;cursor:pointer;padding:9px 14px;border-radius:8px;display:inline-flex;align-items:center;gap:5px;transition:color .2s,background .2s}
.nav-dd-trigger:hover, .nav-item:hover .nav-dd-trigger, .nav-dd-trigger.active{color:var(--gold-text,#a80730);background:var(--indigo-tint,#fdf0f3)}
.dd-caret{width:15px;height:15px;transition:transform .25s}
.nav-item:hover .dd-caret, .nav-item.open .dd-caret{transform:rotate(180deg)}
.nav-dd{position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%) translateY(8px);background:#fff;border:1px solid var(--line,#e4e5ee);border-radius:16px;box-shadow:0 22px 60px rgba(22,22,42,.16);padding:18px;display:grid;grid-template-columns:1fr 1fr;gap:6px 26px;min-width:520px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s,transform .22s,visibility .22s;z-index:90}
.nav-dd::before{content:"";position:absolute;top:-14px;left:0;right:0;height:14px}
.nav-item:hover .nav-dd, .nav-item.open .nav-dd{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.nav-dd-h{display:block;font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-size:11.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:#9aa0ab;padding:4px 12px 9px}
.nav-dd a{display:block;padding:9px 12px;border-radius:9px;font-size:14.5px;font-weight:600;color:var(--ink-2,#33334a);white-space:nowrap;transition:background .18s,color .18s}
.nav-dd a:hover{background:var(--indigo-tint,#fdf0f3);color:var(--gold-text,#a80730)}
.m-svc-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:15px 24px;font-weight:600;font-size:16px;border:0;border-bottom:1px solid var(--line,#e4e5ee);background:none;font-family:inherit;color:var(--ink,#16162a);cursor:pointer}
.m-svc-toggle svg{width:18px;height:18px;transition:transform .25s}
.m-svc-toggle[aria-expanded="true"] svg{transform:rotate(180deg)}
.m-svc-list{display:none;flex-direction:column;background:var(--bg-soft,#f7f8fc)}
.m-svc-list.open{display:flex}
.m-svc-list a{padding-left:42px!important;font-size:14.5px}
@media(max-width:980px){.nav-dd{display:none}
.nav-links .nav-item{display:none}}
.header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line,#e4e5ee);transition:box-shadow .3s,background .3s}
.header.scrolled{box-shadow:var(--shadow-sm,0 1px 4px rgba(22,22,42,.07));background:rgba(255,255,255,.97)}
.header .wrap{max-width:var(--maxw,1200px);margin:0 auto;padding:0 28px}
.header .nav{display:flex;align-items:center;justify-content:space-between;height:74px}
.header .brand{display:inline-flex;align-items:center;flex:0 0 auto}
.header .brand img{height:46px;width:auto;display:block}
.header .nav-links{display:flex;align-items:center;gap:2px}
.header .nav-links>a, .header .nav-links .nav-dd-trigger{padding:9px 14px;font-size:15px;font-weight:600;border-radius:8px}
.header .nav-cta{display:flex;align-items:center;gap:12px}
.header .nav-cta .btn{padding:13px 24px;gap:8px;font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:700;font-size:15px;line-height:1}
.header .nav-cta .btn svg{width:18px;height:18px}
.header .hamburger{padding:4px}
@media(max-width:980px){.header .nav-links>a, .header .nav-links .nav-item, .header .nav-cta .btn{display:none}
.header .hamburger{display:flex}}
.elementor-element.sec{padding:92px 0}
.elementor-widget{margin:0}
.elementor-widget-container{margin:0}
.elementor-widget-heading .elementor-heading-title{margin:0}
.elementor-widget-text-editor p:last-child{margin-bottom:0}
.elementor-button-wrapper a.elementor-button.btn{border-radius:999px;padding:13px 24px;font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:700;font-size:15px;line-height:1;box-shadow:none;text-shadow:none;transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .2s}
.elementor-button.btn .elementor-button-content-wrapper{display:inline-flex;align-items:center;gap:8px}
.elementor-button.btn .elementor-button-icon{display:inline-flex;margin:0}
.elementor-button.btn .elementor-button-icon svg{width:18px;height:18px}
.elementor-button-wrapper a.elementor-button.btn-primary{background:var(--indigo);color:#16162a;box-shadow:0 10px 24px rgba(211,9,57,.28)}
.elementor-button-wrapper a.elementor-button.btn-primary:hover{background:var(--indigo-600);transform:translateY(-2px);box-shadow:0 16px 32px rgba(211,9,57,.36)}
.elementor-button-wrapper a.elementor-button.btn-wa{background:var(--wa);color:#06351c;box-shadow:0 10px 24px rgba(37,211,102,.3)}
.elementor-button-wrapper a.elementor-button.btn-wa:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(37,211,102,.4)}
.elementor-button-wrapper a.elementor-button.btn-light{background:#fff;color:var(--gold-text,#a80730);box-shadow:var(--shadow-sm)}
.elementor-button-wrapper a.elementor-button.btn-light:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.elementor-button-wrapper a.elementor-button.btn-outline{background:transparent;color:var(--gold-text,#a80730);border:1.5px solid var(--indigo-soft)}
.elementor-button-wrapper a.elementor-button.btn-outline:hover{background:var(--indigo-tint);transform:translateY(-2px)}
.elementor-button-wrapper a.elementor-button.btn-outline-light{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.4)}
.elementor-button-wrapper a.elementor-button.btn-outline-light:hover{background:rgba(255,255,255,.12);border-color:#fff;transform:translateY(-2px)}
.elementor-button-wrapper a.elementor-button.btn-dark{background:var(--ink);color:#fff}
.elementor-button-wrapper a.elementor-button.btn-dark:hover{background:var(--ink-2);transform:translateY(-2px);box-shadow:var(--shadow-md)}
.w-media .elementor-widget-image, .w-media .elementor-widget-image img{width:100%;height:100%}
.ind-photo .elementor-widget-image, .ind-photo .elementor-widget-image img{width:100%;height:100%}
.elementor-widget-image img{display:block}
.e-con-inner{width:100%}
.elementor-element.wrap{gap:0}
.elementor-element.welcome .wrap{display:grid !important;grid-template-columns:.92fr 1.08fr;gap:58px;align-items:center}
.elementor-element.why .wrap{display:grid !important;grid-template-columns:.82fr 1.18fr;gap:56px}
.elementor-element.faq .wrap{display:grid !important;grid-template-columns:.8fr 1.2fr;gap:54px;align-items:start}
.elementor-element.cta .wrap{display:grid !important;grid-template-columns:1fr auto;gap:40px;align-items:center;padding:74px 28px}
.elementor-element.svc-cols{display:grid !important;grid-template-columns:1fr 1fr;gap:30px 56px}
.elementor-element.why-list{display:grid !important;grid-template-columns:1fr 1fr;gap:2px 40px}
.elementor-element.testi-grid{display:grid !important;grid-template-columns:1.2fr .8fr;gap:24px;align-items:stretch}
.elementor-element.csr-grid{display:grid !important;grid-template-columns:1fr 1fr;gap:24px}
.elementor-element.areas-stats{display:grid !important;grid-template-columns:1fr 1fr;gap:20px;max-width:720px;margin:42px auto 0}
.elementor-element.foot-grid{display:grid !important;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:48px}
.elementor-element.t-col{display:flex !important;flex-direction:column;gap:24px}
.elementor-element.ind-grid{display:flex !important;flex-direction:row;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 2px 16px;scrollbar-width:none}
.elementor-element.ind-grid > .ind-card{flex:0 0 calc((100% - 72px)/4);scroll-snap-align:start}
.elementor-element.tl{display:block !important}
.elementor-element.area-list{display:flex !important;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:38px}
.elementor-element.hero-btns{display:flex !important;gap:13px;flex-wrap:wrap;justify-content:center}
.elementor-element.cta-actions{display:flex !important;gap:13px;flex-wrap:wrap}
.elementor-element.f-soc{display:flex !important;gap:10px}
@media(max-width:980px){.elementor-element.ind-grid > .ind-card{flex-basis:calc((100% - 24px)/2)}}
@media(max-width:900px){.elementor-element.foot-grid{grid-template-columns:1fr 1fr;gap:36px}}
@media(max-width:880px){.elementor-element.why .wrap, .elementor-element.why-list{grid-template-columns:1fr;gap:40px}}
@media(max-width:860px){.elementor-element.welcome .wrap{grid-template-columns:1fr;gap:36px}
.elementor-element.testi-grid{grid-template-columns:1fr}}
@media(max-width:820px){.elementor-element.svc-cols{grid-template-columns:1fr;gap:8px}
.elementor-element.faq .wrap, .elementor-element.cta .wrap{grid-template-columns:1fr;gap:26px}}
@media(max-width:760px){.elementor-element.csr-grid{grid-template-columns:1fr}}
@media(max-width:600px){.elementor-element.areas-stats{grid-template-columns:1fr;gap:14px}}
@media(max-width:560px){.elementor-element.ind-grid > .ind-card{flex-basis:calc(100% - 40px)}}
@media(max-width:520px){.elementor-element.foot-grid{grid-template-columns:1fr}}
.elementor-element.hero-btns{display:flex !important;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:13px}
.elementor-element.cta-actions{display:flex !important;flex-direction:row;flex-wrap:wrap;gap:13px}
.elementor-element.wrow{display:flex !important;flex-direction:row;gap:16px;padding:24px 0;border-top:1px solid rgba(255,255,255,.1)}
.elementor-element.tstep{display:flex !important;flex-direction:row;gap:26px;padding:0 0 30px}
.elementor-element.csr{display:flex !important;flex-direction:row;gap:20px;align-items:flex-start}
.elementor-element.shead{display:flex !important;flex-direction:column;align-items:center}
.elementor-element.hero-btns .elementor-widget-button, .elementor-element.cta-actions .elementor-widget-button{width:auto;flex:0 0 auto}
.elementor-button-wrapper a.elementor-button.btn{width:auto}
.w-media .elementor-widget-image img, .ind-photo .elementor-widget-image img{width:100%;height:100%;object-fit:cover}
.elementor-element.ind-photo{position:relative;aspect-ratio:4/3;overflow:hidden}
.elementor-element.ind-photo .elementor-widget-image, .elementor-element.ind-photo .elementor-widget-image .elementor-widget-container{height:100%}
.elementor-element.w-media .elementor-widget-image, .elementor-element.w-media .elementor-widget-image .elementor-widget-container{height:100%}
.elementor-element.tstep > .elementor-element:last-child, .elementor-element.wrow > .elementor-element:last-child, .elementor-element.csr > .elementor-element:last-child{flex:1}
.btn .elementor-button{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:13px 24px;font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:700;font-size:15px;line-height:1;border:none;box-shadow:none;text-shadow:none;width:auto;transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .2s}
.btn .elementor-button .elementor-button-content-wrapper{display:inline-flex;align-items:center;gap:8px}
.btn .elementor-button .elementor-button-icon{margin:0;display:inline-flex}
.btn .elementor-button .elementor-button-icon svg{width:18px;height:18px}
.btn-primary .elementor-button{background:var(--indigo) !important;color:#16162a !important;box-shadow:0 10px 24px rgba(211,9,57,.28)}
.btn-primary .elementor-button:hover{background:var(--indigo-600) !important;transform:translateY(-2px);box-shadow:0 16px 32px rgba(211,9,57,.36)}
.btn-wa .elementor-button{background:var(--wa) !important;color:#06351c !important;box-shadow:0 10px 24px rgba(37,211,102,.3)}
.btn-wa .elementor-button:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(37,211,102,.4)}
.btn-light .elementor-button{background:#fff !important;color:var(--gold-text,#a80730) !important;box-shadow:var(--shadow-sm)}
.btn-light .elementor-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.btn-outline-light .elementor-button{background:transparent !important;color:#fff !important;border:1.5px solid rgba(255,255,255,.4) !important}
.btn-outline-light .elementor-button:hover{background:rgba(255,255,255,.12) !important;border-color:#fff !important;transform:translateY(-2px)}
.btn-dark .elementor-button{background:var(--ink) !important;color:#fff !important}
.btn-dark .elementor-button:hover{background:var(--ink-2) !important;transform:translateY(-2px);box-shadow:var(--shadow-md)}
.btn-outline .elementor-button{background:transparent !important;color:var(--gold-text,#a80730) !important;border:1.5px solid var(--indigo-soft) !important}
.btn-outline .elementor-button:hover{background:var(--indigo-tint) !important;transform:translateY(-2px)}
.gt .elementor-heading-title{font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:800;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-text,#a80730);padding-bottom:14px;border-bottom:2px solid var(--indigo-soft);margin-bottom:6px;display:flex;align-items:center;gap:9px}
.gt .elementor-heading-title small{color:var(--slate-2);font-weight:600;letter-spacing:0;text-transform:none;font-size:13px}
.btn .elementor-button{display:inline-flex !important;width:auto !important;max-width:max-content}
.elementor-element.act{display:flex;flex-direction:row;justify-content:center;margin-top:26px}
.elementor-widget-button .elementor-button-wrapper{display:inline-flex}
.elementor-widget-button.btn{background:transparent !important;box-shadow:none !important;padding:0 !important;border:0 !important;border-radius:0 !important;display:inline-flex !important;width:auto !important}
.elementor-widget-button.btn::before, .elementor-widget-button.btn::after{display:none !important}
.f-logo img{height:44px !important;width:auto !important;margin-bottom:18px}
.footer h3.elementor-heading-title,.footer h4.elementor-heading-title{color:#fff}
/* Footer column headings (Company / Services / Get In Touch) were taking the kit's dark
   heading colour, which out-specifies the rule above. Force white. */
.footer .elementor-heading-title{color:#fff !important}
.elementor .elementor-widget-heading .elementor-heading-title{color:var(--ink)}
.elementor .hero .elementor-widget-heading .elementor-heading-title, .elementor .why-rail .elementor-widget-heading .elementor-heading-title, .elementor .why .wrow .elementor-widget-heading .elementor-heading-title, .elementor .areas .elementor-widget-heading .elementor-heading-title, .elementor .cta .elementor-widget-heading .elementor-heading-title{color:#fff}
.elementor-6 .hero .elementor-heading-title em{color:#9e9ef2;font-style:normal}
.gt .elementor-heading-title{color:var(--gold-text,#a80730)}
.elementor-element.ind-photo{padding:0}
.elementor-element.ind-photo .elementor-widget-image, .elementor-element.ind-photo .elementor-widget-image .elementor-widget-container{width:100%;height:100%;padding:0;margin:0}
.elementor-element.w-media{padding:0}
/* Remove Elementor's default 10px container padding (it left a slight gap around
   page-wrapper containers and any section without explicit padding). Sections that
   set their own padding via CSS/settings are unaffected. */
:root{--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px}

/* ===== Mobile: tighten vertical spacing within & between sections (homepage) =====
   Sections (.sec) carried 92px top+bottom padding with no mobile reduction, so two
   stacked sections left ~184px of dead space on phones. Roughly halve it and trim the
   section-header gaps, CTA, clients strip and footer to match. */
@media(max-width:767px){
  .elementor-6 .sec{padding:40px 0}
  .elementor-6 .clients{padding:30px 0 32px}
  .elementor-6 .shead{margin-bottom:26px}
  .elementor-6 .ind-head{margin:0 auto 26px}
  .elementor-6 .cta .wrap{padding:40px 22px}
  .footer{padding:46px 0 0}
  .footer .f-bottom{margin-top:32px}
}
@media(max-width:480px){
  .elementor-6 .sec{padding:34px 0}
}

/* Button icons (FontAwesome arrow) were rendering the same colour as the button fill,
   making them invisible and throwing off the label's visual centring. Force the icon to
   inherit the button text colour (currentColor) — works for every button variant. */
.btn .elementor-button-icon svg, .btn .elementor-button svg{fill:currentColor !important}

/* Keep every button's text colour unchanged on hover. Elementor's default flips
   .elementor-button text to #fff on hover; some variants also re-colour text. Lock each
   variant's hover colour to its resting colour (!important to beat Elementor + load order).
   The icon follows via currentColor, so it stays consistent too. */
.btn-primary:hover, .btn-primary .elementor-button:hover,
.btn-dark:hover, .btn-dark .elementor-button:hover,
.btn-outline-light:hover, .btn-outline-light .elementor-button:hover{color:#fff !important}
.btn-light:hover, .btn-light .elementor-button:hover,
.btn-outline:hover, .btn-outline .elementor-button:hover{color:var(--gold-text,#a80730) !important}
.btn-wa:hover, .btn-wa .elementor-button:hover{color:#06351c !important}
.btn-ghost:hover{color:var(--ink) !important}

/* Slider (Industries carousel) nav arrows: each arrow sits in its own Elementor HTML
   widget — separate flex items at the top and bottom of the carousel column — so they
   anchored to their own wrappers and landed split (one high-left, one low-right). Make
   the carousel the shared positioning context and centre both arrows vertically on the
   left & right edges. */
.ind-carousel{position:relative !important}
.ind-carousel > .elementor-widget-html{position:static !important}
.ind-nav{position:absolute !important;top:50% !important;bottom:auto !important;transform:translateY(-50%) !important;margin:0 !important}
.ind-nav.prev{left:0 !important;right:auto !important}
.ind-nav.next{right:0 !important;left:auto !important}

/* ── Client logos: static card grid (replaces the marquee loop) ── */
.clients .logos-block{width:100%}
.clients .logos-eyebrow{display:block;text-align:center;font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:800;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);margin:0 0 36px}
.clients .logos-eyebrow b{color:var(--gold-text,#a80730);font-weight:800}
.clients .logo-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:22px;max-width:1180px;margin:0 auto}
.clients .logo-card{background:var(--bg-soft);border:1px solid var(--line);border-radius:16px;min-height:150px;display:flex;align-items:center;justify-content:center;padding:26px;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.clients .logo-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.clients .logo-img{max-height:58px;max-width:80%;width:auto;height:auto;object-fit:contain}
@media(max-width:980px){.clients .logo-grid{grid-template-columns:repeat(3,1fr);gap:16px}}
@media(max-width:560px){.clients .logo-grid{grid-template-columns:repeat(2,1fr)}.clients .logo-card{min-height:110px;padding:18px}}
/* footer about-text: full width on mobile (was capped at 280px) */
@media(max-width:767px){.f-about{max-width:none}}

/* ============================================================
   IZI post-launch fixes (2026-07-21)
   ============================================================ */

/* Header + footer logo: trimmed wordmark (izi-logo-*.png), sized to the glyphs */
.header .brand{display:inline-flex;align-items:center}
.header .brand img{height:40px !important;width:auto !important;display:block}
.f-logo,.f-logo img{height:44px !important;width:auto !important;margin-bottom:20px;display:block}

/* FAQ accordion: kill the Elementor kit magenta bleed on the native <button> */
.faq-q,.faq-q:hover,.faq-q:focus,.faq-q:focus-visible,.faq-q:active,
.faq-q:hover span,.faq-q:focus span,.faq-item:hover .faq-q,.faq-item.open .faq-q{
  color:var(--ink) !important;background:none !important;box-shadow:none !important;outline:none}
.faq-item:hover{border-color:var(--indigo-soft)}
.faq-q .faq-ic,.faq-item.open .faq-q .faq-ic{color:var(--gold-text,#a80730) !important}

/* Credential cards (replaces the stray CIDB/CSR PDF embeds on the home cert section) */
.cred-list{display:flex;flex-direction:column;gap:12px;margin-top:18px}
.cred-item{display:flex;gap:14px;align-items:flex-start;background:var(--bg-soft);border:1px solid var(--line);border-radius:12px;padding:16px 18px;box-shadow:var(--shadow-sm)}
.cred-item .ci{width:42px;height:42px;border-radius:10px;background:rgba(211,9,57,.16);color:var(--gold-text,#a80730);display:grid;place-items:center;flex:none}
.cred-item .ci svg{width:22px;height:22px}
.cred-item h4{margin:0 0 3px;font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-size:15px;color:var(--ink)}
.cred-item p{margin:0;font-size:13.5px;color:var(--slate);line-height:1.55}

/* Client testimonials (gold theme) — infinite auto-scrolling marquee.
   The card set is duplicated in markup; translateX(-50%) = one set width = seamless loop. */
.izi-reviews{overflow:hidden;margin-top:8px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.izi-rtrack{display:flex;width:max-content;animation:izi-scroll 60s linear infinite}
.izi-reviews:hover .izi-rtrack{animation-play-state:paused}
@keyframes izi-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.izi-rtrack{animation:none}}
.izi-rcard{width:360px;flex:none;margin-right:18px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 6px 18px rgba(22,22,42,.05);padding:24px;display:flex;flex-direction:column;gap:13px;white-space:normal}
.izi-rcard .izi-stars{color:#e0a80b;letter-spacing:2px;font-size:16px;line-height:1}
.izi-rcard p{margin:0;color:var(--ink);font-size:14.5px;line-height:1.62;flex:1}
.izi-who{display:flex;align-items:center;gap:11px;margin-top:2px}
.izi-av{width:42px;height:42px;border-radius:50%;background:rgba(211,9,57,.18);color:var(--gold-text,#a80730);display:grid;place-items:center;font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:800;font-size:15px;flex:none}
.izi-meta{display:flex;flex-direction:column;line-height:1.25}
.izi-meta b{font-size:14px;color:var(--ink)}
.izi-meta span{font-size:12.5px;color:var(--slate)}
@media(max-width:600px){.izi-rcard{width:300px}}

/* Brand wordmark (replaces the raster logo in header + footer — crisp at any size) */
.izi-wm{display:inline-flex;flex-direction:column;justify-content:center;line-height:1;gap:4px;text-decoration:none}
.izi-wm:hover{text-decoration:none}
.izi-wm .wm-main{font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:800;font-size:29px;letter-spacing:.04em;color:#16162a}
.izi-wm .wm-sub{font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:600;font-size:9px;letter-spacing:.36em;text-transform:uppercase;color:var(--gold-text,#a80730);padding-left:3px}
.header .brand.izi-wm{height:auto}
.izi-wm.f-wm .wm-main{font-size:32px;color:#fff}
.izi-wm.f-wm .wm-sub{color:#d30939}

/* Standalone FAQ grid (about/contact/blog) — mirrors the .bp-faq card style used on service pages */
.izi-accent{display:block;width:64px;height:4px;border-radius:4px;margin:16px auto 0;background:linear-gradient(90deg,#d30939,#f4c04e)}
.izi-faqgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:1000px;margin:0 auto}
.izi-faqgrid .q{background:#fdf7f9;border:1px solid var(--line);border-radius:16px;padding:22px 24px}
.izi-faqgrid .q b{display:block;color:#7a0724;font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic",Meiryo,sans-serif;font-weight:800;margin-bottom:8px;font-size:15.5px;line-height:1.35}
.izi-faqgrid .q p{margin:0;font-size:14px;color:var(--slate);line-height:1.62}
@media(max-width:760px){.izi-faqgrid{grid-template-columns:1fr}}

/* --- Fix hello-elementor reset.css pink (#c36) -> IZI brand (2026-07-21) --- */
body a{color:#a80730}
body a:hover,body a:active,body a:focus{color:#7a0724}
body button,body [type=button],body [type=submit],body [type=reset]{color:#16162a;border-color:#d30939}
body button:hover,body button:focus,body [type=button]:hover,body [type=submit]:hover,body [type=reset]:hover{background-color:transparent;color:#16162a}

/* --- FAQ section spacing polish (2026-07-22 v2): scoped via :has() so global .sec/.shead/.wrap are untouched --- */
.sec:has(.izi-faqgrid){padding-top:56px;padding-bottom:74px}
.sec:has(.izi-faqgrid) .shead{margin-bottom:30px}
.sec:has(.izi-faqgrid) .wrap{max-width:1000px}
.izi-faqgrid{gap:18px}

/* ---------------------------------------------------------------- Japanese typography
   The design is IZI's, but its type rules assume a Latin face. In a CJK run the browser
   may break a line between any two characters, which splits words like ホームページ across
   lines in the hero and section headings. `auto-phrase` wraps on Japanese phrase
   boundaries where supported (Chrome/Edge 119+, Safari 18+) and degrades to normal
   wrapping elsewhere; `line-break:strict` keeps small kana and punctuation off line starts. */
h1, h2, h3, h4, h5,
.hero .sub, .shead .lead, .srow-tx b, .srow-tx i,
.wrow h3, .tstep h3, .cred-item h4, .faq-q span, .btn, .eyebrow, .hero-eyebrow {
  line-break: strict;
  word-break: auto-phrase;
  overflow-wrap: normal;
}
/* Japanese has no spaces, so a justified/hyphenated measure is never wanted. */
p, li, .f-about { line-break: strict; overflow-wrap: break-word; }

/* ==========================================================================
   CONTRAST CORRECTIONS (audited on the live page, 2026-09-29)

   IZI's accent is Champagne Gold — a LIGHT colour. ZenWeb's is Crimson — a DARK
   one. A straight token swap therefore inverts several light-on-dark pairings,
   and nudges IZI's warm greys below 4.5:1 against the cool footer ink. These
   rules restore the contrast without touching geometry, spacing or structure.
   Every value below was measured against the rendered background.
   ========================================================================== */

/* Footer wordmark sub-label: gold read fine on the dark footer; crimson does not
   (2.26:1). Use the light crimson tint instead. -> 7.4:1 */
.izi-wm.f-wm .wm-sub { color: #9e9ef2; }

/* Primary button: IZI sets near-black text because gold is light. On crimson that
   is 3.27:1. White on crimson is 5.9:1 and keeps the button's weight. */
.btn-primary,
.btn-primary .elementor-button { color: #fff !important; }

/* Footer secondary text: IZI's warm greys (#8a8579 / #948d7d) cleared 4.5:1 on its
   warm ink; the cool equivalents land at 3.6-3.8:1 on #33334a. -> 5.5:1 */
.f-about,
.footer ul a,
.f-contact li,
.f-contact a,
.f-bottom { color: #a9aebb; }

/* Service-group sub-label ("集客と信頼の土台"): --slate-2 on the tinted panel is
   3.06:1. --slate is 5.0:1 at the same weight. */
.svc-group .gt small,
.gt .elementor-heading-title small { color: var(--slate); }

/* ==========================================================================
   LAZY-LOAD BACKGROUND FALLBACK

   Elementor lazy-loads container backgrounds from the 4th top-level container on,
   with an inline `background-image: none !important` until JS adds .e-lazyloaded.
   These sections carry their dark background as a linear-gradient — i.e. as a
   background IMAGE — so until that class lands they render WHITE, and their white
   text is invisible. A matching background-color survives the override and is
   painted under the gradient once it loads, so nothing changes visually.
   ========================================================================== */
.areas            { background-color: #12121f; }
.elementor-6 .cta { background-color: #12121f; }
.t-feat           { background-color: #33334a; }
.ind-photo        { background-color: #a80730; }
.w-media          { background-color: #33334a; }

/* ==========================================================================
   TEXT WRAPPING

   `pretty` asks the browser to optimise the whole paragraph rather than greedily
   filling each line: it removes single-word orphans on the last line and avoids
   very short final lines. Combined with the `auto-phrase` rule above, Japanese
   copy breaks on phrase boundaries AND balances its last line.
   ========================================================================== */
h1, h2, h3, h4, h5, h6,
p, li, figcaption, blockquote,
.hero .sub, .shead .lead, .sub, .lead,
.srow-tx b, .srow-tx i, .wrow p, .tstep p,
.cred-item h4, .cred-item p, .faq-q span, .faq-a p,
.f-about, .w-badge span, .area, .eyebrow, .hero-eyebrow {
  text-wrap: pretty;
}

/* ==========================================================================
   INDUSTRIES CAROUSEL — flex-wrap fix

   `.ind-grid` is a horizontal scroll-snap carousel, but it never declares
   flex-wrap, so it inherits Elementor's container default of `wrap`. Below the
   4-up breakpoint each card's flex-basis grows toward 100%, so the cards wrap
   into one column instead of scrolling: measured 4,854px tall at 375px wide,
   with scrollWidth == clientWidth (no horizontal scroll at all). The reveal
   observer then cannot meet its 12% threshold on a block that tall, so the
   whole section can also stay at opacity 0.
   NOTE: izidigitalmarketing.com has this same bug and needs the same one-liner.
   ========================================================================== */
.ind-grid,
.elementor-element.ind-grid { flex-wrap: nowrap; }

/* ==========================================================================
   CARD HEADER LAYOUT — icon inline with the title, copy full width

   Both card types were laid out as a single flex ROW: icon in column 1, and ALL
   the text (title + description + sub-cards) squeezed into column 2. That left the
   description running in a narrow column with the icon's width permanently dead
   beside it.

   Convention applied instead: the icon and the title share the first line; every
   following block spans the full card width on its own row.

   Mechanism: the title is a grandchild (Elementor wraps it in its own container),
   so `display: contents` lifts that container's children into the card's own grid
   and lets the title sit in the icon's row.
   ========================================================================== */

/* ---- Credential cards (.csr) ---- */
.csr,
.elementor-element.csr {
  display: grid !important;
  grid-template-columns: auto 1fr;
  column-gap: 16px;
  row-gap: 14px;
  align-items: center;
}
.csr > .elementor-widget-html:first-child { grid-column: 1; grid-row: 1; }
.csr > .e-con { display: contents; }
.csr > .e-con > .elementor-widget-heading { grid-column: 2; grid-row: 1; }
.csr > .e-con > .elementor-widget-text-editor,
.csr > .e-con > .elementor-widget-html { grid-column: 1 / -1; }
.csr h3 { margin-bottom: 0; }   /* row-gap owns the spacing now */

/* ---- Sub-cards inside a credential card (.cred-item) ---- */
.cred-item {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 12px;
  row-gap: 7px;
  align-items: center;
}
.cred-item > div:last-child { display: contents; }
.cred-item h4 { grid-column: 2; grid-row: 1; margin: 0; }
.cred-item p  { grid-column: 1 / -1; margin: 0; }

/* ==========================================================================
   APPROVED PROPOSALS (2026-10-02)
   ========================================================================== */

/* Wordmark sub-label was 9px — IZI's own size, but Japanese glyphs carry more
   detail than Latin at the same point size. 10.5px with slightly tighter tracking
   occupies the same footprint. */
.izi-wm .wm-sub{ font-size:10.5px; letter-spacing:.3em; }

/* Mobile tap targets: footer link rows were ~17–24px tall, under the 44px guideline.
   Padding rather than font-size keeps the footer's type rhythm intact. */
@media (max-width:980px){
  .footer ul{ gap:2px; }
  .footer ul a{ display:block; padding:11px 0; }
  .f-contact li{ padding:7px 0; }
  .footer .f-bottom a{ display:inline-block; padding:8px 0; }
}

/* The ZenWeb Malaysia line added to the footer inherited the dark crimson body-link
   colour on the dark footer — 1.6:1. */
.footer .f-my,
.f-bottom .f-my{ color:#a9aebb; }
.footer .f-my a,
.f-bottom .f-my a{ color:#d8dae6; text-decoration:underline; }
.footer .f-my a:hover{ color:#fff; }
