
:root{
 --navy:#102c43;--navy2:#071f33;--blue:#58b9da;--sky:#dff3f8;
 --paper:#f5f3ee;--ink:#17242d;--muted:#60737f;--line:#d8e1e4;
 --white:#fff;--gold:#b99a62;--max:1320px
}
*{box-sizing:border-box}
html{scroll-behavior:<?=!empty($motion['smooth_scroll'])?'smooth':'auto'?>}
body{margin:0;color:var(--ink);font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;background:#fff;overflow-x:hidden}
a{text-decoration:none;color:inherit}button,input{font:inherit}img{max-width:100%;display:block}
.loading{position:fixed;inset:0;background:var(--navy);z-index:9999;display:grid;place-content:center;color:white;text-align:center;opacity:1;visibility:visible;transition:opacity .65s ease,visibility .65s ease}
.loading.hide{opacity:0;visibility:hidden}
.loading.show{opacity:1;visibility:visible}
.loading-logo{width:150px;height:72px;display:flex;align-items:center;justify-content:center;margin:auto;animation:loadingPulse 1.45s ease-in-out infinite}
.loading-logo img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;filter:brightness(0) invert(1);opacity:.96}
.loading p{letter-spacing:.32em;font-size:11px;margin-top:18px}
body.page-before-enter>:not(.loading):not(script){opacity:0}
body.page-ready>:not(.loading):not(script){animation:pageFadeIn .85s cubic-bezier(.22,.61,.36,1) both}
body.page-leaving>:not(.loading):not(script){opacity:.15;transition:opacity .28s ease}
@keyframes loadingPulse{0%,100%{transform:scale(1);opacity:.82}50%{transform:scale(1.045);opacity:1}}
@keyframes pageFadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.header{height:86px;position:fixed;left:0;right:0;top:0;z-index:100;display:flex;align-items:center;padding:0 4vw;color:white;transition:.4s;border-bottom:1px solid #ffffff2d}
.header.scrolled{height:72px;background:#fffffff2;color:var(--navy);box-shadow:0 10px 35px #102c4314;backdrop-filter:blur(14px)}
.brand{display:flex;align-items:center;gap:12px;margin-right:auto;font-weight:800;letter-spacing:.08em;min-width:0}
.brand-logo-box{width:58px;height:48px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;background:transparent;overflow:hidden}
.brand-logo-box img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;background:transparent;border:0;padding:0;filter:none;transition:filter .35s ease,opacity .35s ease}
.header.scrolled .brand-logo-box img{filter:brightness(0) saturate(100%)}
.brand-copy{min-width:0}.brand small{display:block;font-size:10px;letter-spacing:.04em;font-weight:500;white-space:nowrap}
.nav{display:flex;align-items:center;gap:27px;font-size:14px;font-weight:700}
.nav a{position:relative;padding:31px 0 26px}
.nav a:not(.nav-cta):after{content:"";position:absolute;left:0;right:100%;bottom:18px;height:1px;background:currentColor;transition:.3s}
.nav a:hover:after{right:0}
.nav-cta{background:var(--blue);color:white!important;padding:13px 18px!important;border-radius:5px}
.menu-btn{display:none;border:0;background:none;color:inherit;width:42px}
.menu-btn i{display:block;height:1px;background:currentColor;margin:8px}
.mobile-nav{display:none}
.hero{height:min(920px,100vh);min-height:700px;position:relative;color:white;overflow:hidden}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transform:scale(1.06);transition:opacity 1.2s,transform 7s}
.hero-bg.active{opacity:1;transform:scale(1)}
.hero-shade{position:absolute;inset:0;background:rgba(var(--overlay-rgb,0,0,0),var(--hero-overlay-opacity,.55))}
.hero-copy{position:absolute;left:7vw;right:6vw;bottom:20%;max-width:1180px;z-index:2}
.eyebrow{font-size:11px;font-weight:800;letter-spacing:.28em;color:var(--blue);margin:0 0 20px}
.hero h1{font-size:clamp(47px,6vw,86px);line-height:1.25;margin:0 0 25px;letter-spacing:.02em;white-space:nowrap;word-break:keep-all;overflow-wrap:normal}
.hero h1 em{font-family:Georgia,"Times New Roman",serif;font-weight:400}
.hero .lead{line-height:2;font-size:16px;margin:0}
.hero-links{display:flex;gap:0;margin-top:36px}
.hero-links a{display:flex;align-items:center;justify-content:center;min-width:240px;padding:18px 25px;border:1px solid #ffffff88;background:#ffffff10;backdrop-filter:blur(5px);font-weight:700}
.hero-links a:last-child{background:var(--blue);border-color:var(--blue)}
.hero-progress{position:absolute;right:5vw;bottom:8%;z-index:2;display:flex;gap:8px}
.hero-progress span{width:34px;height:2px;background:#ffffff55;transition:.3s}
.hero-progress span.active{background:white;width:62px}
.scroll{position:absolute;left:4vw;bottom:7%;z-index:2;display:flex;align-items:center;gap:15px;writing-mode:vertical-rl;font-size:10px;letter-spacing:.2em}
.scroll i{height:60px;width:1px;background:#ffffff55;position:relative;overflow:hidden}
.scroll i:before{content:"";position:absolute;top:0;left:0;width:1px;height:24px;background:white;animation:scroll 1.6s infinite}
.ticker{position:absolute;line-height:1.4;left:0;right:0;bottom:0;background:#fffffff2;color:#d72e35;height:42px;display:flex;align-items:center;justify-content:flex-end;padding:0 5vw;font-weight:700;font-size:13px;z-index:3;border-top:1px solid #ffffff80}
.section{padding:125px 5vw}.section-inner{width:min(var(--max),100%);margin:auto}
.section-head{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:40px;margin-bottom:58px}
.section-head p{margin:0}.section-head h2{font-size:clamp(38px,5vw,70px);line-height:1.18;margin:14px 0 0;letter-spacing:.02em}
.section-head>span{color:var(--muted);line-height:1.9;max-width:500px;justify-self:end}
.status{background:transparent}
.status-date{margin:12px 0 0;font-size:15px;font-weight:700;letter-spacing:.06em;color:var(--muted)}
.status-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.number-card{padding:36px;background:var(--paper);position:relative;overflow:hidden}
.number-card:before{content:"";position:absolute;width:90px;height:90px;border:1px solid #102c4320;border-radius:50%;right:-20px;top:-20px}
.number-card span{font-size:12px;color:var(--muted)}.number-card strong{display:inline-block;font:400 clamp(52px,7vw,90px)/1 Georgia;color:var(--navy);margin:20px 4px 12px 0}.number-card b{font-size:16px}.number-card p{margin:0;color:var(--muted)}
.info-panel{margin-top:18px;border:1px solid var(--line);padding:30px;display:grid;grid-template-columns:200px 1fr;gap:30px;align-items:center}.info-panel b{letter-spacing:.18em}.info-panel p{margin:0;line-height:1.8}
.thanks{padding:85px 5vw}.thanks-inner{width:min(var(--max),100%);margin:auto;display:grid;grid-template-columns:320px 1fr;gap:55px;align-items:center}.thanks-number{font:500 112px/1 Georgia;color:var(--gold);text-align:center}.thanks-number small{display:block;font:700 15px sans-serif;letter-spacing:.18em;margin-top:10px}.thanks h2{font-size:clamp(30px,4vw,52px);color:#d62f38;margin:0 0 18px}.thanks p{line-height:2;font-size:17px}
.services{background:transparent}.service-carousel{position:relative;padding:0 62px}.service-viewport{overflow:hidden}.cards{display:flex;gap:24px;transition:transform .55s cubic-bezier(.22,.61,.36,1);will-change:transform}.card{flex:0 0 calc((100% - 48px)/3);background:#fff;box-shadow:0 20px 55px #102c4310;transition:.35s;overflow:hidden}.card:hover{transform:translateY(-8px)}.card-image{overflow:hidden}.card img{width:100%;aspect-ratio:3/2;object-fit:cover;transition:.7s}.card:hover img{transform:scale(1.06)}.card-body{padding:27px}.card h3{font-size:23px;margin:0 0 12px}.card p{color:var(--muted);line-height:1.85;margin:0}.service-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:48px;height:76px;border:0;background:transparent;color:var(--navy);font-size:42px;line-height:1;cursor:pointer;transition:.25s}.service-arrow:hover{color:var(--blue);transform:translateY(-50%) scale(1.1)}.service-prev{left:0}.service-next{right:0}.service-arrow:disabled{opacity:.2;cursor:default;transform:translateY(-50%)}
.image-cta{min-height:520px;display:grid;place-items:center;text-align:center;color:var(--ink);position:relative}.image-cta h2{font-size:clamp(35px,5vw,60px);margin:0 0 15px}.image-cta p{line-height:1.8}.outline-btn{display:inline-flex;padding:17px 34px;border:1px solid var(--navy);margin-top:20px;transition:.3s}.outline-btn:hover{background:var(--navy);color:white}
.strengths{position:relative}.strengths .section-head{color:var(--ink)}.strength-grid{display:grid;grid-template-columns:repeat(4,1fr);background:white}.strength{padding:38px 32px;min-height:300px;border-right:1px solid var(--line)}.strength:last-child{border:0}.strength small{font:700 12px Georgia;color:var(--muted)}.strength h3{font-size:24px;color:var(--blue);margin:22px 0}.strength p{line-height:1.9}
.reviews{background:transparent}.reviews .section-head{grid-template-columns:1fr}.reviews .section-head h2{white-space:nowrap;word-break:keep-all;overflow-wrap:normal;font-size:clamp(34px,4.6vw,68px)}.review-carousel{position:relative;padding:0 52px}.review-viewport{overflow:hidden}.review-track{display:flex;gap:22px;transition:transform .55s cubic-bezier(.22,.61,.36,1);will-change:transform}.review{flex:0 0 calc((100% - 44px)/3);min-width:0;background:#fff;padding:28px;border-radius:18px;border:1px solid #e3e8eb;box-shadow:0 12px 30px rgba(16,44,67,.06);height:430px;display:flex;flex-direction:column;overflow:hidden}.stars{color:#d8a02a;letter-spacing:.16em}.review p{line-height:1.9;margin:18px 0 0}.review small{color:#8a989f}
.review-text-wrap{position:relative;max-height:238px;overflow:hidden;flex:1}.review-text-wrap:after{content:"";position:absolute;left:0;right:0;bottom:0;height:76px;background:linear-gradient(to bottom,rgba(255,255,255,0),#fff 82%);pointer-events:none}.review-read-more{align-self:flex-start;margin-top:12px;border:0;background:transparent;color:var(--navy);font-size:12px;font-weight:700;text-decoration:underline;cursor:pointer;padding:0}.review-read-more:hover{color:var(--blue)}
.review-author{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.review-author img{width:42px;height:42px;border-radius:50%;object-fit:cover;background:#fff;flex:0 0 auto}.review-author-fallback{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#7224aa;color:#fff;font-weight:800;flex:0 0 auto}
.review-author strong{display:block;font-size:14px}
.review-author span{display:block;color:#82919a;font-size:11px;margin-top:2px}
.review-source-link{display:inline-flex;margin-top:14px;font-size:11px;color:#55707f;text-decoration:underline}
.google-review-meta{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 52px 20px;color:#677d89;font-size:12px}
.google-review-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.google-review-summary b{font-size:20px;color:var(--navy)}
.google-review-count-link{color:inherit;text-decoration:underline;text-underline-offset:3px}.google-review-count-link:hover{color:var(--blue)}
.review-modal{position:fixed;inset:0;z-index:1000;background:rgba(5,23,37,.72);display:none;align-items:center;justify-content:center;padding:24px}.review-modal.open{display:flex}.review-modal-card{width:min(720px,100%);max-height:min(82vh,780px);background:#fff;border-radius:20px;overflow:hidden;display:flex;flex-direction:column}.review-modal-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #e4e9ec}.review-modal-body{padding:24px;overflow:auto;line-height:2}.review-modal-close{border:0;background:#edf3f6;color:var(--navy);width:40px;height:40px;border-radius:50%;cursor:pointer;font-size:20px}
@media(max-width:560px){.google-review-meta{margin:0 34px 16px;align-items:flex-start;flex-direction:column}.review{height:400px}.review-modal{padding:12px}}.review-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:42px;height:74px;border:0;background:transparent;color:#85939c;font-size:30px;cursor:pointer;transition:.25s}.review-arrow:hover{color:var(--navy);transform:translateY(-50%) scale(1.08)}.review-arrow:disabled{opacity:.2;cursor:default}.review-prev{left:0}.review-next{right:0}
.area{background:transparent}.area-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:center}.area h2{font-size:clamp(38px,5vw,70px);line-height:1.18;margin:14px 0 28px;letter-spacing:.02em;white-space:nowrap;word-break:keep-all;overflow-wrap:normal}.area img{width:100%;max-height:620px;object-fit:contain}.regions{display:grid;gap:22px}.regions b{display:block;margin-bottom:4px}.regions span{line-height:1.7}
.blog-carousel{position:relative;padding:0 52px}.blog-viewport{overflow:hidden}.blog-track{display:flex;gap:18px;transition:transform .55s cubic-bezier(.22,.61,.36,1);will-change:transform}.blog-card{flex:0 0 calc((100% - 72px)/5);min-width:0;border:1px solid var(--line);background:white;transition:.3s}.blog-card:hover{transform:translateY(-6px);box-shadow:0 18px 45px #102c4310}.blog-card img{width:100%;aspect-ratio:3/2;object-fit:cover}.blog-card div{padding:20px}.blog-card h3{margin:0 0 12px;font-size:18px}.blog-card small{color:var(--muted)}.blog-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:42px;height:74px;border:0;background:transparent;color:#85939c;font-size:30px;cursor:pointer;transition:.25s}.blog-arrow:hover{color:var(--navy);transform:translateY(-50%) scale(1.08)}.blog-arrow:disabled{opacity:.2;cursor:default}.blog-prev{left:0}.blog-next{right:0}
.free-block{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.contact{min-height:520px;display:grid;place-items:center;text-align:center;color:white;background-size:cover;background-position:center;position:relative;isolation:isolate}.contact:before{content:"";position:absolute;inset:0;background:rgba(var(--overlay-rgb,0,0,0),var(--contact-overlay-opacity,.79));z-index:-1}.contact h2{font-size:clamp(38px,5vw,62px);margin:14px 0}.contact p{line-height:1.8}.contact-actions{display:flex;justify-content:center;margin-top:34px}.contact-actions a{padding:20px 32px;background:white;color:var(--navy);min-width:280px}.contact-actions a:last-child{background:var(--blue);color:white}
.footer{background:var(--navy);color:white;padding:65px 5vw 32px}.footer-inner{width:min(var(--max),100%);margin:auto;display:grid;grid-template-columns:300px 1fr;gap:70px}.footer-brand{display:flex;gap:13px;align-items:center;font-weight:800;font-size:20px}.footer-logo-box{width:68px;height:56px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;overflow:hidden}.footer-logo-box img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;background:transparent;border:0;padding:0}.footer-brand small{display:block;font-size:10px;font-weight:400}.footer-menu{display:flex;flex-wrap:wrap;gap:17px 28px}.footer-sub{margin-top:28px;color:#b5c7d2;font-size:12px;display:flex;flex-wrap:wrap;gap:22px}.copyright{width:min(var(--max),100%);margin:38px auto 0;padding-top:20px;border-top:1px solid #ffffff22;color:#9fb5c3;font-size:11px;letter-spacing:.04em}
.reveal{opacity:0;transform:translateY(38px);transition:opacity .85s,transform .85s}.reveal.show{opacity:1;transform:none}

.managed-alternating-block{background-color:var(--tone-bg,#fff)!important;background-clip:border-box}
.managed-alternating-block.tone-white{--tone-bg:#fff;background-color:#fff!important}
.managed-alternating-block.tone-gray{--tone-bg:#f4f7f9;background-color:#f4f7f9!important}
.managed-alternating-block.custom-block-bg{background-image:linear-gradient(rgba(var(--overlay-rgb,255,255,255),var(--block-overlay-opacity,.88)),rgba(var(--overlay-rgb,255,255,255),var(--block-overlay-opacity,.88))),var(--custom-bg)!important;background-color:transparent!important}
.custom-block-bg{background-size:cover!important;background-position:center!important;background-attachment:scroll!important}
/* スライダー内部は透明にし、外側セクションの白/グレーを隠さない */
.managed-alternating-block .service-viewport,.managed-alternating-block .review-viewport,.managed-alternating-block .blog-viewport,.managed-alternating-block .section-inner{background:transparent!important}
.manual-text{white-space:nowrap;word-break:keep-all;overflow-wrap:normal}
.manual-text br{display:block}
.floating-cta{position:fixed;right:0;top:50%;z-index:80;display:grid;justify-items:end;gap:8px;transform:translateY(-50%)}
.floating-cta-main{display:grid;box-shadow:0 12px 35px #071f3330}
.floating-cta-main>a{writing-mode:vertical-rl;min-height:154px;padding:18px 13px;display:flex;align-items:center;justify-content:center;color:white;font-weight:800;letter-spacing:.08em;transition:filter .22s ease,transform .22s ease}
.floating-cta-main>a:hover{filter:brightness(1.08)}
.floating-contact{background:var(--navy)}
.floating-simulator{background:var(--blue)}
.floating-socials{display:grid;gap:6px;justify-items:end}
.floating-social{position:relative;display:grid!important;place-items:center;width:48px;height:48px;min-height:48px!important;padding:0!important;writing-mode:horizontal-tb!important;border-radius:8px;background:transparent!important;box-shadow:0 8px 22px #071f3330;overflow:hidden;transition:transform .22s ease,box-shadow .22s ease}
.floating-social:hover{transform:translateX(-4px) scale(1.04);box-shadow:0 12px 28px #071f3345}
.floating-social img{display:block;width:100%;height:100%;object-fit:cover}
.floating-social-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.back-top{position:fixed;right:26px;bottom:26px;z-index:85;border:0;border-radius:999px;background:#ffffffdf;color:var(--navy);padding:13px 17px;font-weight:800;box-shadow:0 10px 30px #071f3330;opacity:0;visibility:hidden;transform:translateY(12px);transition:.25s;cursor:pointer;backdrop-filter:blur(8px)}.back-top.show{opacity:1;visibility:visible;transform:none}.back-top:hover{background:var(--navy);color:white;transform:translateY(-3px)}

@keyframes pulse{50%{transform:scale(1.08)}}@keyframes scroll{from{top:0}to{top:40px;opacity:0}}
@media(max-width:900px){.floating-cta{top:auto;bottom:76px;right:10px;display:flex;align-items:flex-end;gap:6px;transform:none}.floating-cta-main{display:flex}.floating-cta-main>a{writing-mode:horizontal-tb;min-height:0;padding:11px 13px;font-size:11px}.floating-socials{display:flex;gap:4px}.floating-social{width:39px;height:39px;min-height:39px!important;border-radius:7px}.floating-social:hover{transform:translateY(-3px) scale(1.03)}.back-top{right:16px;bottom:18px}

 .header{height:68px;padding:0 18px}.header.scrolled{height:62px}.nav{display:none}.menu-btn{display:block}
 .mobile-nav{position:fixed;inset:62px 0 auto 0;background:#fffffff5;color:var(--navy);padding:22px;z-index:90;display:none}.mobile-nav.open{display:grid}.mobile-nav a{padding:14px;border-bottom:1px solid var(--line)}
 .hero{min-height:720px;height:100svh}.hero-copy{left:24px;right:24px;bottom:17%}.hero h1{font-size:45px;white-space:nowrap}.hero .lead br{display:none}.hero-links{flex-direction:column}.hero-links a{min-width:0;justify-content:space-between}.hero-progress{display:none}.scroll{display:none}
 .section{padding:88px 22px}.section-head{display:block}.section-head>span{display:block;margin-top:20px}
 .status-grid{grid-template-columns:1fr}.info-panel{grid-template-columns:1fr}.service-carousel{padding:0 42px}.card{flex-basis:100%}.review-carousel{padding:0 42px}.review{flex-basis:100%}.blog-carousel{padding:0 42px}.blog-card{flex-basis:calc((100% - 36px)/3)}
 .thanks-inner,.area-grid,.footer-inner{grid-template-columns:1fr}.thanks-number{text-align:left}
 .strength-grid{grid-template-columns:1fr 1fr}.contact-actions{flex-direction:column}.contact-actions a{min-width:290px}
}
@media(max-width:560px){.review-carousel{padding:0 34px}.review-arrow{width:30px;font-size:24px}.blog-carousel{padding:0 34px}.blog-card{flex-basis:100%}.blog-arrow{width:30px;font-size:24px}.strength-grid{grid-template-columns:1fr}.hero h1{font-size:39px}.ticker{font-size:11px;justify-content:flex-start}.section-head h2{font-size:39px}.reviews .section-head h2{font-size:clamp(24px,8.5vw,39px)}.area h2{font-size:39px}}

.managed-theme h1,.managed-theme h2{color:var(--managed-title)!important}
.managed-theme .eyebrow{color:var(--managed-eyebrow)!important}
.managed-theme>div>p,.managed-theme .lead,.managed-theme .section-head>span,.managed-theme .theme-text{color:var(--managed-text)!important}
.managed-button{color:var(--managed-btn-text)!important;background:var(--managed-btn-bg)!important;border-color:var(--managed-btn-border)!important;transition:.25s}
.managed-button:hover{color:var(--managed-btn-hover-text)!important;background:var(--managed-btn-hover-bg)!important;border-color:var(--managed-btn-hover-border)!important}
.managed-button.secondary{color:var(--managed-btn2-text)!important;background:var(--managed-btn2-bg)!important;border-color:var(--managed-btn2-border)!important}
.managed-button.secondary:hover{color:var(--managed-btn2-hover-text)!important;background:var(--managed-btn2-hover-bg)!important;border-color:var(--managed-btn2-hover-border)!important}

.nav{display:flex;align-items:center;gap:28px}.nav-item-wrap{position:relative;display:flex;align-items:center}.nav-submenu{position:absolute;top:calc(100% + 18px);left:50%;min-width:240px;max-height:min(60vh,520px);overflow-y:auto;padding:9px;background:#fff;border:1px solid #dce5ea;box-shadow:0 18px 45px #102c4026;opacity:0;visibility:hidden;transform:translate(-50%,8px);transition:.22s;z-index:80}.nav-submenu:before{content:"";position:absolute;left:0;right:0;top:-24px;height:24px}.nav-item-wrap:hover .nav-submenu{opacity:1;visibility:visible;transform:translate(-50%,0)}.nav-parent-label{appearance:none;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;padding:31px 0 26px;line-height:inherit;cursor:default;display:flex;align-items:center;white-space:nowrap;position:relative}.nav-parent-label:before{content:"";position:absolute;left:0;right:100%;bottom:18px;height:1px;background:currentColor;transition:right .3s}.nav-item-wrap:hover>.nav-parent-label:before{right:0}.nav-parent-label.has-children:after{display:none!important;content:none!important}.mobile-parent-label{padding:12px 16px;font-weight:800;color:#15304a;border-bottom:1px solid #dce5ea}.nav-submenu a{display:block!important;padding:11px 14px!important;color:#15304a!important;white-space:nowrap;border-radius:5px}.nav-submenu a:hover{background:#eef6fa}.mobile-nav .mobile-child{padding-left:30px;font-size:13px}

/* ツリーメニュー項目アイコン */
.nav-submenu a,.mobile-nav .mobile-child{display:flex!important;align-items:center;gap:8px}
.menu-item-icon{display:inline-block;width:20px;height:20px;min-width:20px;max-width:20px;min-height:20px;max-height:20px;flex:0 0 20px;object-fit:contain;vertical-align:-3px}
.menu-item-text{vertical-align:middle}
.menu-tree-guide{display:inline-block;color:#4b52e6;font-size:11px;line-height:1;vertical-align:1px}
.child-main{padding-top:72px;background:#fff}
.child-hero{min-height:430px;display:flex;align-items:flex-end;background:#f4f7f9;padding:90px 6vw 72px}
.child-hero-inner{width:min(var(--max),100%);margin:auto}
.child-hero .eyebrow{margin-bottom:20px}
.child-hero h1{margin:0;font-size:clamp(42px,6vw,78px);line-height:1.18;color:var(--ink);letter-spacing:.02em}
.child-hero .child-subtitle{margin:22px 0 0;color:var(--muted);font-size:18px;line-height:1.9}
.child-content{width:min(var(--max),calc(100% - 10vw));margin:auto;padding:85px 0 120px}
.child-main-image{display:block;width:100%;max-height:680px;object-fit:cover;margin:0 0 52px}
.child-role,.child-category{color:var(--blue);font-size:12px;font-weight:800;letter-spacing:.16em;margin:0 0 18px}
.child-summary{font-size:20px;line-height:2;margin:0 0 42px;white-space:pre-wrap}
.child-body{font-size:16px;line-height:2.15;white-space:pre-wrap}
.child-main .floating-cta{display:grid}
@media(max-width:760px){.child-main{padding-top:68px}.child-hero{min-height:330px;padding:68px 24px 50px}.child-content{width:calc(100% - 40px);padding:55px 0 90px}.child-summary{font-size:17px}.child-main-image{margin-bottom:34px}}

/* =========================================================
 * 2026-08-03 スマートフォン表示 最終統一
 * デスクトップ用ナビがモバイル幅で再表示されるCSS順序問題を、
 * 全共通CSSの末尾で安全に上書きします。
 * ========================================================= */
@media (max-width:900px){
 html{scroll-padding-top:64px}
 body{padding-bottom:calc(64px + env(safe-area-inset-bottom));overflow-x:hidden}

 .header,.header.scrolled{
  height:64px!important;
  min-height:64px!important;
  padding:0 14px!important;
  background:rgba(255,255,255,.96)!important;
  color:var(--navy)!important;
  border-bottom:1px solid rgba(16,44,67,.1)!important;
  box-shadow:0 8px 28px rgba(16,44,67,.1)!important;
  -webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px)
 }
 .header .brand{width:auto;max-width:calc(100% - 58px);gap:0;margin-right:auto;overflow:hidden}
 .header .brand-logo-box{
  width:clamp(118px,42vw,168px)!important;
  height:48px!important;
  flex:0 1 auto!important;
  justify-content:flex-start!important;
  overflow:visible!important
 }
 .header .brand-logo-box img{
  width:auto!important;
  height:auto!important;
  max-width:100%!important;
  max-height:44px!important;
  object-fit:contain!important;
  object-position:left center!important;
  filter:none!important
 }
 /* 現行ロゴ画像内に社名・英文ロゴが含まれるため、モバイルのみ重複文字を非表示 */
 .header .brand-copy{display:none!important}
 .header .nav{display:none!important;visibility:hidden!important}
 .header .menu-btn{
  display:block!important;
  flex:0 0 44px;
  width:44px!important;
  height:44px;
  margin-left:auto;
  padding:8px 6px;
  border:0;
  border-radius:9px;
  background:#f1f7fa!important;
  color:var(--navy)!important;
  cursor:pointer
 }
 .header .menu-btn i{height:2px!important;margin:5px 4px!important;border-radius:5px;background:currentColor!important}

 .mobile-nav{
  position:fixed!important;
  top:70px!important;
  right:10px!important;
  bottom:calc(70px + env(safe-area-inset-bottom))!important;
  left:10px!important;
  inset:auto 10px calc(70px + env(safe-area-inset-bottom)) 10px!important;
  z-index:115!important;
  display:none!important;
  grid-template-columns:1fr!important;
  align-content:start;
  gap:0!important;
  max-height:calc(100dvh - 150px - env(safe-area-inset-bottom));
  padding:10px 14px 16px!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  border:1px solid rgba(16,44,67,.11);
  border-radius:15px;
  background:rgba(255,255,255,.98)!important;
  color:var(--navy)!important;
  box-shadow:0 20px 54px rgba(7,31,51,.22)!important;
  -webkit-backdrop-filter:blur(16px);
  backdrop-filter:blur(16px)
 }
 .mobile-nav.open{display:grid!important}
 .mobile-nav .mobile-parent-label{
  padding:13px 10px 9px!important;
  border-bottom:1px solid #dce6eb!important;
  color:#15304a!important;
  font-size:12px!important;
  font-weight:900!important;
  letter-spacing:.08em
 }
 .mobile-nav a,.mobile-nav .mobile-child{
  min-height:46px;
  padding:12px 10px!important;
  border-bottom:1px solid #edf2f4!important;
  color:#2e4d5d!important;
  font-size:13px!important;
  font-weight:800!important;
  line-height:1.5!important;
  writing-mode:horizontal-tb!important;
  white-space:normal!important
 }
 .mobile-nav .mobile-child{padding-left:22px!important}
 .mobile-nav .nav-cta{margin-top:7px;border:0!important;border-radius:8px;background:var(--blue)!important;color:#fff!important;justify-content:center}

 /* 4つの導線を常に画面最下部へ固定。戻るボタンはこのバーの上に表示 */
 .floating-cta{
  position:fixed!important;
  top:auto!important;
  right:0!important;
  bottom:0!important;
  left:0!important;
  z-index:120!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  width:100%!important;
  gap:6px!important;
  padding:6px 8px calc(6px + env(safe-area-inset-bottom))!important;
  transform:none!important;
  border-top:1px solid rgba(16,44,67,.11);
  background:rgba(255,255,255,.96)!important;
  box-shadow:0 -10px 30px rgba(7,31,51,.13)!important;
  -webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px)
 }
 .floating-cta-main{
  display:grid!important;
  grid-template-columns:minmax(88px,.9fr) minmax(112px,1.15fr)!important;
  min-width:0;
  gap:0!important;
  box-shadow:none!important
 }
 .floating-cta-main>a{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  height:46px!important;
  min-height:46px!important;
  padding:0 9px!important;
  writing-mode:horizontal-tb!important;
  white-space:nowrap!important;
  font-size:10.5px!important;
  font-weight:900!important;
  letter-spacing:.02em!important;
  border-radius:0!important
 }
 .floating-contact{border-radius:8px 0 0 8px!important}
 .floating-simulator{border-radius:0 8px 8px 0!important}
 .floating-socials{
  display:grid!important;
  grid-template-columns:44px 44px!important;
  align-items:center!important;
  gap:5px!important
 }
 .floating-social{
  width:44px!important;
  height:44px!important;
  min-width:44px!important;
  min-height:44px!important;
  padding:0!important;
  border:0!important;
  border-radius:9px!important;
  overflow:hidden!important;
  box-shadow:0 5px 15px rgba(7,31,51,.18)!important;
  transform:none!important
 }
 .floating-social img{width:100%!important;height:100%!important;object-fit:cover!important}

 .back-top{
  right:12px!important;
  bottom:calc(72px + env(safe-area-inset-bottom))!important;
  z-index:118!important;
  min-height:45px;
  padding:11px 16px!important;
  border:1px solid rgba(16,44,67,.08)!important;
  background:rgba(255,255,255,.96)!important;
  box-shadow:0 9px 25px rgba(7,31,51,.18)!important
 }

 .hero h1,.child-hero h1,.works-hero h1{white-space:normal!important;word-break:keep-all!important;overflow-wrap:anywhere!important}
 .hero-copy{left:22px!important;right:22px!important;bottom:17%!important;max-width:calc(100% - 44px)!important}
 .hero h1{font-size:clamp(34px,11vw,46px)!important;line-height:1.3!important}
 .hero .lead{font-size:14px!important;line-height:1.9!important}
 .hero-links{width:100%!important}
 .hero-links a{min-width:0!important;width:100%!important}
 .ticker{bottom:calc(58px + env(safe-area-inset-bottom))!important;padding:0 18px!important;overflow:hidden}

 .footer{padding-bottom:calc(96px + env(safe-area-inset-bottom))!important}
 .footer-inner{gap:34px!important}
 .footer-menu,.footer-sub{gap:15px 20px!important}
 .child-main{padding-top:64px!important}
}

@media (max-width:420px){
 .header .brand-logo-box{width:132px!important}
 .floating-cta{gap:4px!important;padding-left:5px!important;padding-right:5px!important}
 .floating-cta-main{grid-template-columns:minmax(82px,.9fr) minmax(104px,1.12fr)!important}
 .floating-cta-main>a{height:44px!important;min-height:44px!important;padding:0 6px!important;font-size:9.5px!important}
 .floating-socials{grid-template-columns:40px 40px!important;gap:4px!important}
 .floating-social{width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;border-radius:8px!important}
 .back-top{bottom:calc(68px + env(safe-area-inset-bottom))!important}
 .hero-copy{bottom:18%!important}
}

/* =========================================================
 * 2026-08-03 モバイル画像表示・下部固定導線 最終調整
 * ========================================================= */
.floating-phone{display:none}
.floating-cta-icon{display:none;width:19px;height:19px;flex:0 0 19px}

@media(max-width:900px){
 body{padding-bottom:calc(58px + env(safe-area-inset-bottom))!important}

 /* マネージャーで差し込んだ画像は、モバイル時に設定幅で縮めず全体表示 */
 .section.free-block .free-block-image{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important
 }
 .section.free-block .free-block-image img{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  height:auto!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center center!important
 }
 .section.free-block.free-block-image-only{
  min-height:0!important;
  padding:18px 6px!important;
  align-items:stretch!important
 }
 .section.free-block.free-block-image-only .section-inner{
  width:100%!important;
  max-width:none!important;
  margin:0!important
 }
 .section.free-block.free-block-image-only .free-block-image{margin:0!important}

 /* 下部導線は画面幅いっぱい・4分割。シミュレーターを電話へ置換 */
 .floating-cta{
  position:fixed!important;
  inset:auto 0 0 0!important;
  z-index:120!important;
  display:grid!important;
  grid-template-columns:repeat(var(--mobile-cta-items,4),minmax(0,1fr))!important;
  align-items:stretch!important;
  width:100%!important;
  gap:0!important;
  padding:0 0 env(safe-area-inset-bottom)!important;
  transform:none!important;
  border-top:1px solid rgba(16,44,67,.14)!important;
  background:#fff!important;
  box-shadow:0 -8px 24px rgba(7,31,51,.16)!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important
 }
 .floating-cta-main,.floating-socials{display:contents!important}
 .floating-simulator{display:none!important}
 .floating-phone{display:flex!important;background:var(--blue)!important;color:#fff!important}
 .floating-contact,.floating-phone,.floating-social{
  width:100%!important;
  min-width:0!important;
  height:58px!important;
  min-height:58px!important;
  margin:0!important;
  padding:0 4px!important;
  border:0!important;
  border-right:1px solid rgba(255,255,255,.35)!important;
  border-radius:0!important;
  box-shadow:none!important;
  writing-mode:horizontal-tb!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
  overflow:hidden!important;
  transform:none!important;
  white-space:nowrap!important
 }
 .floating-contact{background:var(--navy)!important;color:#fff!important}
 .floating-cta-icon{display:block!important}
 .floating-cta-text{
  display:block!important;
  min-width:0;
  font-size:10px!important;
  font-weight:900!important;
  letter-spacing:0!important;
  line-height:1.15!important
 }
 .floating-social{
  background:#e8f7fb!important;
  color:var(--navy)!important;
  border-right:1px solid #cfe9f2!important
 }
 .floating-social:last-child{border-right:0!important}
 .floating-social img{
  display:block!important;
  width:42px!important;
  height:42px!important;
  max-width:calc(100% - 8px)!important;
  object-fit:contain!important;
  border-radius:8px!important
 }
 .back-top{
  right:12px!important;
  bottom:calc(70px + env(safe-area-inset-bottom))!important;
  z-index:118!important
 }
 .footer{padding-bottom:calc(92px + env(safe-area-inset-bottom))!important}
}

@media(max-width:380px){
 .floating-contact,.floating-phone,.floating-social{height:54px!important;min-height:54px!important}
 .floating-cta-text{font-size:9px!important}
 .floating-cta-icon{width:17px!important;height:17px!important;flex-basis:17px!important}
 .floating-social img{width:38px!important;height:38px!important}
 .back-top{bottom:calc(66px + env(safe-area-inset-bottom))!important}
 body{padding-bottom:calc(54px + env(safe-area-inset-bottom))!important}
}

/* =========================================================
 * 2026-08-03 右固定／モバイル下部固定 最終修正
 * - PCで電話ボタンが空白の縦枠として表示される競合を解消
 * - モバイルでシミュレーションが残る競合を解消
 * - お問い合わせ／TEL／Instagram／LINEを必ず横一列4分割
 * ========================================================= */

/* PC：電話はモバイル専用。既存の .floating-cta-main>a より高い詳細度で非表示 */
.floating-cta-main > a.floating-phone{
 display:none!important;
}

/* 横方向のはみ出しによる不要な余白・横スクロールを防止 */
html,body{
 max-width:100%;
 overflow-x:hidden;
 overflow-x:clip;
}

@media(max-width:900px){
 /* モバイル：PC用シミュレーションは完全に除外 */
 .floating-cta .floating-cta-main > a.floating-simulator{
  display:none!important;
 }

 /* モバイル専用TELを表示 */
 .floating-cta .floating-cta-main > a.floating-phone{
  display:flex!important;
 }

 /* 4項目を必ず1行・均等幅に固定 */
 .floating-cta{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  grid-template-rows:58px!important;
  grid-auto-flow:column!important;
  grid-auto-columns:minmax(0,1fr)!important;
  align-items:stretch!important;
  align-content:stretch!important;
  gap:0!important;
  overflow:visible!important;
 }
 .floating-cta > .floating-cta-main,
 .floating-cta > .floating-socials{
  display:contents!important;
 }
 .floating-cta .floating-contact,
 .floating-cta .floating-phone,
 .floating-cta .floating-social{
  grid-row:1!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  height:58px!important;
  min-height:58px!important;
  box-sizing:border-box!important;
 }
 .floating-cta .floating-contact{grid-column:1!important}
 .floating-cta .floating-phone{grid-column:2!important}
 .floating-cta .floating-social-instagram{grid-column:3!important}
 .floating-cta .floating-social-line{grid-column:4!important}

 /* 各ボタンの境界を統一 */
 .floating-cta .floating-contact,
 .floating-cta .floating-phone,
 .floating-cta .floating-social-instagram{
  border-right:1px solid rgba(255,255,255,.35)!important;
 }
 .floating-cta .floating-social-line{
  border-right:0!important;
 }
}

@media(max-width:380px){
 .floating-cta{
  grid-template-rows:54px!important;
 }
 .floating-cta .floating-contact,
 .floating-cta .floating-phone,
 .floating-cta .floating-social{
  height:54px!important;
  min-height:54px!important;
 }
}

/* =========================================================
 * 2026-08-03 モバイル横ずれ防止・下部固定幅バランス調整
 * ========================================================= */
@media(max-width:900px){
 html{
  width:100%!important;
  max-width:100%!important;
  overflow-x:hidden!important;
  overscroll-behavior-x:none!important
 }
 body{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  overflow-x:hidden!important;
  overscroll-behavior-x:none!important;
  position:relative!important
 }
 main{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  overflow-x:clip!important
 }
 main>section,
 .section,
 .section-inner,
 .section-head,
 .area-grid,
 .area-grid>*{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important
 }
 .area,
 .reviews{
  overflow-x:clip!important
 }
 .section-head h2,
 .area h2,
 .reviews .section-head h2,
 .manual-text{
  max-width:100%!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:anywhere!important
 }
 img,video,iframe,canvas{
  max-width:100%!important
 }

 /* お問い合わせとTELを広く、SNSはアイコン幅で右側に配置 */
 .floating-cta{
  grid-template-columns:minmax(0,1.45fr) minmax(0,1.15fr) 50px 50px!important;
  width:100%!important;
  max-width:100%!important
 }
 .floating-cta .floating-contact{grid-column:1!important}
 .floating-cta .floating-phone{grid-column:2!important}
 .floating-cta .floating-social-instagram{grid-column:3!important}
 .floating-cta .floating-social-line{grid-column:4!important}
 .floating-cta .floating-social{
  width:50px!important;
  min-width:50px!important;
  max-width:50px!important;
  padding:0!important
 }
 .floating-cta .floating-social img{
  width:40px!important;
  height:40px!important;
  max-width:40px!important
 }
}

@media(max-width:360px){
 .floating-cta{
  grid-template-columns:minmax(0,1.45fr) minmax(0,1.15fr) 46px 46px!important
 }
 .floating-cta .floating-social{
  width:46px!important;
  min-width:46px!important;
  max-width:46px!important
 }
 .floating-cta .floating-social img{
  width:36px!important;
  height:36px!important;
  max-width:36px!important
 }
}

/* =========================================================
 * 2026-08-03 PC右固定位置／INDEXモバイル下部固定 最終統一
 * - ページ入場アニメーションが fixed 要素の transform を上書きする問題を回避
 * - PCは電話を非表示、右固定群を画面中央へ戻す
 * - モバイルはお問い合わせ／TEL／Instagram／LINEを1列固定
 * - 横方向のページスワイプと縮小時の片寄りを防止
 * ========================================================= */
body.page-ready > .floating-cta,
body.page-ready > .back-top{
 animation:none!important;
}

@media(min-width:901px){
 .floating-cta{
  top:50%!important;
  right:0!important;
  bottom:auto!important;
  left:auto!important;
  transform:translateY(-50%)!important;
 }
 .floating-cta .floating-cta-main > a.floating-phone{
  display:none!important;
 }
 .back-top{
  right:26px!important;
  bottom:26px!important;
 }
}

@media(max-width:900px){
 html,body{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  overflow-x:hidden!important;
  overscroll-behavior-x:none!important;
  touch-action:pan-y pinch-zoom;
 }
 body{position:relative!important}
 main{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  overflow-x:hidden!important;
 }

 .floating-cta{
  position:fixed!important;
  inset:auto 0 0 0!important;
  z-index:120!important;
  display:grid!important;
  grid-template-columns:minmax(0,1.55fr) minmax(0,1.25fr) 48px 48px!important;
  grid-template-rows:58px!important;
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
  padding:0 0 env(safe-area-inset-bottom)!important;
  gap:0!important;
  overflow:hidden!important;
  transform:none!important;
  background:#fff!important;
  border-top:1px solid rgba(16,44,67,.14)!important;
  box-shadow:0 -8px 24px rgba(7,31,51,.16)!important;
 }
 .floating-cta > .floating-cta-main,
 .floating-cta > .floating-socials{
  display:contents!important;
 }
 .floating-cta .floating-cta-main > a.floating-simulator{
  display:none!important;
 }
 .floating-cta .floating-cta-main > a.floating-phone{
  display:flex!important;
 }
 .floating-cta .floating-contact,
 .floating-cta .floating-phone,
 .floating-cta .floating-social{
  grid-row:1!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  height:58px!important;
  min-height:58px!important;
  margin:0!important;
  padding:0 5px!important;
  box-sizing:border-box!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  writing-mode:horizontal-tb!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  transform:none!important;
 }
 .floating-cta .floating-contact{grid-column:1!important}
 .floating-cta .floating-phone{grid-column:2!important}
 .floating-cta .floating-social-instagram{grid-column:3!important}
 .floating-cta .floating-social-line{grid-column:4!important}
 .floating-cta .floating-social{
  min-width:0!important;
  max-width:none!important;
  padding:0!important;
  background:#e8f7fb!important;
  border-left:1px solid #cfe9f2!important;
 }
 .floating-cta .floating-social img{
  width:38px!important;
  height:38px!important;
  max-width:38px!important;
  object-fit:contain!important;
  border-radius:8px!important;
 }
 .floating-cta .floating-cta-text{
  display:block!important;
  min-width:0!important;
  font-size:10px!important;
  line-height:1.1!important;
  letter-spacing:0!important;
 }
 .floating-cta .floating-cta-icon{
  display:block!important;
  width:18px!important;
  height:18px!important;
  flex:0 0 18px!important;
 }
 .back-top{
  right:12px!important;
  bottom:calc(70px + env(safe-area-inset-bottom))!important;
 }
 body{padding-bottom:calc(58px + env(safe-area-inset-bottom))!important}
 .footer{padding-bottom:calc(92px + env(safe-area-inset-bottom))!important}
}

@media(max-width:360px){
 .floating-cta{
  grid-template-columns:minmax(0,1.55fr) minmax(0,1.25fr) 44px 44px!important;
  grid-template-rows:54px!important;
 }
 .floating-cta .floating-contact,
 .floating-cta .floating-phone,
 .floating-cta .floating-social{
  height:54px!important;
  min-height:54px!important;
 }
 .floating-cta .floating-social img{
  width:35px!important;
  height:35px!important;
  max-width:35px!important;
 }
 .back-top{bottom:calc(66px + env(safe-area-inset-bottom))!important}
 body{padding-bottom:calc(54px + env(safe-area-inset-bottom))!important}
}


/* =========================================================
 * 2026-08-05 モバイル共通スクロール・タイトルブロック最終保護
 * ========================================================= */
@media(max-width:900px){
 html{
  min-height:100%!important;
  height:auto!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  -webkit-overflow-scrolling:touch
 }
 body:not(.simulator-modal-open):not(.contact-modal-open):not(.blog-lightbox-open):not(.editor-modal-open){
  min-height:100%!important;
  height:auto!important;
  max-height:none!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  touch-action:pan-y pinch-zoom!important;
  -webkit-overflow-scrolling:touch
 }
 body>main,
 .child-main,.works-main,.contact-page-main,.simulator-page-main{
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
  overflow-y:visible!important
 }
 .staff-hero,.works-hero{
  max-height:310px
 }
}


/* =========================================================
 * 2026-08-05 iPhone縦スクロール最終統一
 * html/bodyのoverflow-y:autoによる二重スクロールを廃止。
 * ========================================================= */
@media(max-width:900px){
 html{
  position:static!important;
  min-height:100%!important;
  height:auto!important;
  overflow-x:clip!important;
  overflow-y:visible!important;
  overscroll-behavior-y:auto!important;
  touch-action:auto!important
 }
 body:not(.simulator-modal-open):not(.contact-modal-open):not(.blog-lightbox-open):not(.editor-modal-open):not(.other-modal-open){
  position:static!important;
  min-height:100%!important;
  height:auto!important;
  max-height:none!important;
  overflow-x:clip!important;
  overflow-y:visible!important;
  overscroll-behavior-y:auto!important;
  touch-action:auto!important;
  -webkit-overflow-scrolling:auto!important
 }
 body.page-ready>*:not(.loading):not(script),
 html.global-page-ready body>*:not(#globalPageLoading):not(script):not(style){
  animation:none!important;
  opacity:1!important;
  transform:none!important
 }
 body>main,
 body>main>section,
 .child-main,.works-main,.contact-page-main,.sitemap-main,
 .page-detail-builder-output,.detail-block,.contact-form-section,.contact-shell,.contact-form-card{
  position:relative;
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
  overflow-y:visible!important;
  touch-action:auto!important;
  -webkit-overflow-scrolling:auto!important
 }
 .child-hero,.works-hero,.contact-page-hero,.sitemap-hero,
 .child-hero-bg,.works-hero-bg{
  touch-action:auto!important
 }
}
