:root {
  --kujira-navy:#0b2438;
  --kujira-orange:#ff6900;
  --kujira-orange-dark:#e85f00;
  --kujira-line:#dce3e8;
  --kujira-soft:#f5f8fa;
  --kujira-container:1480px;
}

html { scroll-behavior:smooth; }
body { color:var(--kujira-navy); font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif; background:#fff; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible { outline:3px solid rgba(255,105,0,.38); outline-offset:3px; }

/* Header — same proportions as the supplied KUJIRA template. */
.kujira-reference-header { height:76px; min-height:76px; border-top:2px solid var(--kujira-orange); box-shadow:0 1px 12px rgba(11,36,56,.06); }
.kujira-header__inner { width:min(var(--kujira-container),calc(100% - 96px)); height:74px; }
.kujira-header__brand img { width:260px; height:auto; }
.kujira-header__nav { gap:36px; }
.kujira-header__nav a { color:var(--kujira-navy); font-size:15px; font-weight:700; }
.kujira-header__cta { border-radius:999px; background:var(--kujira-orange); box-shadow:none; }

/* Hero */
#home_promo.wifi-template-hero { position:relative; left:50%; display:block!important; width:100vw; max-width:none; height:590px; min-height:590px; padding:0!important; margin-left:-50vw!important; margin-right:-50vw!important; overflow:hidden; background:#fff; }
#home_promo .hero__background { position:absolute; inset:0; z-index:0; width:100%; height:100%; margin:0; }
#home_promo .hero__background img { display:block; width:100%; height:100%; object-fit:cover; object-position:center center; }
#home_promo::after { content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.98) 29%,rgba(255,255,255,.82) 41%,rgba(255,255,255,.22) 55%,rgba(255,255,255,0) 67%); }
#home_promo .hero__inner { position:relative; z-index:2; display:block!important; width:min(var(--kujira-container),calc(100% - 112px)); height:100%; margin:0 auto; padding:0!important; }
#home_promo .hero__content { position:relative; z-index:2; display:block!important; width:690px; max-width:48%; height:auto!important; padding:64px 0 0!important; }
#home_promo .hero__price { display:flex; align-items:center; gap:18px; width:max-content; max-width:100%; margin:0 0 30px!important; padding:0!important; border:0!important; border-radius:0!important; background:transparent!important; color:var(--kujira-navy); font-size:17px; font-weight:700; line-height:1.5; box-shadow:none!important; }
#home_promo .hero__price span:first-child { padding:10px 20px; border:1.5px solid var(--kujira-orange); border-radius:999px; color:var(--kujira-orange); background:#fff; }
#home_promo .hero__price i { width:1px; height:28px; overflow:hidden; color:transparent; background:#b9c2c9; }
#home_promo .hero__title { display:flex; flex-direction:column; gap:0; width:auto; margin:0!important; color:var(--kujira-navy); font-size:clamp(52px,3.75vw,56px)!important; font-weight:800; line-height:1.12!important; letter-spacing:-.05em; white-space:normal; }
#home_promo .hero__title > span, #home_promo .hero__title > strong { display:block; width:max-content; max-width:100%; white-space:nowrap; }
#home_promo .hero__title > strong { color:var(--kujira-orange); font-size:1.08em; }
#home_promo .hero__lead { margin:24px 0 0!important; color:var(--kujira-navy); font-size:20px!important; font-weight:500; line-height:1.9!important; letter-spacing:.01em; }
.wifi-template-hero__actions { display:flex; gap:18px; margin-top:28px; }
.wifi-template-button { display:flex; align-items:center; justify-content:center; gap:14px; min-width:230px; min-height:72px; padding:0 26px; border:2px solid var(--kujira-orange); border-radius:16px; font-size:18px; font-weight:800; line-height:1.2; text-decoration:none; transition:transform .2s ease,background-color .2s ease,color .2s ease; }
.wifi-template-button span { white-space:nowrap; }
.wifi-template-button:hover { transform:translateY(-2px); }
.wifi-template-button svg { width:28px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.wifi-template-button i { margin-left:auto; font-size:34px; font-style:normal; font-weight:300; line-height:1; }
.wifi-template-button--primary { color:#fff; background:var(--kujira-orange); }
.wifi-template-button--primary:hover { color:#fff; background:var(--kujira-orange-dark); }
.wifi-template-button--secondary { color:var(--kujira-navy); background:rgba(255,255,255,.94); }
.wifi-template-button--secondary:hover { color:var(--kujira-orange); background:#fff; }
.wifi-template-hero__caption { position:absolute; right:0; bottom:24px; z-index:3; margin:0; padding:10px 14px; border-radius:6px; color:var(--kujira-navy); background:rgba(255,255,255,.88); font-size:12px; font-weight:700; line-height:1.5; backdrop-filter:blur(5px); }
.wifi-template-hero__caption span,.wifi-template-hero__caption small { display:block; }
.wifi-template-hero__caption small { margin-top:2px; color:#5f6d77; font-size:9px; font-weight:500; }

/* The AI-phone source pins copy absolutely at >=1800px. This Wi-Fi hero
   uses a normal-flow CTA, so keep all copy in that same flow on wide PCs. */
@media (min-width:1800px) {
  #home_promo.wifi-template-hero :is(.hero__price,.hero__title,.hero__lead) {
    position:static;
    inset:auto;
  }
  #home_promo.wifi-template-hero .hero__title strong { transform:none; }
}

/* Proof band */
#home_hero_proof.hero-proof { padding:0!important; background:#fff; border-bottom:1px solid #edf0f2; }
.hero-proof__inner { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); width:min(var(--kujira-container),calc(100% - 112px)); min-height:136px; margin:0 auto; }
.hero-proof__item { position:relative; display:flex; align-items:center; gap:24px; min-width:0; padding:26px 34px; }
.hero-proof__item + .hero-proof__item::before { content:""; position:absolute; top:30px; bottom:30px; left:0; width:1px; background:var(--kujira-line); }
.hero-proof__item svg { flex:0 0 54px; width:54px; height:54px; fill:none; stroke:var(--kujira-orange); stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.hero-proof__item div { display:flex; flex-direction:column; gap:5px; min-width:0; }
.hero-proof__item span { color:#314658; font-size:14px; font-weight:600; }
.hero-proof__item strong { color:var(--kujira-navy); font-size:23px; font-weight:800; line-height:1.35; letter-spacing:-.02em; }
.hero-proof__item:nth-child(3) strong { font-size:18px; }
.hero-proof__note { margin:-15px auto 0; padding:0 24px 14px; color:#596b79; font-size:11px; text-align:center; }

/* Bring the lower page into the same quiet white/navy/orange system. */
#home_worry,#home_merit,#home_price,#home_contact { background:var(--kujira-soft)!important; }
#home_solution,#home_intro,#home_faq { background:#fff!important; }
#home_worry,#home_solution,#home_merit,#home_intro,#home_price,#home_faq,#home_contact { padding-top:96px!important; padding-bottom:96px!important; }
#home_worry h2,#home_solution h2,#home_merit h2,#home_intro h2,#home_price h2,#home_faq h2,#home_contact h2 { color:var(--kujira-navy)!important; font-size:40px!important; font-weight:800!important; line-height:1.45!important; letter-spacing:.01em!important; }
#home_worry h3,#home_solution h3,#home_merit h3,#home_intro h3,#home_price h3,#home_faq h3 { color:var(--kujira-navy)!important; }
.ai-worry-section__eyebrow,.ai-service-pillars__eyebrow,.ai-quality-features__eyebrow,.ai-flow-section__eyebrow,.ai-price-section__eyebrow,.ai-faq-section__eyebrow,.ai-entry-contact__eyebrow { color:var(--kujira-orange)!important; }
.ai-worry-card,.wifi-survey-check,.ai-quality-card,.ai-flow-step,.ai-faq-item,.wifi-contact-guide,.ai-entry-form { border-color:var(--kujira-line)!important; border-radius:10px!important; box-shadow:none!important; }
.ai-worry-card:hover,.ai-quality-card:hover,.ai-flow-step:hover { transform:none!important; box-shadow:0 10px 28px rgba(11,36,56,.07)!important; }
.wifi-survey-art,.wifi-flow-scene { border-radius:10px!important; border:1px solid var(--kujira-line); overflow:hidden; background:#fff; }
.wifi-survey-art figcaption { color:#526676!important; background:#fff!important; border-top:1px solid var(--kujira-line); }
.ai-flow-step__label,.wifi-step-number,.ai-quality-card__label { color:var(--kujira-orange)!important; }
.ai-unified-cta { background:var(--kujira-orange)!important; }
.ai-unified-cta__button { border-radius:14px!important; box-shadow:none!important; }
.wifi-guidance-label { color:var(--kujira-orange)!important; }
.ai-faq-question::before,.ai-faq-answer::before { color:var(--kujira-orange)!important; }
.ai-entry-form input,.ai-entry-form textarea { border:1px solid #cbd5dc!important; border-radius:6px!important; background:#fff!important; }
.ai-entry-form__button { border-radius:12px!important; background:var(--kujira-orange)!important; box-shadow:none!important; }
.ai-simple-footer { border-top:1px solid var(--kujira-line); }

@media (max-width:1279px) {
  .kujira-header__inner { width:calc(100% - 48px); }
  .kujira-header__brand img { width:225px; }
  .kujira-header__nav { gap:22px; }
  #home_promo .hero__inner { width:calc(100% - 64px); }
  #home_promo .hero__content { width:560px; max-width:56%; padding-top:58px!important; }
  #home_promo .hero__title { font-size:clamp(44px,4.6vw,48px)!important; }
  #home_promo .hero__lead { font-size:18px!important; }
  .wifi-template-hero__actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
  .wifi-template-button { min-width:0; width:100%; min-height:66px; padding:0 18px; font-size:16px; }
  .hero-proof__inner { width:calc(100% - 48px); }
  .hero-proof__item { gap:16px; padding:24px 20px; }
  .hero-proof__item svg { flex-basis:46px; width:46px; height:46px; }
  .hero-proof__item strong { font-size:20px; }
  .hero-proof__item:nth-child(3) strong { font-size:16px; }
}

@media (max-width:900px) {
  .kujira-reference-header { height:68px; min-height:68px; }
  .kujira-header__inner { height:66px; }
  #home_promo.wifi-template-hero { display:block!important; height:auto; min-height:0; overflow:hidden; }
  #home_promo::after { display:none; }
  #home_promo .hero__inner { position:absolute; inset:0; width:100%; height:100%; padding:44px 32px 40px!important; background:transparent; }
  #home_promo .hero__content { width:100%; max-width:680px; margin:0 auto; padding:0!important; }
  #home_promo .hero__background { position:relative; inset:auto; display:block; height:auto; aspect-ratio:1122/1402; }
  #home_promo .hero__background::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(255,255,255,.2) 0%,rgba(255,255,255,.16) 42%,rgba(255,255,255,.08) 52%,rgba(255,255,255,0) 64%); }
  #home_promo .hero__background img { object-position:center center; }
  #home_promo .hero__price { margin-bottom:22px!important; }
  #home_promo .hero__title { font-size:44px!important; }
  #home_promo .hero__lead { margin-top:20px!important; }
  .wifi-template-hero__caption { right:24px; bottom:24px; }
  .hero-proof__inner { grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; min-height:0; padding:12px 24px; }
  .hero-proof__item { min-height:112px; padding:20px 24px; }
  .hero-proof__item + .hero-proof__item::before { top:22px; bottom:22px; }
  .hero-proof__item:nth-child(3)::before { display:none; }
  .hero-proof__item:nth-child(n+3) { border-top:1px solid var(--kujira-line); }
  .hero-proof__note { margin:0; padding:0 24px 16px; }
}

@media (max-width:767px) {
  .kujira-header__inner { width:calc(100% - 24px); }
  .kujira-header__brand img { width:min(230px,68vw); }
  #home_promo .hero__inner { padding:30px 16px 32px!important; }
  #home_promo .hero__price { gap:12px; margin-bottom:20px!important; font-size:14px; }
  #home_promo .hero__price span:first-child { padding:8px 13px; }
  #home_promo .hero__price i { height:22px; }
  #home_promo .hero__title { font-size:clamp(30px,8vw,32px)!important; line-height:1.12!important; letter-spacing:-.055em; }
  #home_promo .hero__lead { margin-top:20px!important; font-size:16px!important; line-height:1.75!important; }
  .wifi-template-hero__actions { display:flex; flex-direction:column; gap:12px; margin-top:22px; }
  .wifi-template-button { width:100%; min-height:58px; border-radius:10px; font-size:16px; }
  #home_promo .hero__background { height:auto; aspect-ratio:941/1672; }
  #home_promo .hero__background img { object-position:center center; }
  .wifi-template-hero__caption { right:12px; bottom:12px; max-width:calc(100% - 24px); padding:8px 10px; font-size:10px; }
  .hero-proof__inner { padding:8px 12px; }
  .hero-proof__item { align-items:flex-start; gap:11px; min-height:108px; padding:18px 10px; }
  .hero-proof__item svg { flex-basis:38px; width:38px; height:38px; }
  .hero-proof__item span { font-size:11px; }
  .hero-proof__item strong { font-size:17px; line-height:1.45; }
  .hero-proof__item:nth-child(3) strong,.hero-proof__item:nth-child(4) strong { font-size:14px; }
  .hero-proof__item + .hero-proof__item::before { top:18px; bottom:18px; }
  #home_worry,#home_solution,#home_merit,#home_intro,#home_price,#home_faq,#home_contact { padding-top:64px!important; padding-bottom:64px!important; }
  #home_worry h2,#home_solution h2,#home_merit h2,#home_intro h2,#home_price h2,#home_faq h2,#home_contact h2 { font-size:29px!important; line-height:1.5!important; }
}

@media (max-width:374px) {
  #home_promo .hero__price { font-size:13px; }
  #home_promo .hero__title { font-size:30px!important; }
  .hero-proof__item { gap:8px; padding-inline:8px; }
  .hero-proof__item svg { flex-basis:34px; width:34px; height:34px; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .wifi-template-button { transition:none; }
}
