/*
Theme Name: STS Widen Complete v12.5
Theme URI: https://sample.stswiden.jp/
Author: STS Widen
Description: STS Widen complete test theme. STS Widen structure with an editorial, spacious premium design.
Version: 12.5.0
Text Domain: stswiden-complete
*/

:root{
  --c1:#2d5d89;
  --c2:#b8c9e7;
  --c3:#eef4fb;
  --ink:#17212c;
  --muted:#6a7480;
  --line:#dde4eb;
  --white:#fff;
  --soft:#f7f9fb;
  --max:1360px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--ink);font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;line-height:1.95;letter-spacing:.045em}
body.menu-open{overflow:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
.wrap{width:min(calc(100% - 72px),var(--max));margin:auto}
.narrow{width:min(calc(100% - 72px),980px);margin:auto}
.serif{font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif}
.en{font-family:Georgia,"Times New Roman",serif}
.kicker{margin:0 0 16px;font-family:Georgia,serif;font-size:13px;letter-spacing:.13em;color:var(--c1)}
.title{margin:0;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-weight:500;font-size:clamp(38px,4.7vw,68px);line-height:1.5;letter-spacing:.055em}
.copy{font-size:14px;color:#56616c}
.more{display:inline-flex;align-items:center;gap:14px;margin-top:22px;padding-bottom:5px;border-bottom:1px solid #aeb9c4;font-size:11px;letter-spacing:.12em}
.more:after{content:"→";font-size:16px;transition:.25s}.more:hover:after{transform:translateX(5px)}
.reveal{opacity:0;transform:translateY(28px);transition:.85s ease}
.reveal.on{opacity:1;transform:none}

/* header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid rgba(220,228,235,.72)}
.header-row{height:88px;display:flex;align-items:center;justify-content:space-between;gap:30px}
.brand img{width:135px;height:auto}
.nav ul{display:flex;align-items:center;gap:25px;margin:0;padding:0;list-style:none}
.nav a{font-size:12px;white-space:nowrap}
.nav a:hover{color:var(--c1)}
.menu-btn{display:none;border:0;background:none;width:42px;height:42px;position:relative}
.menu-btn span{position:absolute;left:8px;width:26px;height:1px;background:var(--ink)}
.menu-btn span:first-child{top:16px}.menu-btn span:last-child{top:25px}

/* HOME HERO: typography first, no portrait */
.home-hero{min-height:690px;display:flex;align-items:center;position:relative;overflow:hidden;background:#fff}
.home-hero:before{content:"";position:absolute;width:760px;height:760px;border-radius:50%;border:1px solid rgba(45,93,137,.12);right:-250px;top:-260px}
.home-hero:after{content:"";position:absolute;width:460px;height:460px;border-radius:50%;background:var(--c3);right:5%;bottom:-300px;opacity:.75}
.hero-inner{position:relative;z-index:2;text-align:center;padding:110px 0 100px}
.hero-logo{width:190px;margin:0 auto 55px}
.home-hero h1{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-weight:500;font-size:clamp(45px,6vw,88px);line-height:1.5;letter-spacing:.07em;margin:0}
.hero-en{font-family:Georgia,serif;font-size:clamp(16px,2vw,27px);letter-spacing:.08em;color:var(--c1);margin:24px 0 0}
.hero-note{margin:35px auto 0;max-width:610px;font-size:13px;color:#67727c}
.hero-scroll{margin-top:55px;font-size:9px;letter-spacing:.22em;color:#8a949d}

/* home intro */
.home-about{padding:145px 0 175px}
.about-head{text-align:center;max-width:760px;margin:auto}
.about-head .copy{max-width:650px;margin:30px auto 0}
.about-visuals{height:680px;position:relative;margin-top:80px}
.about-visuals figure{position:absolute;margin:0;overflow:hidden}
.about-visuals img{width:100%;height:100%;object-fit:cover}
.about-visuals .a{left:2%;top:100px;width:31%;height:450px;border-radius:48% 52% 44% 56% / 42% 38% 62% 58%}
.about-visuals .b{left:35%;top:0;width:30%;height:590px;border-radius:46% 54% 48% 52% / 35% 44% 56% 65%}
.about-visuals .c{right:2%;top:100px;width:31%;height:450px;border-radius:54% 46% 57% 43% / 47% 41% 59% 53%}
.about-link{text-align:center}

/* service overview */
.home-services{padding:120px 0 150px;background:var(--soft)}
.bigword{font-family:Georgia,serif;font-size:clamp(76px,11vw,155px);line-height:.8;color:#e6edf4;letter-spacing:-.04em}
.home-service-head{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:70px;margin-bottom:100px}
.home-service-list{border-top:1px solid var(--line)}
.home-service-row{display:grid;grid-template-columns:130px 1fr 260px 40px;gap:30px;align-items:center;padding:35px 0;border-bottom:1px solid var(--line)}
.home-service-row .num{font-family:Georgia,serif;color:var(--c1)}
.home-service-row h3{font-family:"Yu Mincho",serif;font-weight:500;font-size:27px;margin:0}
.home-service-row p{font-size:12px;color:#6c7780;margin:0}
.home-service-row .arrow{font-size:18px}

/* price teaser */
.price-teaser{padding:140px 0}
.price-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:85px;align-items:start}
.price-list{border-top:1px solid var(--line)}
.price-line{display:grid;grid-template-columns:1fr auto;gap:25px;padding:25px 0;border-bottom:1px solid var(--line)}
.price-line span:first-child{font-size:14px}
.price-line strong{font-family:Georgia,serif;font-weight:400;font-size:18px;color:var(--c1)}
.price-note{font-size:11px;color:#89929a;margin-top:14px}

/* News */
.home-news{padding:120px 0 145px;background:var(--soft)}
.news-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:55px}
.news-list{border-top:1px solid var(--line)}
.news-row{display:grid;grid-template-columns:150px 1fr 30px;gap:25px;align-items:center;padding:25px 0;border-bottom:1px solid var(--line)}
.news-date{font-family:Georgia,serif;font-size:12px;color:#77838e}
.news-title{font-size:14px}

/* shared sub page */
.page-hero{padding:105px 0 90px;border-bottom:1px solid var(--line)}
.page-hero .bigword{margin-bottom:15px}
.page-hero h1{margin:0;font-family:"Yu Mincho",serif;font-weight:500;font-size:clamp(38px,5vw,68px)}
.page-hero p{max-width:650px;font-size:13px;color:#69747e}
.section{padding:120px 0}
.section.soft{background:var(--soft)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.photo{overflow:hidden}
.photo img{width:100%;height:560px;object-fit:cover}
.photo.curve-a{border-radius:0 42% 0 0}
.photo.curve-b{border-radius:42% 0 0 0}
.lead-block h2{font-family:"Yu Mincho",serif;font-weight:500;font-size:clamp(31px,3.5vw,50px);line-height:1.55;margin:0 0 22px}
.lead-block p{font-size:14px;color:#5d6872}

/* prices */
.price-table{width:100%;border-collapse:collapse;border-top:1px solid var(--line)}
.price-table th,.price-table td{padding:18px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.price-table th{width:32%;font-size:13px;font-weight:500}
.price-table td{font-size:13px;color:#5f6973}
.price-table td:last-child{width:150px;text-align:right;color:var(--c1);font-family:Georgia,serif;font-size:16px;white-space:nowrap}
.notice{padding:20px 24px;background:var(--c3);font-size:12px;color:#5c6874;margin-top:25px}

/* web plans */
.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:45px}
.plan{padding:36px 30px;border:1px solid var(--line);background:#fff}
.plan .label{font-family:Georgia,serif;color:var(--c1);font-size:12px;letter-spacing:.1em}
.plan h3{font-family:"Yu Mincho",serif;font-weight:500;font-size:25px;margin:16px 0 8px}
.plan .price{font-family:Georgia,serif;font-size:30px;color:var(--c1);margin:18px 0}
.plan p,.plan li{font-size:12px;color:#68737d}
.plan ul{padding-left:18px}

/* shop */
.shop-links{display:grid;grid-template-columns:1fr 1fr;gap:25px}
.shop-card{padding:45px;border:1px solid var(--line);min-height:260px}
.shop-card h3{font-family:"Yu Mincho",serif;font-size:28px;font-weight:500;margin:0 0 15px}
.shop-card p{font-size:13px;color:#66717a}

/* profile - user portrait only here */
.profile-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:80px;align-items:start}
.profile-photo{background:var(--soft);padding:25px}
.profile-photo img{width:100%;height:auto;object-fit:contain}
.company-table{width:100%;border-collapse:collapse;border-top:1px solid var(--line)}
.company-table th,.company-table td{padding:17px 8px;border-bottom:1px solid var(--line);font-size:13px;text-align:left;vertical-align:top}
.company-table th{width:180px;font-weight:500}

/* contact */
.contact-box{max-width:900px;margin:auto}
.contact-form label{display:block;font-size:12px;margin:0 0 8px}
.contact-form input,.contact-form textarea{width:100%;border:0;border-bottom:1px solid #bdc8d1;background:transparent;padding:13px 5px;font-size:14px;outline:none}
.contact-form textarea{min-height:150px;resize:vertical}
.field{margin-bottom:32px}
.submit{border:0;background:var(--c1);color:#fff;border-radius:999px;padding:16px 40px;cursor:pointer}
.contact-meta{margin-top:55px;padding-top:35px;border-top:1px solid var(--line);font-size:13px;color:#66717a}

/* footer */
.site-footer{padding:65px 0;background:#fff;border-top:1px solid var(--line)}
.footer-grid{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:end}
.footer-logo{width:135px}
.footer-nav{display:flex;gap:20px;flex-wrap:wrap;margin-top:25px}
.footer-nav a{font-size:11px}
.copyr{font-size:10px;color:#8a949e}

/* generic WP */
.content-area{padding:110px 0}
.article{width:min(calc(100% - 50px),900px);margin:auto}
.article h1{font-family:"Yu Mincho",serif;font-size:clamp(38px,5vw,60px);font-weight:500}
.entry-content a{color:var(--c1);text-decoration:underline}

/* mobile */
@media(max-width:980px){
 .nav{display:none;position:fixed;inset:0;background:rgba(255,255,255,.985);padding:120px 35px}
 .nav.open{display:block}.nav ul{flex-direction:column;align-items:flex-start;gap:22px}.nav a{font-size:20px}
 .menu-btn{display:block;z-index:70}
 .home-service-head,.price-grid,.two-col,.profile-grid{grid-template-columns:1fr}
 .home-service-row{grid-template-columns:80px 1fr 30px}.home-service-row p{display:none}
 .plan-grid{grid-template-columns:1fr}
 .shop-links{grid-template-columns:1fr}
}
@media(max-width:680px){
 .wrap,.narrow{width:calc(100% - 30px)}
 .header-row{height:72px}.brand img{width:105px}
 .home-hero{min-height:640px}.hero-inner{padding:85px 0 70px}.hero-logo{width:145px;margin-bottom:40px}
 .home-hero h1{font-size:42px}.hero-en{font-size:16px}
 .home-about{padding:90px 0 110px}
 .about-visuals{height:660px;margin-top:55px}
 .about-visuals .a{left:-5%;top:0;width:58%;height:320px}
 .about-visuals .b{left:41%;top:135px;width:55%;height:380px}
 .about-visuals .c{right:-8%;top:400px;width:57%;height:245px}
 .home-services,.price-teaser,.home-news,.section{padding:85px 0}
 .bigword{font-size:78px}
 .home-service-row{grid-template-columns:55px 1fr 20px;padding:25px 0}.home-service-row h3{font-size:21px}
 .page-hero{padding:75px 0 60px}.photo img{height:380px}
 .price-table th,.price-table td{display:block;width:100%!important;text-align:left!important;padding:10px 4px}
 .price-table th{padding-top:20px;border-bottom:0}.price-table td:last-child{padding-bottom:18px}
 .footer-grid{grid-template-columns:1fr}
}


/* ===== v5.2: dynamic hero + software development ===== */
@keyframes stsFloatA {
  0%,100% { transform: translateY(0px) rotate(0deg); }
  50% { transform: translateY(-12px) rotate(-1deg); }
}
@keyframes stsFloatB {
  0%,100% { transform: translateY(0px); }
  50% { transform: translateY(14px); }
}
@keyframes stsPulse {
  0%,100% { opacity:.42; transform: scale(1); }
  50% { opacity:.72; transform: scale(1.05); }
}
@keyframes stsDrift {
  0% { transform: translateX(0); }
  100% { transform: translateX(26px); }
}

.home-hero{
  min-height: 820px;
  display:flex;
  align-items:center;
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 16% 18%, rgba(184,201,231,.36), transparent 24%),
    radial-gradient(circle at 83% 75%, rgba(45,93,137,.10), transparent 23%),
    linear-gradient(180deg, #ffffff 0%, #f5f8fc 100%);
}
.home-hero:before{
  content:"";
  position:absolute;
  inset:auto auto -130px -120px;
  width:420px;height:420px;
  background:var(--c3);
  border-radius:50%;
  opacity:.9;
  animation:stsPulse 8s ease-in-out infinite;
}
.home-hero:after{
  content:"";
  position:absolute;
  right:-90px; top:-90px;
  width:420px; height:420px;
  border:1px solid rgba(45,93,137,.14);
  border-radius:50%;
  animation:stsPulse 9s ease-in-out infinite;
}
.hero-inner{
  padding: 85px 0 70px;
  display:grid;
  grid-template-columns: 46% 54%;
  align-items:center;
  gap:40px;
  width:min(calc(100% - 72px), var(--max));
  margin:auto;
  text-align:left;
}
.hero-copy{
  position:relative;
  z-index:3;
}
.hero-logo{
  width:180px;
  margin:0 0 28px;
}
.home-hero h1{
  font-size:clamp(48px, 6vw, 92px);
  line-height:1.38;
  letter-spacing:.06em;
}
.hero-en{
  margin:20px 0 0;
  font-size:clamp(16px, 2vw, 26px);
  color:var(--c1);
}
.hero-note{
  margin:28px 0 0;
  max-width:580px;
  font-size:14px;
  color:#63707c;
}
.hero-actions{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-top:34px;
}
.hero-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:190px;
  height:56px;
  border-radius:999px;
  border:1px solid #b8c4d0;
  padding:0 26px;
  font-size:12px;
  letter-spacing:.09em;
  background:rgba(255,255,255,.82);
}
.hero-btn.primary{
  background:var(--c1);
  border-color:var(--c1);
  color:#fff;
  box-shadow:0 18px 40px rgba(45,93,137,.18);
}
.hero-scroll{
  margin-top:42px;
  font-size:9px;
  letter-spacing:.22em;
  color:#8a949d;
}
.hero-visual{
  position:relative;
  height:640px;
}
.hero-grid-lines{
  position:absolute;
  inset:65px 10px 25px 70px;
  background-image:
    linear-gradient(rgba(45,93,137,.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(45,93,137,.08) 1px, transparent 1px);
  background-size:32px 32px;
  mask-image:linear-gradient(135deg, rgba(0,0,0,.95), rgba(0,0,0,.35));
  animation:stsDrift 10s linear infinite alternate;
}
.hero-card-main,
.hero-card-sub,
.hero-card-mini{
  position:absolute;
  overflow:hidden;
  box-shadow:0 28px 65px rgba(18,33,49,.10);
  background:#fff;
}
.hero-card-main{
  right:34px; top:38px;
  width:64%; height:74%;
  border-radius:44px 44px 130px 44px;
  animation:stsFloatA 8s ease-in-out infinite;
}
.hero-card-sub{
  left:10px; bottom:84px;
  width:43%; height:42%;
  border-radius:36px 110px 36px 36px;
  animation:stsFloatB 7s ease-in-out infinite;
}
.hero-card-mini{
  right:18px; bottom:18px;
  width:34%; height:24%;
  border-radius:28px;
  padding:22px 24px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  background:linear-gradient(135deg, rgba(45,93,137,.98), rgba(75,128,177,.95));
  color:#fff;
  animation:stsFloatA 9s ease-in-out infinite;
}
.hero-card-main img,
.hero-card-sub img{
  width:100%; height:100%; object-fit:cover;
}
.hero-badge{
  position:absolute;
  left:24px; top:22px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:34px;
  padding:0 14px;
  border-radius:999px;
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(8px);
  font-size:11px;
  letter-spacing:.08em;
  color:var(--c1);
}
.hero-mini-label{
  font-family:Georgia,serif;
  font-size:12px;
  letter-spacing:.08em;
  opacity:.82;
}
.hero-mini-title{
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:28px;
  line-height:1.3;
}
.hero-mini-copy{
  font-size:12px;
  color:rgba(255,255,255,.88);
}
.home-service-row{
  grid-template-columns:130px 1fr 300px 40px;
}
@media(max-width:980px){
  .hero-inner{
    grid-template-columns:1fr;
    padding:70px 0 60px;
    gap:30px;
    text-align:left;
  }
  .hero-visual{height:520px;}
  .hero-card-main{right:20px; width:62%; height:72%;}
  .hero-card-sub{left:0; bottom:70px; width:46%; height:40%;}
}
@media(max-width:680px){
  .home-hero{min-height:780px;}
  .hero-inner{
    width:calc(100% - 30px);
    padding:55px 0 45px;
  }
  .hero-logo{width:128px; margin-bottom:20px;}
  .home-hero h1{font-size:42px;}
  .hero-visual{height:420px;}
  .hero-grid-lines{inset:60px 0 10px 20px;}
  .hero-card-main{
    right:6px; top:30px; width:64%; height:68%;
    border-radius:28px 28px 90px 28px;
  }
  .hero-card-sub{
    left:0; bottom:64px; width:46%; height:37%;
    border-radius:26px 70px 26px 26px;
  }
  .hero-card-mini{
    right:0; bottom:8px; width:48%; height:24%;
    padding:16px 16px;
  }
  .hero-mini-title{font-size:20px;}
}


/* ===== v5.3 contact methods / footer map / news removed ===== */
.contact-methods{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin-bottom:25px;
}
.contact-method{
  min-height:150px;
  border:1px solid var(--line);
  padding:28px 24px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:7px;
  transition:.25s;
  background:#fff;
}
.contact-method:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 45px rgba(24,39,55,.08);
}
.contact-method.line{
  background:linear-gradient(135deg,#f4fbf6,#ffffff);
}
.contact-method .method-label{
  font-family:Georgia,serif;
  font-size:12px;
  letter-spacing:.12em;
  color:var(--c1);
}
.contact-method strong{
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:22px;
  font-weight:500;
}
.contact-method small{
  color:#7a858f;
  font-size:11px;
}
.contact-line-note{
  font-size:11px;
  color:#8a949d;
  margin:0 0 50px;
}

.site-footer{
  padding:0 0 60px;
  background:#fff;
  border-top:1px solid var(--line);
}
.footer-map-wrap{
  display:grid;
  grid-template-columns:.42fr .58fr;
  gap:0;
  margin-bottom:58px;
  background:var(--soft);
}
.footer-map-copy{
  padding:55px 48px;
}
.footer-map-copy h2{
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:32px;
  font-weight:500;
  margin:0 0 22px;
}
.footer-map-copy p{
  font-size:12px;
  color:#68737d;
}
.footer-map{
  min-height:360px;
}
.footer-map iframe{
  display:block;
  width:100%;
  min-height:360px;
}
.footer-grid{
  padding-top:0;
}

@media(max-width:980px){
  .contact-methods{grid-template-columns:1fr;}
  .footer-map-wrap{grid-template-columns:1fr;}
  .footer-map-copy{padding:40px 30px;}
  .footer-map,.footer-map iframe{min-height:300px;}
}


/* ===== v5.4 big-image hero with motion ===== */
@keyframes stsHeroZoom {
  0% { transform: scale(1.02); }
  100% { transform: scale(1.10); }
}
@keyframes stsFloatY1 {
  0%,100% { transform: translateY(0px); }
  50% { transform: translateY(-12px); }
}
@keyframes stsFloatY2 {
  0%,100% { transform: translateY(0px); }
  50% { transform: translateY(14px); }
}
@keyframes stsGridMove {
  0% { transform: translateX(0px) translateY(0px); }
  100% { transform: translateX(24px) translateY(12px); }
}

.home-hero{
  padding:38px 0 0;
  min-height:auto;
  display:block;
  background:linear-gradient(180deg,#ffffff 0%,#f6f9fc 100%);
}
.home-hero:before,
.home-hero:after{
  display:none;
}
.hero-wrap{
  width:min(calc(100% - 72px), var(--max));
  margin:0 auto;
  display:grid;
  grid-template-columns:57% 43%;
  gap:42px;
  align-items:center;
  padding:36px 0 72px;
}
.hero-main-image{
  position:relative;
  min-height:700px;
  border-radius:46px;
  overflow:hidden;
  box-shadow:0 28px 75px rgba(20,34,48,.12);
  background:#dfe8f2;
}
.hero-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  animation:stsHeroZoom 16s ease-in-out infinite alternate;
}
.hero-image-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(135deg, rgba(15,28,40,.22), rgba(45,93,137,.08) 55%, rgba(255,255,255,.04));
}
.hero-grid{
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.12) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.12) 1px, transparent 1px);
  background-size:34px 34px;
  mix-blend-mode:screen;
  animation:stsGridMove 12s linear infinite alternate;
}
.hero-copy-block{
  position:relative;
  padding:20px 0;
}
.hero-kicker{
  margin:0 0 16px;
  font-family:Georgia,serif;
  font-size:12px;
  letter-spacing:.16em;
  color:var(--c1);
}
.hero-logo{
  width:170px;
  margin:0 0 26px;
}
.home-hero h1{
  font-size:clamp(48px, 5.7vw, 86px);
  line-height:1.42;
  letter-spacing:.06em;
}
.hero-en{
  margin-top:18px;
  font-family:Georgia,serif;
  font-size:clamp(17px,1.8vw,26px);
  color:var(--c1);
}
.hero-note{
  margin:26px 0 0;
  max-width:520px;
  font-size:14px;
  color:#5e6974;
}
.hero-actions{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-top:34px;
}
.hero-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:190px;
  height:56px;
  padding:0 24px;
  border-radius:999px;
  border:1px solid #bcc7d2;
  background:#fff;
  font-size:12px;
  letter-spacing:.08em;
}
.hero-btn.primary{
  background:var(--c1);
  border-color:var(--c1);
  color:#fff;
  box-shadow:0 16px 40px rgba(45,93,137,.16);
}
.hero-scroll{
  margin-top:48px;
  font-size:9px;
  letter-spacing:.24em;
  color:#87919a;
}
.hero-floating{
  position:absolute;
  z-index:3;
  min-width:220px;
  padding:18px 20px;
  border-radius:24px;
  background:rgba(255,255,255,.86);
  backdrop-filter:blur(10px);
  box-shadow:0 20px 48px rgba(18,33,49,.14);
}
.hero-floating strong{
  display:block;
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-size:24px;
  line-height:1.35;
  color:#1d2f42;
}
.hero-floating small{
  display:block;
  margin-top:7px;
  font-size:11px;
  color:#61707c;
}
.hero-floating-label{
  display:block;
  margin-bottom:8px;
  font-family:Georgia,serif;
  font-size:11px;
  letter-spacing:.12em;
  color:var(--c1);
}
.hero-floating-a{
  left:26px;
  bottom:30px;
  animation:stsFloatY1 7s ease-in-out infinite;
}
.hero-floating-b{
  right:28px;
  top:30px;
  animation:stsFloatY2 8s ease-in-out infinite;
}
.hero-floating-c{
  right:34px;
  bottom:34px;
  min-width:auto;
  padding:14px 18px;
  border-radius:999px;
  background:rgba(45,93,137,.92);
  color:#fff;
  animation:stsFloatY1 9s ease-in-out infinite;
}
.hero-floating-c strong{
  font-size:15px;
  color:#fff;
  font-family:Georgia,serif;
}

/* software page support */
@media(max-width:980px){
  .hero-wrap{
    grid-template-columns:1fr;
    gap:30px;
    width:min(calc(100% - 72px), var(--max));
  }
  .hero-main-image{min-height:520px;}
}
@media(max-width:680px){
  .home-hero{padding-top:18px;}
  .hero-wrap{
    width:calc(100% - 30px);
    padding:18px 0 48px;
    gap:24px;
  }
  .hero-main-image{
    min-height:420px;
    border-radius:28px;
  }
  .hero-logo{width:125px; margin-bottom:18px;}
  .home-hero h1{font-size:40px;}
  .hero-actions{margin-top:26px;}
  .hero-btn{
    min-width:unset;
    width:100%;
  }
  .hero-floating{
    min-width:160px;
    padding:12px 14px;
    border-radius:18px;
  }
  .hero-floating strong{font-size:16px;}
  .hero-floating small{font-size:10px;}
  .hero-floating-a{left:12px; bottom:12px;}
  .hero-floating-b{right:12px; top:12px;}
  .hero-floating-c{right:12px; bottom:78px;}
}


/* ===== v5.5 AM-inspired hero ===== */
@keyframes amImageMove {
  0% { transform: scale(1.02) translate3d(0,0,0); }
  100% { transform: scale(1.08) translate3d(-12px,-6px,0); }
}
@keyframes amFloatSoftA {
  0%,100% { transform: translateY(0px); opacity:.9; }
  50% { transform: translateY(-12px); opacity:1; }
}
@keyframes amFloatSoftB {
  0%,100% { transform: translateY(0px); opacity:.75; }
  50% { transform: translateY(14px); opacity:1; }
}

.home-hero{
  padding:42px 0 0;
  background:#fff;
}
.hero-wrap,
.hero-main-image,
.hero-copy-block,
.hero-floating,
.hero-image,
.hero-image-overlay,
.hero-grid{
  all: unset;
}
.hero-am-wrap{
  width:min(calc(100% - 72px), var(--max));
  margin:0 auto;
  display:grid;
  grid-template-columns: 42% 58%;
  gap:54px;
  align-items:center;
  padding:26px 0 78px;
}
.hero-am-copy{
  position:relative;
  padding:10px 0;
}
.hero-logo{
  width:170px;
  margin:0 0 24px;
}
.hero-kicker{
  margin:0 0 16px;
  font-family:Georgia,serif;
  font-size:12px;
  letter-spacing:.16em;
  color:var(--c1);
}
.home-hero h1{
  margin:0;
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-weight:500;
  font-size:clamp(46px,5.7vw,86px);
  line-height:1.5;
  letter-spacing:.07em;
}
.hero-en{
  margin:18px 0 0;
  font-family:Georgia,serif;
  font-size:clamp(18px,2vw,28px);
  color:var(--c1);
  letter-spacing:.05em;
}
.hero-note{
  margin:28px 0 0;
  max-width:520px;
  font-size:14px;
  color:#606b75;
}
.hero-actions{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-top:32px;
}
.hero-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:190px;
  height:56px;
  padding:0 24px;
  border-radius:999px;
  border:1px solid #bcc7d2;
  background:#fff;
  font-size:12px;
  letter-spacing:.08em;
}
.hero-btn.primary{
  background:var(--c1);
  color:#fff;
  border-color:var(--c1);
}
.hero-scroll{
  margin-top:46px;
  font-size:9px;
  letter-spacing:.22em;
  color:#87919a;
}

.hero-am-visual{
  position:relative;
}
.hero-am-imageframe{
  position:relative;
  height:760px;
  overflow:hidden;
  border-radius:0 0 0 140px;
  background:#e7edf3;
}
.hero-am-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  animation:amImageMove 16s ease-in-out infinite alternate;
}
.hero-am-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(21,35,48,.08));
}
.hero-am-accent{
  position:absolute;
  border:1px solid rgba(255,255,255,.34);
  border-radius:50%;
}
.hero-am-accent-a{
  width:180px;height:180px;
  right:42px; top:48px;
  animation:amFloatSoftA 8s ease-in-out infinite;
}
.hero-am-accent-b{
  width:300px;height:300px;
  left:-70px; bottom:-70px;
  animation:amFloatSoftB 10s ease-in-out infinite;
}
.hero-am-caption{
  position:absolute;
  background:rgba(255,255,255,.9);
  backdrop-filter:blur(8px);
  color:#24435f;
  padding:12px 18px;
  font-family:Georgia,serif;
  font-size:11px;
  letter-spacing:.12em;
}
.hero-am-caption-a{
  left:22px;
  bottom:24px;
  animation:amFloatSoftA 7s ease-in-out infinite;
}
.hero-am-caption-b{
  right:24px;
  top:24px;
  animation:amFloatSoftB 8s ease-in-out infinite;
}

@media(max-width:980px){
  .hero-am-wrap{
    grid-template-columns:1fr;
    gap:26px;
    width:min(calc(100% - 72px), var(--max));
  }
  .hero-am-imageframe{
    height:520px;
    border-radius:0 0 0 90px;
  }
}
@media(max-width:680px){
  .hero-am-wrap{
    width:calc(100% - 30px);
    padding:16px 0 46px;
    gap:22px;
  }
  .hero-logo{width:125px; margin-bottom:16px;}
  .home-hero h1{font-size:40px;}
  .hero-am-imageframe{
    height:390px;
    border-radius:0 0 0 56px;
  }
  .hero-am-accent-a{width:110px;height:110px; right:20px; top:20px;}
  .hero-am-accent-b{width:180px;height:180px; left:-50px; bottom:-50px;}
  .hero-am-caption{
    padding:8px 12px;
    font-size:9px;
  }
  .hero-btn{
    width:100%;
    min-width:unset;
  }
}


/* ===== v5.6 fullscreen hero + adaptive transparent header ===== */

/* Header */
.site-header{
  position:fixed !important;
  top:0;
  left:0;
  right:0;
  z-index:100;
  background:transparent !important;
  border:0 !important;
  backdrop-filter:none !important;
  transition:color .35s ease, filter .35s ease;
}
.header-row{
  height:92px;
}
.site-header .nav a,
.site-header .menu-btn span{
  transition:color .35s ease, background-color .35s ease;
}
.site-header.header-light .nav a{
  color:#fff;
}
.site-header.header-light .menu-btn span{
  background:#fff;
}
.site-header.header-light .header-logo{
  filter:brightness(0) invert(1);
}
.site-header.header-dark .nav a{
  color:#17212c;
}
.site-header.header-dark .menu-btn span{
  background:#17212c;
}
.site-header.header-dark .header-logo{
  filter:none;
}
.header-logo{
  width:135px;
  height:auto;
  transition:filter .35s ease;
}

/* Full-screen hero */
.home-hero{
  position:relative;
  width:100%;
  height:100svh;
  min-height:700px;
  padding:0 !important;
  margin:0;
  overflow:hidden;
  background:#111;
}
.hero-full-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  overflow:hidden;
}
.hero-full-image img{
  position:absolute;
  inset:-3%;
  width:106%;
  height:106%;
  object-fit:cover;
  animation:heroKenBurns 18s ease-in-out infinite alternate;
}
.hero-shade{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(8,18,28,.58) 0%,rgba(8,18,28,.25) 45%,rgba(8,18,28,.08) 75%,rgba(8,18,28,.10) 100%),
    linear-gradient(180deg,rgba(8,18,28,.10),rgba(8,18,28,.18));
}
.hero-full-copy{
  position:absolute;
  inset:0;
  z-index:3;
  display:flex;
  align-items:center;
  color:#fff;
}
.hero-full-copy .wrap{
  padding-top:70px;
}
.hero-full-copy h1{
  margin:0;
  max-width:860px;
  color:#fff;
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-weight:500;
  font-size:clamp(54px,6.5vw,104px);
  line-height:1.42;
  letter-spacing:.075em;
  text-shadow:0 5px 30px rgba(0,0,0,.10);
}
.hero-kicker{
  margin:0 0 18px;
  color:rgba(255,255,255,.88) !important;
  font-family:Georgia,serif;
  font-size:12px;
  letter-spacing:.17em;
}
.hero-en{
  margin:20px 0 0;
  color:#fff !important;
  font-family:Georgia,serif;
  font-size:clamp(18px,2vw,30px);
  letter-spacing:.05em;
}
.hero-note{
  margin:28px 0 0;
  color:rgba(255,255,255,.88) !important;
  font-size:14px;
  max-width:640px;
}
.hero-actions{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-top:32px;
}
.hero-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:190px;
  height:56px;
  padding:0 26px;
  border-radius:999px;
  font-size:12px;
  letter-spacing:.08em;
  transition:.25s ease;
}
.hero-btn:hover{
  transform:translateY(-2px);
}
.hero-btn-light{
  background:#fff;
  color:#1d2d3d;
  border:1px solid #fff;
}
.hero-btn-outline{
  color:#fff;
  border:1px solid rgba(255,255,255,.65);
  background:rgba(255,255,255,.07);
  backdrop-filter:blur(7px);
}
.hero-side-copy{
  position:absolute;
  right:26px;
  top:50%;
  z-index:3;
  transform:translateY(-50%);
  writing-mode:vertical-rl;
  color:rgba(255,255,255,.62);
  font-family:Georgia,serif;
  font-size:10px;
  letter-spacing:.24em;
}
.hero-scroll{
  position:absolute;
  left:50%;
  bottom:26px;
  z-index:3;
  transform:translateX(-50%);
  color:#fff !important;
  font-size:9px;
  letter-spacing:.25em;
}
.hero-scroll:after{
  content:"";
  display:block;
  width:1px;
  height:52px;
  margin:10px auto 0;
  background:rgba(255,255,255,.65);
}

@keyframes heroKenBurns{
  0%{transform:scale(1.00) translate3d(0,0,0)}
  100%{transform:scale(1.07) translate3d(-1.3%, -1%, 0)}
}

/* Slight section spacing after fullscreen */
.home-about{
  padding-top:150px;
}

/* Remove previous split-hero leftovers */
.hero-am-wrap,
.hero-am-visual,
.hero-am-imageframe,
.hero-am-image,
.hero-am-overlay,
.hero-am-accent,
.hero-am-caption{
  display:none !important;
}

@media(max-width:980px){
  .site-header .nav{
    background:rgba(255,255,255,.98);
  }
  .site-header .nav a{
    color:#17212c !important;
  }
  .home-hero{
    min-height:760px;
  }
  .hero-full-copy h1{
    font-size:clamp(46px,7vw,78px);
  }
}
@media(max-width:680px){
  .header-row{height:72px}
  .header-logo{width:105px}
  .home-hero{
    height:100svh;
    min-height:680px;
  }
  .hero-full-copy .wrap{
    padding-top:40px;
  }
  .hero-full-copy h1{
    font-size:42px;
    line-height:1.5;
  }
  .hero-en{
    font-size:17px;
  }
  .hero-note{
    font-size:12px;
  }
  .hero-actions{
    margin-top:24px;
  }
  .hero-btn{
    width:auto;
    min-width:160px;
    height:50px;
    padding:0 18px;
  }
  .hero-side-copy{
    display:none;
  }
}


/* ===== v5.7 hero title + header logo fix ===== */
.site-header .brand{
  display:flex;
  align-items:center;
  flex:0 0 auto;
  overflow:visible;
}
.header-logo{
  width:168px !important;
  max-width:none !important;
  height:auto !important;
  object-fit:contain;
  display:block;
  filter:none !important;
}
.site-header.header-light .header-logo,
.site-header.header-dark .header-logo{
  filter:none !important;
}

.home-hero .wrap,
.hero-full-copy .wrap{
  width:min(calc(100% - 72px), var(--max));
}

.hero-full-copy h1{
  max-width:760px;
  font-size:clamp(42px, 5.2vw, 78px) !important;
  line-height:1.48 !important;
  letter-spacing:.055em !important;
  word-break:keep-all;
}
.hero-note{
  max-width:600px;
}
.hero-actions{
  margin-top:28px;
}

@media(max-width:980px){
  .header-logo{
    width:148px !important;
  }
  .hero-full-copy h1{
    max-width:700px;
    font-size:clamp(40px, 6vw, 62px) !important;
  }
}
@media(max-width:680px){
  .header-row{
    height:72px;
  }
  .header-logo{
    width:118px !important;
  }
  .hero-full-copy h1{
    max-width:100%;
    font-size:34px !important;
    line-height:1.52 !important;
    letter-spacing:.04em !important;
  }
  .hero-full-copy .wrap{
    width:calc(100% - 30px);
  }
}


/* ===== v5.8 header/logo/line-break fixes ===== */

/* WordPress admin bar offset */
.admin-bar .site-header{
  top:32px !important;
}
@media screen and (max-width:782px){
  .admin-bar .site-header{
    top:46px !important;
  }
}

/* Logo: height based so the whole square original fits inside the header */
.site-header .brand{
  height:100%;
  display:flex;
  align-items:center;
  overflow:visible;
}
.site-header .header-logo{
  width:auto !important;
  max-width:none !important;
  height:72px !important;
  max-height:72px !important;
  object-fit:contain !important;
  object-position:center !important;
  display:block !important;
  filter:none !important;
}
.site-header.header-light .header-logo,
.site-header.header-dark .header-logo{
  filter:none !important;
}

/* Header colours */
.site-header.header-light .nav a{
  color:#fff !important;
}
.site-header.header-dark .nav a{
  color:#17212c !important;
}
.site-header.header-light .menu-btn span{
  background:#fff !important;
}
.site-header.header-dark .menu-btn span{
  background:#17212c !important;
}

/* Prevent awkward Japanese wrapping in headings */
.title,
.lead-block h2,
.page-hero h1,
.hero-full-copy h1{
  word-break:keep-all !important;
  overflow-wrap:normal !important;
  line-break:strict;
}

/* Home About heading */
.about-head{
  max-width:980px !important;
}
.about-head .title{
  max-width:920px;
  margin-left:auto;
  margin-right:auto;
  font-size:clamp(36px,4vw,58px) !important;
  line-height:1.55 !important;
}

/* HP/MEO and other subpage large headings */
.lead-block h2{
  font-size:clamp(30px,3vw,44px) !important;
  line-height:1.6 !important;
}
.two-col .lead-block{
  min-width:0;
}
.two-col{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
}

/* Hero title: slightly smaller and more room */
.hero-full-copy h1{
  max-width:900px !important;
  font-size:clamp(40px,4.7vw,70px) !important;
  line-height:1.5 !important;
}

/* Mobile */
@media(max-width:980px){
  .site-header .header-logo{
    height:62px !important;
    max-height:62px !important;
  }
  .about-head .title{
    font-size:42px !important;
  }
  .lead-block h2{
    font-size:36px !important;
  }
}
@media(max-width:680px){
  .site-header .header-logo{
    height:54px !important;
    max-height:54px !important;
  }
  .about-head .title{
    font-size:31px !important;
    line-height:1.65 !important;
  }
  .lead-block h2{
    font-size:29px !important;
    line-height:1.65 !important;
  }
  .hero-full-copy h1{
    font-size:34px !important;
    line-height:1.55 !important;
  }
}


/* ===== v5.9 nav size + hero button removal ===== */

/* Header menu slightly larger */
.site-header .nav a{
  font-size:14px !important;
  letter-spacing:.055em !important;
}

/* Footer menu slightly larger */
.footer-nav a{
  font-size:13px !important;
  letter-spacing:.045em;
}

/* Hero buttons removed from markup; hide defensively too */
.home-hero .hero-actions{
  display:none !important;
}

@media(max-width:980px){
  .site-header .nav a{
    font-size:20px !important;
  }
}

@media(max-width:680px){
  .footer-nav a{
    font-size:12px !important;
  }
}


/* ===== v6.0 fullscreen orbit hero ===== */
@keyframes heroOrbitRotate{
  from{ transform:rotate(0deg); }
  to{ transform:rotate(360deg); }
}

.home-hero{
  position:relative;
  width:100%;
  height:100svh;
  min-height:720px;
  padding:0 !important;
  margin:0;
  overflow:hidden;
  background:#111;
}

.hero-full-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  overflow:hidden;
}
.hero-full-image img{
  position:absolute;
  inset:-3%;
  width:106%;
  height:106%;
  object-fit:cover;
  animation:heroKenBurns 18s ease-in-out infinite alternate;
}
.hero-shade{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(8,18,28,.34) 0%,rgba(8,18,28,.18) 50%,rgba(8,18,28,.12) 100%),
    linear-gradient(180deg,rgba(5,13,21,.12),rgba(5,13,21,.26));
}

.hero-orbit-wrap{
  position:absolute;
  inset:0;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:110px 40px 55px;
}
.hero-orbit{
  position:relative;
  width:min(72vh, 700px);
  height:min(72vh, 700px);
  min-width:560px;
  min-height:560px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.hero-orbit-svg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  overflow:visible;
  animation:heroOrbitRotate 32s linear infinite;
  transform-origin:50% 50%;
}
.hero-orbit-text{
  fill:rgba(255,255,255,.95);
  font-family:Georgia,"Times New Roman",serif;
  font-size:27px;
  letter-spacing:9px;
}
.hero-center-copy{
  position:relative;
  z-index:2;
  width:72%;
  max-width:560px;
  text-align:center;
  color:#fff;
}
.hero-center-copy .hero-kicker{
  margin:0 0 24px;
  color:rgba(255,255,255,.92) !important;
  font-family:Georgia,"Times New Roman",serif;
  font-size:12px;
  letter-spacing:.20em;
}
.hero-center-copy .hero-kicker:after{
  content:"";
  display:block;
  width:54px;
  height:1px;
  background:rgba(255,255,255,.75);
  margin:20px auto 0;
}
.hero-center-copy h1{
  margin:0;
  color:#fff;
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-weight:500;
  font-size:clamp(42px,4.4vw,66px) !important;
  line-height:1.55 !important;
  letter-spacing:.07em !important;
  word-break:keep-all !important;
}
.hero-center-copy .hero-note{
  margin:30px auto 0;
  max-width:560px;
  color:rgba(255,255,255,.90) !important;
  font-size:13px;
  line-height:2;
  letter-spacing:.06em;
}
.hero-center-copy .hero-en,
.home-hero .hero-en,
.home-hero .hero-actions{
  display:none !important;
}
.hero-scroll{
  position:absolute;
  z-index:4;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  color:#fff !important;
  font-size:9px;
  letter-spacing:.26em;
}
.hero-scroll:after{
  content:"";
  display:block;
  width:1px;
  height:46px;
  margin:9px auto 0;
  background:rgba(255,255,255,.72);
}

/* Keep logo original color and fully visible */
.site-header .header-logo{
  filter:none !important;
  object-fit:contain !important;
}

@media(max-width:980px){
  .hero-orbit{
    width:min(68vh,620px);
    height:min(68vh,620px);
    min-width:500px;
    min-height:500px;
  }
  .hero-orbit-text{
    font-size:25px;
    letter-spacing:8px;
  }
  .hero-center-copy h1{
    font-size:48px !important;
  }
}
@media(max-width:680px){
  .home-hero{
    min-height:720px;
  }
  .hero-orbit-wrap{
    padding:90px 10px 45px;
  }
  .hero-orbit{
    width:94vw;
    height:94vw;
    min-width:0;
    min-height:0;
    max-width:560px;
    max-height:560px;
  }
  .hero-orbit-text{
    font-size:24px;
    letter-spacing:6px;
  }
  .hero-center-copy{
    width:68%;
  }
  .hero-center-copy .hero-kicker{
    font-size:9px;
    letter-spacing:.15em;
    margin-bottom:18px;
  }
  .hero-center-copy h1{
    font-size:30px !important;
    line-height:1.65 !important;
    letter-spacing:.05em !important;
  }
  .hero-center-copy .hero-note{
    margin-top:20px;
    font-size:10px;
    line-height:1.9;
  }
}


/* ===== v6.1 orbit ring fix ===== */
.hero-orbit{
  width:min(78vh, 760px) !important;
  height:min(78vh, 760px) !important;
  min-width:620px !important;
  min-height:620px !important;
}
.hero-orbit-svg{
  width:100% !important;
  height:100% !important;
  animation:heroOrbitRotate 36s linear infinite !important;
}
.hero-orbit-text{
  fill:rgba(255,255,255,.96) !important;
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:20px !important;
  font-weight:600 !important;
  letter-spacing:5px !important;
}
.hero-center-copy{
  width:56% !important;
  max-width:430px !important;
}
.hero-center-copy h1{
  font-size:clamp(38px,4vw,58px) !important;
  line-height:1.6 !important;
}
.hero-center-copy .hero-note{
  max-width:430px !important;
  font-size:12px !important;
  line-height:1.9 !important;
}

@media(max-width:980px){
  .hero-orbit{
    width:min(72vh, 680px) !important;
    height:min(72vh, 680px) !important;
    min-width:540px !important;
    min-height:540px !important;
  }
  .hero-orbit-text{
    font-size:18px !important;
    letter-spacing:4px !important;
  }
  .hero-center-copy{
    width:58% !important;
    max-width:390px !important;
  }
  .hero-center-copy h1{
    font-size:46px !important;
  }
}
@media(max-width:680px){
  .hero-orbit{
    width:96vw !important;
    height:96vw !important;
    min-width:0 !important;
    min-height:0 !important;
    max-width:560px !important;
    max-height:560px !important;
  }
  .hero-orbit-text{
    font-size:14px !important;
    letter-spacing:2.5px !important;
  }
  .hero-center-copy{
    width:60% !important;
    max-width:300px !important;
  }
  .hero-center-copy h1{
    font-size:28px !important;
    line-height:1.65 !important;
  }
  .hero-center-copy .hero-note{
    font-size:10px !important;
    line-height:1.8 !important;
  }
}


/* ===== v6.2 orbit fit + stacked sections ===== */

/* Hero circle: make the title fit inside the ring */
.hero-orbit{
  width:min(84vh, 820px) !important;
  height:min(84vh, 820px) !important;
  min-width:700px !important;
  min-height:700px !important;
}
.hero-orbit-svg{
  width:100% !important;
  height:100% !important;
  animation:heroOrbitRotate 38s linear infinite !important;
}
.hero-orbit-text{
  fill:rgba(255,255,255,.97) !important;
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:17px !important;
  font-weight:600 !important;
  letter-spacing:3.5px !important;
}
.hero-center-copy{
  width:48% !important;
  max-width:360px !important;
}
.hero-center-copy h1{
  font-size:clamp(34px,3.6vw,52px) !important;
  line-height:1.7 !important;
  letter-spacing:.05em !important;
}
.hero-center-copy .hero-note{
  max-width:360px !important;
  font-size:11px !important;
  line-height:1.95 !important;
}
.hero-center-copy .hero-kicker{
  font-size:11px !important;
  margin-bottom:18px !important;
}

/* Stacked sections: next section comes up from below and covers previous one */
.stack-sections{
  position:relative;
  z-index:5;
  background:transparent;
}
.stack-section{
  position:relative;
  background:#fff;
}
.home-about.stack-section,
.home-services.stack-section,
.price-teaser.stack-section{
  box-shadow:0 -14px 40px rgba(13,26,38,.06);
}
@media(min-width:981px){
  .stack-sections{
    position:relative;
  }
  .stack-sections .stack-section{
    position:sticky;
    top:0;
    min-height:100vh;
    padding-top:110px;
  }
  .stack-sections .stack-section:nth-child(1){ z-index:11; }
  .stack-sections .stack-section:nth-child(2){ z-index:12; }
  .stack-sections .stack-section:nth-child(3){ z-index:13; }

  .home-about.stack-section{
    border-radius:36px 36px 0 0;
    margin-top:-36px;
  }
  .home-services.stack-section{
    border-radius:36px 36px 0 0;
    margin-top:-36px;
  }
  .price-teaser.stack-section{
    border-radius:36px 36px 0 0;
    margin-top:-36px;
  }
}
@media(max-width:980px){
  .hero-orbit{
    width:min(74vh, 700px) !important;
    height:min(74vh, 700px) !important;
    min-width:560px !important;
    min-height:560px !important;
  }
  .hero-orbit-text{
    font-size:15px !important;
    letter-spacing:3px !important;
  }
  .hero-center-copy{
    width:52% !important;
    max-width:350px !important;
  }
  .hero-center-copy h1{
    font-size:42px !important;
  }
}
@media(max-width:680px){
  .hero-orbit{
    width:98vw !important;
    height:98vw !important;
    min-width:0 !important;
    min-height:0 !important;
    max-width:580px !important;
    max-height:580px !important;
  }
  .hero-orbit-text{
    font-size:12px !important;
    letter-spacing:2px !important;
  }
  .hero-center-copy{
    width:60% !important;
    max-width:290px !important;
  }
  .hero-center-copy h1{
    font-size:26px !important;
    line-height:1.75 !important;
  }
  .hero-center-copy .hero-note{
    font-size:10px !important;
  }
}


/* ===== v6.3 orbit fit / centered copy / universal cover-stack ===== */

/* ---------- HERO: circle must stay fully inside viewport ---------- */
.hero-orbit-wrap{
  box-sizing:border-box !important;
  padding:104px 28px 70px !important;
  overflow:visible !important;
}
.hero-orbit{
  /* Fit against BOTH viewport width and usable viewport height */
  width:min(72vw, calc(100svh - 190px), 760px) !important;
  height:min(72vw, calc(100svh - 190px), 760px) !important;
  min-width:0 !important;
  min-height:0 !important;
  max-width:760px !important;
  max-height:760px !important;
  aspect-ratio:1 / 1;
  overflow:visible !important;
}
.hero-orbit-svg{
  overflow:visible !important;
  inset:0 !important;
}

/* Center every piece of text inside the ring */
.hero-center-copy{
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  transform:translate(-50%,-50%) !important;
  width:58% !important;
  max-width:440px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
}
.hero-center-copy .hero-kicker,
.hero-center-copy h1,
.hero-center-copy .hero-note{
  width:100% !important;
  margin-left:auto !important;
  margin-right:auto !important;
  text-align:center !important;
}
.hero-center-copy h1{
  font-size:clamp(32px,3.45vw,50px) !important;
  line-height:1.68 !important;
  letter-spacing:.045em !important;
}
.hero-center-copy .hero-note{
  max-width:390px !important;
  font-size:11px !important;
  line-height:1.95 !important;
}

/* Make circular lettering a touch smaller so it never looks clipped */
.hero-orbit-text{
  font-size:15px !important;
  letter-spacing:3px !important;
}

/* ---------- HOME: hero also stays fixed while next section covers it ---------- */
@media(min-width:981px){
  body.home .home-hero{
    position:sticky !important;
    top:0 !important;
    z-index:1 !important;
  }
  body.home .stack-sections{
    position:relative !important;
    z-index:2 !important;
    margin-top:-34px !important;
  }
  body.home .stack-sections .stack-section{
    position:sticky !important;
    top:0 !important;
    min-height:100vh;
    border-radius:34px 34px 0 0;
    box-shadow:0 -18px 42px rgba(16,31,47,.08);
  }

  /* Alternating section colours restored */
  body.home .stack-sections .stack-section:nth-child(odd){
    background:#ffffff !important;
  }
  body.home .stack-sections .stack-section:nth-child(even){
    background:#f3f5f7 !important;
  }
}

/* ---------- SUBDIRECTORIES: same overlap behaviour ---------- */
@media(min-width:981px){
  body:not(.home) main{
    position:relative;
    background:#fff;
  }

  body:not(.home) main > .stack-section{
    position:sticky !important;
    top:0 !important;
    min-height:100vh;
    z-index:2;
    border-radius:34px 34px 0 0;
    box-shadow:0 -18px 42px rgba(16,31,47,.07);
    overflow:visible;
  }

  /* First section doesn't need rounded top against the browser edge */
  body:not(.home) main > .stack-section:first-child{
    border-radius:0;
  }

  /* Each next section visually comes from below and covers the previous one */
  body:not(.home) main > .stack-section + .stack-section{
    margin-top:-34px;
  }

  body:not(.home) main > .stack-section:nth-of-type(odd){
    background:#ffffff !important;
  }
  body:not(.home) main > .stack-section:nth-of-type(even){
    background:#f3f5f7 !important;
  }

  body:not(.home) main > .stack-section:nth-of-type(1){ z-index:11; }
  body:not(.home) main > .stack-section:nth-of-type(2){ z-index:12; }
  body:not(.home) main > .stack-section:nth-of-type(3){ z-index:13; }
  body:not(.home) main > .stack-section:nth-of-type(4){ z-index:14; }
  body:not(.home) main > .stack-section:nth-of-type(5){ z-index:15; }
}

/* Footer must come above the final sticky section */
.site-footer{
  position:relative;
  z-index:30;
}

/* Tablet */
@media(max-width:980px){
  .hero-orbit-wrap{
    padding:90px 18px 58px !important;
  }
  .hero-orbit{
    width:min(88vw, calc(100svh - 170px), 660px) !important;
    height:min(88vw, calc(100svh - 170px), 660px) !important;
  }
  .hero-center-copy{
    width:60% !important;
    max-width:390px !important;
  }
  .hero-center-copy h1{
    font-size:38px !important;
  }
  .hero-orbit-text{
    font-size:14px !important;
    letter-spacing:2.5px !important;
  }
}

/* Mobile: no sticky locking, but preserve alternate colours and full circle */
@media(max-width:680px){
  .hero-orbit-wrap{
    padding:82px 8px 55px !important;
  }
  .hero-orbit{
    width:min(94vw, calc(100svh - 155px), 540px) !important;
    height:min(94vw, calc(100svh - 155px), 540px) !important;
  }
  .hero-center-copy{
    width:61% !important;
    max-width:285px !important;
  }
  .hero-center-copy h1{
    font-size:25px !important;
    line-height:1.72 !important;
  }
  .hero-center-copy .hero-kicker{
    font-size:8px !important;
  }
  .hero-center-copy .hero-note{
    font-size:9px !important;
    line-height:1.8 !important;
  }
  .hero-orbit-text{
    font-size:11px !important;
    letter-spacing:1.6px !important;
  }

  body.home .stack-sections .stack-section:nth-child(odd),
  body:not(.home) main > .stack-section:nth-of-type(odd){
    background:#ffffff !important;
  }
  body.home .stack-sections .stack-section:nth-child(even),
  body:not(.home) main > .stack-section:nth-of-type(even){
    background:#f3f5f7 !important;
  }
}


/* ===== v6.4 one-screen composition / full footer / header switching ===== */

/* HERO orbit: deliberately smaller so the entire ring always fits */
.hero-orbit-wrap{
  padding:90px 24px 62px !important;
}
.hero-orbit{
  width:min(66vw, 64svh, 650px) !important;
  height:min(66vw, 64svh, 650px) !important;
  min-width:0 !important;
  min-height:0 !important;
  max-width:650px !important;
  max-height:650px !important;
}
.hero-orbit-text{
  font-size:13.5px !important;
  letter-spacing:2.6px !important;
}
.hero-center-copy{
  width:56% !important;
  max-width:360px !important;
  text-align:center !important;
}
.hero-center-copy h1{
  font-size:clamp(30px,3.1vw,46px) !important;
  line-height:1.66 !important;
  text-align:center !important;
}
.hero-center-copy .hero-note{
  max-width:350px !important;
  font-size:10.5px !important;
  text-align:center !important;
}

/* Hero itself participates in stacked cover effect */
body.home .home-hero{
  position:sticky !important;
  top:0 !important;
  z-index:1 !important;
}
body.home .stack-sections{
  z-index:3 !important;
  margin-top:-30px !important;
}

/* Every desktop content section is one viewport */
@media(min-width:981px){
  body.home .stack-section,
  body:not(.home) .subpage-stack > .stack-section{
    height:100svh !important;
    min-height:100svh !important;
    max-height:100svh !important;
    display:flex !important;
    align-items:center !important;
    overflow:hidden !important;
    padding-top:92px !important;
    padding-bottom:34px !important;
  }

  body.home .stack-section > .wrap,
  body:not(.home) .subpage-stack > .stack-section > .wrap,
  body:not(.home) .subpage-stack > .stack-section > .narrow,
  body:not(.home) .subpage-stack > .stack-section > .contact-box{
    width:min(calc(100% - 72px), var(--max));
    margin-left:auto;
    margin-right:auto;
  }

  /* alternate colours on ALL stack sections */
  body.home .stack-section:nth-child(odd),
  body:not(.home) .subpage-stack > .stack-section:nth-child(odd){
    background:#ffffff !important;
  }
  body.home .stack-section:nth-child(even),
  body:not(.home) .subpage-stack > .stack-section:nth-child(even){
    background:#f2f4f6 !important;
  }

  /* one-screen typography */
  .page-hero{
    padding-top:92px !important;
  }
  .page-hero .bigword{
    font-size:clamp(70px,8vw,120px) !important;
    margin-bottom:8px !important;
  }
  .page-hero h1{
    font-size:clamp(38px,4vw,58px) !important;
  }
  .page-hero p{
    margin-top:18px !important;
  }

  .section .title{
    font-size:clamp(34px,3.4vw,50px) !important;
  }
  .two-col{
    gap:58px !important;
  }
  .photo img{
    height:min(54svh,500px) !important;
  }
  .lead-block h2{
    font-size:clamp(28px,2.7vw,40px) !important;
    line-height:1.55 !important;
  }
  .lead-block p{
    font-size:13px !important;
    line-height:1.8 !important;
  }

  .compact-price th,
  .compact-price td{
    padding:10px 12px !important;
    font-size:12px !important;
    line-height:1.45 !important;
  }
  .compact-price td:last-child{
    font-size:14px !important;
  }
  .price-screen .title{
    margin-bottom:14px !important;
  }

  .screen-plans{
    margin-top:26px !important;
  }
  .screen-plans .plan{
    padding:25px 24px !important;
  }
  .screen-plans .plan h3{
    font-size:21px !important;
    margin:10px 0 6px !important;
  }
  .screen-plans .plan .price{
    font-size:25px !important;
    margin:12px 0 !important;
  }
  .screen-plans .plan li,
  .screen-plans .plan p{
    font-size:11px !important;
    line-height:1.65 !important;
  }

  /* profile */
  .profile-grid{
    gap:55px !important;
  }
  .profile-photo{
    max-height:62svh !important;
    overflow:hidden !important;
  }
  .profile-photo img{
    max-height:58svh !important;
    width:auto !important;
    margin:auto !important;
  }
  .company-table th,
  .company-table td{
    padding:9px 8px !important;
    font-size:11.5px !important;
    line-height:1.45 !important;
  }

  /* contact */
  .contact-methods{
    margin-bottom:16px !important;
  }
  .contact-method{
    min-height:115px !important;
    padding:18px 20px !important;
  }
  .field{
    margin-bottom:16px !important;
  }
  .contact-form textarea{
    min-height:90px !important;
  }

  /* full-screen footer */
  .site-footer{
    height:100svh !important;
    min-height:100svh !important;
    max-height:100svh !important;
    display:flex !important;
    align-items:center !important;
    padding:90px 0 34px !important;
    overflow:hidden !important;
    background:#f2f4f6 !important;
  }
  .site-footer > .wrap{
    width:min(calc(100% - 72px),var(--max));
  }
  .footer-map-wrap{
    height:58svh !important;
    margin-bottom:28px !important;
  }
  .footer-map,
  .footer-map iframe{
    min-height:0 !important;
    height:100% !important;
  }
  .footer-map-copy{
    padding:34px 38px !important;
  }
}

/* Header colours: default dark, home hero white */
.site-header .nav a{
  transition:color .25s ease !important;
}
.site-header.header-light .nav a{
  color:#ffffff !important;
  text-shadow:0 1px 8px rgba(0,0,0,.16);
}
.site-header.header-dark .nav a{
  color:#182330 !important;
  text-shadow:none !important;
}

/* Mobile/tablet: no hard one-screen clipping */
@media(max-width:980px){
  .hero-orbit{
    width:min(82vw, 58svh, 560px) !important;
    height:min(82vw, 58svh, 560px) !important;
  }
  .site-footer{
    min-height:100svh;
  }
}


/* ===== v6.5 rebuilt hero / black header / stacked footer ===== */

/* HEADER: always black text, transparent background */
.site-header{
  background:transparent !important;
  border:0 !important;
  backdrop-filter:none !important;
}
.site-header .nav a,
.site-header.header-light .nav a,
.site-header.header-dark .nav a{
  color:#111820 !important;
  text-shadow:none !important;
  font-size:14px !important;
}
.site-header .menu-btn span,
.site-header.header-light .menu-btn span,
.site-header.header-dark .menu-btn span{
  background:#111820 !important;
}
.site-header .header-logo,
.site-header.header-light .header-logo,
.site-header.header-dark .header-logo{
  filter:none !important;
}

/* HERO: clean fullscreen composition */
.home-hero{
  position:sticky !important;
  top:0 !important;
  z-index:1 !important;
  width:100%;
  height:100svh !important;
  min-height:620px !important;
  overflow:hidden !important;
  background:#111;
}
.hero-full-image{
  position:absolute;
  inset:0;
}
.hero-full-image img{
  position:absolute;
  inset:-2%;
  width:104%;
  height:104%;
  object-fit:cover;
  animation:heroKenBurns 18s ease-in-out infinite alternate;
}
.hero-shade{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(8,18,28,.18),rgba(8,18,28,.06) 60%,rgba(255,255,255,.04)),
    linear-gradient(180deg,rgba(5,14,24,.07),rgba(5,14,24,.14));
}
.hero-stage{
  position:absolute;
  inset:0;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:96px 24px 64px;
}
.hero-ring{
  position:relative;
  width:min(56vw, calc(100svh - 190px), 610px) !important;
  height:min(56vw, calc(100svh - 190px), 610px) !important;
  min-width:0 !important;
  min-height:0 !important;
  max-width:610px !important;
  max-height:610px !important;
  aspect-ratio:1/1;
  display:flex;
  align-items:center;
  justify-content:center;
}
.hero-ring-svg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  overflow:visible;
  animation:heroOrbitRotate 36s linear infinite;
  transform-origin:50% 50%;
}
.hero-ring-text{
  fill:rgba(255,255,255,.96);
  font-family:Georgia,"Times New Roman",serif;
  font-size:17px;
  font-weight:600;
  letter-spacing:4px;
}
.hero-center-copy{
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  transform:translate(-50%,-50%) !important;
  width:62% !important;
  max-width:390px !important;
  margin:0 !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  color:#fff;
}
.hero-center-copy .hero-kicker{
  width:100% !important;
  margin:0 !important;
  color:rgba(255,255,255,.93) !important;
  text-align:center !important;
  font-family:Georgia,"Times New Roman",serif;
  font-size:10px !important;
  letter-spacing:.18em !important;
  line-height:1.4 !important;
}
.hero-center-line{
  display:block;
  width:48px;
  height:1px;
  background:rgba(255,255,255,.74);
  margin:18px auto 20px;
}
.hero-center-copy h1{
  width:100% !important;
  margin:0 !important;
  color:#fff !important;
  text-align:center !important;
  font-family:"Yu Mincho","Hiragino Mincho ProN",serif;
  font-weight:500 !important;
  font-size:clamp(31px,3vw,43px) !important;
  line-height:1.72 !important;
  letter-spacing:.04em !important;
  word-break:keep-all !important;
}
.hero-center-copy .hero-note{
  width:100% !important;
  max-width:360px !important;
  margin:22px auto 0 !important;
  color:rgba(255,255,255,.92) !important;
  text-align:center !important;
  font-size:10px !important;
  line-height:1.95 !important;
  letter-spacing:.03em;
}
.hero-scroll{
  z-index:4 !important;
  bottom:14px !important;
}

/* Hide all legacy orbit elements */
.hero-orbit-wrap,
.hero-orbit,
.hero-orbit-svg,
.hero-orbit-text{
  display:none !important;
}

/* HOME STACK: About covers hero */
body.home .stack-sections{
  position:relative !important;
  z-index:4 !important;
  margin-top:-32px !important;
}
@media(min-width:981px){
  body.home .stack-sections .stack-section{
    border-radius:32px 32px 0 0 !important;
    box-shadow:0 -16px 42px rgba(15,28,42,.08) !important;
  }
}

/* FOOTER: same cover-stack behaviour */
.site-footer.footer-stack{
  position:sticky !important;
  top:0 !important;
  z-index:50 !important;
  height:100svh !important;
  min-height:100svh !important;
  max-height:100svh !important;
  margin-top:-32px !important;
  border-radius:32px 32px 0 0 !important;
  box-shadow:0 -18px 46px rgba(15,28,42,.10) !important;
  background:#f2f4f6 !important;
  display:flex !important;
  align-items:center !important;
  overflow:hidden !important;
  padding:82px 0 28px !important;
}
.site-footer.footer-stack > .wrap{
  width:min(calc(100% - 72px),var(--max));
}
.site-footer.footer-stack .footer-map-wrap{
  height:56svh !important;
  margin-bottom:24px !important;
}
.site-footer.footer-stack .footer-map,
.site-footer.footer-stack .footer-map iframe{
  height:100% !important;
  min-height:0 !important;
}

/* Sub page stacks stay 1-screen and alternate */
@media(min-width:981px){
  body:not(.home) .subpage-stack > .stack-section{
    height:100svh !important;
    min-height:100svh !important;
    max-height:100svh !important;
    overflow:hidden !important;
  }
}

/* Tablet */
@media(max-width:980px){
  .hero-stage{
    padding:88px 16px 52px;
  }
  .hero-ring{
    width:min(72vw, calc(100svh - 170px), 560px) !important;
    height:min(72vw, calc(100svh - 170px), 560px) !important;
  }
  .hero-ring-text{
    font-size:15px !important;
    letter-spacing:3px !important;
  }
  .hero-center-copy h1{
    font-size:36px !important;
  }
}

/* Mobile */
@media(max-width:680px){
  .hero-stage{
    padding:78px 8px 48px;
  }
  .hero-ring{
    width:min(90vw, calc(100svh - 145px), 500px) !important;
    height:min(90vw, calc(100svh - 145px), 500px) !important;
  }
  .hero-ring-text{
    font-size:12px !important;
    letter-spacing:1.8px !important;
  }
  .hero-center-copy{
    width:64% !important;
  }
  .hero-center-copy h1{
    font-size:25px !important;
    line-height:1.7 !important;
  }
  .hero-center-copy .hero-note{
    font-size:8.5px !important;
  }
  .site-footer.footer-stack{
    position:relative !important;
    height:auto !important;
    min-height:100svh !important;
    max-height:none !important;
  }
}


/* ===== v6.6 continuous ring / micro-interactions / scroll cues / footer alternation ===== */

/* Continuous circular lettering */
.hero-ring-text{
  font-size:15px !important;
  font-weight:600 !important;
  letter-spacing:0 !important;
  fill:rgba(255,255,255,.96) !important;
}

/* Text-only links/buttons: subtle movement, scale and shadow */
.site-header .nav a,
.footer-nav a,
.more,
.news-row,
.page-hero a,
.lead-block a,
.contact-meta a{
  display:inline-block;
  transform-origin:center;
  transition:
    transform .24s cubic-bezier(.2,.7,.2,1),
    text-shadow .24s ease,
    opacity .24s ease,
    color .24s ease !important;
  will-change:transform;
}

.site-header .nav a:hover,
.footer-nav a:hover,
.more:hover,
.page-hero a:hover,
.lead-block a:hover,
.contact-meta a:hover{
  transform:translateY(-2px) scale(1.055);
  text-shadow:0 7px 16px rgba(20,31,43,.24);
}

.site-header .nav a:active,
.footer-nav a:active,
.more:active{
  transform:translateY(0) scale(.985);
}

/* Header menu remains black */
.site-header .nav a,
.site-header.header-light .nav a,
.site-header.header-dark .nav a{
  color:#111820 !important;
  text-shadow:none;
}
.site-header .nav a:hover{
  color:#111820 !important;
  text-shadow:0 6px 15px rgba(17,24,32,.28) !important;
}

/* Slightly emphasize all plain text action arrows */
.more{
  position:relative;
}
.more:after{
  transition:transform .24s ease !important;
}
.more:hover:after{
  transform:translateX(7px) !important;
}

/* Section scroll cue */
@media(min-width:981px){
  .stack-section,
  .site-footer.footer-stack{
    position:sticky !important;
  }

  .stack-section:after{
    content:"SCROLL";
    position:absolute;
    left:50%;
    bottom:16px;
    transform:translateX(-50%);
    z-index:20;
    font-family:Georgia,"Times New Roman",serif;
    font-size:8px;
    letter-spacing:.26em;
    color:rgba(39,50,61,.48);
    pointer-events:none;
  }

  .stack-section:before{
    content:"";
    position:absolute;
    left:50%;
    bottom:-1px;
    width:1px;
    height:14px;
    background:rgba(39,50,61,.30);
    z-index:20;
    pointer-events:none;
  }

  /* Hero already has its own scroll cue */
  .home-hero:before,
  .home-hero:after{
    content:none !important;
  }
}

/* Alternate section backgrounds strictly */
body.home .stack-sections .stack-section:nth-child(odd),
body:not(.home) .subpage-stack > .stack-section:nth-child(odd){
  background:#ffffff !important;
}
body.home .stack-sections .stack-section:nth-child(even),
body:not(.home) .subpage-stack > .stack-section:nth-child(even){
  background:#f3f5f7 !important;
}

/* Footer tone is assigned by JS so it is always opposite the preceding section */
.site-footer.footer-stack.footer-tone-white{
  background:#ffffff !important;
}
.site-footer.footer-stack.footer-tone-gray{
  background:#f3f5f7 !important;
}

/* Let the map card subtly contrast with footer background */
.site-footer.footer-stack.footer-tone-white .footer-map-wrap{
  background:#f3f5f7 !important;
}
.site-footer.footer-stack.footer-tone-gray .footer-map-wrap{
  background:#ffffff !important;
}

/* Footer also covers the previous section */
@media(min-width:981px){
  .site-footer.footer-stack{
    margin-top:-32px !important;
    border-radius:32px 32px 0 0 !important;
    box-shadow:0 -18px 46px rgba(15,28,42,.10) !important;
  }
}

/* Keep circular hero fully visible at desktop sizes */
@media(min-width:981px){
  .hero-ring{
    width:min(55vw, calc(100svh - 205px), 600px) !important;
    height:min(55vw, calc(100svh - 205px), 600px) !important;
  }
}

/* Tablet */
@media(max-width:980px){
  .hero-ring-text{
    font-size:13px !important;
  }
}

/* Mobile */
@media(max-width:680px){
  .hero-ring-text{
    font-size:10.5px !important;
  }
  .site-header .nav a:hover,
  .footer-nav a:hover,
  .more:hover{
    transform:none;
    text-shadow:none;
  }
}


/* ===== v6.7 hero title / service-link hover / explicit scroll cues ===== */

/* Hero title punctuation removed and centered strongly */
.hero-center-copy{
  text-align:center !important;
}
.hero-center-copy h1{
  text-align:center !important;
  font-size:clamp(30px,3vw,42px) !important;
  line-height:1.7 !important;
  letter-spacing:.035em !important;
}
.hero-center-copy .hero-note,
.hero-center-copy .hero-kicker{
  text-align:center !important;
}

/* The service list rows / button-like text links also animate now */
.service-link,
.service-link *{
  transition:
    transform .24s cubic-bezier(.2,.7,.2,1),
    text-shadow .24s ease,
    color .24s ease,
    opacity .24s ease !important;
}
.service-link{
  position:relative;
}
.service-link:hover{
  transform:translateY(-2px) scale(1.018) !important;
}
.service-link:hover .service-meta,
.service-link:hover .service-arrow,
.service-link:hover .service-name,
.service-link:hover .label,
.service-link:hover span,
.service-link:hover p{
  text-shadow:0 8px 18px rgba(20,31,43,.16) !important;
}
.service-link:hover .service-arrow{
  transform:translateX(8px) scale(1.08) !important;
}
.service-link:active{
  transform:translateY(0) scale(.994) !important;
}

/* Broader fallback for text-only card rows if class names differ slightly */
[class*="service"] a:hover,
a[class*="service"]:hover,
[class*="link-row"]:hover,
[class*="service-row"]:hover{
  transform:translateY(-2px) scale(1.018);
}

/* Explicit scroll cue element support */
.stack-section{
  position:relative;
}
.section-scroll-cue{
  position:absolute;
  left:50%;
  bottom:12px;
  transform:translateX(-50%);
  z-index:60;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  pointer-events:none;
  opacity:.88;
}
.section-scroll-cue .scroll-text{
  font-family:Georgia,"Times New Roman",serif;
  font-size:8px;
  letter-spacing:.28em;
  color:rgba(34,45,57,.46);
}
.section-scroll-cue .scroll-line{
  width:1px;
  height:16px;
  background:rgba(34,45,57,.30);
}
.home-hero .section-scroll-cue .scroll-text,
.home-hero .section-scroll-cue .scroll-line{
  color:#fff;
  background:rgba(255,255,255,.65);
}
.home-hero .section-scroll-cue{
  bottom:14px;
}

/* Turn off older pseudo-element cues to avoid conflicts */
.stack-section:before,
.stack-section:after{
  content:none !important;
}

/* Ensure rows are clearly interactive */
.service-link .service-arrow,
.service-link .arrow,
.service-link .more-arrow{
  display:inline-block;
  transition:transform .24s ease, text-shadow .24s ease !important;
}

/* Header hover remains active */
.site-header .nav a:hover{
  transform:translateY(-2px) scale(1.055) !important;
  text-shadow:0 6px 15px rgba(17,24,32,.28) !important;
}

/* Footer menu hover */
.footer-nav a:hover{
  transform:translateY(-2px) scale(1.04) !important;
  text-shadow:0 6px 14px rgba(17,24,32,.18) !important;
}

@media(max-width:980px){
  .section-scroll-cue{
    bottom:8px;
  }
}
@media(max-width:680px){
  .hero-center-copy h1{
    font-size:24px !important;
  }
  .service-link:hover,
  .site-header .nav a:hover,
  .footer-nav a:hover{
    transform:none !important;
    text-shadow:none !important;
  }
  .section-scroll-cue{
    display:none !important;
  }
}


/* ===== v6.8 clearer scroll cue / fix about images / service row motion ===== */

@keyframes scrollArrowFloat{
  0%{transform:translateY(0);opacity:.45}
  50%{transform:translateY(6px);opacity:1}
  100%{transform:translateY(0);opacity:.45}
}
@keyframes scrollArrowFloat2{
  0%{transform:translateY(-2px);opacity:.25}
  50%{transform:translateY(7px);opacity:.8}
  100%{transform:translateY(-2px);opacity:.25}
}

/* hide legacy hero scroll completely */
.hero-scroll{
  display:none !important;
}

/* Make SCROLL cue clearer and animated */
.section-scroll-cue{
  position:absolute;
  left:50%;
  bottom:16px;
  transform:translateX(-50%);
  z-index:80;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  pointer-events:none;
}
.section-scroll-cue .scroll-text{
  font-family:Georgia,"Times New Roman",serif;
  font-size:10px;
  font-weight:600;
  letter-spacing:.30em;
  color:rgba(30,42,55,.72);
  text-shadow:0 2px 10px rgba(255,255,255,.45);
}
.section-scroll-cue .scroll-arrows{
  position:relative;
  width:22px;
  height:22px;
}
.section-scroll-cue .scroll-arrows:before,
.section-scroll-cue .scroll-arrows:after{
  content:"";
  position:absolute;
  left:50%;
  width:10px;
  height:10px;
  border-right:2px solid rgba(30,42,55,.58);
  border-bottom:2px solid rgba(30,42,55,.58);
  transform:translateX(-50%) rotate(45deg);
  filter:drop-shadow(0 2px 8px rgba(255,255,255,.38));
}
.section-scroll-cue .scroll-arrows:before{
  top:1px;
  animation:scrollArrowFloat 1.35s ease-in-out infinite;
}
.section-scroll-cue .scroll-arrows:after{
  top:8px;
  animation:scrollArrowFloat2 1.35s ease-in-out infinite;
}
.home-hero .section-scroll-cue{
  bottom:18px;
}
.home-hero .section-scroll-cue .scroll-text{
  color:rgba(255,255,255,.9);
  text-shadow:0 4px 14px rgba(0,0,0,.25);
}
.home-hero .section-scroll-cue .scroll-arrows:before,
.home-hero .section-scroll-cue .scroll-arrows:after{
  border-right-color:rgba(255,255,255,.85);
  border-bottom-color:rgba(255,255,255,.85);
  filter:drop-shadow(0 3px 10px rgba(0,0,0,.22));
}

/* Ensure service rows definitely animate */
.home-service-row{
  transition:
    transform .24s cubic-bezier(.2,.7,.2,1),
    box-shadow .24s ease,
    background-color .24s ease !important;
  transform-origin:center;
}
.home-service-row .num,
.home-service-row h3,
.home-service-row p,
.home-service-row .arrow{
  transition:
    transform .24s cubic-bezier(.2,.7,.2,1),
    text-shadow .24s ease,
    color .24s ease !important;
}
.home-service-row:hover{
  transform:translateY(-3px) scale(1.012) !important;
}
.home-service-row:hover .num,
.home-service-row:hover h3,
.home-service-row:hover p,
.home-service-row:hover .arrow{
  text-shadow:0 8px 18px rgba(20,31,43,.16) !important;
}
.home-service-row:hover .arrow{
  transform:translateX(8px) scale(1.08) !important;
}

/* About section: 3 images must fully fit in one screen */
@media(min-width:981px){
  .home-about.stack-section{
    padding-top:94px !important;
    padding-bottom:46px !important;
  }
  .home-about .wrap{
    width:min(calc(100% - 56px), var(--max)) !important;
  }
  .about-head{
    max-width:760px;
  }
  .about-head .copy{
    max-width:720px;
    margin:20px auto 0 !important;
    font-size:12px !important;
    line-height:1.8 !important;
  }
  .about-visuals{
    height:min(36svh, 360px) !important;
    margin-top:28px !important;
  }
  .about-visuals figure{
    overflow:hidden;
  }
  .about-visuals img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center top !important;
  }
  .about-visuals .a{
    left:2% !important;
    top:62px !important;
    width:29% !important;
    height:210px !important;
  }
  .about-visuals .b{
    left:35% !important;
    top:0 !important;
    width:30% !important;
    height:310px !important;
  }
  .about-visuals .c{
    right:2% !important;
    top:62px !important;
    width:29% !important;
    height:210px !important;
  }
  .about-link{
    margin-top:18px !important;
  }
}

/* Make section titles breathe a little less so content fits cleanly */
@media(min-width:981px){
  .home-service-head{
    margin-bottom:56px !important;
  }
  .home-service-row{
    padding:24px 0 !important;
  }
}

/* Mobile/tablet scroll cue a bit clearer too */
@media(max-width:980px){
  .section-scroll-cue{
    bottom:10px;
  }
  .section-scroll-cue .scroll-text{
    font-size:9px;
  }
}

@media(max-width:680px){
  .section-scroll-cue{
    display:flex !important;
    bottom:8px;
  }
  .section-scroll-cue .scroll-text{
    font-size:8px;
    letter-spacing:.22em;
  }
  .section-scroll-cue .scroll-arrows{
    width:18px;
    height:18px;
  }

  .home-service-row:hover{
    transform:none !important;
  }
}


/* ===== v6.9 reposition clearer scroll cue + stronger mobile layout ===== */

/* ---------- Scroll cue: move to right-center area like requested ---------- */
.section-scroll-cue{
  position:absolute !important;
  left:auto !important;
  right:clamp(16px, 6vw, 64px) !important;
  top:52% !important;
  bottom:auto !important;
  transform:translateY(-50%) !important;
  z-index:90 !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:10px !important;
  width:auto !important;
  padding:10px 8px !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.22) !important;
  backdrop-filter:blur(3px) !important;
  -webkit-backdrop-filter:blur(3px) !important;
  box-shadow:0 8px 30px rgba(18,29,40,.08) !important;
}
.section-scroll-cue .scroll-text{
  font-family:Georgia,"Times New Roman",serif !important;
  font-size:10px !important;
  font-weight:700 !important;
  letter-spacing:.26em !important;
  writing-mode:vertical-rl !important;
  text-orientation:mixed !important;
  color:rgba(29,40,51,.75) !important;
  text-shadow:none !important;
  line-height:1 !important;
}
.section-scroll-cue .scroll-arrows{
  position:relative !important;
  width:20px !important;
  height:28px !important;
}
.section-scroll-cue .scroll-arrows:before,
.section-scroll-cue .scroll-arrows:after{
  content:"" !important;
  position:absolute !important;
  left:50% !important;
  width:10px !important;
  height:10px !important;
  border-right:2px solid rgba(29,40,51,.62) !important;
  border-bottom:2px solid rgba(29,40,51,.62) !important;
  transform:translateX(-50%) rotate(45deg) !important;
}
.section-scroll-cue .scroll-arrows:before{
  top:2px !important;
  animation:scrollArrowFloat 1.2s ease-in-out infinite !important;
}
.section-scroll-cue .scroll-arrows:after{
  top:10px !important;
  animation:scrollArrowFloat2 1.2s ease-in-out infinite !important;
}

/* Hero-specific contrast */
.home-hero .section-scroll-cue{
  right:clamp(18px,7vw,80px) !important;
  top:56% !important;
  background:rgba(255,255,255,.12) !important;
  box-shadow:0 10px 34px rgba(7,14,22,.12) !important;
}
.home-hero .section-scroll-cue .scroll-text{
  color:rgba(255,255,255,.92) !important;
  text-shadow:0 3px 10px rgba(0,0,0,.16) !important;
}
.home-hero .section-scroll-cue .scroll-arrows:before,
.home-hero .section-scroll-cue .scroll-arrows:after{
  border-right-color:rgba(255,255,255,.88) !important;
  border-bottom-color:rgba(255,255,255,.88) !important;
}

/* On light sections, keep cue visible but subtle */
.stack-section .section-scroll-cue{
  background:rgba(245,247,249,.82) !important;
  border:1px solid rgba(36,48,60,.06) !important;
}

/* ---------- Stronger hover motion for text rows ---------- */
.home-service-row,
.home-service-row *{
  transition:
    transform .26s cubic-bezier(.2,.7,.2,1),
    text-shadow .26s ease,
    color .26s ease,
    opacity .26s ease,
    letter-spacing .26s ease !important;
}
.home-service-row:hover{
  transform:translateY(-4px) scale(1.012) !important;
}
.home-service-row:hover h3{
  transform:scale(1.015) !important;
}
.home-service-row:hover p,
.home-service-row:hover .num,
.home-service-row:hover .arrow{
  text-shadow:0 8px 18px rgba(20,31,43,.16) !important;
}
.home-service-row:hover .arrow{
  transform:translateX(8px) scale(1.14) !important;
}

/* ---------- Desktop About section: 3 images fit fully ---------- */
@media(min-width:981px){
  .home-about.stack-section{
    padding-top:88px !important;
    padding-bottom:42px !important;
  }
  .about-head{
    max-width:820px !important;
  }
  .about-head .copy{
    margin:16px auto 0 !important;
    font-size:12px !important;
    line-height:1.75 !important;
  }
  .about-visuals{
    position:relative !important;
    height:min(32svh, 320px) !important;
    margin-top:22px !important;
  }
  .about-visuals .a{
    left:2% !important;
    top:64px !important;
    width:28% !important;
    height:180px !important;
  }
  .about-visuals .b{
    left:35% !important;
    top:0 !important;
    width:30% !important;
    height:280px !important;
  }
  .about-visuals .c{
    right:2% !important;
    top:64px !important;
    width:28% !important;
    height:180px !important;
  }
  .about-link{
    margin-top:12px !important;
  }
  .about-visuals img{
    object-fit:cover !important;
    object-position:center center !important;
  }
}

/* ---------- Tablet ---------- */
@media(max-width:980px){
  .section-scroll-cue{
    right:14px !important;
    top:auto !important;
    bottom:18px !important;
    transform:none !important;
    padding:8px 6px !important;
    gap:7px !important;
  }
  .section-scroll-cue .scroll-text{
    font-size:9px !important;
    letter-spacing:.18em !important;
  }
  .section-scroll-cue .scroll-arrows{
    width:18px !important;
    height:22px !important;
  }

  .home-about .about-visuals{
    height:auto !important;
    display:grid !important;
    grid-template-columns:repeat(3,1fr) !important;
    gap:12px !important;
    margin-top:28px !important;
    position:static !important;
  }
  .home-about .about-visuals figure{
    position:relative !important;
    left:auto !important;
    right:auto !important;
    top:auto !important;
    width:100% !important;
    height:220px !important;
    margin:0 !important;
  }
  .home-about .about-visuals img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center center !important;
  }
}

/* ---------- Mobile full tune-up ---------- */
@media(max-width:680px){
  /* scroll cue more obvious but not intrusive */
  .section-scroll-cue{
    right:12px !important;
    bottom:16px !important;
    top:auto !important;
    transform:none !important;
    background:rgba(255,255,255,.88) !important;
    border:1px solid rgba(18,29,40,.08) !important;
    box-shadow:0 10px 28px rgba(18,29,40,.10) !important;
    padding:8px 6px !important;
  }
  .home-hero .section-scroll-cue{
    background:rgba(255,255,255,.16) !important;
  }
  .section-scroll-cue .scroll-text{
    font-size:8px !important;
    font-weight:700 !important;
    letter-spacing:.14em !important;
  }
  .section-scroll-cue .scroll-arrows{
    width:16px !important;
    height:20px !important;
  }

  /* Home hero mobile balance */
  .home-hero{
    min-height:100svh !important;
  }
  .hero-stage{
    padding:76px 10px 50px !important;
  }
  .hero-ring{
    width:min(90vw, calc(100svh - 170px), 460px) !important;
    height:min(90vw, calc(100svh - 170px), 460px) !important;
  }
  .hero-center-copy{
    width:68% !important;
    max-width:300px !important;
  }
  .hero-center-copy h1{
    font-size:23px !important;
    line-height:1.62 !important;
  }
  .hero-center-copy .hero-note{
    font-size:8.5px !important;
    line-height:1.75 !important;
  }

  /* About section mobile: stack 3 images so they never clip */
  .home-about.stack-section{
    padding:84px 0 64px !important;
    height:auto !important;
    min-height:100svh !important;
    max-height:none !important;
    overflow:visible !important;
  }
  .home-about .wrap{
    width:min(calc(100% - 24px), var(--max)) !important;
  }
  .about-head .copy{
    font-size:11px !important;
    line-height:1.8 !important;
    margin-top:16px !important;
  }
  .home-about .about-visuals{
    height:auto !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:14px !important;
    margin-top:24px !important;
    position:static !important;
  }
  .home-about .about-visuals figure{
    position:relative !important;
    left:auto !important;
    right:auto !important;
    top:auto !important;
    width:100% !important;
    height:190px !important;
    margin:0 !important;
    border-radius:26px !important;
    overflow:hidden !important;
  }
  .home-about .about-visuals .a,
  .home-about .about-visuals .b,
  .home-about .about-visuals .c{
    height:190px !important;
  }
  .home-about .about-visuals img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center center !important;
  }
  .about-link{
    margin-top:18px !important;
  }

  /* Services mobile readability */
  .home-services.stack-section{
    height:auto !important;
    min-height:100svh !important;
    max-height:none !important;
    padding:84px 0 64px !important;
    overflow:visible !important;
  }
  .home-service-head{
    display:block !important;
    margin-bottom:26px !important;
  }
  .bigword{
    font-size:52px !important;
    margin-bottom:12px !important;
  }
  .home-service-row{
    display:grid !important;
    grid-template-columns:44px 1fr 24px !important;
    gap:10px 12px !important;
    align-items:start !important;
    padding:18px 0 !important;
  }
  .home-service-row .num{
    grid-column:1 !important;
    grid-row:1 / span 2 !important;
    font-size:12px !important;
    padding-top:6px !important;
  }
  .home-service-row h3{
    grid-column:2 !important;
    grid-row:1 !important;
    font-size:18px !important;
    margin:0 !important;
  }
  .home-service-row p{
    grid-column:2 !important;
    grid-row:2 !important;
    font-size:11px !important;
    line-height:1.6 !important;
    margin:2px 0 0 !important;
  }
  .home-service-row .arrow{
    grid-column:3 !important;
    grid-row:1 / span 2 !important;
    align-self:center !important;
    justify-self:end !important;
    font-size:18px !important;
  }

  /* Generic stack sections mobile */
  .price-teaser.stack-section,
  .subpage-stack > .stack-section,
  .site-footer.footer-stack{
    height:auto !important;
    min-height:100svh !important;
    max-height:none !important;
    overflow:visible !important;
    padding-top:84px !important;
    padding-bottom:64px !important;
  }

  .site-footer.footer-stack{
    margin-top:-18px !important;
    border-radius:20px 20px 0 0 !important;
  }
}

