:root{
  --main:#1c3e85;
  --main-dark:#122d66;
  --navy:#20363d;
  --aqua:#e8f7f7;
  --soft:#f5f8f8;
  --text:#66767c;
  --line:#dfe8e8;
  --white:#fff;
  --radius:14px;
  --shadow:0 8px 30px rgba(32,54,61,.08);
  --container:1320px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--navy);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;line-height:1.75;background:#fff}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}.container{width:min(calc(100% - 40px),var(--container));margin-inline:auto}.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(8px)}.site-header__inner{height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px}.site-brand{display:flex;align-items:center;gap:7px;font-weight:800;font-size:1.45rem;color:var(--navy)}.site-brand__mark{color:var(--main);font-size:1.7rem}.primary-nav{display:flex;align-items:center;gap:28px}.primary-nav__list{display:flex;gap:24px;list-style:none;margin:0;padding:0;font-size:.94rem;font-weight:700}.primary-nav__list a:hover{color:var(--main)}.menu-toggle{display:none;border:0;background:none;color:var(--navy);font-weight:800}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 24px;border-radius:999px;font-weight:800;transition:.2s}.button--primary{background:var(--main);color:#fff}.button--primary:hover{background:var(--main-dark)}.button--outline{border:1px solid var(--main);color:var(--main);background:#fff}.button--outline:hover{background:var(--aqua)}.button--light{background:#fff;color:var(--main-dark)}.hero{min-height:650px;padding:42px 0 78px;background:linear-gradient(135deg,#fff 0%,#fff 54%,var(--aqua) 100%);display:flex;align-items:flex-start}.hero__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);align-items:center;gap:64px}.hero__copy{min-width:0}.hero h1{font-size:clamp(3.5rem,4vw,4.35rem);line-height:1.26;margin:0 0 28px;letter-spacing:.01em;font-weight:800}.hero h1 span{display:block;white-space:nowrap}.hero__copy>p{font-size:1.08rem;line-height:1.9;color:var(--text);max-width:590px;margin:0}.hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.hero__visual{min-height:370px;display:flex;align-items:center;justify-content:center;padding:12px 8px}.hero__visual img{max-width:100%;max-height:560px;width:auto;height:auto;object-fit:contain;display:block}.hero__visual--sp{display:none}.placeholder-visual{min-height:260px;background:linear-gradient(135deg,#edf5f5,#d9eeee);border:1px dashed #aacaca;border-radius:var(--radius);display:grid;place-items:center;text-align:center;color:#6d9191;font-weight:700}.section{padding:88px 0}.section--muted{background:var(--soft)}.section--aqua{background:var(--aqua)}.section-heading{text-align:center;max-width:840px;margin:0 auto 42px}.section-heading h2{font-size:clamp(1.9rem,3vw,2.7rem);line-height:1.35;margin:0 0 12px}.section-heading p{margin:0;color:var(--text)}.section-heading--inline{max-width:none;text-align:left;display:flex;align-items:end;justify-content:space-between;gap:20px}.cards{display:grid;gap:24px}.cards--3{grid-template-columns:repeat(3,1fr)}.service-card,.work-card,.compact-cards>article{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}.service-card{position:relative;overflow:visible;transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}.service-card:hover{transform:translateY(-6px);box-shadow:0 16px 40px rgba(32,54,61,.12);border-color:rgba(0,170,170,.28)}.service-card__image{position:relative;height:230px;border:0;border-radius:18px 18px 0 0;overflow:hidden;background:var(--aqua)}.service-card__image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}.service-card:hover .service-card__image img{transform:scale(1.035)}.service-card__image:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,170,170,.03),rgba(0,170,170,0));pointer-events:none}.service-card__num{position:absolute;z-index:4;left:-18px;top:-24px;font-size:4.65rem;line-height:1;font-weight:700;letter-spacing:-.06em;color:var(--main);text-shadow:none}.service-card__body,.work-card__body{padding:28px 28px 26px}.compact-cards>article{padding:0}.compact-card{overflow:hidden;transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}.compact-card:hover{transform:translateY(-5px);box-shadow:0 14px 36px rgba(32,54,61,.10);border-color:rgba(0,170,170,.24)}.compact-card__image{height:190px;overflow:hidden;background:#fff;display:flex;align-items:center;justify-content:center;padding:10px}.compact-card__image img{width:100%;height:100%;object-fit:contain;display:block;transition:transform .35s ease}.compact-card:hover .compact-card__image img{transform:scale(1.02)}.compact-card__body{padding:26px 28px 28px}.compact-card__body .text-link{display:block;margin-top:18px}.service-card__body{display:flex;flex-direction:column;min-height:212px;gap:0}.service-card h3{margin:0 0 14px;font-size:clamp(1.5rem,1.8vw,1.82rem);line-height:1.3}.work-card h3,.compact-cards h3{margin:.3rem 0 .7rem;font-size:1.3rem}.service-card p,.work-card p,.compact-cards p{color:var(--text);font-size:.95rem}.service-card p{font-size:1rem;line-height:1.85;margin:0}.service-card__link{margin-top:auto;padding-top:16px;display:flex;align-items:center;justify-content:flex-end;gap:12px;color:var(--main-dark);font-weight:800}.service-card__arrow{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--main);color:#fff;font-size:1.2rem;line-height:1;transition:transform .2s ease,background .2s ease}.service-card__link:hover .service-card__arrow{transform:translateX(4px);background:var(--main-dark)}.text-link{color:var(--main-dark);font-weight:800}.strengths-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line)}.strengths-grid article{background:#fff;padding:30px 24px;text-align:center}.strengths-icon{width:92px;height:92px;margin:0 auto 18px;display:flex;align-items:center;justify-content:center}.strengths-icon img{width:100%;height:100%;object-fit:contain;display:block}.icon-badge{width:54px;height:54px;border-radius:50%;background:var(--aqua);color:var(--main-dark);display:inline-grid;place-items:center;font-weight:900;margin-bottom:14px}.strengths-grid h3{font-size:1.08rem;line-height:1.5}.strengths-grid p{color:var(--text);font-size:.92rem}.work-card__image img{aspect-ratio:16/10;object-fit:cover;width:100%}.work-card .placeholder-visual{min-height:190px;border:0;border-radius:0}.tag{display:inline-block;padding:3px 9px;border-radius:999px;background:var(--main);color:#fff;font-size:.76rem;font-weight:800}.feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}.feature-card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);display:grid;grid-template-columns:.9fr 1.1fr}.feature-card__image{min-height:100%;border:0;border-radius:0;overflow:hidden;background:var(--soft)}.feature-card__image img{width:100%;height:100%;min-height:290px;object-fit:cover;display:block;transition:transform .35s ease}.feature-card:hover .feature-card__image img{transform:scale(1.025)}.feature-card>div:last-child{padding:30px}.feature-card h3{font-size:1.5rem;margin:0 0 8px}.feature-card h4{font-size:1.08rem;margin:0 0 14px}.feature-card ul{padding-left:1.2em;color:var(--text)}.compact-cards>article{padding:0}.compact-card{overflow:hidden;transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}.compact-card:hover{transform:translateY(-5px);box-shadow:0 14px 36px rgba(32,54,61,.10);border-color:rgba(0,170,170,.24)}.compact-card__image{height:190px;overflow:hidden;background:#fff;display:flex;align-items:center;justify-content:center;padding:10px}.compact-card__image img{width:100%;height:100%;object-fit:contain;display:block;transition:transform .35s ease}.compact-card:hover .compact-card__image img{transform:scale(1.02)}.compact-card__body{padding:26px 28px 28px}.compact-card__body .text-link{display:block;margin-top:18px}.news-list{border-top:1px solid var(--line)}.news-row{display:grid;grid-template-columns:120px 110px 1fr 30px;gap:16px;align-items:center;padding:18px 6px;border-bottom:1px solid var(--line)}.news-row time{color:var(--text);font-size:.9rem}.contact-cta{position:relative;background:linear-gradient(135deg,#1c3e85 0%,#234a92 58%,#173775 100%);padding:72px 0 78px;overflow:hidden}.contact-cta:before{content:"";position:absolute;width:420px;height:420px;border:1px solid rgba(255,255,255,.13);border-radius:50%;right:-130px;top:-230px}.contact-cta:after{content:"";position:absolute;width:260px;height:260px;border:1px solid rgba(255,255,255,.1);border-radius:50%;left:-120px;bottom:-170px}.contact-cta .container{position:relative;z-index:1}.contact-cta__card{background:#fff;color:var(--navy);border-radius:26px;padding:42px 46px 0;box-shadow:0 22px 56px rgba(15,69,72,.18);overflow:hidden}.contact-cta__top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:42px;align-items:center;padding-bottom:34px}.contact-cta__copy{max-width:760px}.contact-cta h2{margin:0 0 12px;font-size:clamp(1.9rem,2.6vw,2.65rem);line-height:1.35}.contact-cta p{margin:0;color:var(--text);font-size:1rem}.contact-cta__button{display:inline-flex;align-items:center;justify-content:center;gap:16px;min-height:64px;padding:0 18px 0 28px;border-radius:999px;background:var(--main);color:#fff;font-weight:800;white-space:nowrap;box-shadow:0 10px 24px rgba(0,170,170,.22);transition:transform .22s ease,background .22s ease,box-shadow .22s ease}.contact-cta__button:hover{background:var(--main-dark);transform:translateY(-2px);box-shadow:0 14px 30px rgba(0,111,115,.24)}.contact-cta__button-arrow{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--main-dark);font-size:1.25rem;line-height:1;transition:transform .22s ease}.contact-cta__button:hover .contact-cta__button-arrow{transform:translateX(3px)}.contact-cta__topics{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-inline:-46px}.contact-cta__topic{display:flex;align-items:center;gap:12px;padding:22px 28px;font-weight:700;font-size:.94rem}.contact-cta__topic+.contact-cta__topic{border-left:1px solid var(--line)}.contact-cta__topic-icon{flex:0 0 42px;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--aqua);color:var(--main-dark)}.contact-cta__topic-icon svg{width:22px;height:22px}.site-footer{background:var(--navy);color:#dfe9e9;padding:58px 0 20px}.site-footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px}.site-footer h3{color:#fff;font-size:1rem;margin-top:0}.site-footer ul{list-style:none;padding:0;margin:0}.site-footer li{margin:.4rem 0}.site-footer a:hover{color:#fff}.site-footer__logo{font-size:1.4rem;font-weight:900;color:#fff}.site-footer__address{font-size:.9rem}.site-footer__bottom{border-top:1px solid rgba(255,255,255,.14);margin-top:34px;padding-top:18px;display:flex;justify-content:space-between;gap:20px;font-size:.85rem}.page-hero{padding:60px 0;background:var(--soft)}.content-narrow{max-width:860px}.sp-fixed-contact{display:none}.post-list-item{padding:24px 0;border-bottom:1px solid var(--line)}

