/* Open editorial layout with selective frosted-glass surfaces. */
:root { --ink:#0A0002; --body:#333333; --paper:#FDFDFD; --blush:#F8E6EA; --muted:#666164; --line:#ded8da; }
body { background: var(--paper); }
.site-header { background:rgba(255,255,255,.76); -webkit-backdrop-filter:blur(22px) saturate(125%); backdrop-filter:blur(22px) saturate(125%); }
.hero-note,.update-stamp,.image-caption { background:rgba(255,255,255,.68); color:var(--ink); border:1px solid rgba(255,255,255,.85); -webkit-backdrop-filter:blur(18px) saturate(120%); backdrop-filter:blur(18px) saturate(120%); box-shadow:0 6px 25px rgba(35,0,10,.06); }
.hero-note { border-radius:6px; }
.image-caption { font-size:9px; }
.editorial-photo { filter:saturate(.65); }
.hero-copy,.hero-cost,.plan,.support-series,.works-grid .featured-work,.voice-placeholder,.update-copy,.support-content,.flow-grid>li,.flow-note,.faq-list,.form-panel,.preview-notice,.privacy-disclosure { border-radius:0; box-shadow:none; -webkit-backdrop-filter:none; backdrop-filter:none; }
.hero-copy,.hero-cost,.plan,.support-series,.works-grid .featured-work,.voice-placeholder,.update-copy,.support-content,.flow-grid>li,.flow-note,.faq-list,.form-panel,.preview-notice,.privacy-disclosure { background:transparent; }
.hero h1 { font-size:clamp(42px,4.6vw,68px); }
.hero-monitor-announcement { max-width:520px; margin:20px 0 24px; font-size:15px; line-height:1.9; color:var(--ink); }
.hero-monitor-announcement strong { font-weight:700; }
.monitor-announcement { margin:24px 0; padding:16px 20px; border-left:3px solid var(--brand); background:rgba(255,255,255,.7); font-size:14px; line-height:1.9; }
.hero-photo { border-radius:70px 6px 6px 6px; }
.hero-visual { min-width:0; }
.hero-phone-composition { position:relative; width:100%; min-height:610px; isolation:isolate; }
.hero-phone-composition::before { content:""; position:absolute; inset:7% -2% 8%; z-index:-1; background:radial-gradient(ellipse at 60% 45%,#f6e3e9 0%,#f5f2f4 33%,rgba(253,253,253,0) 70%); }
.hero-device { position:absolute; width:47%; padding:20px 7px 17px; border:1px solid #b1afb5; border-radius:35px; background:linear-gradient(110deg,#eeeef0,#9e9ca4 3%,#fafafa 5%,#28262c 8%,#28262c 92%,#dedde2 97%,#97959b); box-shadow:0 25px 40px rgba(31,10,20,.19),inset 0 0 0 2px #d9d7dd; }
.hero-device-site { left:1%; top:20px; transform:rotate(-8deg); z-index:1; }
.hero-device-line { right:1%; top:85px; transform:rotate(7deg); z-index:2; }
.hero-device-screen { overflow:hidden; border:1px solid #29272d; border-radius:19px; background:#fff; aspect-ratio: .5; }
.hero-device-screen img { display:block; width:100%; height:100%; object-fit:cover; object-position:top; }
.device-earpiece { position:absolute; top:8px; left:50%; transform:translateX(-50%); width:33px; height:3px; background:#101014; border-radius:3px; }
.device-home { position:absolute; bottom:7px; left:50%; transform:translateX(-50%); width:65px; height:3px; background:#bcb9c2; border-radius:3px; }
.hero-sync-label { position:absolute; left:50%; bottom:17px; transform:translateX(-50%); display:flex; align-items:center; gap:9px; white-space:nowrap; padding:12px 18px; border:1px solid #ffffff; border-radius:30px; background:rgba(255,255,255,.8); backdrop-filter:blur(16px); color:var(--ink); font-size:12px; font-weight:700; box-shadow:0 6px 25px #2607130c; z-index:3; }
.hero-sync-label svg { width:22px; height:22px; color:var(--brand); }
.hero-visual-phones { padding-bottom:100px; }
.hero-visual-phones .hero-note { left:16px; bottom:0; }
.update-visual-phones { min-width:0; padding:0 8px; }
.update-visual-phones .hero-phone-composition { min-height:610px; }
.update-phones-caption { font-size:10px; color:var(--muted); text-align:center; margin-top:14px; }
@media(max-width:767px) { .update-visual-phones .hero-phone-composition { min-height:0; } }
@media(max-width:1100px) and (min-width:768px) { .hero-phone-composition {min-height:550px} .hero-device {border-radius:29px;padding:18px 6px 15px} .hero-device-screen {border-radius:16px} }
@media(max-width:767px) { .hero-visual-phones {padding:12px 4px 100px} .hero-phone-composition {min-height:0;aspect-ratio:.82;max-width:470px;margin-inline:auto} .hero-device {border-radius:28px;padding:17px 6px 14px} .hero-device-screen {border-radius:15px} .hero-device-site {top:5px} .hero-device-line {top:48px} .hero-sync-label {bottom:0;font-size:11px;padding:10px 13px} .hero-visual-phones .hero-note {left:0;bottom:0} .device-earpiece {top:7px} .device-home {bottom:6px;width:50px} }
.hero-cost { border-top:1px solid var(--line); }
.limited-badge { border-radius:3px; }
.plans { gap:0; }
.plan { border-top:1px solid var(--line); padding:32px; }
.plan + .plan { border-left:1px solid var(--line); }
.plan-main { border-top:3px solid var(--brand); }
.plan-coming { border-top-color:var(--line); }
.support-series { border:0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:24px 0; }
.support-targets { min-width:0; flex:1; }
.support-target-list { display:flex; flex-wrap:wrap; gap:8px; list-style:none; padding:0; margin:0 0 12px; }
.support-target-list li { padding:8px 12px; background:#fff; border:1px solid #e2c9d0; border-radius:4px; color:var(--ink); font-size:12px; font-weight:500; line-height:1.5; }
.support-targets > p { margin:0; line-height:1.8; }
.industries-section { background:var(--paper); }
.industry-examples { border-top:1px solid var(--line); }
.industry-example { border-bottom:1px solid var(--line); }
.industry-example > summary { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:25px 0; list-style:none; cursor:pointer; }
.industry-example > summary::-webkit-details-marker { display:none; }
.industry-summary { display:grid; grid-template-columns:minmax(240px,1fr) 1.3fr; align-items:center; gap:32px; flex:1; }
.industry-name { font-size:19px; font-weight:700; line-height:1.7; }
.industry-lead { font-size:14px; color:var(--muted); line-height:1.8; }
.industry-example .faq-symbol { flex-shrink:0; }
.industry-example[open] .faq-symbol::after { transform:rotate(90deg); }
.industry-content { max-width:820px; padding:0 48px 28px 0; }
.industry-content p { font-size:14px; line-height:2; margin:0; }
.industry-content .industry-updates { margin-top:16px; color:var(--muted); }
.industry-updates strong { display:inline-block; margin-right:16px; color:var(--brand); font-weight:500; }
.industry-note { margin-top:24px; line-height:1.9; color:var(--muted); }
.industries-compact { margin-top:32px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); scroll-margin-top:120px; }
.industries-compact > summary { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px 0; list-style:none; cursor:pointer; font-size:14px; font-weight:700; }
.industries-compact > summary::-webkit-details-marker {display:none}
.industries-open > h3 { margin:0; padding:20px 0 16px; font-size:16px; font-weight:700; line-height:1.6; }
.industry-name-list { display:flex; flex-wrap:wrap; gap:8px; list-style:none; margin:0; padding:4px 0 24px; }
.industry-name-list li { padding:8px 12px; border:1px solid #e2c9d0; border-radius:4px; background:#fff; color:var(--ink); font-size:12px; font-weight:500; line-height:1.5; }
@media(max-width:767px) { .industry-summary {grid-template-columns:1fr;gap:6px} .industry-name {font-size:17px} .industry-lead {font-size:12px} .industry-example > summary {padding:20px 0;gap:16px} .industry-content {padding:0 0 24px} .industry-content p {font-size:13px} .industry-updates strong {display:block;margin-bottom:4px} }
.works-grid { gap:40px; }
.support-portraits { position:relative; padding:0 0 66px; }
.support-portraits .representative-photo { display:block; width:87%; height:auto; object-position:center; }
.support-portraits .representative-athlete-photo { position:absolute; right:0; bottom:0; width:48%; height:auto; aspect-ratio:1; border:7px solid var(--paper); border-radius:3px; box-shadow:0 10px 28px rgba(35,0,10,.1); object-position:center; }
.support-photo:has(.support-portraits) figcaption { margin-top:14px; }
.support-photo-slider.support-portraits { position:relative; aspect-ratio:1; padding:0; overflow:hidden; border-radius:5px; }
.support-photo-slider .portrait-slide { position:absolute; inset:0; width:100%; height:100%; aspect-ratio:1; object-fit:cover; object-position:center; border:0; border-radius:0; box-shadow:none; opacity:0; transition:opacity .8s ease; }
.support-photo-slider .portrait-slide.is-active { opacity:1; }
.portrait-controls { display:flex; gap:20px; margin-top:12px; }
.portrait-controls button { border:0; border-bottom:1px solid var(--line); padding:5px 0; background:transparent; color:var(--muted); font:inherit; font-size:11px; cursor:pointer; }
.portrait-controls button:hover { color:var(--brand); }
.delivery-flow { list-style:none; padding:0; margin:36px 0 0; border-top:1px solid var(--line); }
.delivery-flow > li { display:grid; grid-template-columns:80px 1fr; gap:28px; padding:32px 0; border-bottom:1px solid var(--line); }
.delivery-number { font-size:32px; line-height:1.4; color:var(--brand); font-weight:700; }
.delivery-flow h3 { font-size:23px; margin:0 0 14px; line-height:1.6; }
.delivery-flow p { font-size:14px; line-height:2; margin:0; max-width:840px; }
.flow-section { padding-block:56px; }
.flow-section .section-heading { align-items:end; }
.flow-section .section-intro { font-size:13px; }
.delivery-flow { margin-top:24px; }
.delivery-flow > li { grid-template-columns:44px 1fr; gap:20px; padding:17px 0; }
.delivery-number { font-size:24px; }
.delivery-flow h3 { font-size:18px; margin-bottom:5px; }
.delivery-flow p { font-size:13px; line-height:1.8; }
.delivery-flow .setup-details { margin-top:8px; }
.delivery-flow .setup-details > summary { padding:6px 0; font-size:12px; }
.flow-section .flow-note { margin-top:20px; padding:14px 0; }
.flow-section .flow-note p { font-size:12px; line-height:1.8; }
.setup-details { margin-top:20px; max-width:840px; }
.setup-details > summary { display:flex; align-items:center; justify-content:space-between; gap:20px; list-style:none; padding:12px 0; cursor:pointer; color:var(--brand); font-size:13px; }
.setup-details > summary::-webkit-details-marker {display:none}
.setup-details ul { margin:8px 0 0; padding-left:20px; font-size:13px; line-height:1.9; }
.setup-details li + li { margin-top:10px; }
@media(max-width:767px) { .flow-section {padding-block:40px} .delivery-flow > li {grid-template-columns:32px 1fr;gap:12px;padding:16px 0} .delivery-number {font-size:21px} .delivery-flow h3 {font-size:17px} .delivery-flow p,.setup-details ul {font-size:12px} }
@media(prefers-reduced-motion:reduce) { .support-photo-slider .portrait-slide {transition:none} }
@media(max-width:767px) { .support-portraits {padding-bottom:48px} .support-portraits .representative-athlete-photo {border-width:5px} }
.works-grid .featured-work { overflow:visible; border:0; }
.works-grid .work-screen { border-radius:4px; overflow:hidden; aspect-ratio:16/9; }
.works-grid .work-screen > img { height:100%; object-fit:cover; object-position:top; transition:transform .4s ease; }
.works-grid .work-copy { padding:24px 0 0; }
.work-disclosure { border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.work-disclosure > summary { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 0; list-style:none; font-size:13px; font-weight:500; cursor:pointer; }
.work-disclosure > summary::-webkit-details-marker { display:none; }
.work-disclosure-content { padding-bottom:18px; }
.work-disclosure-content > p { font-size:14px; line-height:2; }
.work-details { margin-bottom:0; }
.work-copy > .text-link { margin-top:12px; }
.voice-placeholder { border:0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:32px 0; }
.preview-notice { border-left:2px solid var(--brand); padding:0 0 0 20px; }
.form-panel { padding-top:0; }
.privacy-disclosure { border:0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.site-footer { background:#f5f2f3; color:var(--body); }
.brand-light .brand-name { color:var(--ink); }
.brand-light .brand-name > span { color:var(--muted); }
.brand-light .brand-symbol i { background:var(--brand); }
.site-footer .small,.footer-bottom { color:var(--muted); }
.footer-bottom { border-color:var(--line); }
.back-top { color:var(--ink); }
.concept-section { background:var(--paper); }
.concept-inner { display:grid; grid-template-columns:minmax(0, .9fr) minmax(0, 1.7fr); gap:64px; border-top:1px solid var(--line); padding-top:48px; align-items:start; }
.concept-copy h2 { font-size:clamp(30px,3.2vw,44px); }
.concept-copy > p { margin-top:24px; font-size:15px; line-height:2; }
.concept-copy > .section-label { margin-top:0; }
.concept-copy .concept-closing { color:var(--muted); font-size:14px; }
.concept-copy > .text-link { margin-top:24px; font-size:13px; gap:12px; }
.features-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px 28px; list-style:none; margin:0; padding:0; }
.features-grid > li { text-align:center; min-width:0; }
.feature-icon { display:block; width:64px; height:64px; margin:0 auto 18px; color:var(--brand); }
.features-grid h3 { font-size:15px; line-height:1.7; font-weight:700; margin:0 0 10px; letter-spacing:0; }
.features-grid p { font-size:12px; line-height:1.9; color:var(--muted); margin:0; text-align:left; }
.features-note { margin-top:32px; padding-top:18px; border-top:1px solid var(--line); font-size:11px; line-height:1.9; color:var(--muted); }
.service-fit { margin-top:28px; padding:24px; border-top:0; border-left:3px solid var(--brand); background:#fcf1f4; }
.concept-inner > .service-fit { grid-column:1 / -1; margin-top:0; padding:28px 32px; }
.concept-inner > .service-fit h3 br { display:none; }
.service-fit .service-fit-label { display:flex; align-items:center; gap:8px; color:var(--brand); font-size:12px; font-weight:700; margin:0 0 14px; }
.service-fit-label svg { width:20px; height:20px; flex-shrink:0; }
.service-fit h3 { font-size:19px; line-height:1.8; margin:0 0 16px; }
.service-fit p { font-size:13px; line-height:2; margin:0 0 16px; }
.service-fit .text-link { font-size:13px; gap:12px; }
@media(max-width:767px) { .service-fit,.concept-inner > .service-fit {padding:20px 18px} .service-fit h3 {font-size:17px} .service-fit h3 br {display:none} }
.concept-copy > p:last-child { margin-top:24px; max-width:480px; font-size:15px; line-height:2; }
.update-friction { list-style:none; margin:0; padding:0; }
.update-friction li { display:flex; gap:18px; align-items:baseline; padding:15px 0; border-bottom:1px solid var(--line); font-size:19px; font-weight:500; }
.update-friction li > span { width:24px; flex-shrink:0; color:var(--muted); font-size:12px; font-weight:400; }
.concept-solution { margin-top:28px; border-left:3px solid var(--brand); padding-left:20px; }
.concept-solution strong { color:var(--brand); font-size:21px; }
.concept-solution p { margin-top:12px; font-size:14px; line-height:2; }
.button,.nav-contact { transition:transform .2s ease,background .2s ease,box-shadow .2s ease; }
.button svg,.nav-contact svg,.text-link svg { transition:transform .2s ease; }
.button:active,.nav-contact:active { transform:translateY(1px); }
.reveal { transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1); }
.reveal.is-pending { opacity:0; transform:translateY(24px); }
details[open] > .work-disclosure-content { animation:open-detail .2s ease both; }
@keyframes open-detail { from {opacity:0;transform:translateY(5px)} to {opacity:1;transform:none} }
@media(hover:hover) and (pointer:fine) { .button:hover,.nav-contact:hover { transform:translateY(-2px); box-shadow:0 6px 18px #bc002d1a; } .button:hover svg,.text-link:hover svg { transform:translateX(3px); } .work-screen:hover>img { transform:scale(1.025); } }
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) { .site-header,.hero-note,.update-stamp,.image-caption { background:rgba(255,255,255,.96); } }
@media(max-width:1100px) { .concept-inner { gap:40px; } }
@media(max-width:900px) { #main-nav { background:rgba(255,255,255,.97); } .hero h1 { font-size:42px; } .concept-inner {grid-template-columns:1fr;gap:40px} .concept-copy h2 br {display:none} }
@media(max-width:767px) {
  .hero h1 { font-size:clamp(33px,9.4vw,58px); }
  .hero-photo { border-radius:54px 4px 4px 4px; }
  .plans { gap:24px; }
  .plan { padding:24px 0; }
  .plan + .plan { border-left:0; }
  .support-series { padding-block:24px; }
  .support-targets { flex-basis:100%; }
  .works-grid { gap:32px; }
  .works-grid .work-copy { padding:20px 0 0; }
  .work-disclosure-content>p { font-size:13px; }
  .voice-placeholder { padding:24px 0; }
  .form-panel { padding:0; margin-inline:0; }
  .concept-inner { grid-template-columns:1fr; gap:28px; padding-top:32px; }
  .concept-copy h2 { font-size:30px; }
  .concept-copy h2 br { display:initial; }
  .concept-copy > p { font-size:14px; margin-top:18px; }
  .features-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 24px; }
  .feature-icon { width:56px; height:56px; margin-bottom:14px; }
  .features-grid h3 { font-size:14px; margin-bottom:8px; }
  .features-grid p { font-size:12px; }
  .concept-copy>p:last-child { font-size:14px; margin-top:16px; }
  .update-friction li { font-size:17px; padding-block:14px; }
  .concept-solution { margin-top:24px; }
  .concept-solution strong { font-size:19px; }
  .concept-solution p { font-size:13px; }
}
@media(prefers-reduced-motion:reduce) { .reveal,.reveal.is-pending {opacity:1;transform:none} *,*::before,*::after {transition:none!important;animation:none!important} }
.consultation-copy .consultation-guidance { font-size:14px; line-height:2; margin:24px 0 28px; max-width:480px; }
.security-section { background:#f7f5f6; }
.security-inner { display:grid; grid-template-columns:1fr 1.5fr; gap:80px; align-items:start; }
.security-intro h2 { font-size:clamp(32px,3.5vw,48px); }
.security-intro > p:last-child { font-size:14px; line-height:2; margin-top:24px; }
.security-reasons { list-style:none; margin:0; padding:0; }
.security-reasons li { display:grid; grid-template-columns:48px 1fr; gap:24px; padding:28px 0; border-bottom:1px solid var(--line); }
.security-reasons li:first-child { padding-top:0; }
.security-reasons svg { width:44px; height:44px; color:var(--brand); }
.security-reasons h3 { font-size:20px; line-height:1.6; margin:0 0 12px; }
.security-reasons p { font-size:14px; line-height:2; margin:0; }
.security-note { font-size:11px; line-height:1.9; color:var(--muted); margin-top:20px; }
@media(max-width:900px) { .security-inner {gap:40px;grid-template-columns:1fr} }
@media(max-width:767px) { .security-reasons li {grid-template-columns:36px 1fr;gap:16px;padding:24px 0} .security-reasons svg {width:34px;height:34px} .security-reasons h3 {font-size:18px} .security-reasons p {font-size:13px} }
/* Reference composition: a large visual beside nine icon captions. */
.concept-inner { grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); gap:56px; align-items:stretch; border-top:0; padding-top:0; }
.concept-visual { position:relative; min-height:720px; overflow:hidden; }
.concept-visual > img { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; object-position:46% center; filter:saturate(.55); }
.concept-visual-copy { position:absolute; left:0; right:0; bottom:44px; padding:32px 26px; background:rgba(255,255,255,.77); -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px); }
.concept-visual-copy p { font-size:13px; line-height:1.9; margin:0; }
.concept-visual-copy h2 { font-size:clamp(28px,2.8vw,40px); line-height:1.55; margin:12px 0; letter-spacing:-.035em; }
.concept-visual-copy h2:first-child { margin-top:0; font-size:clamp(25px,2.3vw,34px); }
.concept-visual-copy .concept-answer { margin-top:16px; color:var(--brand); font-weight:700; }
.concept-visual > .image-caption { position:absolute; right:10px; bottom:10px; padding:3px 6px; }
.features-heading { font-size:clamp(36px,4vw,54px); font-weight:900; margin:0 0 40px; line-height:1.2; letter-spacing:-.04em; }
.features-heading.features-heading-message { font-size:clamp(25px,2.7vw,38px); line-height:1.55; }
.feature-icon-rich { overflow:visible; filter:drop-shadow(0 5px 4px rgba(95,0,24,.07)); }
.feature-icon-rich .icon-shadow { fill:#ead9df; stroke:none; }
.feature-icon-rich .icon-soft { fill:#f6dce4; stroke:#bc002d; stroke-width:1.35; }
.feature-icon-rich .icon-paper { fill:#fff; stroke:#bc002d; stroke-width:1.6; }
.feature-icon-rich .icon-accent { fill:#bc002d; stroke:#bc002d; stroke-width:1.3; }
.feature-icon-rich .icon-line { fill:none; stroke:#920527; stroke-width:1.8; }
.feature-icon-rich .icon-white-line { fill:none; stroke:#fff; stroke-width:2; }
.feature-icon-rich .icon-paper-fill { fill:#fff; stroke:none; }
.features-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:38px 20px; }
.feature-icon { width:84px; height:84px; margin-bottom:20px; }
.features-grid h3 { font-size:16px; line-height:1.7; margin:0; }
.features-note { margin-top:30px; }
@media(max-width:1100px) { .concept-inner {gap:32px} .feature-icon {width:72px;height:72px} .features-grid h3 {font-size:14px} }
@media(max-width:900px) { .concept-inner {grid-template-columns:1fr;gap:36px} .concept-visual {min-height:440px} .concept-visual-copy {left:auto;max-width:440px;bottom:30px} }
@media(max-width:767px) {
 .concept-inner {gap:32px;padding-top:0}
 .concept-visual {min-height:380px}
 .concept-visual-copy {left:0;bottom:30px;padding:22px 20px;max-width:none}
 .concept-visual-copy h2 {font-size:30px}
 .concept-visual-copy p {font-size:12px}
 .features-heading {font-size:36px;margin-bottom:30px}
 .features-grid {grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 10px}
 .feature-icon {width:56px;height:56px;margin-bottom:14px}
 .features-grid h3 {font-size:12px;line-height:1.75}
 .features-note {font-size:10px;margin-top:24px}
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) { .concept-visual-copy {background:rgba(255,255,255,.96)} }
.concept-video-visual { min-height:0; display:flex; flex-direction:column; background:#f5f2f3; overflow:visible; }
.concept-demo-video { display:block; width:100%; height:auto; max-height:620px; object-fit:contain; background:#f5f2f3; }
.concept-video-visual .concept-visual-copy { position:static; max-width:none; padding:26px; background:rgba(255,255,255,.76); }
.concept-video-visual .concept-visual-copy h2:first-child { font-size:clamp(23px,2.1vw,30px); }
.demo-video-caption { font-size:10px; line-height:1.8; color:var(--muted); margin:0; padding:10px 16px; }
@media(max-width:767px) { .concept-demo-video {max-height:560px} .concept-video-visual .concept-visual-copy {padding:22px 20px} .concept-video-visual .concept-visual-copy h2:first-child {font-size:24px} }
.concept-video-visual { background:transparent; }
.demo-phone-stage { display:flex; justify-content:center; padding:20px 18px 36px; background:radial-gradient(ellipse at 50% 45%,#f8e6ea 0%,#faf7f8 40%,#fdfdfd 72%); }
#line-demo { scroll-margin-top:110px; }
.demo-phone { position:relative; width:min(100%,306px); padding:25px 9px 22px; border:1px solid #b7b5b9; border-radius:43px; background:linear-gradient(115deg,#eeeef0 0%,#9c9ba0 3%,#f5f5f6 5%,#252428 8%,#252428 92%,#c6c5ca 96%,#f5f5f6 98%,#a09fa4 100%); box-shadow:0 22px 44px rgba(39,12,21,.14),0 5px 12px rgba(39,12,21,.1),inset 0 0 0 3px #e0dfe3; }
.demo-phone::before { content:""; position:absolute; left:-3px; top:104px; width:3px; height:58px; border-radius:2px 0 0 2px; background:linear-gradient(#d7d6db,#939297,#d7d6db); box-shadow:0 72px 0 #aaa9af; }
.demo-phone::after { content:""; position:absolute; right:-3px; top:138px; width:3px; height:76px; border-radius:0 2px 2px 0; background:linear-gradient(#d7d6db,#939297,#d7d6db); }
.demo-phone-screen { overflow:hidden; border-radius:23px; background:white; border:1px solid #151416; }
.demo-phone-screen .concept-demo-video { width:100%; height:auto; max-height:none; aspect-ratio:720/1428; object-fit:contain; background:white; }
.phone-speaker { position:absolute; top:11px; left:50%; transform:translateX(-50%); width:46px; height:4px; border-radius:4px; background:#111014; box-shadow:0 1px 0 #55545a; }
.phone-home-indicator { position:absolute; bottom:9px; left:50%; transform:translateX(-50%); width:80px; height:4px; border-radius:5px; background:#bcbac1; }
.concept-video-visual .concept-visual-copy { border-top:1px solid var(--line); padding-inline:0; }
.demo-video-caption { padding-inline:0; }
@media(max-width:767px) { .demo-phone-stage {padding:16px 12px 30px} .demo-phone {width:min(100%,280px)} .concept-video-visual .concept-visual-copy {padding-inline:0} }
.hero-immersive { position:relative; isolation:isolate; padding-top:0; background:#f7f5f5; }
.hero-background { position:absolute; inset:0; z-index:-2; overflow:hidden; }
.hero-background img { width:100%; height:100%; object-fit:cover; object-position:60% center; }
.hero-immersive::before { content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background:linear-gradient(90deg,rgba(253,253,253,.96) 0%,rgba(253,253,253,.91) 26%,rgba(253,253,253,.64) 42%,rgba(253,253,253,.07) 65%,rgba(253,253,253,0) 100%); }
.hero-immersive .hero-grid { min-height:740px; padding-block:24px; grid-template-columns:1.05fr 1fr; gap:48px; align-items:center; }
.hero-immersive .hero-copy { position:relative; z-index:2; align-self:start; }
.hero-immersive .hero-visual { min-height:620px; padding:0; align-self:stretch; }
.hero-immersive .hero-note { left:auto; right:0; bottom:30px; padding:22px 26px; max-width:100%; background:rgba(255,255,255,.69); border:1px solid #ffffffb8; backdrop-filter:blur(22px); }
.hero-scene-caption { position:absolute; bottom:6px; right:0; font-size:9px; color:#4b4549; padding:3px 7px; background:rgba(255,255,255,.72); border-radius:3px; }
.hero-immersive .hero-bottom { position:relative; z-index:1; border-top:1px solid #ffffff90; padding-block:20px; color:#51474c; }
.hero-immersive .hero-cost { border-color:#cbbfc4; }
@media(min-width:1500px) { .hero-background img {object-position:center 58%} }
@media(max-width:1100px) and (min-width:768px) { .hero-immersive .hero-grid {gap:24px;min-height:700px} .hero-immersive .hero-visual {min-height:580px} .hero-immersive .hero-note {padding:18px} }
@media(max-width:767px) {
 .hero-immersive .hero-grid {grid-template-columns:1fr;gap:0;min-height:0;padding-block:0 24px}
 .hero-background {height:430px;bottom:auto}
 .hero-background img {object-position:78% center}
 .hero-immersive::before {background:linear-gradient(180deg,rgba(253,253,253,.04) 0,rgba(253,253,253,.08) 180px,rgba(253,253,253,.9) 330px,#fdfdfd 430px);}
 .hero-immersive .hero-copy {padding-top:290px}
 .hero-immersive .hero-visual {min-height:0;display:block;padding:24px 0 16px}
 .hero-immersive .hero-note {position:relative;inset:auto;display:flex;width:100%;max-width:390px;padding:18px 20px}
 .hero-scene-caption {bottom:auto;top:-30px;right:0;font-size:8px}
 .hero-immersive .hero-bottom {background:#fdfdfd;border-color:var(--line);padding-block:18px}
 .hero-immersive .hero-audience {font-size:12px}
 .hero-immersive h1 {margin-block:20px}
}
@media print { .reveal.is-pending {opacity:1;transform:none} }

.limited-badge-monitor { padding: 18px 24px; font-size: clamp(20px, 2.4vw, 26px); line-height: 1.4; }

/* Representative experience: reference-inspired three-column strip. */
.support-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:48px 0 0; padding:26px 20px; background:#fff; border:1px solid rgba(10,0,2,.06); border-radius:24px; box-shadow:0 14px 40px rgba(50,15,25,.06); text-align:center; }
.support-stats > div { min-width:0; padding:0 16px; }
.support-stats > div + div { border-left:1px solid var(--line); }
.support-stats dt { font-size:14px; font-weight:700; color:var(--ink,#0a0002); }
.support-stats dd { margin:8px 0 0; color:var(--brand); font-family:"Noto Serif JP","Yu Mincho",serif; font-size:clamp(30px,4vw,52px); font-weight:700; line-height:1.25; white-space:nowrap; }
@media(max-width:767px) {
 .support-stats { margin-top:32px; padding:22px 8px; border-radius:18px; }
 .support-stats > div { padding:0 5px; }
 .support-stats dt { font-size:10px; }
 .support-stats dd { font-size:clamp(18px,4.4vw,28px); margin-top:10px; }
}
@media(max-width:480px) {
 .support-stats { grid-template-columns:1fr; padding:8px 18px; text-align:left; }
 .support-stats > div { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 0; }
 .support-stats > div + div { border-left:0; border-top:1px solid var(--line); }
 .support-stats dt { font-size:12px; }
 .support-stats dd { flex-shrink:0; margin:0; font-size:26px; }
}
.support-portrait-static { overflow:hidden; border-radius:5px; }
.support-portrait-static .representative-photo { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; object-position:center; }

.support-background p + p { margin-top:16px; }

.service-story-section { background:#faf5f6; padding-block:64px; }
.service-story-inner { display:grid; grid-template-columns:1fr 1.25fr; gap:56px; align-items:start; }
.service-story-copy { font-size:15px; line-height:2; }
.service-story-copy p { margin:0; }
.service-story-copy p + p { margin-top:20px; }
@media(max-width:767px) {
 .service-story-section { padding-block:40px; }
 .service-story-inner { grid-template-columns:1fr; gap:24px; }
 .service-story-copy { font-size:14px; }
}
/* Header shares the hero background at the top of the page. */
.site-header { position:fixed; inset:0 0 auto; background:transparent; border-bottom-color:transparent; -webkit-backdrop-filter:none; backdrop-filter:none; transition:background .25s ease,border-color .25s ease,box-shadow .25s ease; }
.site-header.is-scrolled, body.menu-open .site-header { background:rgba(253,253,253,.96); border-bottom-color:#ebe6e8; box-shadow:0 4px 24px rgba(35,0,10,.04); -webkit-backdrop-filter:blur(22px); backdrop-filter:blur(22px); }
.hero-immersive { padding-top:96px; }
@media(max-width:900px) { .hero-immersive { padding-top:80px; } }
@media(max-width:767px) { .hero-immersive { padding-top:72px; } }
@media(prefers-reduced-motion:reduce) { .site-header { transition:none; } }
.plan-top .plan-audience { margin-top:12px; font-size:12px; line-height:1.9; color:var(--muted); }
@media(max-width:767px) {
 .plan-main .plan-top { flex-wrap:wrap; }
 .plan-main .plan-top .plan-audience { flex:0 0 100%; max-width:none; margin-top:0; text-align:left; }
}

.concept-light-emphasis { color:var(--brand); display:inline-block; padding:0 .08em; font-size:1.28em; font-weight:900; letter-spacing:-.04em; background:linear-gradient(transparent 73%,#f8e6ea 73%,#f8e6ea 94%,transparent 94%); }
.site-header .header-inner { justify-content:flex-end; }

.hero-cost .hero-payment { display:flex; align-items:center; gap:8px; margin:14px 0 0; font-size:12px; font-weight:700; color:var(--brand); }
.hero-support-offer { display:grid; grid-template-columns:minmax(0,1fr) 24px; gap:1px 12px; margin-top:14px; padding:12px 16px; border:1px solid rgba(188,0,45,.28); border-left:3px solid var(--brand); border-radius:4px; background:rgba(188,0,45,.045); color:var(--brand); text-decoration:none; }
.hero-support-audience { grid-column:1; font-size:13px; font-weight:700; line-height:1.65; }
.hero-support-initial { grid-column:1; font-size:11px; font-weight:700; line-height:1.8; }
.hero-support-price { grid-column:1; display:flex; align-items:baseline; gap:5px; white-space:nowrap; font-size:13px; font-weight:700; line-height:1.3; }
.hero-support-offer .hero-support-amount { color:var(--brand); font-size:30px; font-weight:900; letter-spacing:-.04em; }
.hero-support-unit { font-size:12px; }
.hero-support-detail { grid-column:1; font-size:11px; line-height:1.7; }
.hero-support-arrow { grid-column:2; grid-row:1 / 5; align-self:center; font-size:24px; }
.hero-support-offer:hover { background:rgba(188,0,45,.09); border-color:var(--brand); }
.hero-support-offer:focus-visible { outline:2px solid var(--brand); outline-offset:4px; }
#support-series { scroll-margin-top:120px; }
.hero-payment svg { width:22px; height:22px; flex-shrink:0; }

.hero-immersive .hero-bottom { border-top:0; }

@media(min-width:768px) {
 .hero-immersive::before { background:linear-gradient(90deg,rgba(253,253,253,.66) 0%,rgba(253,253,253,.7) 26%,rgba(253,253,253,.52) 42%,rgba(253,253,253,.07) 65%,rgba(253,253,253,0) 100%); }
}
.service-story-inner { grid-template-columns:1fr 1fr; align-items:center; gap:48px; }
.service-story-text .service-story-copy { margin-top:26px; }
.story-concerns h3 { margin:0 0 22px; color:var(--brand); font-size:20px; text-align:center; }
.story-concerns-scene { display:grid; grid-template-columns:1fr 1fr; gap:16px 18px; align-items:center; }
.concern-bubble { position:relative; margin:0; padding:17px 10px; border:1px solid #ead5dc; border-radius:16px; background:#fff; color:#24141b; font-size:15px; font-weight:700; line-height:1.8; text-align:center; box-shadow:0 5px 15px rgba(85,15,35,.035); }
.concern-bubble::after { content:""; position:absolute; bottom:-7px; left:calc(50% - 6px); width:12px; height:12px; background:#fff; border-right:1px solid #ead5dc; border-bottom:1px solid #ead5dc; transform:rotate(45deg); }
.story-concerns-person { grid-column:1/-1; display:block; width:220px; height:200px; object-fit:contain; margin:0 auto; }
.concern-bubble-bottom::after { bottom:auto; top:-7px; transform:rotate(225deg); }
@media(max-width:767px) {
 .service-story-inner { grid-template-columns:1fr; gap:36px; }
 .story-concerns { width:100%; max-width:460px; margin:auto; }
 .concern-bubble { font-size:14px; padding:14px 7px; }
 .story-concerns-scene { gap:14px; }
 .story-concerns-person { height:180px; }
}
.story-concerns-person { width:min(100%,300px); }

/* Keep narrow-screen hero copy over the image instead of below it. */
@media(max-width:767px) {
 .hero-immersive .hero-background { height:100%; inset:0; }
 .hero-immersive .hero-background img { object-fit:cover; object-position:72% center; }
 .hero-immersive::before { background:linear-gradient(90deg,rgba(253,253,253,.9) 0%,rgba(253,253,253,.78) 44%,rgba(253,253,253,.3) 100%); }
 .hero-immersive .hero-grid { padding-block:28px 20px; }
 .hero-immersive .hero-copy { padding-top:0; }
 .hero-immersive h1 { font-size:clamp(26px,5.6vw,40px); line-height:1.5; }
 .hero-immersive .hero-visual { padding-top:30px; }
 .hero-immersive .hero-bottom { background:transparent; }
 .hero-immersive .hero-scene-caption { top:auto; bottom:0; }
}
.site-header .header-inner { justify-content:space-between; }

.support-heading-inline { margin-bottom:30px; }
.support-heading-inline .section-intro { margin-top:20px; max-width:none; }

/* Soft, sequential depth accents follow the silhouettes in the source image. */
.hero-background > img { object-position:center center; }
.hero-people-effects { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.hero-person-lift { opacity:0; animation:hero-person-rise 9s ease-in-out infinite; }
@keyframes hero-person-rise {
 0%,4%,34%,100% { opacity:0; transform:translateY(0); }
 14%,22% { opacity:.55; transform:translateY(-5px); filter:contrast(1.12) drop-shadow(0 5px 5px rgba(90,20,40,.12)); }
}
@media(prefers-reduced-motion:reduce) { .hero-people-effects { display:none; } }
@media print { .hero-people-effects { display:none; } }
/* Reveal each person once, in left-to-right order. */
.hero-person-lift { opacity:0; animation:hero-person-appear 1.8s cubic-bezier(.22,.61,.36,1) both; }
@keyframes hero-person-appear {
 from { opacity:0; transform:translateY(18px); filter:blur(4px); }
 to { opacity:1; transform:translateY(0); filter:blur(0); }
}
/* Include all surrounding pigment in the reveal; remove its cover when complete. */
.hero-reveal-cover { animation:hero-cover-finish .35s linear 5.4s both; }
@keyframes hero-cover-finish { from {opacity:1} to {opacity:0} }
.hero-depth-image { opacity:.3; filter:contrast(1.35) saturate(1.08); }

/* Editorial headline with a light Latin accent and a strong outcome. */
.hero-immersive .hero-headline-rich { margin-block:24px 32px; line-height:1.35; letter-spacing:-.055em; text-shadow:0 2px 20px rgba(255,255,255,.65); }
.hero-headline-first { display:flex; align-items:baseline; gap:.08em; font-size:.78em; white-space:nowrap; }
.hero-headline-light { position:relative; display:inline-block; color:var(--brand); font-family:Georgia,"Times New Roman",serif; font-size:1.58em; font-style:italic; font-weight:700; letter-spacing:-.055em; padding-right:.08em; }
.hero-headline-light::after { content:""; position:absolute; left:.04em; right:.03em; bottom:.06em; height:2px; background:linear-gradient(90deg,#bc002d,rgba(188,0,45,.12)); transform:rotate(-4deg); }
.hero-headline-result { display:block; width:fit-content; margin-top:.08em; font-size:1.34em; font-weight:900; letter-spacing:-.065em; color:#a70029; }
.hero-headline-period { color:#0a0002; }
@media(max-width:767px) {
 .hero-immersive .hero-headline-rich { font-size:clamp(29px,6.2vw,44px); margin-block:22px 28px; }
 .hero-headline-first { font-size:.8em; }
 .hero-headline-result { font-size:1.48em; }
}
/* A short, icon-led five-step path. */
.flow-section { padding-block:42px; }
.flow-section .section-heading { margin-bottom:22px; }
.delivery-flow-compact { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); margin-top:0; border-top:0; }
.delivery-flow-compact > li { display:block; position:relative; padding:0 18px; border-bottom:0; border-left:1px solid var(--line); }
.delivery-flow-compact > li:first-child { border-left:0; padding-left:0; }
.delivery-flow-compact > li:last-child { padding-right:0; }
.delivery-step-mark { display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.delivery-flow-compact .delivery-number { font-size:13px; letter-spacing:.08em; }
.delivery-icon { width:38px; height:38px; color:var(--brand); filter:drop-shadow(2px 3px 0 #f2dce3); }
.delivery-flow-compact h3 { font-size:15px; margin:0 0 8px; line-height:1.65; }
.delivery-flow-compact p { font-size:12px; line-height:1.85; }
.delivery-setup-compact { margin-top:20px; border-block:1px solid var(--line); }
.delivery-setup-compact .setup-details { margin:0; max-width:none; }
.delivery-setup-compact .setup-details > summary { padding:12px 0; font-size:12px; }
.flow-section .flow-note { margin-top:12px; padding:0; border:0; }
.flow-section .flow-note p { font-size:11px; }
@media(max-width:767px) {
 .flow-section { padding-block:34px; }
 .delivery-flow-compact { grid-template-columns:1fr; }
 .delivery-flow-compact > li,.delivery-flow-compact > li:first-child,.delivery-flow-compact > li:last-child { display:grid; grid-template-columns:60px 1fr; gap:14px; padding:12px 0; border-left:0; border-bottom:1px solid var(--line); }
 .delivery-step-mark { flex-direction:column; gap:3px; margin:0; }
 .delivery-icon { width:29px; height:29px; }
 .delivery-flow-compact h3 { margin-bottom:3px; font-size:15px; }
 .delivery-flow-compact p { font-size:12px; }
 .delivery-setup-compact { margin-top:12px; border-top:0; }
}
/* Keep the group of people in frame on narrow screens. */
@media(max-width:767px) {
 .hero-immersive .hero-background { background:#fdfdfd; }
 .hero-immersive .hero-background > img { width:100%; height:460px; object-fit:cover; object-position:28% top; }
 .hero-immersive .hero-people-effects { height:460px; }
 .hero-immersive::before { background:linear-gradient(180deg,rgba(253,253,253,.26) 0,rgba(253,253,253,.4) 140px,rgba(253,253,253,.82) 340px,#fdfdfd 460px); }
 .hero-immersive .hero-copy { padding-top:0; }
}
.hero-immersive .hero-actions { display:grid; grid-template-columns:1fr 1fr; align-items:stretch; gap:12px; }
.hero-immersive .hero-actions > .button { min-width:0; width:100%; min-height:60px; padding:14px 16px; gap:8px; font-size:14px; box-sizing:border-box; }
.hero-immersive .button-hero-secondary { background:rgba(255,255,255,.9); color:var(--brand); border:1px solid var(--brand); }
.hero-immersive .button-hero-secondary:hover { background:#f8e6ea; }
.hero-actions .button-hero-secondary > svg { width:22px; height:22px; flex-shrink:0; }
@media(max-width:767px) {
 .hero-immersive .hero-actions { gap:8px; }
 .hero-immersive .hero-actions > .button { padding:12px 10px; min-height:56px; font-size:12px; }
 .hero-immersive .hero-actions .button-icon { width:20px; height:20px; }
}
@media(max-width:767px) { .hero-immersive .hero-visual:empty { display:none; padding:0; min-height:0; } }

.hero-immersive .hero-announcement .hero-audience-prominent { display:block; font-size:clamp(17px,1.7vw,23px); font-weight:700; line-height:1.85; letter-spacing:.015em; color:#0a0002; text-shadow:0 1px 12px #fff; }
.hero-audience-prominent .hero-audience-line { display:block; }
.hero-audience-prominent strong { color:var(--brand); font-weight:900; background:linear-gradient(transparent 76%,rgba(248,230,234,.85) 76%); }
@media(max-width:767px) { .hero-immersive .hero-announcement .hero-audience-prominent { font-size:clamp(15px,4vw,20px); } }
/* Blend the hero photograph into the following blush section. */
.hero-immersive { background:#faf5f6; }
.hero-immersive::after { content:""; position:absolute; left:0; right:0; bottom:0; height:clamp(130px,20vw,240px); z-index:-1; pointer-events:none; background:linear-gradient(180deg,rgba(250,245,246,0) 0%,rgba(250,245,246,.34) 40%,rgba(250,245,246,.82) 76%,#faf5f6 100%); }
@media(max-width:767px) {
 .hero-immersive .hero-background { background:linear-gradient(180deg,#fdfdfd 0%,#fdfdfd 55%,#faf5f6 100%); }
 .hero-immersive::before { background:linear-gradient(180deg,rgba(253,253,253,.26) 0,rgba(253,253,253,.4) 140px,rgba(253,253,253,.82) 340px,#fdfdfd 460px,rgba(253,253,253,0) 78%); }
 .hero-immersive::after { height:150px; }
}
/* One continuous page canvas, with no color blocks at section boundaries. */
main#main { background:linear-gradient(180deg,#faf5f6 0%,#fdfdfd 14%,#faf5f6 28%,#fdfdfd 43%,#f9eff2 56%,#fdfdfd 73%,#faf5f6 100%); }
main#main > section:not(.hero-immersive) { background:transparent; }
.demo-phone-stage { background:radial-gradient(ellipse at 50% 45%,rgba(248,230,234,.85) 0%,rgba(248,230,234,.2) 45%,rgba(248,230,234,0) 72%); padding-bottom:20px; }
.concept-video-visual .demo-video-caption { padding:0 0 22px; text-align:center; }
.concept-video-visual .concept-visual-copy { background:transparent; -webkit-backdrop-filter:none; backdrop-filter:none; }
.concept-inner > .concept-visual-copy-wide { grid-column:1 / -1; position:static; inset:auto; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); column-gap:40px; row-gap:12px; max-width:none; padding:28px 0; border-block:1px solid var(--line); background:transparent; -webkit-backdrop-filter:none; backdrop-filter:none; }
.concept-inner > .concept-visual-copy-wide h2:first-child { grid-row:1 / 3; align-self:center; margin:0; font-size:clamp(22px,2.3vw,30px); }
.concept-inner > .concept-visual-copy-wide .concept-answer { margin-top:0; }
@media(max-width:767px) {
 .concept-inner > .concept-visual-copy-wide { grid-template-columns:1fr; gap:14px; padding:22px 0; }
 .concept-inner > .concept-visual-copy-wide h2:first-child { grid-row:auto; font-size:22px; }
}
.site-footer { background:#faf5f6; }
.hero-audience-prominent > .hero-audience-line { display:block; width:auto; height:auto; background:none; border-radius:0; }
/* Soft editorial English lettering echoes the hero's Light typography. */
.has-section-watermark { position:relative; isolation:isolate; }
.section-watermark { position:absolute; z-index:-1; top:8px; right:var(--gutter,24px); max-width:calc(100% - 32px); overflow:hidden; color:rgba(188,0,45,.045); font-family:Georgia,"Times New Roman",serif; font-style:italic; font-weight:700; font-size:clamp(76px,12vw,180px); line-height:1.1; letter-spacing:-.055em; white-space:nowrap; pointer-events:none; user-select:none; }
.contact-intro > .section-watermark { top:0; }
@media(max-width:767px) { .section-watermark { top:12px; right:18px; font-size:clamp(68px,17vw,108px); color:rgba(188,0,45,.04); } }
/* Legible mobile navigation over the detailed hero image. */
@media(max-width:900px) {
 .site-header { background:transparent; border-bottom:1px solid transparent; box-shadow:none; -webkit-backdrop-filter:none; backdrop-filter:none; }
 .site-header.is-scrolled,body.menu-open .site-header { background:rgba(255,255,255,.32); border-bottom:1px solid rgba(255,255,255,.65); box-shadow:0 3px 16px rgba(40,8,20,.05),inset 0 1px 0 rgba(255,255,255,.55); -webkit-backdrop-filter:blur(14px) saturate(145%); backdrop-filter:blur(14px) saturate(145%); }
 .site-header .header-inner { gap:16px; }
 .site-header .brand-name { color:#0a0002; font-weight:900; }
 .site-header .menu-toggle { display:inline-flex; align-items:center; justify-content:center; min-height:44px; min-width:94px; gap:10px; padding:9px 12px; border:1px solid #e7c9d2; border-radius:5px; background:#fff; color:#a70029; font-size:12px; font-weight:700; }
 .menu-toggle .menu-lines::before,.menu-toggle .menu-lines::after { background:currentColor; }
 .menu-toggle:hover,.menu-toggle[aria-expanded="true"] { background:#f8e6ea; border-color:#bc002d; }
 .menu-toggle:focus-visible { outline:2px solid #bc002d; outline-offset:3px; }
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) {
 @media(max-width:900px) { .site-header.is-scrolled,body.menu-open .site-header { background:rgba(255,255,255,.96); } }
}
/* Gentle, one-time entrances and compact consultation prompts. */
.reveal { transition:opacity .9s ease,transform .9s cubic-bezier(.22,.61,.36,1); transition-delay:var(--reveal-delay,0ms); }
.reveal.is-pending { opacity:0; transform:translateY(18px); }
.section-cta { display:flex; align-items:center; justify-content:space-between; gap:28px; margin-top:36px; padding:32px; border:1px solid var(--brand); border-radius:8px; background:var(--brand); color:#fff; box-shadow:0 10px 28px rgba(188,0,45,.12); }
.section-cta p { margin:0; color:#fff; font-size:clamp(19px,2vw,24px); font-weight:900; line-height:1.65; }
.section-cta .button { flex-shrink:0; min-height:60px; font-size:14px; background:#fff; color:var(--brand); border:1px solid #fff; }
.section-cta .button:hover { background:#f8e6ea; color:var(--brand); }
.section-cta .button:focus-visible { outline:2px solid #fff; outline-offset:5px; }
.section-cta .button svg { width:22px; height:22px; flex-shrink:0; }
.section-cta-quiet { grid-column:1/-1; margin-top:12px; }
.hero-cta-guide { margin:0 0 12px; color:#333; font-size:12px; font-weight:700; line-height:1.8; }
.cta-message { min-width:0; }
.section-cta .cta-caption { display:block; margin-top:10px; color:rgba(255,255,255,.92); font-size:13px; font-weight:400; line-height:1.8; }
.plan-link-primary { min-height:54px; padding:14px 16px; border:1px solid var(--brand); border-radius:4px; background:var(--brand); color:#fff; gap:12px; line-height:1.6; transition:background .2s; }
.plan-link-primary:hover { color:#fff; background:#940023; }
.plan-link-primary svg { flex-shrink:0; }
.plan-link-primary:focus-visible { outline:2px solid var(--brand); outline-offset:4px; }
@media(max-width:767px) {
 .hero-cta-guide { font-size:11px; margin-bottom:10px; }
 .hero-immersive .hero-actions > .button:first-child { font-size:11px; }
 .plan-link-primary { padding:12px 14px; }
}
.button-cta-outline { border:1px solid var(--brand); background:rgba(255,255,255,.75); color:var(--brand); }
.button-cta-outline:hover { background:#f8e6ea; }
.service-fit .button-cta-outline { margin-top:12px; min-height:50px; font-size:13px; }
@media(max-width:767px) {
 .section-cta { flex-direction:column; align-items:flex-start; gap:20px; margin-top:26px; padding:24px 20px; }
 .section-cta p { font-size:19px; }
 .section-cta .button { width:100%; box-sizing:border-box; }
 .reveal.is-pending { transform:translateY(14px); }
}
@media(prefers-reduced-motion:reduce) { .reveal,.reveal.is-pending { opacity:1; transform:none; transition:none; } }
.hero-monitor-glass { position:absolute; right:0; bottom:24px; display:flex; align-items:center; gap:14px; padding:22px 28px; border:1px solid rgba(255,255,255,.95); border-radius:8px; background:rgba(255,255,255,.66); -webkit-backdrop-filter:blur(22px) saturate(115%); backdrop-filter:blur(22px) saturate(115%); box-shadow:0 8px 30px rgba(45,12,25,.08),inset 0 1px 0 #fff; }
.hero-monitor-glass p { display:flex; align-items:baseline; gap:8px; margin:0; color:#24141b; font-size:17px; font-weight:700; white-space:nowrap; }
.hero-monitor-glass strong { color:var(--brand); font-size:44px; line-height:1.1; font-weight:900; letter-spacing:-.05em; }
.hero-monitor-glass strong span { margin-left:3px; font-size:21px; letter-spacing:0; }
.monitor-glass-dot { width:7px; height:7px; flex-shrink:0; border-radius:50%; background:var(--brand); }
.hero-availability-label { display:inline-flex; align-items:center; gap:12px; }
@media(max-width:767px) {
 .hero-immersive .hero-visual { padding:18px 0 0; }
 .hero-monitor-glass { position:relative; inset:auto; width:100%; max-width:100%; box-sizing:border-box; justify-content:center; padding:16px 22px; }
 .hero-monitor-glass p { font-size:15px; }
 .hero-monitor-glass strong { font-size:36px; }
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) { .hero-monitor-glass { background:rgba(255,255,255,.94); } }
.edit-boundaries > .edit-boundary-notes { display:block; }
/* Mobile artwork keeps the people and LINE interaction inside the hero itself. */
@media(max-width:767px) {
 .hero-immersive .hero-background { height:580px; bottom:auto; background:#fdfdfd url('../images/hero-mobile-line-hands-v3.webp') no-repeat right top / auto 580px; }
 .hero-immersive .hero-background > img,.hero-immersive .hero-people-effects { display:none; }
 .hero-immersive::before { background:linear-gradient(180deg,transparent 0%,transparent 84%,#fdfdfd 580px); }
 .hero-immersive .hero-intro { min-height:0; }
}
/* Let the hero artwork show without a white cover or background panel. */
.hero-immersive { background:transparent; }
.hero-immersive::before,.hero-immersive::after { content:none; background:none; }
.hero-immersive .hero-background { background-color:transparent; opacity:.45; }
.edit-notes-list { margin:10px 0 0; padding-left:1.3em; font-size:12px; line-height:1.9; }
.edit-notes-list li + li { margin-top:5px; }
.edit-notes-list li::marker { color:var(--brand); }
.security-accordion > li,.security-accordion > li:first-child { display:block; padding:0; }
.security-detail > summary { display:grid; grid-template-columns:40px 1fr 16px; align-items:center; gap:18px; padding:20px 0; cursor:pointer; list-style:none; }
.security-detail > summary::-webkit-details-marker { display:none; }
.security-detail > summary svg { width:36px; height:36px; }
.security-detail > summary h3 { margin:0; font-size:17px; line-height:1.65; }
.security-detail > summary:focus-visible { outline:2px solid var(--brand); outline-offset:4px; }
.security-detail-body { padding:0 0 22px 58px; }
.security-detail-body p + p { margin-top:12px; }
.security-detail[open] .faq-symbol::after { transform:rotate(90deg); opacity:0; }
@media(max-width:767px) {
 .security-detail > summary { grid-template-columns:32px 1fr 14px; gap:12px; padding:17px 0; }
 .security-detail > summary svg { width:29px; height:29px; }
 .security-detail > summary h3 { font-size:15px; }
 .security-detail-body { padding-left:44px; }
}
/* A single latest-news row immediately below the hero. */
@media(min-width:1281px) {
 #main-nav { gap:14px; font-size:11px; }
 #main-nav > a { white-space:nowrap; }
 #main-nav .nav-contact { padding-inline:18px; gap:14px; }
}
@media(max-width:1280px) {
 .site-header .menu-toggle { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:44px; min-width:94px; padding:9px 12px; border:1px solid #e7c9d2; border-radius:5px; background:rgba(255,255,255,.85); color:var(--brand); font-size:12px; font-weight:700; }
 .menu-lines { width:24px; height:16px; position:relative; }
 .menu-lines::before,.menu-lines::after { content:""; position:absolute; width:24px; height:1.5px; left:0; top:4px; background:currentColor; transition:transform .2s; }
 .menu-lines::after { top:12px; }
 .menu-toggle[aria-expanded="true"] .menu-lines::before { transform:translateY(4px) rotate(45deg); }
 .menu-toggle[aria-expanded="true"] .menu-lines::after { transform:translateY(-4px) rotate(-45deg); }
 #main-nav { display:none; position:absolute; top:96px; inset-inline:0; padding:16px var(--gutter) 24px; max-height:calc(100dvh - 96px); overflow-y:auto; background:rgba(253,253,253,.98); border-bottom:1px solid var(--line); box-shadow:0 20px 25px #21000a0d; gap:0 28px; align-items:stretch; font-size:14px; }
 #main-nav.is-open { display:grid; grid-template-columns:1fr 1fr; }
 #main-nav > a:not(.nav-contact) { border-bottom:1px solid var(--line); padding-block:14px; }
 #main-nav .nav-contact { grid-column:1/-1; margin-top:20px; min-height:54px; justify-content:space-between; }
 .site-header .menu-toggle:focus-visible { outline:2px solid var(--brand); outline-offset:3px; }
}
@media(max-width:900px) { #main-nav { top:80px; max-height:calc(100dvh - 80px); } }
@media(max-width:767px) { #main-nav { top:72px; max-height:calc(100dvh - 72px); } #main-nav.is-open { grid-template-columns:1fr; } }
/* Keep the open menu and its header on one opaque surface. */
@media(max-width:1280px) {
 body.menu-open .site-header { background:#fdfdfd; border-bottom-color:transparent; box-shadow:none; -webkit-backdrop-filter:none; backdrop-filter:none; transition:none; }
 body.menu-open #main-nav { background:#fdfdfd; }
}
.story-heading-emphasis { color:var(--brand); font-weight:900; background:linear-gradient(transparent 78%,rgba(188,0,45,.12) 78%); -webkit-box-decoration-break:clone; box-decoration-break:clone; }
#contact.contact-intro { display:block; padding-block:28px 20px; }
#contact.contact-intro > div { display:grid; grid-template-columns:1.1fr 1fr; column-gap:40px; row-gap:12px; align-items:center; }
#contact.contact-intro .section-label { grid-column:1 / -1; margin-bottom:0; }
#contact.contact-intro h2 { font-size:clamp(28px,3vw,36px); line-height:1.5; }
#contact.contact-intro h2.section-label { font-size:14px; line-height:1.6; margin:0; }
#contact.contact-intro .page-lead { margin-top:0; font-size:14px; }
.contact-intro + .contact-form-section { padding-top:24px; }
.contact-topics-rich { display:grid; gap:10px; margin-block:28px; }
.contact-topics-rich li { display:flex; align-items:center; gap:12px; padding:14px 12px; border:1px solid #eadbe0; border-radius:6px; background:rgba(255,255,255,.76); box-shadow:0 3px 12px rgba(45,12,25,.035); font-size:13px; font-weight:700; line-height:1.7; }
.contact-topic-icon { flex:0 0 38px; display:grid; place-items:center; width:38px; height:38px; border-radius:10px; background:linear-gradient(145deg,#fff,#f8e6ea); color:var(--brand); box-shadow:inset 0 0 0 1px rgba(188,0,45,.07); }
.contact-topic-icon svg { width:26px; height:26px; }
@media(max-width:767px) {
 #contact.contact-intro { padding-block:24px 16px; }
 #contact.contact-intro > div { display:block; }
 #contact.contact-intro .section-label { margin-bottom:12px; }
 #contact.contact-intro h2 { font-size:28px; }
 #contact.contact-intro h2.section-label { font-size:13px; }
 #contact.contact-intro .page-lead { margin-top:12px; }
}
.latest-news { display:flex; align-items:center; gap:24px; padding-block:22px; border-bottom:1px solid var(--line); font-size:13px; }
.latest-news-label { flex-shrink:0; font-weight:700; color:var(--brand); }
.latest-news-article { display:flex; align-items:center; gap:22px; min-width:0; flex:1; }
.latest-news-article time { flex-shrink:0; font-size:11px; color:var(--muted); }
.latest-news-title { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.latest-news-all { display:flex; align-items:center; gap:14px; flex-shrink:0; font-size:12px; font-weight:700; }
.latest-news a:hover { color:var(--brand); }
.latest-news a:focus-visible { outline:2px solid var(--brand); outline-offset:4px; }
@media(max-width:767px) {
 .latest-news { gap:12px; padding-block:18px; font-size:12px; }
 .latest-news-label { display:none; }
 .latest-news-article { gap:10px; }
 .latest-news-article time { font-size:10px; }
 .latest-news-all { gap:5px; font-size:11px; }
}

.form-honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.form-paused { padding:20px 0; border-block:1px solid var(--line); line-height:2; }
.form-paused a { color:var(--brand); text-decoration:underline; }
#send-status { margin-block:16px; font-size:13px; line-height:1.8; }
.button:disabled { opacity:.5; cursor:wait; }
.news-post-image { display:block; width:100%; height:auto; max-height:600px; object-fit:contain; margin-top:24px; }