/* Ensure footer alternation remains visually aligned */
.site-footer.footer-stack.footer-tone-white{
  background:#ffffff !important;
}
.site-footer.footer-stack.footer-tone-gray{
  background:#f3f5f7 !important;
}


/* ===== v7.0 mobile/overlay rebuild ===== */

/* ---------- FOOTER overlay back on all sizes ---------- */
.site-footer.footer-stack{
  position:relative !important;
  z-index:70 !important;
  margin-top:-26px !important;
  border-radius:28px 28px 0 0 !important;
  box-shadow:0 -16px 38px rgba(15,28,42,.10) !important;
}

/* Desktop footer can still behave like a cover panel */
@media(min-width:981px){
  .site-footer.footer-stack{
    position:sticky !important;
    top:0 !important;
    height:100svh !important;
    min-height:100svh !important;
    max-height:100svh !important;
    padding:82px 0 28px !important;
    overflow:hidden !important;
  }
}

/* ---------- Mobile/tablet: every section visually overlaps ---------- */
@media(max-width:980px){
  body.home .stack-sections{
    position:relative !important;
    z-index:4 !important;
    margin-top:-18px !important;
  }

  body.home .stack-sections .stack-section,
  body:not(.home) .subpage-stack > .stack-section,
  .site-footer.footer-stack{
    position:relative !important;
    top:auto !important;
    min-height:100svh !important;
    height:auto !important;
    max-height:none !important;
    overflow:visible !important;
    margin-top:-18px !important;
    border-radius:22px 22px 0 0 !important;
    box-shadow:0 -14px 28px rgba(16,31,47,.08) !important;
    padding-top:84px !important;
    padding-bottom:64px !important;
  }

  body.home .stack-sections .stack-section:first-child,
  body:not(.home) .subpage-stack > .stack-section:first-child{
    margin-top:0 !important;
    border-radius:0 !important;
  }

  .site-footer.footer-stack{
    margin-top:-18px !important;
  }
}

