:root {
  --blue: #075cb5;
  --deep: #102f5c;
  --sky: #eaf7ff;
  --soft: #f7fbff;
  --text: #21344c;
  --muted: #66768a;
  --line: #d7e5f1;
  --white: #fff;
  --shadow: 0 18px 45px rgba(38, 78, 118, .12);
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;font-family:"Noto Sans JP","Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;color:var(--text);background:#fff;line-height:1.75} a{text-decoration:none;color:inherit} img{max-width:100%;display:block}.container{width:min(1180px,calc(100% - 40px));margin:auto}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.95);backdrop-filter:blur(14px);border-bottom:1px solid rgba(215,229,241,.85)}.header-inner{min-height:86px;display:flex;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:13px;min-width:330px}.brand-mark{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;font-weight:900;color:#fff;background:linear-gradient(145deg,#1388d3,#0a5ba5 60%,#f2b642);box-shadow:0 6px 14px rgba(0,87,167,.2)}.brand-copy{display:flex;flex-direction:column}.brand-name{font-weight:900;font-size:1.38rem;letter-spacing:.04em;color:#111}.brand-tagline{font-size:.78rem;color:var(--blue);font-weight:800}.main-nav{display:flex;gap:22px;margin-left:auto;font-size:.88rem;font-weight:800}.main-nav a:hover{color:var(--blue)}.header-mail{margin-left:8px;background:var(--blue);color:#fff;font-weight:800;border-radius:999px;padding:11px 17px;font-size:.84rem}
.hero{background:linear-gradient(110deg,#eff9ff 0%,#e9f7ff 47%,#ffffff 100%);overflow:hidden}.hero-grid{min-height:620px;display:grid;grid-template-columns:.9fr 1.35fr;align-items:center;gap:10px}.hero-copy{padding:70px 0;z-index:2}.eyebrow{margin:0 0 8px;color:var(--blue);font-size:1.45rem;font-weight:900}.hero h1{margin:0;color:var(--deep);font-size:clamp(3rem,5vw,5rem);line-height:1.13;letter-spacing:.03em}.hero-en{color:var(--blue);font-size:1.7rem;font-weight:800;margin:10px 0 20px}.hero-lead{font-size:1.05rem;font-weight:700;line-height:2}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}.button{display:inline-flex;justify-content:center;align-items:center;border-radius:999px;padding:13px 22px;font-weight:900;transition:.2s}.button:hover{transform:translateY(-2px);box-shadow:0 10px 20px rgba(31,78,120,.16)}.primary{background:var(--blue);color:#fff}.secondary{background:#fff;color:var(--blue);border:1px solid #a9cce9}.hero-visual{position:relative;align-self:end}.hero-visual img{width:125%;max-width:none;margin-left:-10%;filter:drop-shadow(0 24px 35px rgba(46,75,95,.18))}.speech-bubble{position:absolute;right:2%;top:13%;z-index:3;background:#fff;padding:18px 25px;border-radius:24px;font-weight:800;box-shadow:var(--shadow);text-align:center}.speech-bubble:after{content:"";position:absolute;left:40%;bottom:-13px;border:14px solid transparent;border-top-color:#fff}
.character-strip{padding:0 0 28px;background:linear-gradient(180deg,#fff,#f9fcff)}.character-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.character-grid article{border:1px solid var(--line);border-radius:18px;padding:15px 10px;background:#fff;text-align:center;box-shadow:0 8px 20px rgba(38,78,118,.06)}.character-grid strong{display:block;color:var(--deep);font-size:.98rem}.character-grid span{font-size:.76rem;color:var(--muted)}
.section{padding:90px 0}.section-warm{background:linear-gradient(180deg,#fffaf1,#fff)}.section-soft{background:var(--soft)}.section-heading{text-align:center;margin-bottom:40px}.section-label{color:var(--blue);font-weight:900;letter-spacing:.15em;font-size:.83rem}.section-heading h2,.about-copy h2{font-size:clamp(2rem,4vw,3.1rem);line-height:1.3;margin:8px 0;color:var(--deep)}.section-heading p{margin:0;color:var(--muted)}
.feature-card{display:grid;grid-template-columns:1.4fr .7fr;gap:34px;border:1px solid #e9c178;border-radius:28px;padding:42px;background:#fff;box-shadow:var(--shadow)}.feature-pill{display:inline-block;background:#ffe4a5;color:var(--deep);padding:8px 16px;border-radius:999px;font-weight:900}.feature-main h3{font-size:2rem;color:var(--deep);margin:16px 0 8px}.feature-main>p{color:var(--muted)}.feature-points{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:24px}.feature-points div{border:1px solid var(--line);border-radius:18px;padding:18px;text-align:center}.feature-points span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;margin:0 auto 8px;background:var(--sky);color:var(--blue);font-weight:900}.feature-points strong,.feature-points small{display:block}.feature-points small{color:var(--muted)}.feature-topics{background:#f7fbff;border-radius:22px;padding:26px}.feature-topics h4{color:var(--deep);font-size:1.3rem;margin-top:0}.feature-topics ul{padding-left:1.2em;margin-bottom:0}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.service-card{border-radius:22px;padding:25px;background:#fff;border:1px solid var(--line);box-shadow:0 10px 25px rgba(38,78,118,.07)}.service-icon{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;font-weight:900;background:#eef7ff;color:var(--blue);margin-bottom:16px}.service-card h3{margin:0 0 8px}.service-card p{margin:0;color:var(--muted);font-size:.93rem}.teal h3{color:#0b9f91}.pink h3{color:#e55d86}.blue h3{color:#1a67c8}.orange h3{color:#df8b2c}.rose h3{color:#da6679}.green h3{color:#2f9769}
.pricing-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.price-card{background:#fff;border:1px solid var(--line);border-radius:26px;padding:34px;box-shadow:var(--shadow)}.price-kicker{color:var(--blue);font-weight:900}.price-card h3{font-size:1.8rem;color:var(--deep);margin:0}.price-value{font-size:3.3rem;color:var(--blue);font-weight:900;margin:18px 0}.price-value span{font-size:1.1rem}.price-card ul{padding-left:1.2em;color:var(--muted)}
.about-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:26px}.about-copy,.profile-card{border-radius:26px;padding:38px}.about-copy{background:#edf8ff;border:1px solid #cfe6f6}.profile-card{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}.profile-label{color:var(--blue);font-weight:900}.profile-card h3{font-size:1.7rem;color:var(--deep)}
.contact-section{padding:75px 0;background:linear-gradient(135deg,#dff3ff,#f7fcff)}.contact-card{display:flex;justify-content:space-between;align-items:center;gap:30px;background:#fff;border:1px solid #c8deef;border-radius:28px;padding:42px 48px;box-shadow:var(--shadow)}.contact-kicker{color:var(--blue);font-weight:900;letter-spacing:.15em}.contact-card h2{font-size:2.2rem;color:var(--deep);margin:3px 0}.contact-card p{margin:0;color:var(--muted)}.contact-actions{display:flex;flex-direction:column;align-items:center;gap:12px}.contact-button{background:var(--blue);color:#fff;padding:15px 28px}.contact-email{font-weight:900;color:var(--blue)}
.site-footer{border-top:1px solid var(--line);padding:30px 0}.footer-inner{display:flex;justify-content:space-between;align-items:center}.footer-inner div{display:flex;flex-direction:column}.footer-inner strong{color:var(--deep)}.footer-inner span,.footer-inner p{font-size:.78rem;color:var(--muted);margin:0}
@media(max-width:1050px){.main-nav{display:none}.brand{min-width:0}.header-mail{margin-left:auto}.hero-grid{grid-template-columns:1fr}.hero-copy{padding-bottom:20px}.hero-visual{margin-top:-80px}.hero-visual img{width:110%;margin-left:-5%}.speech-bubble{top:5%}.feature-card{grid-template-columns:1fr}.service-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.container{width:min(100% - 24px,620px)}.site-header .brand-name{font-size:1rem}.brand-mark{width:46px;height:46px}.brand-tagline{font-size:.65rem}.header-mail{font-size:.72rem;padding:9px 12px}.hero-grid{min-height:auto}.hero-copy{padding:45px 0 15px}.hero h1{font-size:2.9rem}.hero-en{font-size:1.18rem}.hero-lead{font-size:.92rem}.hero-visual{margin-top:-25px}.hero-visual img{width:140%;margin-left:-20%}.speech-bubble{display:none}.character-grid{grid-template-columns:1fr 1fr}.section{padding:62px 0}.feature-card{padding:24px}.feature-points{grid-template-columns:1fr}.service-grid,.pricing-grid,.about-grid{grid-template-columns:1fr}.contact-card{flex-direction:column;text-align:center;padding:32px 24px}.footer-inner{flex-direction:column;align-items:flex-start;gap:14px}}

/* Revised character presentation */
.hero-visual img{width:118%;margin-left:-7%;border-radius:30px 30px 0 0;object-fit:cover}
.service-card{position:relative;display:flex;align-items:flex-end;gap:14px;min-height:230px;overflow:hidden;padding:22px 20px 22px 16px}
.service-otter{width:42%;height:205px;object-fit:cover;object-position:center top;align-self:flex-end;border-radius:18px;background:linear-gradient(180deg,#eff9ff,#fff)}
.service-copy{flex:1;position:relative;z-index:2;padding:8px 0}
.service-copy h3{font-size:1.22rem;line-height:1.35}
.service-copy p{font-size:.9rem}
.philosophy-section{padding:90px 0;background:linear-gradient(135deg,#0b5fae,#1f84cf);color:#fff}
.philosophy-card{text-align:center}
.philosophy-en{font-size:clamp(1.8rem,4vw,3rem);font-weight:900;letter-spacing:.05em;margin:0 0 34px}
.philosophy-lines{font-size:clamp(1.12rem,2.2vw,1.5rem);font-weight:800;line-height:2.1}
.philosophy-lines p{margin:.4em 0}
@media(max-width:1050px){.hero-visual img{width:106%;margin-left:-3%}.service-card{min-height:220px}}
@media(max-width:700px){.hero-visual img{width:128%;margin-left:-14%}.service-card{min-height:205px}.service-otter{height:180px;width:40%}.philosophy-section{padding:65px 0}.philosophy-lines{line-height:1.8}}


/* Version 3: detailed lecture topics and opening prices */
.feature-card{grid-template-columns:.85fr 1.35fr;align-items:start}
.feature-topics{padding:28px;background:linear-gradient(180deg,#f7fbff,#ffffff);border:1px solid var(--line)}
.topic-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.topic-list article{background:#fff;border:1px solid var(--line);border-radius:16px;padding:15px 16px;box-shadow:0 5px 14px rgba(38,78,118,.05)}
.topic-list h5{margin:0 0 5px;color:var(--deep);font-size:1rem;line-height:1.45}
.topic-list p{margin:0;color:var(--muted);font-size:.82rem;line-height:1.65}
.topic-list article:last-child{grid-column:1/-1}
.pricing-heading{margin-bottom:34px}
.price-card{display:flex;flex-direction:column}
.price-card .button{margin-top:auto;align-self:flex-start}
.featured-price-card{border:2px solid #e6b450;position:relative}
.featured-price-card:before{content:"おすすめ";position:absolute;right:24px;top:0;transform:translateY(-50%);background:#f2b642;color:#fff;padding:7px 16px;border-radius:999px;font-weight:900;font-size:.82rem}
.regular-price{margin:17px 0 2px;color:var(--muted);font-weight:800}
.regular-price del{text-decoration-thickness:2px;text-decoration-color:#d65b5b}
.opening-label{display:inline-block;width:max-content;margin:12px 0 0;background:#fff0bf;color:#8a5900;border-radius:999px;padding:5px 12px;font-weight:900;font-size:.86rem}
.price-value{margin:8px 0 10px;line-height:1.15}
.price-value span{display:inline-block;margin-left:5px;line-height:1.4}
.limited-date{color:#bc4c45;font-weight:900;margin:5px 0 15px}
.price-notes{border-top:1px dashed var(--line);padding-top:14px;margin-bottom:22px}
.price-notes p{font-size:.78rem;color:var(--muted);line-height:1.6;margin:.35em 0}
.standard-price-list{margin:17px 0 3px;padding:14px 16px;background:#f7fbff;border-radius:15px;border:1px solid var(--line)}
.standard-price-list p{margin:.35em 0 .85em;font-size:.9rem;line-height:1.65}
.standard-price-list p:last-child{margin-bottom:.35em}
.bundle-description{font-weight:800;color:var(--deep);margin:11px 0 0}
@media(max-width:1050px){.feature-card{grid-template-columns:1fr}.topic-list{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.topic-list{grid-template-columns:1fr}.topic-list article:last-child{grid-column:auto}.price-value{font-size:2.65rem}.price-value span{font-size:.9rem}}

/* Version 5: representative profile first, personal message second */
.representative-section{background:linear-gradient(180deg,#fff,#f8fcff)}
.representative-heading{margin-bottom:28px}
.representative-heading h2{margin-bottom:0}
.representative-profile{
  display:grid;
  grid-template-columns:minmax(0,1fr) 320px;
  align-items:center;
  max-width:980px;
  margin:0 auto 30px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:28px;
  box-shadow:var(--shadow);
  overflow:hidden;
}
.representative-identity{padding:42px 48px}
.profile-label{color:var(--blue);font-weight:900;letter-spacing:.08em;margin:0 0 8px}
.representative-identity h3{font-size:clamp(1.7rem,3vw,2.35rem);line-height:1.4;color:var(--deep);margin:0 0 22px}
.representative-identity h3 span{display:inline-block;font-size:.64em;font-weight:700;color:var(--muted);margin-left:.25em}
.credential-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px;list-style:none;padding:0;margin:0}
.credential-list li{position:relative;padding:10px 12px 10px 34px;background:#f5faff;border:1px solid #dbeaf5;border-radius:13px;font-weight:800;color:var(--deep)}
.credential-list li::before{content:'✓';position:absolute;left:12px;top:9px;color:var(--blue);font-weight:900}
.profile-otter-wrap{align-self:stretch;display:flex;align-items:flex-end;justify-content:center;padding:18px 22px 0;background:linear-gradient(180deg,#eff9ff,#dff1fb)}
.profile-otter{width:100%;max-height:300px;object-fit:contain;object-position:center bottom}
.representative-story{max-width:980px;margin:0 auto;padding:46px 52px;background:linear-gradient(180deg,#edf8ff,#f8fcff)}
.representative-story h2{max-width:760px;margin:0 0 26px;font-size:clamp(1.75rem,3.5vw,2.65rem)}
.representative-message{font-size:1rem;line-height:2.05}
.representative-message p{margin:0 0 1.45em}
.representative-message p:last-child{margin-bottom:0}
.message-closing{font-weight:800;color:var(--deep);padding:20px 22px;border-left:5px solid var(--blue);background:rgba(255,255,255,.78);border-radius:0 16px 16px 0}
@media(max-width:900px){
  .representative-profile{grid-template-columns:1fr 260px}
  .representative-identity{padding:34px 32px}
  .credential-list{grid-template-columns:1fr}
}
@media(max-width:700px){
  .representative-profile{grid-template-columns:1fr;margin-bottom:22px}
  .representative-identity{padding:30px 24px 24px}
  .representative-identity h3 span{display:block;margin:.15em 0 0}
  .profile-otter-wrap{max-height:240px;padding-top:8px}
  .profile-otter{width:70%;max-height:230px}
  .representative-story{padding:30px 24px}
  .representative-message{font-size:.94rem;line-height:1.95}
  .message-closing{padding:17px 18px}
}


/* Production website refinements */
html{scroll-padding-top:96px}
body{overflow-x:hidden}
.skip-link{position:fixed;left:12px;top:-100px;z-index:1000;background:#fff;color:var(--deep);padding:10px 16px;border-radius:8px;box-shadow:var(--shadow);font-weight:900}
.skip-link:focus{top:12px}
a:focus-visible,button:focus-visible{outline:3px solid #f2b642;outline-offset:3px}
.menu-toggle{display:none;width:44px;height:44px;border:0;border-radius:12px;background:#edf7ff;cursor:pointer;padding:10px;flex-direction:column;justify-content:center;gap:5px}
.menu-toggle span{display:block;width:100%;height:3px;border-radius:99px;background:var(--deep);transition:.2s ease}
.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
.contact-note{font-size:.78rem!important;margin-top:10px!important;color:#7c8794!important}
.footer-meta{display:flex!important;align-items:flex-end!important;gap:6px!important}
.footer-meta a{font-size:.78rem;color:var(--blue);font-weight:700}
.hero-actions .button,.price-card .button,.contact-button{min-height:46px}
@media(max-width:1050px){
  .menu-toggle{display:flex;margin-left:auto}
  .header-mail{margin-left:0}
  .site-header .header-inner{position:relative}
  .main-nav{display:none;position:absolute;left:0;right:0;top:calc(100% + 1px);padding:16px 20px 20px;background:rgba(255,255,255,.98);border-bottom:1px solid var(--line);box-shadow:0 12px 22px rgba(38,78,118,.10);grid-template-columns:repeat(3,1fr);gap:8px}
  .main-nav.is-open{display:grid}
  .main-nav a{padding:12px;border-radius:10px;text-align:center;background:#f5faff}
}
@media(max-width:700px){
  .header-mail{display:none}
  .main-nav{grid-template-columns:1fr 1fr}
  .footer-meta{align-items:flex-start!important}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}


/* Version 6: official logo, full five-otter hero, refined spacing and motion */
.brand{min-width:360px;gap:14px}
.brand-logo{width:70px;height:70px;object-fit:contain;flex:0 0 auto;filter:drop-shadow(0 5px 10px rgba(32,101,151,.18))}
.header-inner{min-height:92px}
.hero-grid{grid-template-columns:minmax(380px,.88fr) minmax(0,1.35fr);gap:36px;min-height:650px}
.hero-copy{position:relative;padding:82px 0 74px}
.hero-logo{position:absolute;width:190px;height:190px;object-fit:contain;right:-26px;top:42px;opacity:.075;pointer-events:none}
.hero-visual{align-self:center;display:flex;align-items:center;justify-content:center;min-width:0;padding:55px 0 32px}
.hero-visual img{width:100%;max-width:820px;margin:0;border-radius:30px;object-fit:contain;filter:drop-shadow(0 24px 35px rgba(46,75,95,.16));animation:teamFloat 6s ease-in-out infinite}
.speech-bubble{right:4%;top:4%}
.section{padding:96px 0}
.section-heading{margin-bottom:46px}
.service-card,.price-card,.feature-card,.representative-profile,.representative-story,.contact-card{transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.service-card:hover,.price-card:hover{transform:translateY(-5px);box-shadow:0 22px 48px rgba(38,78,118,.14)}
.brand-logo,.hero-logo{transition:transform .3s ease}
.brand:hover .brand-logo{transform:scale(1.04) rotate(-1.5deg)}
@keyframes teamFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.js .reveal.is-visible{opacity:1;transform:none}
.js .reveal-delay-1{transition-delay:.08s}.js .reveal-delay-2{transition-delay:.16s}.js .reveal-delay-3{transition-delay:.24s}
@media(max-width:1050px){
  .brand{min-width:0}.brand-logo{width:62px;height:62px}.header-inner{min-height:84px}
  .hero-grid{grid-template-columns:1fr;gap:0;min-height:auto}
  .hero-copy{padding:64px 0 12px;text-align:center}
  .hero-actions{justify-content:center}.hero-logo{right:8%;top:22px}
  .hero-visual{margin-top:0;padding:12px 0 38px}
  .hero-visual img{width:100%;max-width:920px;margin:0}
  .speech-bubble{right:6%;top:2%}
}
@media(max-width:700px){
  .brand-logo{width:52px;height:52px}.header-inner{min-height:72px}.brand{gap:9px}
  .hero-copy{padding:46px 0 8px}.hero-logo{width:120px;height:120px;right:-12px;top:14px}
  .hero h1{font-size:clamp(2.55rem,13vw,3.35rem)}
  .hero-visual{padding:5px 0 24px}
  .hero-visual img{width:100%;max-width:none;margin:0;border-radius:20px}
  .section{padding:68px 0}.section-heading{margin-bottom:32px}
}
@media(prefers-reduced-motion:reduce){.hero-visual img{animation:none}.js .reveal{opacity:1;transform:none}}

/* Version 7: compact desktop header and first-view balance */
@media (min-width:1051px){
  html{scroll-padding-top:78px}
  .header-inner{min-height:72px;gap:18px}
  .brand{min-width:315px;gap:11px}
  .brand-logo{width:50px;height:50px}
  .brand-name{font-size:1.16rem;line-height:1.3}
  .brand-tagline{font-size:.70rem;line-height:1.35}
  .main-nav{gap:16px;font-size:.82rem}
  .header-mail{padding:9px 14px;font-size:.79rem}

  .hero-grid{
    grid-template-columns:minmax(350px,.9fr) minmax(0,1.28fr);
    gap:28px;
    min-height:540px;
  }
  .hero-copy{padding:54px 0 48px}
  .eyebrow{font-size:1.25rem}
  .hero h1{font-size:clamp(2.7rem,4.2vw,4.25rem)}
  .hero-en{font-size:1.42rem;margin:8px 0 14px}
  .hero-lead{font-size:1rem;line-height:1.85}
  .hero-actions{margin-top:20px}
  .hero-logo{width:155px;height:155px;right:-8px;top:26px}
  .hero-visual{padding:28px 0 22px}
  .hero-visual img{max-width:760px}
  .speech-bubble{top:2%;right:3%;padding:14px 20px}
}

/* Version 8: official logo, guaranteed five-character desktop view, clearer elegant motion */
.brand-mark{display:none!important}
.brand-logo{
  display:block!important;
  object-fit:contain!important;
  border-radius:0!important;
  background:transparent!important;
}

/* Desktop: preserve the entire wide team illustration without cropping. */
@media (min-width:1051px){
  .hero-grid{
    grid-template-columns:minmax(350px, .82fr) minmax(720px, 1.48fr)!important;
    gap:24px!important;
    min-height:540px!important;
  }
  .hero-visual{
    width:100%!important;
    min-width:0!important;
    overflow:visible!important;
    padding:22px 0 22px!important;
    align-self:center!important;
  }
  .hero-visual > img{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    height:auto!important;
    margin:0!important;
    object-fit:contain!important;
    object-position:center center!important;
    border-radius:28px!important;
    transform-origin:center center;
    animation:teamFloatV8 5.2s ease-in-out infinite!important;
  }
  .speech-bubble{right:2.5%!important;top:4%!important;max-width:410px}
}

/* Medium desktop: stack before the characters have any chance to crop. */
@media (min-width:1051px) and (max-width:1320px){
  .hero-grid{grid-template-columns:minmax(320px,.78fr) minmax(620px,1.35fr)!important}
  .hero h1{font-size:clamp(2.55rem,4vw,3.65rem)!important}
  .hero-copy{padding-left:2px!important}
}

@keyframes teamFloatV8{
  0%,100%{transform:translateY(0) scale(1)}
  50%{transform:translateY(-12px) scale(1.006)}
}

/* Motion is restrained, but now perceptible. */
.js .reveal{
  opacity:0;
  transform:translateY(34px) scale(.985);
  filter:blur(2px);
  transition:opacity .82s cubic-bezier(.2,.7,.2,1),
             transform .82s cubic-bezier(.2,.7,.2,1),
             filter .82s ease!important;
}
.js .reveal.is-visible{opacity:1;transform:none;filter:none}
.js .reveal-delay-1{transition-delay:.06s!important}
.js .reveal-delay-2{transition-delay:.14s!important}
.js .reveal-delay-3{transition-delay:.22s!important}

.service-card,.price-card,.feature-card,.representative-profile,.representative-story,.contact-card{
  transition:transform .34s cubic-bezier(.2,.7,.2,1), box-shadow .34s ease, border-color .34s ease!important;
}
.service-card:hover,.price-card:hover,.feature-card:hover{
  transform:translateY(-7px)!important;
  box-shadow:0 24px 52px rgba(38,78,118,.17)!important;
  border-color:#b9d7ec!important;
}
.service-card:hover .service-otter{transform:translateY(-5px) scale(1.025)}
.service-otter{transition:transform .4s cubic-bezier(.2,.7,.2,1),filter .4s ease}

.button,.header-mail,.contact-button{
  transition:transform .24s ease,box-shadow .24s ease,filter .24s ease,background-color .24s ease!important;
}
.button:hover,.header-mail:hover,.contact-button:hover{
  transform:translateY(-3px)!important;
  box-shadow:0 12px 24px rgba(7,92,181,.24)!important;
  filter:saturate(1.08) brightness(1.03);
}
.main-nav a{position:relative;transition:color .22s ease}
.main-nav a::after{content:"";position:absolute;left:12%;right:12%;bottom:-5px;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:center;transition:transform .25s ease}
.main-nav a:hover::after{transform:scaleX(1)}
.brand:hover .brand-logo{transform:scale(1.055) rotate(-1deg)!important}

@media (max-width:1050px){
  .hero-visual > img{
    width:100%!important;
    max-width:none!important;
    height:auto!important;
    margin:0!important;
    object-fit:contain!important;
    animation:teamFloatV8 5.2s ease-in-out infinite!important;
  }
}

@media (prefers-reduced-motion:reduce){
  .hero-visual > img{animation:none!important}
  .js .reveal{opacity:1!important;transform:none!important;filter:none!important}
  .service-card:hover,.price-card:hover,.feature-card:hover,.button:hover,.header-mail:hover,.contact-button:hover{transform:none!important}
}