/* FV Animation Ver.1 */
@keyframes adstarFadeUp{
  from{opacity:0;transform:translateY(22px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes adstarVisualIn{
  from{opacity:0;transform:scale(.97) translateY(10px)}
  to{opacity:1;transform:scale(1) translateY(0)}
}
@keyframes adstarFloat{
  0%,100%{transform:translate3d(0,0,0) rotate(0deg)}
  25%{transform:translate3d(6px,-8px,0) rotate(.35deg)}
  50%{transform:translate3d(0,-18px,0) rotate(0deg)}
  75%{transform:translate3d(-6px,-8px,0) rotate(-.35deg)}
}
.hero-reveal{opacity:0;animation:adstarFadeUp .8s cubic-bezier(.2,.65,.3,1) forwards}
.hero-reveal--1{animation-delay:.08s}
.hero-reveal--2{animation-delay:.22s}
.hero-reveal--3{animation-delay:.42s}
.hero-reveal--4{animation-delay:.58s}
.hero-visual-animate{opacity:0;animation:adstarVisualIn .95s cubic-bezier(.2,.65,.3,1) .28s forwards}
.hero-visual-animate img{animation:adstarFloat 7.2s ease-in-out 1.35s infinite;will-change:transform}
@media (max-width:900px){
  .hero-visual-animate img{animation:none}
}
@media (prefers-reduced-motion:reduce){
  .hero-reveal,.hero-visual-animate,.hero-visual-animate img{
    animation:none!important;
    opacity:1!important;
    transform:none!important;
  }
}

@media (max-width:1100px){.hero{min-height:610px;padding:38px 0 68px;align-items:flex-start}.hero h1{font-size:3.55rem}.hero__grid{gap:42px}}
@media (max-width:900px){.menu-toggle{display:block}.primary-nav{display:none;position:fixed;inset:78px 0 0;background:#fff;padding:26px 20px;flex-direction:column;align-items:stretch}.primary-nav.is-open{display:flex}.primary-nav__list{flex-direction:column;gap:0}.primary-nav__list li{border-bottom:1px solid var(--line)}.primary-nav__list a{display:block;padding:16px 0}.hero{min-height:0;padding:54px 0 62px;display:block}.hero__grid{grid-template-columns:1fr;gap:30px}.hero__copy{display:flex;flex-direction:column}.hero__copy h1{order:1}.hero__visual--sp{order:2}.hero__copy>p{order:3}.hero__actions{order:4}.hero h1 span{white-space:normal}.hero__visual--pc{display:none}.hero__visual--sp{display:flex;min-height:0;padding:0;margin:18px 0 22px}.hero__visual--sp img{max-height:none;width:100%}.cards--3,.feature-grid{grid-template-columns:1fr}.strengths-grid{grid-template-columns:1fr 1fr}.feature-card{grid-template-columns:1fr}.feature-card__image{min-height:220px}.feature-card__image img{min-height:220px;max-height:320px}.site-footer__grid{grid-template-columns:1fr 1fr}.contact-cta__top{grid-template-columns:1fr;gap:24px;align-items:flex-start}.contact-cta__button{justify-self:start}.sp-fixed-contact{display:block;position:fixed;z-index:90;left:14px;right:14px;bottom:12px;background:var(--main);color:#fff;text-align:center;padding:13px;border-radius:999px;font-weight:900;box-shadow:0 10px 30px rgba(0,0,0,.18);opacity:0;visibility:hidden;transform:translateY(18px);pointer-events:none;transition:opacity .28s ease,transform .28s ease,visibility .28s ease}.sp-fixed-contact.is-visible{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}body{padding-bottom:72px}}
@media (max-width:620px){.service-card__image{height:190px}.service-card__num{left:-6px;top:-16px;font-size:3.25rem;font-weight:700;text-shadow:none}.service-card__body{min-height:0;padding:22px 22px 20px}.service-card h3{font-size:1.5rem}.service-card__link{padding-top:12px}.service-card__arrow{width:38px;height:38px}.container{width:min(calc(100% - 28px),var(--container))}.site-header__inner{height:68px}.primary-nav{inset:68px 0 0}.hero h1{font-size:clamp(2.25rem,10vw,2.85rem);line-height:1.35}.hero__actions{display:grid}.hero__actions .button{width:100%}.section{padding:64px 0}.section-heading{text-align:left;margin-bottom:28px}.section-heading--inline{align-items:flex-start;flex-direction:column}.strengths-grid{grid-template-columns:1fr;background:transparent;gap:0}.strengths-grid article{display:grid;grid-template-columns:58px 1fr;text-align:left;column-gap:14px;border-bottom:1px solid var(--line);padding:22px 0}.strengths-grid article .icon-badge{grid-row:1/3}.strengths-grid article .strengths-icon{grid-row:1/3;width:54px;height:54px;margin:0}.strengths-grid h3{margin:2px 0 4px}.strengths-grid p{margin:0}.news-row{grid-template-columns:1fr auto;gap:8px 12px}.news-row time{grid-column:1}.news-row .tag{grid-column:2;grid-row:1}.news-row strong{grid-column:1/3}.news-row>span:last-child{display:none}.site-footer__grid{grid-template-columns:1fr}.site-footer__grid>div:not(:first-child){border-top:1px solid rgba(255,255,255,.12);padding-top:18px}.site-footer__bottom{flex-direction:column}.contact-cta{padding:48px 0 54px}.contact-cta__card{padding:28px 22px 0;border-radius:20px}.contact-cta__top{padding-bottom:24px}.contact-cta h2{font-size:1.65rem}.contact-cta p{font-size:.95rem}.contact-cta__button{width:100%;min-height:58px;padding:0 14px 0 22px}.contact-cta__topics{grid-template-columns:1fr;margin-inline:-22px}.contact-cta__topic{padding:16px 22px}.contact-cta__topic+.contact-cta__topic{border-left:0;border-top:1px solid var(--line)}.contact-cta__topic-icon{width:38px;height:38px;flex-basis:38px}}

@media (max-width:620px){.hero__visual--sp{margin:14px 0 18px}.hero__visual--sp img{width:100%;max-width:430px;margin-inline:auto}}

@media (max-width:620px){.compact-card__image{height:180px}.compact-card__body{padding:22px}.compact-card__body .text-link{margin-top:14px}}

/* =========================================================
   ADSTAR Subpage Component Library Ver.0.3.1
   ========================================================= */
:root{--subpage-container:1080px}
.subpage-hero .container,
.html-page-content .container{width:min(calc(100% - 40px),var(--subpage-container));margin-inline:auto}
.html-page-content .content-narrow{max-width:none}

.subpage-hero{padding:38px 0 42px;background:linear-gradient(135deg,#fff 0%,#f7fbfb 58%,var(--aqua) 100%);border-bottom:1px solid var(--line)}
.subpage-hero__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:42px;align-items:center}.subpage-hero.has-image .subpage-hero__grid{grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr)}
.subpage-hero h1{font-size:clamp(2.3rem,4vw,4rem);line-height:1.25;margin:16px 0 18px;letter-spacing:.01em}.subpage-hero__lead{max-width:760px;margin:0;color:var(--text);font-size:1.08rem;line-height:1.9}.subpage-hero__media{border-radius:22px;overflow:hidden;background:#fff;box-shadow:var(--shadow)}.subpage-hero__media img{width:100%;aspect-ratio:16/10;object-fit:cover}.ad-breadcrumb{display:flex;flex-wrap:wrap;gap:7px;align-items:center;font-size:.82rem;color:#74868b}.ad-breadcrumb a{color:var(--main-dark)}.ad-breadcrumb__sep{opacity:.45}.html-page-content{overflow:hidden}.ad-sub-section{padding:84px 0}.ad-sub-section--soft{background:var(--soft)}.ad-sub-section--aqua{background:var(--aqua)}.ad-sub-section--dark{background:var(--navy);color:#fff}.ad-section-head{max-width:850px;margin:0 auto 40px;text-align:center}.ad-section-head h2{font-size:clamp(1.9rem,3vw,2.65rem);line-height:1.35;margin:6px 0 12px}.ad-section-head p{margin:0;color:var(--text)}.ad-sub-section--dark .ad-section-head p{color:#d5e1e3}.ad-kicker{display:inline-block;color:var(--main);font-size:.8rem;font-weight:800;letter-spacing:.16em}.ad-lead-box{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:64px;align-items:start;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none}.ad-lead-box h2,.ad-lead-box h3{margin:0;font-size:clamp(2.05rem,3vw,3rem);line-height:1.28;letter-spacing:.01em;font-weight:800}.ad-lead-box p{margin:3px 0 0;color:var(--text);font-size:1rem;line-height:2;max-width:100%}.ad-grid{display:grid;gap:24px}.ad-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.ad-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.ad-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}.ad-card{position:relative;padding:30px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 5px 20px rgba(32,54,61,.04)}.ad-card h3{margin:6px 0 10px;font-size:1.25rem;line-height:1.45}.ad-card p{margin:0;color:var(--text)}.ad-card__num{display:inline-block;color:var(--main);font-size:1.05rem;font-weight:800}.ad-media-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:54px;align-items:center}.ad-media-split--reverse .ad-media-split__media{order:2}.ad-media-split__media{overflow:hidden;border-radius:20px;background:#fff;box-shadow:var(--shadow)}.ad-media-split__media img{width:100%;aspect-ratio:16/10;object-fit:cover}.ad-media-split__body h2,.ad-media-split__body h3{font-size:clamp(1.65rem,2.5vw,2.4rem);line-height:1.4;margin:6px 0 16px}.ad-media-split__body p{color:var(--text)}.ad-image-grid{display:grid;gap:26px}.ad-image-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.ad-image-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.ad-image-item{margin:0;overflow:hidden;border-radius:18px;background:#fff;box-shadow:0 8px 28px rgba(32,54,61,.06)}.ad-image-item img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;transition:transform .35s ease}.ad-image-item:hover img{transform:scale(1.025)}.ad-image-item figcaption{padding:14px 16px;color:var(--text);font-size:.9rem;line-height:1.6}.ad-image-item:not(:has(figcaption)){box-shadow:none}.ad-image-grid--2 .ad-image-item img{aspect-ratio:16/10}.ad-image-grid--3 .ad-image-item img{aspect-ratio:4/3}.ad-check-list{list-style:none;padding:0;margin:24px 0;display:grid;gap:10px}.ad-check-list li{position:relative;padding-left:30px}.ad-check-list li:before{content:'✓';position:absolute;left:0;top:.08em;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--main);color:#fff;font-size:.72rem;font-weight:900}.ad-button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:50px;padding:0 24px;border-radius:999px;font-weight:800;transition:.2s}.ad-button--primary{background:var(--main);color:#fff}.ad-button--primary:hover{background:var(--main-dark);transform:translateY(-2px)}.ad-button--outline{border:1px solid var(--main);color:var(--main);background:#fff}.ad-flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.ad-flow li{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:270px;padding:20px 24px 24px;background:#f7f8fa;border:0;border-radius:14px;text-align:center;box-shadow:0 6px 18px rgba(32,54,61,.04)}.ad-flow li>span{order:1;display:block;width:auto;height:auto;margin:0 0 12px;background:transparent;border-radius:0;color:var(--navy);font-size:1.05rem;font-weight:800;line-height:1;letter-spacing:.02em}.ad-flow li>span:after{content:none!important}.ad-flow li:before{content:'';order:2;width:84px;height:84px;margin:0 0 14px;border-radius:50%;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:58px 58px}.ad-flow li:nth-child(1):before{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2064%2064%22%20fill%3D%22none%22%20stroke%3D%22%23173640%22%20stroke-width%3D%223.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%228%22%20y%3D%2214%22%20width%3D%2238%22%20height%3D%2228%22%20rx%3D%223%22%2F%3E%3Cpath%20d%3D%22M10%2018l17%2013%2017-13%22%2F%3E%3Ccircle%20cx%3D%2246%22%20cy%3D%2242%22%20r%3D%2210%22%20fill%3D%22%2300aaaa%22%20stroke%3D%22%23173640%22%2F%3E%3Cpath%20d%3D%22M42%2042h.1M46%2042h.1M50%2042h.1%22%20stroke%3D%22%23fff%22%20stroke-width%3D%223.4%22%2F%3E%3C%2Fsvg%3E")}.ad-flow li:nth-child(2):before{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2064%2064%22%20fill%3D%22none%22%20stroke%3D%22%23173640%22%20stroke-width%3D%223.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%2210%22%20y%3D%2210%22%20width%3D%2234%22%20height%3D%2242%22%20rx%3D%223%22%2F%3E%3Cpath%20d%3D%22M18%2020h18M18%2028h12M18%2036h10%22%2F%3E%3Ccircle%20cx%3D%2243%22%20cy%3D%2240%22%20r%3D%2210%22%20fill%3D%22%23dff8f7%22%2F%3E%3Cpath%20d%3D%22M50%2047l8%208%22%2F%3E%3Ccircle%20cx%3D%2243%22%20cy%3D%2240%22%20r%3D%227%22%2F%3E%3C%2Fsvg%3E")}.ad-flow li:nth-child(3):before{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2064%2064%22%20fill%3D%22none%22%20stroke%3D%22%23173640%22%20stroke-width%3D%223.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%229%22%20y%3D%2210%22%20width%3D%2234%22%20height%3D%2243%22%20rx%3D%223%22%2F%3E%3Cpath%20d%3D%22M17%2020h18M17%2028h14%22%2F%3E%3Cpath%20d%3D%22M36%2046l15-15%206%206-15%2015-9%203%203-9z%22%20fill%3D%22%2300aaaa%22%2F%3E%3Cpath%20d%3D%22M48%2034l6%206%22%2F%3E%3C%2Fsvg%3E")}.ad-flow li:nth-child(4):before{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2064%2064%22%20fill%3D%22none%22%20stroke%3D%22%23173640%22%20stroke-width%3D%223.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M10%2024l12-7%2012%207-12%207-12-7zM10%2024v14l12%207%2012-7V24%22%2F%3E%3Cpath%20d%3D%22M30%2015l12-7%2012%207-12%207-12-7zM42%2022v12%22%2F%3E%3Ccircle%20cx%3D%2248%22%20cy%3D%2243%22%20r%3D%229%22%20fill%3D%22%2300aaaa%22%2F%3E%3Cpath%20d%3D%22M48%2038v10M43%2043h10%22%20stroke%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E")}.ad-flow li:nth-child(5):before{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2064%2064%22%20fill%3D%22none%22%20stroke%3D%22%23173640%22%20stroke-width%3D%223.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2232%22%20cy%3D%2225%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22M18%2052c1-10%206-15%2014-15s13%205%2014%2015%22%2F%3E%3Cpath%20d%3D%22M20%2023c1-10%206-16%2012-16s11%206%2012%2016H20z%22%20fill%3D%22%23dff8f7%22%2F%3E%3Cpath%20d%3D%22M16%2023h32%22%2F%3E%3C%2Fsvg%3E")}.ad-flow li:nth-child(6):before{background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2064%2064%22%20fill%3D%22none%22%20stroke%3D%22%23173640%22%20stroke-width%3D%223.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%228%22%20y%3D%2210%22%20width%3D%2242%22%20height%3D%2230%22%20rx%3D%223%22%2F%3E%3Cpath%20d%3D%22M20%2050h18M29%2040v10%22%2F%3E%3Cpath%20d%3D%22M17%2031v-6M24%2031V20M31%2031v-9M38%2031V16%22%2F%3E%3Ccircle%20cx%3D%2249%22%20cy%3D%2244%22%20r%3D%2210%22%20fill%3D%22%2300aaaa%22%2F%3E%3Cpath%20d%3D%22M49%2038v6M44%2041a6%206%200%201%200%2010%200%22%20stroke%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E")}.ad-flow li>div{order:3}.ad-flow h3{font-size:1.2rem;line-height:1.45;margin:0 0 9px;color:var(--navy)}.ad-flow p{margin:0;color:var(--text);font-size:.95rem;line-height:1.8}.ad-sub-section:has(.ad-flow) .ad-section-head{text-align:center}.ad-faq{display:grid;gap:12px}.ad-faq details{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.ad-faq summary{position:relative;cursor:pointer;list-style:none;padding:20px 56px 20px 24px;font-weight:800}.ad-faq summary::-webkit-details-marker{display:none}.ad-faq summary:after{content:'+';position:absolute;right:22px;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--aqua);color:var(--main-dark);font-size:1.15rem}.ad-faq details[open] summary:after{content:'−'}.ad-faq details>div{padding:0 24px 22px;color:var(--text)}.ad-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px}.ad-table-wrap table{width:100%;border-collapse:collapse;background:#fff}.ad-table-wrap th,.ad-table-wrap td{padding:18px 20px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.ad-table-wrap th{width:30%;background:var(--soft);color:var(--navy)}.ad-table-wrap tr:last-child th,.ad-table-wrap tr:last-child td{border-bottom:0}.ad-note{padding:24px 28px;border-radius:14px}.ad-note p:last-child{margin-bottom:0}.ad-note--info{background:var(--aqua);border:1px solid #c5e6e6}.parts-sample-page .ad-sub-section:first-child{padding-top:54px}
@media (max-width:900px){.subpage-hero{padding:42px 0 48px}.subpage-hero.has-image .subpage-hero__grid,.ad-media-split{grid-template-columns:1fr}.ad-image-grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}.ad-media-split--reverse .ad-media-split__media{order:0}.ad-grid--4,.ad-grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}.ad-flow{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.ad-image-grid--2,.ad-image-grid--3{grid-template-columns:1fr}.ad-image-grid{gap:18px}.ad-image-item figcaption{padding:12px 14px}.subpage-hero{padding:30px 0 38px}.subpage-hero h1{font-size:2.25rem;margin-top:12px}.subpage-hero__lead{font-size:.98rem}.ad-sub-section{padding:58px 0}.ad-section-head{text-align:left;margin-bottom:28px}.ad-grid--2,.ad-grid--3,.ad-grid--4{grid-template-columns:1fr}.ad-card{padding:24px}.ad-lead-box{grid-template-columns:1fr;gap:18px;padding:0}.ad-lead-box h2,.ad-lead-box h3{font-size:clamp(1.7rem,7vw,2.15rem);line-height:1.32}.ad-lead-box p{font-size:.98rem;line-height:1.9;margin:0}.ad-media-split{gap:28px}.ad-table-wrap th,.ad-table-wrap td{padding:14px 15px}.ad-table-wrap th{width:38%}.ad-sub-section:has(.ad-flow) .ad-section-head{text-align:center}.ad-flow{grid-template-columns:1fr;gap:8px}.ad-flow li{display:grid;grid-template-columns:72px minmax(0,1fr);grid-template-areas:'step content' 'icon content';column-gap:14px;row-gap:1px;align-items:center;min-height:0;padding:13px 16px;text-align:left;border-radius:12px}.ad-flow li>span{grid-area:step;align-self:end;margin:0 0 2px 2px}.ad-flow li:before{grid-area:icon;align-self:start;width:58px;height:58px;margin:0;background-size:44px 44px}.ad-flow li>div{grid-area:content;align-self:center}.ad-flow h3{font-size:1rem;margin:0 0 4px;line-height:1.4}.ad-flow p{font-size:.84rem;line-height:1.6}.ad-flow li>span{font-size:.82rem;font-weight:800}.ad-flow li>span:after{content:none!important}}

@media (max-width:620px){
  .subpage-hero .container,
  .html-page-content .container{width:min(calc(100% - 28px),var(--subpage-container))}
}


/* Force subpage content width Ver.0.3.2 */
.html-page-content,
.parts-sample-page{width:100%;max-width:none}
.subpage-hero .container,
.html-page-content .container,
.parts-sample-page .container,
.html-page-content .content-narrow,
.parts-sample-page .content-narrow{
  width:calc(100% - 40px)!important;
  max-width:1080px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.parts-sample-page .ad-section-head,
.html-page-content .ad-section-head{max-width:1080px}
@media (max-width:620px){
  .subpage-hero .container,
  .html-page-content .container,
  .parts-sample-page .container,
  .html-page-content .content-narrow,
  .parts-sample-page .content-narrow{
    width:calc(100% - 28px)!important;
    max-width:1080px!important;
  }
}

/* Auto full-width HTML component pages Ver.0.3.3 */
.page-hero--html .container{
  width:calc(100% - 40px)!important;
  max-width:1080px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.html-page-content--auto{width:100%;max-width:none;overflow:hidden}
.html-page-content--auto .container,
.html-page-content--auto .content-narrow{
  width:calc(100% - 40px)!important;
  max-width:1080px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
@media (max-width:620px){
  .page-hero--html .container,
  .html-page-content--auto .container,
  .html-page-content--auto .content-narrow{
    width:calc(100% - 28px)!important;
  }
}


/* =========================================================
 * Subpage Hero Option A - Text x Image Ver.0.3.5
 * ========================================================= */
.subpage-hero{
  position:relative;
  overflow:hidden;
  padding:76px 0 82px;
  background:
    radial-gradient(circle at 86% 18%,rgba(0,170,170,.12),transparent 28%),
    linear-gradient(135deg,#fff 0%,#f8fbfb 54%,#e8f7f7 100%);
  border-bottom:1px solid var(--line);
}
.subpage-hero:before{
  content:"";
  position:absolute;
  width:310px;
  height:310px;
  border:1px solid rgba(0,170,170,.12);
  border-radius:50%;
  right:-110px;
  top:-150px;
}
.subpage-hero .container{position:relative;z-index:1;max-width:1080px!important}
.subpage-hero__grid{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(280px,.82fr);gap:48px;align-items:center}
.subpage-hero__copy{min-width:0}
.subpage-hero__kicker{display:inline-block;margin-top:24px;color:var(--main);font-size:.78rem;font-weight:900;letter-spacing:.17em}
.subpage-hero h1{font-size:clamp(2.65rem,4.2vw,4.5rem);line-height:1.18;margin:8px 0 20px;letter-spacing:.005em}
.subpage-hero__lead{max-width:610px;margin:0;color:var(--text);font-size:1.08rem;line-height:1.9}
.subpage-hero__tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.subpage-hero__tags span{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border:1px solid rgba(0,170,170,.24);border-radius:999px;background:rgba(255,255,255,.75);color:var(--main-dark);font-size:.86rem;font-weight:800}
.subpage-hero__media{position:relative;overflow:visible;background:transparent;box-shadow:none;border-radius:0}
.subpage-hero__media:before{content:"";position:absolute;left:-18px;bottom:-18px;width:78%;height:80%;border-radius:26px;background:rgba(0,170,170,.12);z-index:-1}
.subpage-hero__media img,.subpage-hero__img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:24px;box-shadow:0 18px 42px rgba(32,54,61,.14);display:block}
.subpage-hero__media:has(.subpage-hero__img--common){display:flex;align-items:center;justify-content:flex-end;min-height:0}
.subpage-hero__media:has(.subpage-hero__img--common):before{display:none}
.subpage-hero__img--common{width:min(100%,280px)!important;aspect-ratio:auto!important;object-fit:contain!important;border-radius:0!important;box-shadow:none!important;margin-left:auto}

.ad-breadcrumb{margin:0}

@media (max-width:900px){
  .subpage-hero{padding:36px 0 42px}
  .subpage-hero__grid{grid-template-columns:1fr;gap:24px}
  .subpage-hero__copy{order:1}
  .subpage-hero__media{order:2;max-width:720px}
  .subpage-hero__kicker{margin-top:18px}
  .subpage-hero h1{font-size:clamp(2.5rem,7vw,3.7rem)}
}
@media (max-width:620px){
  .subpage-hero{padding:28px 0 34px}
  .subpage-hero__grid{gap:18px}
  .subpage-hero h1{font-size:2.35rem;margin:7px 0 14px}
  .subpage-hero__lead{font-size:.98rem;line-height:1.8}
  .subpage-hero__tags{gap:8px;margin-top:20px}
  .subpage-hero__tags span{min-height:32px;padding:0 11px;font-size:.78rem}
  .subpage-hero__media:before{left:-8px;bottom:-9px;border-radius:18px}
  .subpage-hero__media img,.subpage-hero__img{border-radius:18px}
}

@media (max-width:900px){
  .subpage-hero__media:has(.subpage-hero__img--common){justify-content:center;min-height:0}
  .subpage-hero__img--common{width:min(100%,250px)!important;margin:0 auto}
}
@media (max-width:620px){
  .subpage-hero__img--common{width:min(78%,220px)!important}
}

/* Ver.0.3.9: SP common subpage hero illustration compact */
@media (max-width:620px){
  .subpage-hero__grid{gap:10px}
  .subpage-hero__media:has(.subpage-hero__img--common){margin-top:0;margin-bottom:-2px}
  .subpage-hero__img--common{width:min(58%,160px)!important;max-width:160px!important;margin:0 auto!important}
}

/* =========================================================
   WORKS / 施工・導入事例 Ver.0.4.0
========================================================= */
.works-hero,.works-detail-hero{padding:72px 0 76px;background:linear-gradient(135deg,#fff 0%,#fff 58%,var(--aqua) 100%);border-bottom:1px solid var(--line)}
.works-hero__kicker,.works-story__kicker{display:block;margin:22px 0 8px;color:var(--main);font-size:.76rem;font-weight:900;letter-spacing:.18em}
.works-hero h1,.works-detail-hero h1{margin:0;font-size:clamp(2.5rem,4.3vw,4rem);line-height:1.2;letter-spacing:.01em}
.works-hero>div>p{max-width:720px;margin:20px 0 0;color:var(--text);font-size:1.02rem;line-height:1.9}
.works-filter{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 38px}
.works-filter__item{display:inline-flex;align-items:center;min-height:42px;padding:0 18px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--text);font-weight:700;font-size:.9rem;transition:.2s}
.works-filter__item:hover,.works-filter__item.is-active{border-color:var(--main);background:var(--main);color:#fff}
.works-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.works-card{min-width:0;background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.works-card:hover{transform:translateY(-5px);border-color:rgba(0,170,170,.28);box-shadow:0 16px 38px rgba(32,54,61,.1)}
.works-card__link{display:flex;flex-direction:column;height:100%}
.works-card__image{position:relative;height:230px;overflow:hidden;background:var(--soft)}
.works-card__image img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.works-card:hover .works-card__image img{transform:scale(1.035)}
.works-card__image .placeholder-visual{height:100%;min-height:0;border:0;border-radius:0}
.works-card__category,.work-card__tag{position:absolute;left:18px;bottom:16px;display:inline-flex;align-items:center;min-height:30px;padding:0 11px;border-radius:999px;background:var(--main);color:#fff;font-size:.76rem;font-weight:800;box-shadow:0 4px 12px rgba(0,120,120,.18)}
.works-card__body{display:flex;flex-direction:column;flex:1;padding:26px 26px 24px}
.works-card__body h2,.works-card__body h3{margin:0 0 14px;font-size:1.35rem;line-height:1.45}
.works-card__meta{display:flex;flex-wrap:wrap;gap:8px 14px;margin:0 0 14px;padding:0}
.works-card__meta div{display:flex;gap:6px;font-size:.82rem;line-height:1.5}
.works-card__meta dt{color:var(--main-dark);font-weight:800}.works-card__meta dd{margin:0;color:var(--text)}
.works-card__excerpt{margin:0;color:var(--text);font-size:.92rem;line-height:1.8}
.works-card__more{display:flex;justify-content:flex-end;gap:8px;margin-top:auto;padding-top:18px;color:var(--main-dark);font-weight:800}
.works-empty{grid-column:1/-1;padding:72px 30px;text-align:center;border:1px dashed #b8cacc;border-radius:22px;background:var(--soft)}
.works-empty__icon{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 14px;border-radius:50%;background:#fff;color:var(--main);font-size:1.5rem;font-weight:900}.works-empty h2{margin:0 0 8px}.works-empty p{margin:0;color:var(--text)}
.works-archive .navigation.pagination{margin-top:44px}.works-archive .nav-links{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.works-archive .page-numbers{display:grid;place-items:center;min-width:42px;height:42px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:#fff;font-weight:700}.works-archive .page-numbers.current,.works-archive .page-numbers:hover{background:var(--main);border-color:var(--main);color:#fff}

.works-detail-hero__category{display:inline-flex;margin-top:16px;padding:5px 11px;border-radius:999px;background:var(--main);color:#fff;font-size:.78rem;font-weight:800}.works-detail-hero__category+.works-detail-hero__category{margin-left:6px}
.works-detail-hero h1{max-width:1000px;margin-top:14px;font-size:clamp(2.3rem,4vw,3.8rem)}
.works-detail-hero__lead{max-width:800px;margin:22px 0 0;color:var(--text);font-size:1.05rem;line-height:1.9}
.works-detail__main-image{margin:0 0 34px;border-radius:24px;overflow:hidden;background:var(--soft)}.works-detail__main-image img{width:100%;max-height:680px;object-fit:cover}
.works-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0 0 76px;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.works-overview__item{min-width:0;padding:20px 22px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}.works-overview dt{margin:0 0 7px;color:var(--main-dark);font-size:.78rem;font-weight:900}.works-overview dd{margin:0;color:var(--navy);font-weight:700;line-height:1.7}
.works-story{max-width:1080px;margin:0 auto 76px}.works-story__item{display:grid;grid-template-columns:110px minmax(0,1fr);gap:36px;padding:46px 0;border-top:1px solid var(--line)}.works-story__item:last-child{border-bottom:1px solid var(--line)}
.works-story__num{font-size:3.8rem;line-height:1;color:var(--main);font-weight:700;letter-spacing:-.05em}.works-story__kicker{margin:0 0 6px}.works-story h2{margin:0 0 14px;font-size:clamp(1.75rem,2.5vw,2.4rem);line-height:1.35}.works-story p{margin:0;color:var(--text);font-size:1rem;line-height:2}
.works-detail__content{max-width:900px;margin:0 auto 60px;color:var(--text)}.works-detail__content>*:first-child{margin-top:0}.works-detail__content h2{margin:48px 0 18px;color:var(--navy);font-size:1.7rem}.works-detail__content h3{margin:36px 0 14px;color:var(--navy)}.works-detail__content p{line-height:2}.works-detail__content img{border-radius:16px}
.works-detail__back{text-align:center;margin-top:20px}.works-related .section-heading{margin-bottom:34px}.works-grid--related{grid-template-columns:repeat(3,minmax(0,1fr))}

/* TOP Works card additions */
.work-card__image{position:relative}.work-card__meta{margin:0 0 8px!important;color:var(--main-dark)!important;font-size:.82rem!important;font-weight:700}

@media (max-width:900px){
  .works-grid,.works-grid--related{grid-template-columns:repeat(2,minmax(0,1fr))}
  .works-overview{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:620px){
  .works-hero,.works-detail-hero{padding:38px 0 44px}.works-hero__kicker{margin-top:16px}.works-hero h1,.works-detail-hero h1{font-size:2.25rem}.works-hero>div>p,.works-detail-hero__lead{font-size:.94rem;line-height:1.8}
  .works-filter{gap:7px;margin-bottom:26px}.works-filter__item{min-height:38px;padding:0 14px;font-size:.82rem}
  .works-grid,.works-grid--related{grid-template-columns:1fr;gap:18px}.works-card__image{height:210px}.works-card__body{padding:22px 21px 20px}.works-card__body h2,.works-card__body h3{font-size:1.2rem}
  .works-detail__main-image{margin-bottom:24px;border-radius:16px}.works-overview{grid-template-columns:1fr;margin-bottom:52px}.works-overview__item{padding:16px 18px}
  .works-story{margin-bottom:54px}.works-story__item{grid-template-columns:64px minmax(0,1fr);gap:18px;padding:32px 0}.works-story__num{font-size:2.55rem}.works-story h2{font-size:1.45rem}.works-story p{font-size:.94rem;line-height:1.85}
}

/* Ver.0.4.4 service-specific works list */
.works-service-nav{display:flex;justify-content:flex-end;margin:0 0 28px}.works-service-nav__back{font-weight:800;color:var(--main);text-decoration:none}.works-service-nav__back:hover{text-decoration:underline}.works-archive--service .works-empty{grid-column:1/-1}


/* =========================================================
   CONTACT / お問い合わせ Ver.0.5.0
========================================================= */
.contact-page{background:#fff}
.contact-page__container{max-width:960px!important}
.contact-page__heading{max-width:760px;margin:0 auto 46px;text-align:center}
.contact-page__heading .ad-kicker,.contact-complete .ad-kicker{display:block;margin:0 0 8px;color:var(--main);font-size:.78rem;font-weight:900;letter-spacing:.17em}
.contact-page__heading h2,.contact-complete h2{margin:0 0 14px;font-size:clamp(1.9rem,3vw,2.65rem);line-height:1.35}
.contact-page__heading p,.contact-complete>p{margin:0;color:var(--text);line-height:1.9}
.contact-form{border-top:1px solid var(--line)}
.contact-form__row{display:grid;grid-template-columns:230px minmax(0,1fr);gap:30px;padding:28px 0;border-bottom:1px solid var(--line)}
.contact-form__label{display:flex;align-items:flex-start;gap:10px;padding-top:12px;font-weight:800;color:var(--navy)}
.contact-badge{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:24px;padding:0 7px;border-radius:999px;background:var(--main);color:#fff;font-size:.7rem;font-weight:800;line-height:1}
.contact-badge--optional{background:#e8edef;color:#64777d}
.contact-form__field input,.contact-form__field select,.contact-form__field textarea{width:100%;border:1px solid #ccd8da;border-radius:10px;background:#fff;color:var(--navy);font:inherit;outline:none;transition:border-color .2s,box-shadow .2s,background .2s}
.contact-form__field input,.contact-form__field select{height:54px;padding:0 16px}
.contact-form__field textarea{min-height:190px;padding:15px 16px;resize:vertical;line-height:1.75}
.contact-form__field input::placeholder,.contact-form__field textarea::placeholder{color:#9aabad}
.contact-form__field input:focus,.contact-form__field select:focus,.contact-form__field textarea:focus{border-color:var(--main);box-shadow:0 0 0 3px rgba(0,170,170,.12)}
.contact-form__row.has-error .contact-form__field input,.contact-form__row.has-error .contact-form__field select,.contact-form__row.has-error .contact-form__field textarea{border-color:#c94141;background:#fffafa}
.contact-select-wrap{position:relative}
.contact-select-wrap:after{content:"";position:absolute;right:18px;top:50%;width:8px;height:8px;border-right:2px solid var(--main-dark);border-bottom:2px solid var(--main-dark);transform:translateY(-70%) rotate(45deg);pointer-events:none}
.contact-select-wrap select{appearance:none;padding-right:48px}
.contact-form__hint{margin:8px 0 0;color:var(--text);font-size:.84rem;line-height:1.6}
.contact-field-error{display:block;margin-top:7px;color:#b62d2d;font-size:.84rem;font-weight:700}
.contact-errors{margin:0 0 30px;padding:20px 24px;border:1px solid #efc4c4;border-radius:12px;background:#fff7f7;color:#8b2828}
.contact-errors strong{display:block;margin-bottom:6px}
.contact-errors ul{margin:0;padding-left:1.3em}
.contact-privacy{margin-top:32px;padding:24px 28px;border-radius:12px;background:var(--soft);text-align:center}
.contact-privacy label{display:inline-flex;align-items:center;gap:10px;font-weight:700}
.contact-privacy input{width:18px;height:18px;accent-color:var(--main)}
.contact-privacy a{color:var(--main-dark);text-decoration:underline;text-underline-offset:3px}
.contact-privacy.has-error{background:#fff7f7;border:1px solid #efc4c4}
.contact-form__actions,.contact-confirm-actions{display:flex;flex-direction:column;align-items:center;gap:16px;margin-top:34px;text-align:center}
.contact-form__actions p{margin:0;color:var(--text);font-size:.9rem}
.contact-submit-button{min-width:300px;min-height:58px;gap:18px;border:0;cursor:pointer;font-size:1rem}
.contact-submit-button span{font-size:1.25rem}
.contact-honeypot{position:absolute!important;left:-99999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.contact-confirm-card{overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#fff}
.contact-confirm-list{margin:0}
.contact-confirm-list>div{display:grid;grid-template-columns:220px minmax(0,1fr);border-bottom:1px solid var(--line)}
.contact-confirm-list>div:last-child{border-bottom:0}
.contact-confirm-list dt,.contact-confirm-list dd{margin:0;padding:20px 24px}
.contact-confirm-list dt{background:var(--soft);font-weight:800;color:var(--navy)}
.contact-confirm-list dd{color:var(--text);word-break:break-word}
.contact-confirm-list .is-message dd{white-space:normal}
.contact-confirm-actions{flex-direction:row;justify-content:center;flex-wrap:wrap}
.contact-confirm-actions .button{border-width:1px;cursor:pointer}
.contact-complete{max-width:760px;margin:0 auto;padding:54px 48px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(180deg,#fff 0%,#fbfefe 100%);text-align:center;box-shadow:0 16px 42px rgba(32,54,61,.07)}
.contact-complete__icon{display:grid;place-items:center;width:76px;height:76px;margin:0 auto 22px;border-radius:50%;background:var(--aqua);color:var(--main-dark);font-size:2rem;font-weight:900}
.contact-complete__note{margin:18px 0 28px!important;padding:16px 18px;border-radius:10px;background:var(--soft);font-size:.9rem}
.contact-complete .button{margin-top:4px}

@media (max-width:720px){
  .contact-page{padding:58px 0}
  .contact-page__heading{margin-bottom:30px;text-align:left}
  .contact-form__row{grid-template-columns:1fr;gap:10px;padding:22px 0}
  .contact-form__label{padding-top:0;align-items:center}
  .contact-form__field input,.contact-form__field select{height:52px}
  .contact-privacy{padding:20px 16px;text-align:left}
  .contact-privacy label{align-items:flex-start}
  .contact-submit-button{width:100%;min-width:0}
  .contact-confirm-list>div{grid-template-columns:1fr}
  .contact-confirm-list dt{padding:13px 16px;border-bottom:1px solid var(--line)}
  .contact-confirm-list dd{padding:16px}
  .contact-confirm-actions{flex-direction:column-reverse}
  .contact-confirm-actions .button{width:100%}
  .contact-complete{padding:38px 22px}
}


/* =========================================================
   CONTACT / Contact Form 7 Ver.0.5.1
   ========================================================= */
.adstar-cf7{max-width:960px;margin:0 auto}
.adstar-cf7 .wpcf7-form{margin:0}
.adstar-cf7 .wpcf7-form>p{margin:0}
.adstar-cf7 .contact-form{border-top:1px solid var(--line)}
.adstar-cf7 .contact-form__row{display:grid;grid-template-columns:230px minmax(0,1fr);gap:30px;padding:28px 0;border-bottom:1px solid var(--line)}
.adstar-cf7 .contact-form__label{display:flex;align-items:flex-start;gap:10px;padding-top:12px;font-weight:800;color:var(--navy)}
.adstar-cf7 .contact-form__field .wpcf7-form-control-wrap{display:block}
.adstar-cf7 input[type="text"],
.adstar-cf7 input[type="email"],
.adstar-cf7 input[type="tel"],
.adstar-cf7 select,
.adstar-cf7 textarea{width:100%;border:1px solid #ccd8da;border-radius:10px;background:#fff;color:var(--navy);font:inherit;outline:none;transition:border-color .2s,box-shadow .2s,background .2s}
.adstar-cf7 input[type="text"],
.adstar-cf7 input[type="email"],
.adstar-cf7 input[type="tel"],
.adstar-cf7 select{height:54px;padding:0 16px}
.adstar-cf7 textarea{min-height:190px;padding:15px 16px;resize:vertical;line-height:1.75}
.adstar-cf7 input::placeholder,.adstar-cf7 textarea::placeholder{color:#9aabad}
.adstar-cf7 input:focus,.adstar-cf7 select:focus,.adstar-cf7 textarea:focus{border-color:var(--main);box-shadow:0 0 0 3px rgba(0,170,170,.12)}
.adstar-cf7 select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--main-dark) 50%),linear-gradient(135deg,var(--main-dark) 50%,transparent 50%);background-position:calc(100% - 20px) 22px,calc(100% - 14px) 22px;background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:48px}
.adstar-cf7 .contact-privacy{margin-top:32px;padding:24px 28px;border-radius:12px;background:var(--soft);text-align:center}
.adstar-cf7 .contact-privacy .wpcf7-list-item{margin:0}
.adstar-cf7 .contact-privacy label{display:inline-flex;align-items:center;gap:9px;font-weight:700}
.adstar-cf7 .contact-privacy input[type="checkbox"]{width:18px;height:18px;accent-color:var(--main)}
.adstar-cf7 .contact-privacy a{color:var(--main-dark);text-decoration:underline;text-underline-offset:3px}
.adstar-cf7 .contact-form__actions{display:flex;flex-direction:column;align-items:center;gap:16px;margin-top:34px;text-align:center}
.adstar-cf7 input.wpcf7-submit{min-width:300px;min-height:58px;border:0;border-radius:999px;background:var(--main);color:#fff;font-weight:900;cursor:pointer;padding:0 34px;transition:transform .2s,background .2s}
.adstar-cf7 input.wpcf7-submit:hover{background:var(--main-dark);transform:translateY(-1px)}
.adstar-cf7 input.wpcf7-submit:disabled{opacity:.65;cursor:wait}
.adstar-cf7 .wpcf7-spinner{margin:10px 0 0}
.adstar-cf7 .wpcf7-not-valid-tip{margin-top:7px;color:#b62d2d;font-size:.84rem;font-weight:700}
.adstar-cf7 .wpcf7-response-output{margin:24px 0 0!important;padding:16px 18px!important;border-radius:10px!important;line-height:1.7}
.adstar-cf7 form.invalid .wpcf7-response-output,
.adstar-cf7 form.unaccepted .wpcf7-response-output,
.adstar-cf7 form.payment-required .wpcf7-response-output{border-color:#efc4c4!important;background:#fff7f7;color:#8b2828}
.adstar-cf7 form.sent .wpcf7-response-output{border-color:#a9dfd9!important;background:#f1fbfa;color:#245d59}
.contact-system-message{max-width:760px;margin:0 auto;padding:28px 30px;border:1px solid var(--line);border-radius:14px;background:var(--soft);color:var(--text)}
.contact-system-message h3{margin:0 0 10px;color:var(--navy)}
.contact-system-message p{margin:8px 0;line-height:1.8}

@media (max-width:720px){
  .adstar-cf7 .contact-form__row{grid-template-columns:1fr;gap:10px;padding:22px 0}
  .adstar-cf7 .contact-form__label{padding-top:0}
  .adstar-cf7 .contact-privacy{padding:20px 18px;text-align:left}
  .adstar-cf7 input.wpcf7-submit{width:100%;min-width:0}
}


/* =========================================================
   SERVICE INDEX Ver.0.6.0
   ========================================================= */
.service-index-intro{padding-bottom:54px}
.service-index-intro__grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:72px;align-items:start}
.service-index-intro h2{margin:8px 0 0;font-size:clamp(2rem,3vw,3rem);line-height:1.35}
.service-index-intro p{margin:4px 0 0;color:var(--text);font-size:1.03rem;line-height:2}
.service-index-heading{max-width:820px;margin-bottom:38px}
.service-index-heading h2{margin:6px 0 12px;font-size:clamp(2rem,3vw,2.8rem);line-height:1.35}
.service-index-heading p{margin:0;color:var(--text);line-height:1.9}
.service-index-grid{display:grid;gap:24px}
.service-index-grid--core,.service-index-grid--support{grid-template-columns:repeat(3,minmax(0,1fr))}
.service-index-grid--energy{grid-template-columns:repeat(3,minmax(0,1fr))}
.service-index-card{position:relative;display:flex;flex-direction:column;min-width:0;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.service-index-card:hover{transform:translateY(-4px);box-shadow:0 16px 38px rgba(32,54,61,.09);border-color:rgba(0,170,170,.28)}
.service-index-card__visual{height:210px;background:#edf8f8;display:flex;align-items:center;justify-content:center;overflow:hidden}
.service-index-card__visual img{width:100%;height:100%;object-fit:cover;transition:transform .32s ease}
.service-index-card:hover .service-index-card__visual img{transform:scale(1.025)}
.service-index-card__visual--symbol{background:linear-gradient(145deg,#f7fbfb,#e7f6f6)}
.service-index-card__visual--symbol span{display:grid;place-items:center;width:92px;height:92px;border-radius:50%;background:#fff;border:1px solid rgba(0,170,170,.2);color:var(--main);font-size:1.75rem;font-weight:900;letter-spacing:.05em}
.service-index-card__body{display:flex;flex-direction:column;flex:1;padding:26px 28px 28px}
.service-index-card__num{color:var(--main);font-size:.82rem;font-weight:900;letter-spacing:.14em}
.service-index-card h3{margin:7px 0 12px;font-size:1.35rem;line-height:1.45}
.service-index-card h3 a:hover{color:var(--main-dark)}
.service-index-card p{margin:0;color:var(--text);font-size:.94rem;line-height:1.85}
.service-index-card__link{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:auto;padding-top:22px;color:var(--main-dark);font-weight:800;border-top:1px solid transparent}
.service-index-card__link span:last-child{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--aqua);color:var(--main-dark);transition:.2s}
.service-index-card:hover .service-index-card__link span:last-child{background:var(--main);color:#fff;transform:translateX(2px)}
.service-index-guide__inner{display:flex;align-items:center;justify-content:space-between;gap:48px}
.service-index-guide__inner>div{max-width:820px}
.service-index-guide h2{margin:6px 0 12px;font-size:clamp(1.8rem,2.8vw,2.6rem);line-height:1.4}
.service-index-guide p{margin:0;color:var(--text)}

@media (max-width:980px){
  .service-index-grid--core,.service-index-grid--support,.service-index-grid--energy{grid-template-columns:repeat(2,minmax(0,1fr))}
  .service-index-intro__grid{gap:40px}
}
@media (max-width:720px){
  .service-index-intro{padding-bottom:38px}
  .service-index-intro__grid{grid-template-columns:1fr;gap:18px}
  .service-index-grid--core,.service-index-grid--support,.service-index-grid--energy{grid-template-columns:1fr}
  .service-index-card{display:grid;grid-template-columns:108px minmax(0,1fr)}
  .service-index-card__visual{height:auto;min-height:100%;border-radius:0}
  .service-index-card__visual img{height:100%;object-fit:cover}
  .service-index-card__visual--symbol span{width:58px;height:58px;font-size:1.1rem}
  .service-index-card__body{padding:20px 20px 20px 18px}
  .service-index-card h3{font-size:1.12rem;margin:4px 0 8px}
  .service-index-card p{font-size:.88rem;line-height:1.7}
  .service-index-card__link{padding-top:14px}
  .service-index-guide__inner{flex-direction:column;align-items:flex-start;gap:24px}
  .service-index-guide__inner .button{width:100%}
}


/* =========================================================
   LOWER PAGE COMMON HERO Ver.0.6.2
   下層固定ページのファーストビューを共通化
   ========================================================= */
.subpage-hero.subpage-hero--common{
  position:relative;
  padding:42px 0 58px;
  background:linear-gradient(135deg,#fff 0%,#fbfdfd 58%,#edf9f9 100%);
  border-bottom:1px solid var(--line);
  overflow:hidden;
}
.subpage-hero.subpage-hero--common::after{
  content:"";
  position:absolute;
  right:-110px;
  top:-170px;
  width:360px;
  height:360px;
  border:1px solid rgba(0,170,170,.10);
  border-radius:50%;
  pointer-events:none;
}
.subpage-hero__inner{
  position:relative;
  z-index:1;
}
.subpage-hero__titleblock{
  max-width:880px;
  padding-top:34px;
}
.subpage-hero--common .subpage-hero__kicker{
  display:inline-block;
  margin:0 0 14px;
  color:var(--main);
  font-size:.82rem;
  font-weight:900;
  letter-spacing:.18em;
}
.subpage-hero--common h1{
  margin:0;
  font-size:clamp(2.45rem,4.2vw,4.2rem);
  line-height:1.18;
  letter-spacing:.01em;
}
.subpage-hero--common .subpage-hero__lead{
  max-width:760px;
  margin:22px 0 0;
  color:var(--text);
  font-size:1.04rem;
  line-height:1.95;
}
.subpage-hero--common .ad-breadcrumb{
  margin:0;
}
.subpage-hero--common .subpage-hero__media,
.subpage-hero--common .subpage-hero__tags{
  display:none !important;
}

@media (max-width:720px){
  .subpage-hero.subpage-hero--common{
    padding:26px 0 38px;
  }
  .subpage-hero.subpage-hero--common::after{
    right:-145px;
    top:-175px;
    width:300px;
    height:300px;
  }
  .subpage-hero__titleblock{
    padding-top:24px;
  }
  .subpage-hero--common h1{
    font-size:clamp(2rem,10vw,3rem);
    line-height:1.2;
  }
  .subpage-hero--common .subpage-hero__lead{
    margin-top:16px;
    font-size:.95rem;
    line-height:1.85;
  }
}


/* =========================================================
   LOWER PAGE COMMON HERO Ver.0.6.3
   共通イラストを右側へ復元
   ========================================================= */
.subpage-hero--common .subpage-hero__grid--common{
  display:grid;
  grid-template-columns:minmax(0,1.18fr) minmax(260px,.82fr);
  gap:56px;
  align-items:center;
  padding-top:28px;
}
.subpage-hero--common .subpage-hero__titleblock{
  max-width:none;
  padding-top:0;
}
.subpage-hero--common .subpage-hero__media--common{
  display:flex!important;
  align-items:center;
  justify-content:flex-end;
  min-height:300px;
  overflow:visible;
}
.subpage-hero--common .subpage-hero__media--common:before{
  display:none!important;
}
.subpage-hero--common .subpage-hero__img--common{
  display:block!important;
  width:min(100%,360px)!important;
  max-width:360px!important;
  height:auto!important;
  aspect-ratio:auto!important;
  object-fit:contain!important;
  border-radius:0!important;
  box-shadow:none!important;
  margin-left:auto!important;
}
.subpage-hero--common .subpage-hero__tags{
  display:none!important;
}

@media (max-width:900px){
  .subpage-hero--common .subpage-hero__grid--common{
    grid-template-columns:minmax(0,1fr) minmax(220px,.65fr);
    gap:32px;
  }
  .subpage-hero--common .subpage-hero__media--common{
    min-height:230px;
  }
  .subpage-hero--common .subpage-hero__img--common{
    width:min(100%,280px)!important;
    max-width:280px!important;
  }
}

@media (max-width:720px){
  .subpage-hero--common .subpage-hero__grid--common{
    grid-template-columns:1fr;
    gap:16px;
    padding-top:22px;
  }
  .subpage-hero--common .subpage-hero__titleblock{
    order:1;
  }
  .subpage-hero--common .subpage-hero__media--common{
    order:2;
    justify-content:center;
    min-height:0;
    margin-top:4px;
  }
  .subpage-hero--common .subpage-hero__img--common{
    width:min(62%,220px)!important;
    max-width:220px!important;
    margin:0 auto!important;
  }
}


/* =========================================================
   SERVICE MEGA MENU Ver.0.7.0
   ========================================================= */
.site-header{
  overflow:visible;
}
.primary-nav{
  position:static;
}
.primary-nav__list > li > a{
  position:relative;
}
.primary-nav__list > li > a[data-mega-trigger="service"]{
  display:inline-flex;
  align-items:center;
  gap:7px;
}
.primary-nav__list > li > a[data-mega-trigger="service"]::after{
  content:"";
  width:6px;
  height:6px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:rotate(45deg) translateY(-2px);
  transition:transform .2s ease;
}
.primary-nav__list > li > a[data-mega-trigger="service"][aria-expanded="true"]{
  color:var(--main-dark);
}
.primary-nav__list > li > a[data-mega-trigger="service"][aria-expanded="true"]::after{
  transform:rotate(225deg) translate(-1px,-1px);
}

.mega-menu{
  position:absolute;
  z-index:120;
  top:100%;
  left:0;
  width:100%;
  background:#fff;
  border-top:1px solid rgba(0,170,170,.1);
  border-bottom:1px solid var(--line);
  box-shadow:0 22px 44px rgba(32,54,61,.12);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(-8px);
  transition:opacity .2s ease,transform .2s ease,visibility .2s ease;
}
.mega-menu.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
}
.mega-menu__inner{
  display:grid;
  grid-template-columns:240px minmax(0,1fr);
  gap:44px;
  padding-top:34px;
  padding-bottom:38px;
}
.mega-menu__intro{
  padding-right:32px;
  border-right:1px solid var(--line);
}
.mega-menu__eyebrow{
  display:block;
  margin-bottom:7px;
  color:var(--main);
  font-size:.75rem;
  font-weight:900;
  letter-spacing:.18em;
}
.mega-menu__intro h2{
  margin:0 0 13px;
  font-size:1.75rem;
  line-height:1.3;
}
.mega-menu__intro p{
  margin:0;
  color:var(--text);
  font-size:.88rem;
  line-height:1.8;
}
.mega-menu__overview{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-top:24px;
  padding:13px 0;
  color:var(--main-dark);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  font-size:.9rem;
  font-weight:800;
}
.mega-menu__overview:hover{
  color:var(--main);
}
.mega-menu__content{
  display:grid;
  grid-template-columns:1.02fr 1.55fr .95fr;
  gap:34px;
}
.mega-menu__group h3{
  margin:0 0 13px;
  padding-bottom:9px;
  border-bottom:2px solid var(--navy);
  font-size:.86rem;
  line-height:1.4;
}
.mega-menu__group--core h3{
  border-color:var(--main);
}
.mega-menu__links{
  display:grid;
  gap:3px;
}
.mega-menu__link{
  display:grid;
  grid-template-columns:30px minmax(0,1fr) 24px;
  align-items:center;
  gap:9px;
  min-height:45px;
  padding:8px 7px;
  border-radius:9px;
  transition:background .18s ease,color .18s ease;
}
.mega-menu__link:hover,
.mega-menu__link:focus-visible{
  background:var(--aqua);
  color:var(--main-dark);
  outline:none;
}
.mega-menu__num{
  color:var(--main);
  font-size:.73rem;
  font-weight:900;
  letter-spacing:.06em;
}
.mega-menu__link-body{
  min-width:0;
  display:block;
}
.mega-menu__link strong{
  display:block;
  font-size:.87rem;
  line-height:1.45;
}
.mega-menu__link small{
  display:block;
  margin-top:3px;
  color:var(--text);
  font-size:.69rem;
  line-height:1.5;
  font-weight:500;
}
.mega-menu__arrow{
  color:var(--main);
  text-align:right;
  font-size:.92rem;
  transition:transform .18s ease;
}
.mega-menu__link:hover .mega-menu__arrow{
  transform:translateX(3px);
}
.mega-menu__group--core .mega-menu__link{
  align-items:start;
  min-height:76px;
  padding-top:10px;
  padding-bottom:10px;
}
.mega-menu-backdrop{
  position:fixed;
  z-index:95;
  inset:78px 0 0;
  background:rgba(22,42,48,.18);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .2s ease,visibility .2s ease;
}
body.mega-menu-open .mega-menu-backdrop{
  opacity:1;
  visibility:visible;
}

@media (max-width:1080px) and (min-width:901px){
  .primary-nav__list{
    gap:16px;
    font-size:.88rem;
  }
  .primary-nav{
    gap:18px;
  }
  .mega-menu__inner{
    grid-template-columns:200px minmax(0,1fr);
    gap:28px;
  }
  .mega-menu__content{
    gap:22px;
  }
}

@media (max-width:900px){
  .primary-nav{
    overflow-y:auto;
    overscroll-behavior:contain;
  }
  .primary-nav__list > li > a[data-mega-trigger="service"]{
    width:100%;
    justify-content:space-between;
  }
  .mega-menu{
    position:static;
    width:auto;
    margin:0;
    border:0;
    border-bottom:1px solid var(--line);
    box-shadow:none;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:none;
    display:none;
    background:var(--soft);
  }
  .mega-menu.is-open{
    display:block;
  }
  .mega-menu__inner{
    width:100%;
    display:block;
    padding:18px 0 22px;
  }
  .mega-menu__intro{
    padding:0 0 16px;
    border:0;
  }
  .mega-menu__eyebrow,
  .mega-menu__intro h2,
  .mega-menu__intro p{
    display:none;
  }
  .mega-menu__overview{
    margin:0;
    padding:12px 0;
    border-top:0;
    font-size:.9rem;
  }
  .mega-menu__content{
    display:block;
  }
  .mega-menu__group{
    margin-top:18px;
  }
  .mega-menu__group h3{
    margin-bottom:6px;
    padding-bottom:7px;
    font-size:.78rem;
  }
  .mega-menu__link,
  .mega-menu__group--core .mega-menu__link{
    min-height:0;
    grid-template-columns:28px minmax(0,1fr) 22px;
    padding:10px 4px;
  }
  .mega-menu__link strong{
    font-size:.9rem;
  }
  .mega-menu__link small{
    display:none;
  }
  .mega-menu-backdrop{
    display:none!important;
  }
  body.mega-menu-open{
    overflow:hidden;
  }
}


/* =========================================================
   SERVICE MEGA MENU SP FIX Ver.0.7.1
   ========================================================= */
@media (max-width:900px){
  body.menu-open{
    overflow:hidden;
  }

  .site-header{
    overflow:visible;
  }

  .site-header__inner{
    position:relative;
  }

  .primary-nav{
    display:none;
    position:fixed;
    z-index:130;
    inset:78px 0 0;
    width:auto;
    max-height:calc(100dvh - 78px);
    margin:0;
    padding:18px 20px 34px;
    background:#fff;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    overflow-y:auto;
    overflow-x:hidden;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }

  .primary-nav.is-open{
    display:flex;
  }

  .primary-nav__list{
    width:100%;
    display:flex;
    flex-direction:column;
    gap:0;
    margin:0;
    padding:0;
  }

  .primary-nav__list > li{
    width:100%;
    margin:0;
    border-bottom:1px solid var(--line);
  }

  .primary-nav__list > li > a{
    width:100%;
    min-height:54px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:14px 2px;
    font-size:1rem;
    line-height:1.5;
  }

  .primary-nav__list > li > a[data-mega-trigger="service"]{
    display:flex;
    width:100%;
    justify-content:space-between;
    gap:16px;
  }

  .primary-nav__contact{
    order:20;
    width:100%;
    min-height:54px;
    margin-top:22px;
    padding:0 20px;
    border-radius:999px;
    white-space:nowrap;
    flex:0 0 auto;
  }

  .primary-nav__list > li.has-service-mega{
    overflow:visible;
  }

  .primary-nav__list > li.has-service-mega .mega-menu{
    width:100%;
    margin:0;
  }

  .mega-menu{
    position:static;
    width:100%;
    margin:0;
    padding:0;
    border:0;
    border-top:1px solid rgba(0,170,170,.10);
    border-bottom:0;
    box-shadow:none;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:none;
    display:none;
    background:var(--soft);
  }

  .mega-menu.is-open{
    display:block;
  }

  .mega-menu__inner{
    width:100%!important;
    margin:0!important;
    display:block;
    padding:14px 14px 18px!important;
  }

  .mega-menu__intro{
    margin:0;
    padding:0 0 8px;
    border:0;
  }

  .mega-menu__eyebrow,
  .mega-menu__intro h2,
  .mega-menu__intro p{
    display:none;
  }

  .mega-menu__overview{
    min-height:46px;
    margin:0;
    padding:10px 2px;
    border-top:0;
    border-bottom:1px solid rgba(32,54,61,.12);
    font-size:.9rem;
  }

  .mega-menu__content{
    display:block;
  }

  .mega-menu__group{
    margin-top:16px;
  }

  .mega-menu__group h3{
    margin:0 0 4px;
    padding:0 0 7px;
    border-bottom-width:1px;
    font-size:.76rem;
  }

  .mega-menu__links{
    gap:0;
  }

  .mega-menu__link,
  .mega-menu__group--core .mega-menu__link{
    min-height:46px;
    display:grid;
    grid-template-columns:28px minmax(0,1fr) 20px;
    align-items:center;
    gap:8px;
    padding:9px 2px;
    border-radius:0;
    border-bottom:1px solid rgba(32,54,61,.08);
  }

  .mega-menu__link:last-child{
    border-bottom:0;
  }

  .mega-menu__link strong{
    font-size:.9rem;
    line-height:1.5;
  }

  .mega-menu__link small{
    display:none;
  }

  .mega-menu__num{
    font-size:.68rem;
  }

  .mega-menu__arrow{
    font-size:.84rem;
  }

  .mega-menu-backdrop{
    display:none!important;
  }

  body.mega-menu-open{
    overflow:hidden;
  }
}

@media (max-width:620px){
  .primary-nav{
    inset:68px 0 0;
    max-height:calc(100dvh - 68px);
    padding:12px 14px 30px;
  }

  .primary-nav__list > li > a{
    min-height:52px;
    padding:13px 2px;
    font-size:.98rem;
  }

  .mega-menu__inner{
    padding:12px 10px 16px!important;
  }

  .primary-nav__contact{
    margin-top:18px;
    min-height:52px;
  }
}


/* =========================================================
   MOBILE NAV FIX Ver.0.7.2
   sticky + backdrop-filter 内の fixed 崩れを回避
   ========================================================= */
@media (max-width:900px){
  .site-header{
    overflow:visible!important;
  }

  .site-header__inner{
    position:relative!important;
  }

  .primary-nav{
    display:none!important;
    position:absolute!important;
    z-index:200!important;
    top:100%!important;
    left:50%!important;
    right:auto!important;
    bottom:auto!important;
    transform:translateX(-50%)!important;
    width:100vw!important;
    max-width:none!important;
    height:var(--adstar-mobile-nav-height, calc(100dvh - 78px))!important;
    max-height:var(--adstar-mobile-nav-height, calc(100dvh - 78px))!important;
    margin:0!important;
    padding:14px 18px 32px!important;
    background:#fff!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    box-shadow:0 18px 36px rgba(32,54,61,.10)!important;
  }

  .primary-nav.is-open{
    display:flex!important;
  }

  .primary-nav__list{
    display:flex!important;
    width:100%!important;
    flex:0 0 auto!important;
    flex-direction:column!important;
    gap:0!important;
    margin:0!important;
    padding:0!important;
  }

  .primary-nav__list > li{
    display:block!important;
    width:100%!important;
    flex:0 0 auto!important;
    margin:0!important;
    padding:0!important;
    border-bottom:1px solid var(--line)!important;
  }

  .primary-nav__list > li > a{
    display:flex!important;
    width:100%!important;
    min-height:52px!important;
    align-items:center!important;
    justify-content:space-between!important;
    padding:13px 2px!important;
    font-size:.98rem!important;
    line-height:1.45!important;
  }

  .primary-nav__contact{
    display:flex!important;
    order:20!important;
    flex:0 0 auto!important;
    width:100%!important;
    min-height:52px!important;
    margin:18px 0 6px!important;
    padding:0 20px!important;
    border-radius:999px!important;
    white-space:nowrap!important;
  }

  .mega-menu{
    position:static!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    transform:none!important;
  }

  .mega-menu__inner{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:12px 10px 16px!important;
  }

  body.menu-open{
    overflow:hidden!important;
  }
}

@media (max-width:620px){
  .primary-nav{
    height:var(--adstar-mobile-nav-height, calc(100dvh - 68px))!important;
    max-height:var(--adstar-mobile-nav-height, calc(100dvh - 68px))!important;
    padding:10px 14px 28px!important;
  }
}


/* =========================================================
   MOBILE MENU DETAIL FIX Ver.0.7.3
   ========================================================= */
@media (max-width:900px){

  /* 既存の .primary-nav__list a { display:block; } より強く指定し、
     メガメニュー内を必ず「番号 / タイトル / 矢印」の1行グリッドにする */
  .primary-nav__list .mega-menu__link,
  .primary-nav__list .mega-menu__group--core .mega-menu__link{
    display:grid!important;
    grid-template-columns:28px minmax(0,1fr) 24px!important;
    grid-template-rows:auto!important;
    align-items:center!important;
    column-gap:8px!important;
    row-gap:0!important;
    width:100%!important;
    padding:11px 4px!important;
  }

  .primary-nav__list .mega-menu__num{
    grid-column:1!important;
    grid-row:1!important;
    align-self:center!important;
    white-space:nowrap!important;
  }

  .primary-nav__list .mega-menu__link-body{
    grid-column:2!important;
    grid-row:1!important;
    min-width:0!important;
    align-self:center!important;
  }

  .primary-nav__list .mega-menu__link strong{
    display:block!important;
    margin:0!important;
    line-height:1.45!important;
  }

  .primary-nav__list .mega-menu__arrow{
    grid-column:3!important;
    grid-row:1!important;
    align-self:center!important;
    justify-self:end!important;
    width:24px!important;
    margin:0!important;
    text-align:right!important;
    white-space:nowrap!important;
  }

  /* Hamburger */
  .menu-toggle{
    display:inline-flex!important;
    width:44px!important;
    height:44px!important;
    min-width:44px!important;
    padding:0!important;
    margin:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    align-items:center!important;
    justify-content:center!important;
    position:relative!important;
    color:var(--navy)!important;
    cursor:pointer!important;
  }

  .menu-toggle__icon{
    position:relative;
    display:block;
    width:26px;
    height:18px;
  }

  .menu-toggle__icon > span{
    position:absolute;
    left:0;
    width:26px;
    height:2px;
    border-radius:999px;
    background:currentColor;
    transform-origin:center;
    transition:top .2s ease,transform .2s ease,opacity .16s ease;
  }

  .menu-toggle__icon > span:nth-child(1){ top:0; }
  .menu-toggle__icon > span:nth-child(2){ top:8px; }
  .menu-toggle__icon > span:nth-child(3){ top:16px; }

  .menu-toggle[aria-expanded="true"] .menu-toggle__icon > span:nth-child(1){
    top:8px;
    transform:rotate(45deg);
  }

  .menu-toggle[aria-expanded="true"] .menu-toggle__icon > span:nth-child(2){
    opacity:0;
  }

  .menu-toggle[aria-expanded="true"] .menu-toggle__icon > span:nth-child(3){
    top:8px;
    transform:rotate(-45deg);
  }

  .menu-toggle__label{
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    padding:0!important;
    margin:-1px!important;
    overflow:hidden!important;
    clip:rect(0,0,0,0)!important;
    white-space:nowrap!important;
    border:0!important;
  }
}


/* =========================================================
   SERVICE STRUCTURE UPDATE Ver.0.7.4
   8事業構成
   ========================================================= */
@media (min-width:901px){
  .mega-menu--v074 .mega-menu__content{
    grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);
    gap:42px;
  }
  .mega-menu--v074 .mega-menu__link{
    min-height:54px;
  }
}

.service-index-grid--business{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.compact-card__image > .placeholder-visual{
  width:100%;
  height:100%;
  min-height:190px;
}

@media (max-width:980px){
  .service-index-grid--business{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:720px){
  .service-index-grid--business{
    grid-template-columns:1fr;
  }
  .compact-card__image > .placeholder-visual{
    min-height:150px;
  }
}


/* =========================================================
   TOP BACKGROUND VIDEO HERO Ver.0.8.0
   ========================================================= */
.hero.hero--video{
  position:relative;
  isolation:isolate;
  min-height:680px;
  height:calc(100svh - 78px);
  max-height:860px;
  padding:0;
  display:block;
  overflow:hidden;
  background:#173640;
  color:#fff;
}
.hero-video__media,
.hero-video__poster,
.hero-video__video,
.hero-video__overlay{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.hero-video__media{
  z-index:-3;
  overflow:hidden;
  background:#173640;
}
.hero-video__poster{
  z-index:0;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
  transform:scale(1.015);
}
.hero-video__video{
  z-index:1;
  display:block;
  object-fit:cover;
  object-position:center;
}
.hero-video__overlay{
  z-index:-1;
  background:
    linear-gradient(90deg,rgba(12,31,37,.82) 0%,rgba(12,31,37,.64) 35%,rgba(12,31,37,.28) 65%,rgba(12,31,37,.18) 100%),
    linear-gradient(0deg,rgba(10,27,32,.32) 0%,rgba(10,27,32,0) 45%);
}
.hero-video__inner{
  position:relative;
  z-index:2;
  height:100%;
  display:flex;
  align-items:center;
}
.hero-video__copy{
  width:min(760px,72%);
  padding:48px 0 86px;
  text-shadow:0 2px 18px rgba(0,0,0,.14);
}
.hero-video__eyebrow{
  display:block;
  margin-bottom:18px;
  color:#fff;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.26em;
}
.hero--video h1{
  margin:0 0 28px;
  color:#fff;
  font-size:clamp(3.65rem,5.6vw,6.15rem);
  line-height:1.13;
  letter-spacing:.005em;
  font-weight:800;
}
.hero--video h1 span{
  display:block;
  white-space:nowrap;
}
.hero--video .hero-video__copy>p{
  max-width:690px;
  margin:0;
  color:rgba(255,255,255,.9);
  font-size:1.08rem;
  line-height:2;
  font-weight:500;
}
.hero--video .hero__actions{
  margin-top:34px;
  gap:14px;
}
.hero-video__button{
  min-height:56px;
  padding:0 30px;
  border-radius:999px;
  text-shadow:none;
}
.hero-video__button--primary{
  background:#fff;
  color:var(--navy);
}
.hero-video__button--primary:hover{
  background:var(--aqua);
  color:var(--main-dark);
}
.hero-video__button--outline{
  border:1px solid rgba(255,255,255,.8);
  background:rgba(255,255,255,.06);
  color:#fff;
  backdrop-filter:blur(6px);
}
.hero-video__button--outline:hover{
  background:rgba(255,255,255,.16);
}
.hero-video__control{
  position:absolute;
  right:0;
  bottom:38px;
  display:inline-flex;
  align-items:center;
  gap:9px;
  min-height:42px;
  padding:0 14px;
  border:1px solid rgba(255,255,255,.48);
  border-radius:999px;
  background:rgba(10,27,32,.22);
  color:#fff;
  font:inherit;
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.12em;
  cursor:pointer;
  backdrop-filter:blur(6px);
  transition:.2s ease;
}
.hero-video__control:hover{
  background:rgba(10,27,32,.45);
  border-color:#fff;
}
.hero-video__control-icon{
  position:relative;
  width:13px;
  height:13px;
  display:block;
}
.hero-video__control-icon--pause:before,
.hero-video__control-icon--pause:after{
  content:"";
  position:absolute;
  top:1px;
  width:3px;
  height:11px;
  border-radius:1px;
  background:#fff;
}
.hero-video__control-icon--pause:before{left:2px}
.hero-video__control-icon--pause:after{right:2px}
.hero-video__control.is-paused .hero-video__control-icon--pause:before{
  left:2px;
  top:0;
  width:0;
  height:0;
  background:transparent;
  border-top:6.5px solid transparent;
  border-bottom:6.5px solid transparent;
  border-left:10px solid #fff;
  border-radius:0;
}
.hero-video__control.is-paused .hero-video__control-icon--pause:after{
  display:none;
}
.hero-video__scroll{
  position:absolute;
  left:0;
  bottom:0;
  display:flex;
  align-items:center;
  gap:12px;
  color:rgba(255,255,255,.82);
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.18em;
}
.hero-video__scroll i{
  display:block;
  width:72px;
  height:1px;
  background:rgba(255,255,255,.58);
  overflow:hidden;
}
.hero-video__scroll i:after{
  content:"";
  display:block;
  width:28px;
  height:1px;
  background:#fff;
  animation:adstarHeroScroll 2.2s ease-in-out infinite;
}
@keyframes adstarHeroScroll{
  0%{transform:translateX(-30px)}
  55%,100%{transform:translateX(76px)}
}

@media (max-width:900px){
  .hero.hero--video{
    min-height:620px;
    height:calc(100svh - 68px);
    max-height:none;
  }
  .hero-video__overlay{
    background:
      linear-gradient(90deg,rgba(10,29,35,.76) 0%,rgba(10,29,35,.53) 58%,rgba(10,29,35,.30) 100%),
      linear-gradient(0deg,rgba(10,29,35,.48) 0%,rgba(10,29,35,.02) 55%);
  }
  .hero-video__inner{
    align-items:flex-end;
  }
  .hero-video__copy{
    width:100%;
    padding:60px 0 94px;
  }
  .hero--video h1{
    font-size:clamp(2.7rem,9.6vw,4.4rem);
    line-height:1.16;
  }
  .hero--video .hero-video__copy>p{
    max-width:620px;
    font-size:1rem;
    line-height:1.85;
  }
  .hero-video__control{
    right:0;
    bottom:28px;
  }
  .hero-video__scroll{
    bottom:12px;
  }
}
@media (max-width:620px){
  .hero.hero--video{
    min-height:590px;
    height:calc(100svh - 68px);
  }
  .hero-video__poster,
  .hero-video__video{
    object-position:center center;
    background-position:center center;
  }
  .hero-video__overlay{
    background:
      linear-gradient(180deg,rgba(10,28,34,.18) 0%,rgba(10,28,34,.34) 40%,rgba(10,28,34,.82) 100%);
  }
  .hero-video__copy{
    padding:48px 0 82px;
  }
  .hero-video__eyebrow{
    margin-bottom:12px;
    font-size:.7rem;
  }
  .hero--video h1{
    margin-bottom:20px;
    font-size:clamp(2.35rem,11.5vw,3.4rem);
  }
  .hero--video h1 span{
    white-space:normal;
  }
  .hero--video .hero-video__copy>p{
    font-size:.92rem;
    line-height:1.78;
  }
  .hero--video .hero__actions{
    margin-top:24px;
    gap:10px;
  }
  .hero-video__button{
    min-height:50px;
    padding:0 20px;
    font-size:.9rem;
  }
  .hero-video__control{
    bottom:20px;
    min-height:38px;
    padding:0 11px;
  }
  .hero-video__control-text{
    display:none;
  }
  .hero-video__scroll{
    display:none;
  }
}

@media (prefers-reduced-motion:reduce){
  .hero-video__video{
    display:none;
  }
  .hero-video__scroll i:after{
    animation:none;
  }
}


/* =========================================================
   TOP VIDEO LOAD FIX Ver.0.8.2
   ========================================================= */
.hero-video__video{
  opacity:0;
  transition:opacity .45s ease;
}
.hero--video.is-video-ready .hero-video__video{
  opacity:1;
}


/* =========================================================
   TOP HERO HEADING SIZE TUNE Ver.0.8.3
   ========================================================= */
.hero--video h1{
  font-size:clamp(3.15rem,4.8vw,5.35rem);
  line-height:1.14;
}

@media (max-width:900px){
  .hero--video h1{
    font-size:clamp(2.35rem,8.7vw,3.75rem);
    line-height:1.16;
  }
}

@media (max-width:620px){
  .hero--video h1{
    font-size:clamp(2.05rem,9.7vw,2.95rem);
    line-height:1.18;
  }
}


/* =========================================================
   TOP HERO TYPOGRAPHY / CLEANUP Ver.0.8.4
   ========================================================= */
.hero--video h1{
  font-family:
    "Yu Mincho",
    "YuMincho",
    "Hiragino Mincho ProN",
    "Hiragino Mincho Pro",
    "Noto Serif JP",
    serif;
  font-weight:600;
  letter-spacing:.025em;
}


/* =========================================================
   TOP VIDEO AUTOPLAY FIX Ver.0.8.5
   ========================================================= */
.hero.hero--video{
  background:#102c34;
}

.hero-video__poster{
  display:none!important;
}

.hero-video__video{
  opacity:1!important;
  background:#102c34;
}

/* 静止画フォールバックは使用しない */
.hero--video.is-poster-only .hero-video__media{
  background:#102c34;
}


/* =========================================================
   H2 MINCHO TYPOGRAPHY Ver.0.8.6
   ========================================================= */
h2,
.section-heading h2,
.ad-section-head h2,
.ad-lead-box h2,
.ad-media-split__body h2,
.service-index-hero h2,
.service-index-group h2,
.mega-menu__intro h2{
  font-family:
    "Yu Mincho",
    "YuMincho",
    "Hiragino Mincho ProN",
    "Hiragino Mincho Pro",
    "Noto Serif JP",
    serif;
  font-weight:600;
  letter-spacing:.02em;
}


/* =========================================================
   GLOBAL NAV LOGO Ver.0.8.7
   ========================================================= */
.site-brand--image{
  display:flex;
  align-items:center;
  flex:0 0 auto;
  line-height:1;
}

.site-brand__logo{
  display:block;
  width:auto;
  height:44px;
  max-width:220px;
  object-fit:contain;
}

@media (max-width:900px){
  .site-brand__logo{
    height:38px;
    max-width:190px;
  }
}

@media (max-width:620px){
  .site-brand__logo{
    height:34px;
    max-width:170px;
  }
}


/* =========================================================
   FOOTER LEGAL LINKS Ver.0.8.8
   ========================================================= */
.site-footer__legal{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px 18px;
}

.site-footer__legal a{
  position:relative;
  color:inherit;
}

.site-footer__legal a + a::before{
  content:"";
  position:absolute;
  left:-10px;
  top:50%;
  width:1px;
  height:12px;
  background:rgba(255,255,255,.28);
  transform:translateY(-50%);
}

@media (max-width:620px){
  .site-footer__legal{
    gap:8px 16px;
  }

  .site-footer__legal a{
    font-size:.82rem;
  }
}


/* =========================================================
   TOP STRENGTHS IMAGE SIZE Ver.0.8.10
   ========================================================= */
#strengths .strengths-icon{
  height:190px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:20px;
}

#strengths .strengths-icon img{
  display:block;
  width:auto;
  height:auto;
  max-width:220px;
  max-height:170px;
  object-fit:contain;
}

@media (max-width:900px){
  #strengths .strengths-icon{
    height:160px;
  }

  #strengths .strengths-icon img{
    max-width:190px;
    max-height:145px;
  }
}

@media (max-width:620px){
  #strengths .strengths-icon{
    height:140px;
    margin-bottom:16px;
  }

  #strengths .strengths-icon img{
    max-width:170px;
    max-height:125px;
  }
}


/* =========================================================
   TOP SERVICE CARD NUMBER OFF Ver.0.8.11
   ========================================================= */
.home .service-card__num{display:none !important;}


/* =========================================================
   TOP CAMPAIGN CAROUSEL Ver.0.8.12
   ========================================================= */
.campaign-strip{
  position:relative;
  overflow:hidden;
  padding:54px 0 64px;
  background:#fff;
}
.campaign-carousel{
  position:relative;
}
.campaign-carousel__viewport{
  overflow:hidden;
}
.campaign-carousel__track{
  display:flex;
  gap:26px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  padding:0 max(28px,calc((100vw - min(980px,68vw))/2));
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.campaign-carousel__track::-webkit-scrollbar{display:none}
.campaign-carousel__slide{
  position:relative;
  flex:0 0 min(980px,68vw);
  scroll-snap-align:center;
  overflow:hidden;
  background:#f3f6f6;
  border-radius:2px;
  box-shadow:0 12px 30px rgba(32,54,61,.08);
  transition:transform .25s ease,box-shadow .25s ease;
}
a.campaign-carousel__slide:hover{
  transform:translateY(-3px);
  box-shadow:0 18px 40px rgba(32,54,61,.12);
}
.campaign-carousel__slide img{
  display:block;
  width:100%;
  aspect-ratio:16/6.4;
  object-fit:cover;
}
.campaign-carousel__more{
  position:absolute;
  right:18px;
  bottom:18px;
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:50%;
  background:rgba(255,255,255,.94);
  color:var(--main-dark);
  font-size:1.2rem;
  box-shadow:0 5px 16px rgba(32,54,61,.14);
}
.campaign-carousel__nav{
  position:absolute;
  z-index:4;
  top:50%;
  width:58px;
  height:58px;
  margin-top:-29px;
  border:0;
  border-radius:0;
  background:#142d35;
  color:#fff;
  font-size:2rem;
  line-height:1;
  cursor:pointer;
  transition:background .2s ease,transform .2s ease;
}
.campaign-carousel__nav:hover{background:var(--main);}
.campaign-carousel__nav--prev{left:max(18px,calc(50% - min(490px,34vw) - 55px));}
.campaign-carousel__nav--next{right:max(18px,calc(50% - min(490px,34vw) - 55px));}
.campaign-carousel__dots{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:10px;
  margin-top:22px;
}
.campaign-carousel__dot{
  width:10px;
  height:10px;
  padding:0;
  border:1px solid #8a9a9e;
  border-radius:50%;
  background:#fff;
  cursor:pointer;
}
.campaign-carousel__dot.is-active{
  border-color:var(--main);
  background:var(--main);
}
.campaign-strip.is-single .campaign-carousel__track{
  justify-content:center;
  overflow:visible;
  padding:0 20px;
}
.campaign-strip.is-single .campaign-carousel__slide{
  flex-basis:min(1120px,calc(100vw - 40px));
}
.campaign-strip.is-single .campaign-carousel__slide img{
  aspect-ratio:auto;
  max-height:520px;
  object-fit:contain;
  background:#fff;
}

@media (max-width:900px){
  .campaign-strip{padding:38px 0 48px;}
  .campaign-carousel__track{
    gap:16px;
    padding-inline:7vw;
  }
  .campaign-carousel__slide{
    flex-basis:86vw;
  }
  .campaign-carousel__slide img{
    aspect-ratio:16/7.6;
  }
  .campaign-carousel__nav{
    width:44px;
    height:44px;
    margin-top:-22px;
    font-size:1.55rem;
  }
  .campaign-carousel__nav--prev{left:8px;}
  .campaign-carousel__nav--next{right:8px;}
  .campaign-strip.is-single .campaign-carousel__slide{
    flex-basis:calc(100vw - 28px);
  }
}

@media (max-width:620px){
  .campaign-strip{padding:28px 0 36px;}
  .campaign-carousel__track{padding-inline:20px;gap:12px;}
  .campaign-carousel__slide{flex-basis:88vw;}
  .campaign-carousel__slide img{aspect-ratio:16/9;}
  .campaign-carousel__nav{display:none;}
  .campaign-carousel__dots{margin-top:16px;gap:8px;}
  .campaign-carousel__dot{width:8px;height:8px;}
  .campaign-carousel__more{right:12px;bottom:12px;width:36px;height:36px;}
}


/* =========================================================
   TOP CAMPAIGN CAROUSEL SIZE TUNE Ver.0.8.13
   ========================================================= */
.campaign-strip{
  padding:42px 0 48px;
}

.campaign-carousel__track{
  gap:20px;
  padding-inline:max(24px,calc((100vw - min(760px,54vw))/2));
}

.campaign-carousel__slide{
  flex-basis:min(760px,54vw);
}

.campaign-carousel__slide img{
  aspect-ratio:16/6.4;
  object-fit:cover;
}

.campaign-carousel__nav{
  width:50px;
  height:50px;
  margin-top:-25px;
  font-size:1.7rem;
}

.campaign-carousel__nav--prev{
  left:max(14px,calc(50% - min(380px,27vw) - 48px));
}

.campaign-carousel__nav--next{
  right:max(14px,calc(50% - min(380px,27vw) - 48px));
}

.campaign-carousel__dots{
  margin-top:18px;
}

@media (max-width:900px){
  .campaign-strip{
    padding:32px 0 40px;
  }

  .campaign-carousel__track{
    gap:14px;
    padding-inline:11vw;
  }

  .campaign-carousel__slide{
    flex-basis:78vw;
  }

  .campaign-carousel__slide img{
    aspect-ratio:16/7;
  }
}

@media (max-width:620px){
  .campaign-strip{
    padding:24px 0 30px;
  }

  .campaign-carousel__track{
    gap:10px;
    padding-inline:9vw;
  }

  .campaign-carousel__slide{
    flex-basis:82vw;
  }

  .campaign-carousel__slide img{
    aspect-ratio:16/8;
  }
}


/* =========================================================
   TOP CAMPAIGN INFINITE LOOP Ver.0.8.14
   ========================================================= */
.campaign-carousel__track{
  overscroll-behavior-inline:contain;
}

.campaign-carousel__track.is-jumping{
  scroll-behavior:auto !important;
  scroll-snap-type:none !important;
}

.campaign-carousel__slide[data-campaign-clone="true"]{
  pointer-events:none;
}


/* =========================================================
   TOP STRENGTHS MOBILE LAYOUT FIX Ver.0.8.17
   ========================================================= */
@media (max-width:620px){
  #strengths .strengths-grid{
    grid-template-columns:1fr;
    gap:0;
    background:transparent;
  }

  #strengths .strengths-grid article{
    display:grid;
    grid-template-columns:72px minmax(0,1fr);
    grid-template-rows:auto auto;
    column-gap:16px;
    row-gap:4px;
    align-items:start;
    padding:22px 0;
    text-align:left;
    border-bottom:1px solid var(--line);
    overflow:hidden;
  }

  #strengths .strengths-grid article:last-child{
    border-bottom:0;
  }

  #strengths .strengths-icon{
    grid-column:1;
    grid-row:1 / 3;
    width:72px;
    height:72px;
    min-width:72px;
    margin:0;
    padding:0;
    overflow:hidden;
    border-radius:12px;
  }

  #strengths .strengths-icon img{
    width:72px;
    height:72px;
    max-width:72px;
    max-height:72px;
    object-fit:contain;
  }

  #strengths .strengths-grid h3,
  #strengths .strengths-grid p{
    min-width:0;
    overflow-wrap:anywhere;
  }

  #strengths .strengths-grid h3{
    grid-column:2;
    grid-row:1;
    margin:0;
    font-size:1rem;
    line-height:1.5;
  }

  #strengths .strengths-grid p{
    grid-column:2;
    grid-row:2;
    margin:0;
    font-size:.88rem;
    line-height:1.75;
  }
}


/* =========================================================
   FC / OTHER CARD IMAGE FULL BLEED Ver.0.8.19
   ========================================================= */
#secondary-business .compact-card--cover .compact-card__image{
  padding:0;
  background:#f4f7f7;
}
#secondary-business .compact-card--cover .compact-card__image img{
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center;
}


/* =========================================================
   TOP CORE SERVICE CARDS / COMPACT + SQUARE Ver.0.8.21
   ========================================================= */
.home .service-card{
  border-radius:0;
  overflow:hidden;
  box-shadow:none !important;
}
.home .service-card:hover{
  transform:none;
  box-shadow:none !important;
}
.home .service-card__image{
  height:205px;
  border-radius:0;
}
.home .service-card__body{
  min-height:178px;
  padding:22px 24px 20px;
}
.home .service-card h3{
  margin-bottom:10px;
  font-size:clamp(1.35rem,1.6vw,1.65rem);
}
.home .service-card p{
  font-size:.96rem;
  line-height:1.72;
}
.home .service-card__link{
  padding-top:10px;
  gap:10px;
}
.home .service-card__arrow{
  width:34px;
  height:34px;
  font-size:1rem;
}
@media (max-width:620px){
  .home .service-card__image{height:165px;}
  .home .service-card__body{min-height:0;padding:18px 18px 16px;}
  .home .service-card h3{font-size:1.35rem;margin-bottom:8px;}
  .home .service-card p{font-size:.94rem;line-height:1.68;}
  .home .service-card__link{padding-top:8px;}
  .home .service-card__arrow{width:30px;height:30px;font-size:.92rem;}
}


/* =========================================================
   TOP WORKS CARDS / COMPACT + SQUARE Ver.0.8.22
   ========================================================= */
.home .work-card{
  border-radius:0;
  overflow:hidden;
  box-shadow:none !important;
}
.home .work-card:hover{
  transform:none;
  box-shadow:none !important;
}
.home .work-card__image{
  border-radius:0;
}
.home .work-card__image img{
  aspect-ratio:16/8.2;
}
.home .work-card__body{
  padding:20px 24px 18px;
}
.home .work-card h3{
  margin:0 0 10px;
  font-size:clamp(1.2rem,1.85vw,1.55rem);
  line-height:1.4;
}
.home .work-card__meta{
  margin:0 0 10px!important;
  font-size:.98rem!important;
}
.home .work-card p{
  font-size:.96rem;
  line-height:1.72;
  margin:0;
}
.home .work-card .text-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:12px;
}
@media (max-width:620px){
  .home .work-card__image img{
    aspect-ratio:16/9;
  }
  .home .work-card__body{
    padding:18px 18px 16px;
  }
  .home .work-card h3{
    font-size:1.22rem;
    margin-bottom:8px;
  }
  .home .work-card__meta{
    font-size:.92rem!important;
    margin-bottom:8px!important;
  }
  .home .work-card p{
    font-size:.92rem;
    line-height:1.68;
  }
  .home .work-card .text-link{
    margin-top:10px;
  }
}


/* =========================================================
   CARD DETAIL LINK UNIFICATION Ver.0.8.23
   ========================================================= */
.feature-card > div:last-child,
.compact-card__body{
  display:flex;
  flex-direction:column;
}

.text-link--cta,
.works-card__more,
.service-index-card__link{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  width:100%;
  margin-top:auto;
  color:var(--main-dark);
  font-weight:800;
  line-height:1.4;
}

.text-link--cta{
  padding-top:18px;
}

.feature-card .text-link--cta,
.compact-card__body .text-link--cta{
  margin-top:18px;
}

.works-card__more,
.service-index-card__link{
  padding-top:18px;
}

.text-link--cta .text-link__arrow,
.works-card__arrow,
.service-index-card__link span:last-child{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  flex:0 0 42px;
  border-radius:50%;
  background:var(--main);
  color:#fff;
  font-size:1.05rem;
  line-height:1;
  transition:transform .2s ease, background .2s ease;
}

.text-link--cta:hover .text-link__arrow,
.works-card:hover .works-card__arrow,
.works-card__link:hover .works-card__arrow,
.service-index-card:hover .service-index-card__link span:last-child{
  transform:translateX(3px);
  background:var(--main-dark);
}

.home .work-card .text-link--cta,
.home .compact-card__body .text-link--cta,
.home .feature-card .text-link--cta{
  margin-top:auto;
}

.home .work-card .text-link--cta span:first-child,
.home .compact-card__body .text-link--cta span:first-child,
.home .feature-card .text-link--cta span:first-child,
.service-index-card__link span:first-child,
.works-card__more span:first-child{
  display:block;
}

@media (max-width: 620px){
  .text-link--cta,
  .works-card__more,
  .service-index-card__link{
    gap:10px;
    padding-top:14px;
  }

  .text-link--cta .text-link__arrow,
  .works-card__arrow,
  .service-index-card__link span:last-child{
    width:36px;
    height:36px;
    flex-basis:36px;
    font-size:.95rem;
  }
}


/* =========================================================
   CARD CTA NO-WRAP + SMALLER CIRCLE Ver.0.8.24
   ========================================================= */
.feature-card .text-link.text-link--cta,
.compact-card__body .text-link.text-link--cta,
.work-card .text-link.text-link--cta,
.works-card__more,
.service-index-card__link{
  display:flex !important;
  flex-direction:row;
  flex-wrap:nowrap;
  align-items:center;
  justify-content:flex-end;
  gap:9px;
  width:100%;
  white-space:nowrap;
}

.feature-card .text-link.text-link--cta > span:first-child,
.compact-card__body .text-link.text-link--cta > span:first-child,
.work-card .text-link.text-link--cta > span:first-child,
.works-card__more > span:first-child,
.service-index-card__link > span:first-child{
  min-width:0;
  white-space:nowrap;
}

.text-link--cta .text-link__arrow,
.works-card__arrow,
.service-index-card__link span:last-child{
  width:34px;
  height:34px;
  flex:0 0 34px;
  font-size:.92rem;
}

@media (max-width:620px){
  .feature-card .text-link.text-link--cta,
  .compact-card__body .text-link.text-link--cta,
  .work-card .text-link.text-link--cta,
  .works-card__more,
  .service-index-card__link{
    gap:8px;
  }

  .text-link--cta .text-link__arrow,
  .works-card__arrow,
  .service-index-card__link span:last-child{
    width:30px;
    height:30px;
    flex-basis:30px;
    font-size:.86rem;
  }
}


/* =========================================================
   COMPANY PAGE / PROFILE + OFFICE ACCESS Ver.0.8.51
   ========================================================= */
.ad-company-page{
  color:#20363d;
}

.ad-company-page .ad-table-wrap{
  border-radius:0 !important;
}

.ad-company-page .company-profile-table{
  border-radius:0 !important;
}

.ad-company-page .company-profile-table th{
  width:220px;
  white-space:nowrap;
}

.ad-company-page .company-profile-table td,
.ad-company-page .company-profile-table th{
  vertical-align:top;
}

/* Office / access */
.ad-company-page .ad-office{
  padding:64px 0;
  border-bottom:1px solid #dfe8e8;
}

.ad-company-page .ad-office:last-child{
  border-bottom:0;
}

.ad-company-page .ad-office__grid{
  display:grid;
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:56px;
  align-items:stretch;
}

.ad-company-page .ad-office__info{
  display:flex;
  flex-direction:column;
  min-width:0;
}

.ad-company-page .ad-office__kicker{
  display:block;
  margin-bottom:14px;
  color:#1c3e85;
  font-size:.82rem;
  font-weight:800;
  letter-spacing:.16em;
}

.ad-company-page .ad-office__info h3{
  margin:0 0 30px;
  color:#20363d;
  font-size:clamp(2rem,3vw,2.8rem);
  line-height:1.3;
}

.ad-company-page .ad-office__address{
  margin:0 0 26px;
  color:#687d83;
  font-size:1rem;
  line-height:1.9;
}

.ad-company-page .ad-office__access{
  margin:0 0 24px;
  color:#687d83;
  font-size:1rem;
  line-height:1.9;
}

.ad-company-page .ad-office__access strong{
  color:#20363d;
}

.ad-company-page .ad-office__map-link{
  display:inline-flex;
  align-items:center;
  align-self:flex-start;
  margin-bottom:32px;
  color:#173775;
  font-weight:800;
}

.ad-company-page .ad-office__map-link:hover{
  color:#1c3e85;
}

/* Two office photos */
.ad-company-page .ad-office__photos{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-top:auto;
}

.ad-company-page .ad-office__photo-placeholder{
  display:flex;
  align-items:center;
  justify-content:center;
  aspect-ratio:4/3;
  border:1px dashed #b7c9c9;
  background:#f7fbfb;
  color:#819398;
  font-size:.9rem;
  text-align:center;
}

.ad-company-page .ad-office__photos img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  display:block;
}

/* Google Map */
.ad-company-page .ad-office__map{
  min-width:0;
  min-height:520px;
}

.ad-company-page .ad-office__map iframe{
  width:100%;
  height:100%;
  min-height:520px;
  border:0;
  display:block;
}

@media (max-width:768px){
  .ad-company-page .company-profile-table th{
    width:120px;
    white-space:normal;
  }

  .ad-company-page .ad-office{
    padding:44px 0;
  }

  .ad-company-page .ad-office__grid{
    grid-template-columns:1fr;
    gap:28px;
  }

  .ad-company-page .ad-office__info h3{
    margin-bottom:22px;
    font-size:2rem;
  }

  .ad-company-page .ad-office__photos{
    gap:10px;
  }

  .ad-company-page .ad-office__map,
  .ad-company-page .ad-office__map iframe{
    min-height:360px;
  }
}


/* =========================================================
   TOP BUSINESS ENERGY / WHITE + SQUARE Ver.0.8.26
   ========================================================= */
#business-energy{
  background:#fff !important;
}

#business-energy .feature-card{
  border-radius:0 !important;
}

#business-energy .feature-card__image{
  border-radius:0 !important;
}


/* =========================================================
   BRAND COLOR UPDATE Ver.0.8.27
   ========================================================= */
.site-footer{
  background:#1c3e85 !important;
}
.site-footer__logo-image{
  display:block;
  width:auto;
  height:48px;
  max-width:220px;
  object-fit:contain;
}
@media (max-width:620px){
  .site-footer__logo-image{
    height:40px;
    max-width:190px;
  }
}


/* =========================================================
   CTA SIMPLIFY + ILLUSTRATION Ver.0.8.28
   ========================================================= */
.contact-cta__card--simple{
  padding:42px 48px;
}
.contact-cta__card--simple .contact-cta__top{
  padding-bottom:0;
}
.contact-cta__top--with-illust{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:32px;
  align-items:center;
}
.contact-cta__side{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:24px;
  min-width:0;
}
.contact-cta__illust{
  flex:0 0 auto;
}
.contact-cta__illust img{
  display:block;
  width:min(220px,18vw);
  max-width:220px;
  min-width:130px;
  height:auto;
}
.contact-cta__card--simple .contact-cta__button{
  flex:0 0 auto;
}
.contact-cta__card--simple .contact-cta__copy h2{
  margin-bottom:18px;
}
.contact-cta__card--simple .contact-cta__copy p{
  margin:0;
}

@media (max-width:1200px){
  .contact-cta__illust img{
    width:min(180px,16vw);
    min-width:110px;
  }
}

@media (max-width:900px){
  .contact-cta__card--simple{
    padding:32px 26px;
  }
  .contact-cta__top--with-illust{
    grid-template-columns:1fr;
    gap:20px;
  }
  .contact-cta__side{
    justify-content:space-between;
    gap:18px;
  }
  .contact-cta__illust img{
    width:120px;
    min-width:0;
  }
}

@media (max-width:620px){
  .contact-cta__card--simple{
    padding:28px 22px;
    border-radius:20px;
  }
  .contact-cta__top--with-illust{
    gap:18px;
  }
  .contact-cta__side{
    flex-direction:column;
    align-items:flex-start;
    gap:14px;
  }
  .contact-cta__illust img{
    width:110px;
  }
  .contact-cta__card--simple .contact-cta__button{
    width:100%;
  }
}


/* =========================================================
   CTA LAYOUT ADJUST Ver.0.8.29
   ========================================================= */
.contact-cta__top--with-illust{
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:40px;
  align-items:center;
}
.contact-cta__top--with-illust .contact-cta__copy{
  order:2;
}
.contact-cta__top--with-illust .contact-cta__button{
  order:3;
  justify-self:end;
}
.contact-cta__illust--lead{
  order:1;
  flex:0 0 auto;
}
.contact-cta__illust--lead img{
  display:block;
  width:min(165px,12vw);
  max-width:165px;
  min-width:110px;
  height:auto;
}

@media (max-width:1200px){
  .contact-cta__top--with-illust{
    gap:28px;
  }
  .contact-cta__illust--lead img{
    width:min(145px,11vw);
    max-width:145px;
    min-width:96px;
  }
}

@media (max-width:900px){
  .contact-cta__top--with-illust{
    grid-template-columns:120px 1fr;
    gap:20px 22px;
    align-items:center;
  }
  .contact-cta__illust--lead{
    grid-column:1;
    grid-row:1 / span 2;
    align-self:end;
  }
  .contact-cta__top--with-illust .contact-cta__copy{
    grid-column:2;
    grid-row:1;
  }
  .contact-cta__top--with-illust .contact-cta__button{
    grid-column:2;
    grid-row:2;
    justify-self:start;
  }
  .contact-cta__illust--lead img{
    width:100%;
    max-width:120px;
    min-width:0;
  }
}

@media (max-width:620px){
  .contact-cta__top--with-illust{
    grid-template-columns:1fr;
    gap:16px;
  }
  .contact-cta__illust--lead,
  .contact-cta__top--with-illust .contact-cta__copy,
  .contact-cta__top--with-illust .contact-cta__button{
    grid-column:auto;
    grid-row:auto;
  }
  .contact-cta__illust--lead{
    align-self:flex-start;
  }
  .contact-cta__illust--lead img{
    width:100px;
    max-width:100px;
  }
}


/* =========================================================
   CTA MOBILE REFINEMENT Ver.0.8.30
   ========================================================= */
@media (max-width: 620px){
  .contact-cta__top--with-illust{
    text-align:center;
    justify-items:center;
    gap:18px;
  }
  .contact-cta__top--with-illust .contact-cta__copy{
    order:1;
    text-align:center;
  }
  .contact-cta__illust--lead{
    order:2;
    align-self:center;
    margin-top:2px;
  }
  .contact-cta__top--with-illust .contact-cta__button{
    order:3;
    justify-self:center;
    width:min(100%, 360px);
  }
  .contact-cta__illust--lead img{
    width:138px;
    max-width:138px;
  }
}


/* =========================================================
   LOWER PAGE COMMON HERO CHARACTER Ver.0.8.31
   ========================================================= */
.subpage-hero--common .subpage-hero__img--common{
  width:min(100%,280px)!important;
  max-width:280px!important;
}

@media (max-width:900px){
  .subpage-hero--common .subpage-hero__img--common{
    width:min(100%,240px)!important;
    max-width:240px!important;
  }
}

@media (max-width:720px){
  .subpage-hero--common .subpage-hero__img--common{
    width:min(58%,190px)!important;
    max-width:190px!important;
  }
}


/* =========================================================
   LOWER PAGE HERO COMPACT Ver.0.8.32
   ========================================================= */
.subpage-hero.subpage-hero--common{
  padding:34px 0 44px;
}

.subpage-hero--common .container{
  width:min(calc(100% - 40px),900px)!important;
  max-width:900px!important;
}

.subpage-hero--common .subpage-hero__grid--common{
  grid-template-columns:minmax(0,1.35fr) minmax(180px,.65fr);
  gap:36px;
  padding-top:22px;
}

.subpage-hero--common .subpage-hero__media--common{
  min-height:240px;
}

.subpage-hero--common .subpage-hero__img--common{
  width:min(100%,220px)!important;
  max-width:220px!important;
}

@media (max-width:900px){
  .subpage-hero--common .container{
    width:min(calc(100% - 40px),820px)!important;
    max-width:820px!important;
  }

  .subpage-hero--common .subpage-hero__grid--common{
    grid-template-columns:minmax(0,1.2fr) minmax(160px,.6fr);
    gap:28px;
  }

  .subpage-hero--common .subpage-hero__media--common{
    min-height:200px;
  }

  .subpage-hero--common .subpage-hero__img--common{
    width:min(100%,190px)!important;
    max-width:190px!important;
  }
}

@media (max-width:720px){
  .subpage-hero.subpage-hero--common{
    padding:24px 0 32px;
  }

  .subpage-hero--common .container{
    width:calc(100% - 28px)!important;
    max-width:100%!important;
  }

  .subpage-hero--common .subpage-hero__grid--common{
    grid-template-columns:1fr;
    gap:14px;
    padding-top:18px;
  }

  .subpage-hero--common .subpage-hero__media--common{
    min-height:0;
  }

  .subpage-hero--common .subpage-hero__img--common{
    width:min(52%,150px)!important;
    max-width:150px!important;
  }
}


/* =========================================================
   LOWER PAGE HERO TIGHT + DECORATION OFF Ver.0.8.33
   ========================================================= */
.subpage-hero.subpage-hero--common{
  padding:18px 0 24px;
}

.subpage-hero.subpage-hero--common::after{
  display:none !important;
}

.subpage-hero--common .subpage-hero__grid--common{
  gap:28px;
  padding-top:12px;
}

.subpage-hero--common .subpage-hero__media--common{
  min-height:170px;
}

.subpage-hero--common .subpage-hero__img--common{
  width:min(100%,185px) !important;
  max-width:185px !important;
}

@media (max-width:900px){
  .subpage-hero.subpage-hero--common{
    padding:16px 0 22px;
  }

  .subpage-hero--common .subpage-hero__grid--common{
    gap:22px;
    padding-top:10px;
  }

  .subpage-hero--common .subpage-hero__media--common{
    min-height:155px;
  }

  .subpage-hero--common .subpage-hero__img--common{
    width:min(100%,170px) !important;
    max-width:170px !important;
  }
}

@media (max-width:720px){
  .subpage-hero.subpage-hero--common{
    padding:18px 0 24px;
  }

  .subpage-hero--common .subpage-hero__grid--common{
    gap:12px;
    padding-top:12px;
  }

  .subpage-hero--common .subpage-hero__media--common{
    min-height:0;
  }

  .subpage-hero--common .subpage-hero__img--common{
    width:min(48%,130px) !important;
    max-width:130px !important;
  }
}


/* =========================================================
   TOP HERO COPY POSITION / VIDEO LOGO AVOIDANCE Ver.0.8.35
   ========================================================= */
@media (min-width:901px){
  .hero-video__copy{
    width:min(650px,52%);
    max-width:650px;
    padding-right:20px;
  }

  .hero--video h1{
    max-width:650px;
    font-size:clamp(2.9rem,4vw,4.45rem);
    line-height:1.16;
  }

  .hero--video .hero-video__copy > p{
    max-width:600px;
    font-size:1rem;
    line-height:1.9;
  }

  .hero--video .hero__actions{
    margin-top:30px;
  }
}


/* =========================================================
   TOP HERO COPY FINE TUNE / VIDEO LOGO CLEARANCE Ver.0.8.36
   ========================================================= */
@media (min-width:901px){
  .hero-video__copy{
    width:48%;
    max-width:600px;
    padding-right:12px;
  }

  .hero--video h1{
    max-width:600px;
    font-size:clamp(2.7rem,3.65vw,4rem);
    line-height:1.14;
    margin-bottom:24px;
  }

  .hero--video .hero-video__copy > p{
    max-width:520px;
    font-size:.96rem;
    line-height:1.85;
  }

  .hero--video .hero__actions{
    margin-top:28px;
  }
}


/* =========================================================
   TOP HERO DESCRIPTION 3 LINES Ver.0.8.37
   ========================================================= */
.hero--video .fv-copy-sub{
  max-width:36ch;
  line-height:1.9;
}

@media (max-width:768px){
  .hero--video .fv-copy-sub{
    max-width:100%;
    line-height:1.8;
  }
}


/* =========================================================
   TOP HERO COPY RENEWAL Ver.0.8.39
   ========================================================= */
.hero-reveal--5{
  animation-delay:.74s;
}

.hero--video .fv-eyebrow{
  margin:0 0 16px;
  color:rgba(255,255,255,.96);
  font-size:.76rem;
  line-height:1.4;
  font-weight:900;
  letter-spacing:.16em;
}

.hero--video .fv-copy-sub{
  max-width:540px;
}

.hero--video .fv-copy-sub > span{
  display:block;
}

@media (min-width:901px){
  .hero--video .fv-copy-sub > span{
    white-space:nowrap;
  }
}

@media (max-width:900px){
  .hero--video .fv-eyebrow{
    margin-bottom:14px;
    font-size:.72rem;
    letter-spacing:.13em;
  }

  .hero--video .fv-copy-sub{
    max-width:100%;
  }

  .hero--video .fv-copy-sub > span{
    white-space:normal;
  }
}


/* =========================================================
   TOP HERO EYEBROW MOBILE BREAK Ver.0.8.41
   ========================================================= */
.hero--video .fv-eyebrow > span{
  display:inline;
}

.hero--video .fv-eyebrow > span + span::before{
  content:" ";
}

@media (max-width:620px){
  .hero--video .fv-eyebrow > span{
    display:block;
  }

  .hero--video .fv-eyebrow > span + span::before{
    content:none;
  }
}


/* =========================================================
   TOP FV VIDEO OVERLAY LIGHTER Ver.0.8.44
   動画が見えやすいよう、上に重ねているトーンを弱める
   ========================================================= */
.hero-video__overlay{
  background:
    linear-gradient(
      90deg,
      rgba(8,26,34,.60) 0%,
      rgba(8,26,34,.42) 34%,
      rgba(8,26,34,.14) 66%,
      rgba(8,26,34,.06) 100%
    ),
    linear-gradient(
      0deg,
      rgba(8,24,31,.18) 0%,
      rgba(8,24,31,0) 45%
    );
}

@media (max-width:900px){
  .hero-video__overlay{
    background:
      linear-gradient(
        90deg,
        rgba(10,29,35,.58) 0%,
        rgba(10,29,35,.38) 58%,
        rgba(10,29,35,.20) 100%
      ),
      linear-gradient(
        0deg,
        rgba(10,29,35,.28) 0%,
        rgba(10,29,35,.01) 55%
      );
  }
}

@media (max-width:620px){
  .hero-video__overlay{
    background:
      linear-gradient(
        180deg,
        rgba(10,28,34,.08) 0%,
        rgba(10,28,34,.20) 40%,
        rgba(10,28,34,.62) 100%
      );
  }
}


/* =========================================================
   ENERGY PRODUCTS PAGE CONTENT WIDTH Ver.0.8.45
   太陽光・省エネ関連商品の卸販売事業ページの本文幅を
   太陽光発電EPCページと同等の1080pxに揃える
   ========================================================= */
.html-page-content .ad-service-page{
  width:100%;
  max-width:none;
}

.html-page-content .ad-service-page > .ad-sub-section{
  width:100%;
  padding-left:max(20px, calc((100% - 1080px) / 2));
  padding-right:max(20px, calc((100% - 1080px) / 2));
}

@media (max-width:620px){
  .html-page-content .ad-service-page > .ad-sub-section{
    padding-left:14px;
    padding-right:14px;
  }
}


/* =========================================================
   GLOBAL NAVIGATION UPDATE Ver.0.8.46
   ========================================================= */
@media (min-width:901px){
  .mega-menu--v0846 .mega-menu__content{
    display:block;
  }

  .mega-menu--v0846 .mega-menu__services-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:6px 24px;
  }

  .mega-menu--v0846 .mega-menu__link{
    min-height:56px;
  }
}

@media (min-width:901px) and (max-width:1180px){
  .primary-nav{
    gap:16px;
  }

  .primary-nav__list{
    gap:15px;
    font-size:.86rem;
  }

  .primary-nav__contact{
    padding-inline:18px;
  }
}

@media (max-width:900px){
  .mega-menu--v0846 .mega-menu__content{
    display:block;
  }

  .mega-menu--v0846 .mega-menu__services-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:0;
  }
}


/* =========================================================
   FOOTER NAVIGATION SYNC Ver.0.8.47
   グローバルナビと同じ項目構成に統一
   ========================================================= */
.site-footer__grid{
  grid-template-columns:minmax(260px,1.15fr) minmax(360px,1.55fr) minmax(220px,.85fr);
  gap:48px;
}

.site-footer__services .site-footer__service-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:30px;
  row-gap:2px;
}

.site-footer__services .site-footer__service-list li,
.site-footer__menu li{
  margin:.38rem 0;
}

.site-footer__services h3 a:hover{
  color:#fff;
}

@media (max-width:1000px){
  .site-footer__grid{
    grid-template-columns:1.1fr 1.4fr;
    gap:36px;
  }

  .site-footer__menu{
    grid-column:2;
  }
}

@media (max-width:620px){
  .site-footer__grid{
    grid-template-columns:1fr;
  }

  .site-footer__menu{
    grid-column:auto;
  }

  .site-footer__services .site-footer__service-list{
    grid-template-columns:1fr;
  }
}


/* =========================================================
   TOP FV COPY DELAYED REVEAL Ver.0.8.48
   動画ロゴを先に見せ、約2秒後からコピーを順番に表示
   ========================================================= */
.hero--video .hero-reveal{
  animation-duration:.9s;
  animation-timing-function:cubic-bezier(.16,.7,.28,1);
}

.hero--video .hero-reveal--1{animation-delay:2.00s;}
.hero--video .hero-reveal--2{animation-delay:2.16s;}
.hero--video .hero-reveal--3{animation-delay:2.32s;}
.hero--video .hero-reveal--4{animation-delay:2.52s;}
.hero--video .hero-reveal--5{animation-delay:2.72s;}

@media (prefers-reduced-motion:reduce){
  .hero--video .hero-reveal{
    animation:none!important;
    opacity:1!important;
    transform:none!important;
  }
}


/* =========================================================
   LOWER PAGE HERO TEXT ONLY Ver.0.8.50
   右側イラストを全下層ページから削除
   ========================================================= */
.subpage-hero--common .subpage-hero__grid--common{
  grid-template-columns:1fr !important;
  gap:0 !important;
}

.subpage-hero--common .subpage-hero__titleblock{
  width:100%;
  max-width:760px !important;
}

.subpage-hero--common .subpage-hero__media--common{
  display:none !important;
}

@media (max-width:900px){
  .subpage-hero--common .subpage-hero__grid--common{
    grid-template-columns:1fr !important;
  }

  .subpage-hero--common .subpage-hero__titleblock{
    max-width:100% !important;
  }
}


/* Company page cleanup Ver.0.8.51 */
.ad-company-page .ad-section-head > p{
  max-width:760px;
  margin:14px 0 0;
  color:#687d83;
  line-height:1.9;
}

.ad-company-page .company-profile-table a{
  color:#1c3e85;
  font-weight:700;
}

.ad-company-page .company-profile-table a:hover{
  text-decoration:underline;
}

.ad-company-page .ad-office__address,
.ad-company-page .ad-office__access{
  white-space:normal;
}

@media (max-width:768px){
  .ad-company-page .ad-section-head > p{
    margin-top:10px;
    line-height:1.8;
  }
}