/* ---------- Hero ring: keep fully inside screen ---------- */
@media(max-width:980px){
  .hero-stage{
    padding:74px 12px 52px !important;
  }
  .hero-ring{
    width:min(76vw, calc(100svh - 225px), 440px) !important;
    height:min(76vw, calc(100svh - 225px), 440px) !important;
    max-width:440px !important;
    max-height:440px !important;
  }
  .hero-ring-text{
    font-size:11.5px !important;
  }
  .hero-center-copy{
    width:64% !important;
    max-width:320px !important;
  }
  .hero-center-copy h1{
    font-size:clamp(24px, 5.3vw, 34px) !important;
    line-height:1.62 !important;
  }
  .hero-center-copy .hero-note{
    font-size:9px !important;
    line-height:1.72 !important;
  }
}
@media(max-width:680px){
  .home-hero{
    min-height:100svh !important;
    overflow:hidden !important;
  }
  .hero-stage{
    padding:72px 10px 48px !important;
  }
  .hero-ring{
    width:min(72vw, calc(100svh - 270px), 330px) !important;
    height:min(72vw, calc(100svh - 270px), 330px) !important;
    max-width:330px !important;
    max-height:330px !important;
  }
  .hero-ring-text{
    font-size:8.8px !important;
  }
  .hero-center-copy{
    width:68% !important;
    max-width:255px !important;
  }
  .hero-center-copy h1{
    font-size:21px !important;
    line-height:1.56 !important;
    letter-spacing:.02em !important;
  }
  .hero-center-copy .hero-kicker{
    font-size:8px !important;
    letter-spacing:.12em !important;
  }
  .hero-center-copy .hero-note{
    font-size:8px !important;
    line-height:1.65 !important;
    margin-top:16px !important;
  }
}

/* ---------- Generic mobile typography: stop clipping ---------- */
@media(max-width:680px){
  .bigword{
    font-size:44px !important;
    line-height:1 !important;
    margin-bottom:10px !important;
  }
  .page-hero .bigword{
    font-size:44px !important;
  }
  .page-hero h1,
  .title{
    font-size:28px !important;
    line-height:1.45 !important;
  }
  .page-hero p,
  .copy,
  .lead-block p,
  .section p{
    font-size:11px !important;
    line-height:1.8 !important;
  }

  .wrap,.narrow{
    width:calc(100% - 24px) !important;
  }

  .two-col,
  .price-grid,
  .footer-grid,
  .plan-grid,
  .contact-methods,
  .profile-grid{
    grid-template-columns:1fr !important;
    gap:18px !important;
  }

  .photo img,
  .profile-photo img{
    height:240px !important;
    object-fit:cover !important;
    object-position:center !important;
  }

  .plan,
  .contact-method,
  .lead-block,
  .contact-box,
  .profile-photo{
    min-width:0 !important;
  }

  .company-table th,
  .company-table td,
  .price-table th,
  .price-table td{
    display:block !important;
    width:100% !important;
    text-align:left !important;
  }

  .company-table th,
  .price-table th{
    padding:12px 0 4px !important;
    border-bottom:0 !important;
  }

  .company-table td,
  .price-table td{
    padding:0 0 12px !important;
  }

  .footer-map-wrap{
    grid-template-columns:1fr !important;
    height:auto !important;
    gap:14px !important;
  }
  .footer-map{
    min-height:280px !important;
  }
}

/* ---------- Service rows mobile readability ---------- */
@media(max-width:680px){
  .home-service-row{
    display:grid !important;
    grid-template-columns:38px 1fr 22px !important;
    gap:8px 10px !important;
    align-items:start !important;
    padding:18px 0 !important;
  }
  .home-service-row .num{
    grid-column:1 !important;
    grid-row:1 / span 2 !important;
    padding-top:5px !important;
    font-size:11px !important;
  }
  .home-service-row h3{
    grid-column:2 !important;
    grid-row:1 !important;
    font-size:17px !important;
    line-height:1.4 !important;
    margin:0 !important;
  }
  .home-service-row p{
    grid-column:2 !important;
    grid-row:2 !important;
    margin:2px 0 0 !important;
    font-size:10.5px !important;
    line-height:1.6 !important;
  }
  .home-service-row .arrow{
    grid-column:3 !important;
    grid-row:1 / span 2 !important;
    align-self:center !important;
    justify-self:end !important;
    font-size:18px !important;
  }
}

/* ---------- About images: no clipping on all devices ---------- */
@media(max-width:980px){
  .home-about.stack-section{
    overflow:visible !important;
  }
  .home-about .about-visuals{
    position:static !important;
    height:auto !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:14px !important;
    margin-top:24px !important;
  }
  .home-about .about-visuals figure,
  .home-about .about-visuals .a,
  .home-about .about-visuals .b,
  .home-about .about-visuals .c{
    position:relative !important;
    left:auto !important;
    right:auto !important;
    top:auto !important;
    width:100% !important;
    height:180px !important;
    margin:0 !important;
    border-radius:24px !important;
    overflow:hidden !important;
  }
  .home-about .about-visuals img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center center !important;
  }
}

/* ---------- Scroll cue mobile ---------- */
@media(max-width:980px){
  .section-scroll-cue{
    right:12px !important;
    bottom:16px !important;
    top:auto !important;
    transform:none !important;
    background:rgba(255,255,255,.88) !important;
    border:1px solid rgba(18,29,40,.08) !important;
    box-shadow:0 8px 22px rgba(18,29,40,.10) !important;
    padding:8px 6px !important;
  }
  .home-hero .section-scroll-cue{
    background:rgba(255,255,255,.16) !important;
  }
  .section-scroll-cue .scroll-text{
    font-size:8px !important;
    letter-spacing:.12em !important;
  }
  .section-scroll-cue .scroll-arrows{
    width:16px !important;
    height:20px !important;
  }
}

/* ---------- Force alternating backgrounds again ---------- */
body.home .stack-sections .stack-section:nth-child(odd),
body:not(.home) .subpage-stack > .stack-section:nth-child(odd){
  background:#ffffff !important;
}
body.home .stack-sections .stack-section:nth-child(even),
body:not(.home) .subpage-stack > .stack-section:nth-child(even){
  background:#f3f5f7 !important;
}
.site-footer.footer-stack.footer-tone-white{
  background:#ffffff !important;
}
.site-footer.footer-stack.footer-tone-gray{
  background:#f3f5f7 !important;
}


/* v7.6 structural stack shell */
.page-stack-shell{
  position:relative;
  width:100%;
}
@media(min-width:981px){
  .page-stack-shell{
    position:relative;
    overflow:visible;
  }
}


/* ===== v8.6 header color fallback ===== */
.site-header.header-hero .nav a{
  color:#ffffff !important;
  text-shadow:0 3px 12px rgba(0,0,0,.22) !important;
}
.site-header.header-hero .nav a:hover{
  color:#ffffff !important;
  text-shadow:0 7px 18px rgba(0,0,0,.34) !important;
}
.site-header.header-hero .menu-btn span{
  background:#ffffff !important;
}

.site-header.header-dark .nav a{
  color:#111820 !important;
}
.site-header.header-dark .menu-btn span{
  background:#111820 !important;
}
