:root{
    --ink:#1C3A5E;          /* 深いネイビー（ロゴ由来） */
    --brand:#205A9E;        /* ロゴブルー：リンク・マーク */
    --sun:#F2A65A;          /* 温かいアプリコット：主役のアクセント */
    --sun-soft:#FBE3C6;
    --coral:#E8836B;        /* テラコッタ：CTA・差し色 */
    --sage:#7FA98F;         /* やわらかな緑：地域・成長 */
    --sage-soft:#E4EFE7;
    --cream:#FBF5EC;        /* 温かい帯背景 */
    --wash:#F7F8FB;         /* Stripe風の極淡グレー（白基調の区切り） */
    --line2:#EEF1F5;        /* クールな極細罫 */
    --paper:#FFFFFF;        /* 主背景：白 */
    --paper-soft:#FEFCF9;
    --text:#33404F;
    --muted:#6E7B8A;
    --line:#ECE6DC;
    --shadow:0 18px 40px -24px rgba(28,58,94,.28);
    --radius:16px;
    --maxw:1140px;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{
    font-family:"Zen Kaku Gothic New",sans-serif;
    color:var(--text);
    background:var(--paper);
    line-height:1.85;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  h1,h2,h3,.disp{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:900;line-height:1.32;letter-spacing:-.01em;color:var(--ink)}
  .latin{font-family:"Inter",sans-serif}
  a{color:inherit;text-decoration:none}
  img{max-width:100%;display:block}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
  section{position:relative}

  /* eyebrow / label */
  .eyebrow{
    font-family:"Inter",sans-serif;font-weight:600;letter-spacing:.14em;
    font-size:.78rem;color:var(--coral);text-transform:uppercase;
    display:inline-flex;align-items:center;gap:.6em;
  }
  .eyebrow::before{content:"";width:26px;height:2px;background:var(--coral);border-radius:2px}

  /* buttons */
  .btn{
    display:inline-flex;align-items:center;gap:.5em;
    font-family:"Zen Kaku Gothic New",sans-serif;font-weight:700;font-size:.98rem;
    padding:.82em 1.6em;border-radius:11px;transition:.3s ease;cursor:pointer;border:none;
  }
  .btn-primary{background:var(--coral);color:#fff;box-shadow:0 12px 24px -12px rgba(232,131,107,.7)}
  .btn-primary:hover{background:#e0735a;transform:translateY(-2px)}
  .btn-ghost{background:#fff;color:var(--ink);border:1.6px solid var(--line)}
  .btn-ghost:hover{border-color:var(--sun);color:var(--brand);transform:translateY(-2px)}
  .btn .ar{transition:transform .3s ease}
  .btn:hover .ar{transform:translateX(3px)}

  /* ===== Header ===== */
  header{
    position:fixed;top:0;left:0;right:0;z-index:100;
    transition:.35s ease;padding:14px 0;
  }
  header.solid{background:rgba(255,255,255,.98);box-shadow:0 1px 0 var(--line);padding:8px 0}
  .nav{display:flex;align-items:center;justify-content:space-between;gap:20px}
  .brand{display:flex;align-items:center;gap:11px}
  .brand img{width:42px;height:auto}
  .brand .name{font-family:"Zen Kaku Gothic New",sans-serif;font-weight:900;color:var(--ink);font-size:1.18rem;letter-spacing:.02em}
  .brand .name small{display:block;font-family:"Zen Kaku Gothic New";font-weight:500;font-size:.6rem;color:var(--muted);letter-spacing:.16em;margin-top:-2px}
  .menu{display:flex;align-items:center;gap:26px}
  .menu a{font-weight:500;font-size:.92rem;color:var(--text);position:relative;transition:color .25s}
  .menu a::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:2px;background:var(--sun);border-radius:2px;transition:width .25s}
  .menu a:hover{color:var(--brand)}
  .menu a:hover::after{width:100%}
  .hamb{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:8px}
  .hamb span{width:24px;height:2px;background:var(--ink);border-radius:2px;transition:.3s}

  /* ===== Hero (Stripe-style, white canvas) ===== */
  .hero{min-height:100svh;display:flex;align-items:center;position:relative;overflow:hidden;background:#fff}
  .hero-glow{position:absolute;z-index:0;border-radius:50%;filter:blur(50px);pointer-events:none}
  .hero-glow.g1{width:min(56vw,760px);height:min(56vw,760px);right:-8%;top:2%;
    background:radial-gradient(circle,rgba(242,164,140,.30),rgba(249,200,146,.16) 46%,transparent 70%);animation:float2 26s ease-in-out infinite}
  .hero-glow.g2{width:min(40vw,520px);height:min(40vw,520px);right:14%;bottom:-12%;
    background:radial-gradient(circle,rgba(191,216,199,.26),transparent 70%);animation:float3 30s ease-in-out infinite}
  .hero-glow.g3{width:min(34vw,440px);height:min(34vw,440px);left:-8%;top:30%;
    background:radial-gradient(circle,rgba(203,216,238,.22),transparent 72%);animation:float1 28s ease-in-out infinite}
  @keyframes float1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(4%,3%) scale(1.06)}}
  @keyframes float2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-3%,4%) scale(1.08)}}
  @keyframes float3{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(3%,-3%) scale(1.05)}}
  .hero::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,transparent 80%,#fff 100%)}
  .hero .wrap{position:relative;z-index:2;width:100%}
  .hero-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:56px;align-items:center;padding-top:80px}
  .hero-copy{max-width:560px}
  .hero-mark{width:44px;height:auto;margin-bottom:20px;filter:drop-shadow(0 6px 14px rgba(28,58,94,.16))}
  .hero h1{font-size:clamp(2.2rem,4.6vw,3.6rem);font-weight:900;letter-spacing:-.015em;line-height:1.22;margin:.4em 0 .55em}
  .hero h1 .grad{background:linear-gradient(100deg,var(--coral),var(--sun));-webkit-background-clip:text;background-clip:text;color:transparent}
  .hero h1 .nowrap{white-space:nowrap}
  .hero h1 .num{font-family:"Inter",sans-serif;font-weight:800;letter-spacing:-.02em;color:var(--sun)}
  .hero p.lead{font-size:clamp(1rem,1.5vw,1.16rem);color:#42566b;max-width:28em;margin-bottom:1.8em;font-weight:500}
  .hero-cta{display:flex;gap:13px;flex-wrap:wrap;align-items:center}
  .hero-trust{margin-top:22px;font-size:.82rem;color:var(--muted);display:flex;align-items:center;gap:8px}
  .hero-trust b{color:var(--ink);font-weight:700}
  /* framed crossfade card (right) */
  .hero-visual{position:relative}
  .frame{position:relative;border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 40px 80px -30px rgba(28,58,94,.4),0 0 0 1px rgba(28,58,94,.04);aspect-ratio:4/3.1}
  .frame-bar{position:absolute;top:0;left:0;right:0;height:38px;z-index:3;background:rgba(255,255,255,.86);backdrop-filter:blur(6px);display:flex;align-items:center;gap:7px;padding:0 14px;border-bottom:1px solid rgba(28,58,94,.06)}
  .frame-bar i{width:9px;height:9px;border-radius:50%;display:block}
  .frame-bar i:nth-child(1){background:#F2A48C}.frame-bar i:nth-child(2){background:#F9C892}.frame-bar i:nth-child(3){background:#BFD8C7}
  .frame-bar span{margin-left:8px;font-family:"Inter";font-size:.7rem;letter-spacing:.1em;color:var(--muted);font-weight:600}
  .frame-stage{position:absolute;inset:38px 0 0;overflow:hidden}
  .hero-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;animation:cross 21s infinite}
  .hero-slide:nth-child(1){animation-delay:0s}.hero-slide:nth-child(2){animation-delay:7s}.hero-slide:nth-child(3){animation-delay:14s}
  /* ↓ プレースホルダ。実写は background-image:url('写真.jpg') に差し替え */
  .s1{background-image:none}
  .s2{background-image:none}
  .s3{background-image:none}
  @keyframes cross{0%{opacity:0}4%{opacity:1}29%{opacity:1}33%{opacity:0}100%{opacity:0}}
  .frame-cap{position:absolute;left:14px;bottom:14px;z-index:3;background:rgba(255,255,255,.92);backdrop-filter:blur(6px);border-radius:10px;padding:.5em .9em;font-family:"Zen Kaku Gothic New";font-weight:700;color:var(--ink);font-size:.8rem;box-shadow:0 8px 20px -10px rgba(28,58,94,.4)}
  .frame-cap small{display:block;font-family:"Inter";font-weight:600;font-size:.6rem;letter-spacing:.14em;color:var(--coral);margin-top:1px}
  .hero-float{position:absolute;z-index:4;background:#fff;border-radius:12px;box-shadow:0 16px 36px -16px rgba(28,58,94,.4);padding:.7em 1em;font-family:"Zen Kaku Gothic New";font-weight:700;font-size:.82rem;color:var(--ink);display:flex;align-items:center;gap:9px;animation:bob 5s ease-in-out infinite}
  .hero-float .dot{width:10px;height:10px;border-radius:50%}
  .hero-float.f1{top:-18px;right:24px}
  .hero-float.f2{bottom:34px;right:-22px;animation-delay:1.5s}
  @keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}

  .scrollcue{position:absolute;left:24px;bottom:22px;z-index:3;display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.72rem;letter-spacing:.14em;font-family:"Inter"}
  .scrollcue .bar{width:1px;height:38px;background:rgba(28,58,94,.25);position:relative;overflow:hidden}
  .scrollcue .bar::after{content:"";position:absolute;top:-100%;left:0;width:100%;height:60%;background:var(--coral);animation:drop 2.2s ease-in-out infinite}
  @keyframes drop{0%{top:-60%}100%{top:100%}}

  /* ===== reveal ===== */
  .rv{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
  .rv.in{opacity:1;transform:none}
  .rv.d1{transition-delay:.08s}.rv.d2{transition-delay:.16s}.rv.d3{transition-delay:.24s}.rv.d4{transition-delay:.32s}

  /* ===== section heads ===== */
  .sec{padding:96px 0}
  .sec-head{max-width:660px;margin-bottom:48px}
  .sec-head.center{margin:0 auto 52px;text-align:center}
  .sec-head h2{font-size:clamp(1.7rem,3.6vw,2.5rem);font-weight:900;margin:.42em 0 .5em}
  .sec-head p{color:var(--muted);font-size:1.02rem}

  /* ===== About / philosophy ===== */
  .about{background:#fff}
  .about .grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
  .about .copy p{margin-bottom:1.2em;font-size:1.04rem;color:#3c4a5a}
  .about .copy .lead{font-size:1.3rem;font-family:"Zen Kaku Gothic New";font-weight:700;color:var(--ink);line-height:1.7}
  .about-visual{position:relative;border-radius:24px;overflow:hidden;aspect-ratio:4/3;
    background:radial-gradient(70% 70% at 30% 20%,var(--sun-soft),transparent),linear-gradient(135deg,var(--sage-soft),#fff)}
  .about-visual .pill{position:absolute;background:#fff;border-radius:16px;box-shadow:var(--shadow);padding:14px 18px;font-weight:700;font-family:"Zen Kaku Gothic New";color:var(--ink);font-size:.92rem;display:flex;align-items:center;gap:8px}
  .about-visual .p1{top:14%;left:8%}
  .about-visual .p2{top:46%;right:8%}
  .about-visual .p3{bottom:12%;left:18%}
  .about-visual .dot{width:9px;height:9px;border-radius:50%;background:var(--coral)}
  .about-visual .p2 .dot{background:var(--sun)}
  .about-visual .p3 .dot{background:var(--sage)}

  /* ===== Metrics ===== */
  .metrics{padding:60px 0;background:#fff;border-top:1px solid var(--line2);border-bottom:1px solid var(--line2)}
  .m-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
  .m-item{display:flex;flex-direction:column;gap:6px;padding:8px 16px;border-left:3px solid var(--sun);background:transparent}
  .m-item:nth-child(2){border-color:var(--coral)}
  .m-item:nth-child(3){border-color:var(--sage)}
  .m-item:nth-child(4){border-color:var(--brand)}
  .m-item .n{font-weight:800;color:var(--ink);line-height:1;letter-spacing:-.02em}
  .m-item .n.latin{font-size:clamp(2.4rem,4.4vw,3.4rem)}
  .m-item .n.jp{font-size:clamp(1.3rem,2.4vw,1.7rem);font-family:"Zen Kaku Gothic New";font-weight:900}
  .m-item .n em{font-style:normal;color:var(--sun);font-size:.7em}
  .m-item:nth-child(2) .n em{color:var(--coral)}
  .m-item .lb{font-size:.86rem;color:#46586c;font-weight:500;line-height:1.5}
  .m-item .sub{font-family:"Inter";font-size:.62rem;letter-spacing:.18em;color:var(--muted);font-weight:600}
  .m-note{margin-top:22px;font-size:.74rem;color:var(--muted);text-align:right}

  /* ===== Services (bento) ===== */
  .bento{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,minmax(168px,1fr));gap:16px;
    grid-template-areas:"a a b" "a a c" "d e f"}
  .tile{position:relative;overflow:hidden;border-radius:18px;border:1px solid var(--line);background:#fff;padding:26px;display:flex;flex-direction:column;transition:.34s cubic-bezier(.2,.7,.3,1);text-decoration:none}
  .tile::before{content:"";position:absolute;inset:0;z-index:0;background:var(--tg,linear-gradient(135deg,#fff,#fff));opacity:.6;transition:.34s}
  .tile>*{position:relative;z-index:1}
  .tile:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:transparent}
  .tile:hover::before{opacity:.9}
  .tile .ico{width:50px;height:50px;border-radius:14px;display:grid;place-items:center;margin-bottom:16px;background:#fff;box-shadow:0 8px 18px -10px rgba(28,58,94,.3)}
  .tile .ico svg{width:26px;height:26px}
  .tile .tag{font-family:"Inter";font-size:.66rem;font-weight:600;letter-spacing:.12em;color:var(--muted);text-transform:uppercase}
  .tile h3{font-size:1.2rem;font-weight:900;margin:.25em 0 .45em;color:var(--ink)}
  .tile p{color:#5a6b7d;font-size:.92rem;line-height:1.7;flex:1}
  .tile .more{margin-top:16px;font-weight:700;color:var(--brand);font-size:.9rem;display:inline-flex;align-items:center;gap:.4em}
  .tile .more .ar{transition:transform .3s}
  .tile:hover .more .ar{transform:translateX(4px)}
  .tile.wip h3::after{content:"準備中";font-family:"Zen Kaku Gothic New";font-size:.6rem;font-weight:700;color:#fff;background:var(--sage);padding:.2em .7em;border-radius:999px;margin-left:.5em;vertical-align:middle}
  /* areas */
  .t-blog{grid-area:a;--tg:linear-gradient(150deg,#FBE3D7,#FFF6EF 60%,#FDEEDD)}
  .t-meo{grid-area:b;--tg:linear-gradient(150deg,#DEEDE3,#fff)}
  .t-voice{grid-area:c;--tg:linear-gradient(150deg,#FBE9D2,#fff)}
  .t-local{grid-area:d;--tg:linear-gradient(150deg,#DBE7F4,#fff)}
  .t-sign{grid-area:e;--tg:linear-gradient(150deg,#E2E6F0,#fff)}
  .t-cta{grid-area:f;--tg:linear-gradient(150deg,#F2A48C,#F2B97A);border-color:transparent}
  .t-cta::before{opacity:1}
  .t-cta .ico{background:rgba(255,255,255,.95)}
  .t-cta h3,.t-cta p{color:#fff}.t-cta p{color:rgba(255,255,255,.92)}
  .t-cta .more{color:#fff}
  /* featured blog tile internals */
  .t-blog h3{font-size:1.5rem}
  .t-blog .feat-vis{margin-top:auto;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;box-shadow:0 14px 30px -18px rgba(28,58,94,.4);max-width:330px}
  .t-blog .fv-top{display:flex;align-items:center;gap:8px;font-family:"Inter";font-size:.66rem;color:var(--muted);letter-spacing:.08em;margin-bottom:8px}
  .t-blog .fv-top b{width:18px;height:18px;border-radius:6px;background:linear-gradient(135deg,var(--coral),var(--sun));display:grid;place-items:center;color:#fff;font-size:.6rem;font-weight:800}
  .t-blog .fv-line{height:7px;border-radius:4px;background:#EDE7DE;margin:6px 0}
  .t-blog .fv-line.s{width:62%}
  .t-blog .fv-cite{display:inline-flex;align-items:center;gap:5px;margin-top:9px;font-size:.66rem;color:var(--brand);font-weight:700;background:#EAF1F8;padding:.25em .7em;border-radius:999px}

  /* ===== Signage feature ===== */
  .signage{background:linear-gradient(160deg,#16335A 0%,#1C3A5E 60%,#234A78 100%);color:#eaf1fa;overflow:hidden}
  .signage .grid{display:grid;grid-template-columns:1.1fr .9fr;gap:50px;align-items:center}
  .signage .eyebrow{color:var(--sun)}
  .signage .eyebrow::before{background:var(--sun)}
  .signage h2{color:#fff;font-size:clamp(1.7rem,3.4vw,2.4rem);margin:.4em 0 .6em}
  .signage p{color:#c3d3e6;margin-bottom:1.2em}
  .sig-points{list-style:none;display:grid;gap:12px;margin:22px 0 28px}
  .sig-points li{display:flex;gap:12px;align-items:flex-start;color:#dbe6f2;font-size:.98rem}
  .sig-points .ck{flex:none;width:22px;height:22px;border-radius:50%;background:rgba(242,166,90,.2);display:grid;place-items:center;color:var(--sun);font-size:.7rem;margin-top:.3em}
  .sig-visual{position:relative;border-radius:24px;background:linear-gradient(150deg,#10294a,#2a5586);width:100%;max-width:320px;aspect-ratio:3/4;margin:0 auto;display:grid;place-items:center;border:1px solid rgba(255,255,255,.14);box-shadow:0 30px 60px -28px rgba(0,0,0,.6);overflow:hidden}
  .sig-screen{width:62%;aspect-ratio:9/16;border-radius:14px;background:linear-gradient(180deg,#2b5c93,#3d7fc0);box-shadow:0 0 0 8px rgba(255,255,255,.06),0 30px 60px -20px rgba(0,0,0,.6);position:relative;overflow:hidden}
  .sig-screen::after{content:"AD";position:absolute;inset:0;display:grid;place-items:center;font-family:"Inter";font-weight:700;color:rgba(255,255,255,.5);letter-spacing:.3em;font-size:1.4rem}
  .sig-screen .scan{position:absolute;left:0;right:0;height:30%;top:-30%;background:linear-gradient(180deg,transparent,rgba(255,255,255,.18),transparent);animation:drop 3.5s linear infinite}
  .sig-badge{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);background:#fff;color:var(--ink);font-family:"Zen Kaku Gothic New";font-weight:700;font-size:.78rem;padding:.5em 1.1em;border-radius:999px;white-space:nowrap}

  /* ===== Region band ===== */
  .region{background:var(--wash)}
  .region .grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:50px;align-items:center}
  .region .copy p{color:#4a5868;margin-bottom:1.1em;font-size:1.02rem}
  .region h2 .mk{color:var(--coral)}
  .region .map{aspect-ratio:1;border-radius:50%;background:
      radial-gradient(circle at 50% 45%,#fff 0 30%,transparent 31%),
      conic-gradient(from 0deg,var(--sun-soft),var(--sage-soft),var(--sun-soft));
    max-width:300px;margin:0 auto;display:grid;place-items:center;position:relative;box-shadow:var(--shadow)}
  .region .map .pin{font-family:"Zen Kaku Gothic New";font-weight:900;color:var(--ink);font-size:1.5rem;text-align:center;line-height:1.3}
  .region .map .pin small{display:block;font-family:"Inter";font-weight:600;font-size:.7rem;color:var(--coral);letter-spacing:.2em;margin-top:4px}

  /* ===== Why ===== */
  .why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
  .why-item{text-align:center;padding:14px}
  .why-item .n{font-family:"Inter";font-weight:700;font-size:2.6rem;color:var(--sun-soft);line-height:1}
  .why-item h3{font-size:1.1rem;margin:.4em 0 .5em}
  .why-item p{color:var(--muted);font-size:.9rem}

  /* ===== Blog teaser ===== */
  .blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
  .post{border:1.5px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff;transition:.3s}
  .post:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
  .post .thumb{aspect-ratio:16/10;background:linear-gradient(135deg,var(--sage-soft),var(--sun-soft))}
  .post .pad{padding:20px 22px}
  .post .meta{font-family:"Inter";font-size:.74rem;color:var(--muted);letter-spacing:.06em;display:flex;gap:10px;align-items:center}
  .post .cat{background:var(--sage-soft);color:#4f7a60;padding:.15em .7em;border-radius:999px;font-weight:600}
  .post h3{font-size:1.05rem;margin:.5em 0 0;line-height:1.55}

  /* ===== FAQ ===== */
  .faq{background:var(--wash)}
  .faq-list{max-width:820px;margin:0 auto;display:grid;gap:14px}
  .qa{border:1.5px solid var(--line);border-radius:16px;background:#fff;overflow:hidden}
  .qa summary{list-style:none;cursor:pointer;padding:20px 24px;display:flex;justify-content:space-between;gap:16px;align-items:center;font-family:"Zen Kaku Gothic New";font-weight:700;color:var(--ink);font-size:1.04rem}
  .qa summary::-webkit-details-marker{display:none}
  .qa summary .q{display:flex;gap:12px;align-items:center}
  .qa summary .q b{color:var(--coral);font-family:"Inter";font-weight:700}
  .qa summary .pm{flex:none;width:26px;height:26px;border-radius:50%;background:var(--sun-soft);display:grid;place-items:center;color:var(--sun);font-weight:700;transition:.3s}
  .qa[open] summary .pm{transform:rotate(45deg);background:var(--sun);color:#fff}
  .qa .a{padding:0 24px 22px 50px;color:#4a5868;font-size:.98rem}

  /* ===== CTA ===== */
  .cta{background:linear-gradient(135deg,var(--coral),var(--sun));color:#fff;text-align:center;border-radius:32px;padding:64px 32px;position:relative;overflow:hidden}
  .cta::after{content:"365";position:absolute;right:5%;bottom:-30px;font-family:"Inter";font-weight:700;font-size:11rem;color:rgba(255,255,255,.12);line-height:1}
  .cta h2{color:#fff;font-size:clamp(1.6rem,3.4vw,2.3rem);position:relative}
  .cta p{color:rgba(255,255,255,.92);margin:.8em 0 1.6em;position:relative}
  .cta .btn-primary{background:#fff;color:var(--coral)}
  .cta .btn-primary:hover{background:#fff;transform:translateY(-2px)}

  /* ===== Footer ===== */
  footer{background:var(--ink);color:#c6d2e0;padding:64px 0 28px}
  .f-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;margin-bottom:44px}
  footer .flogo img{width:120px;margin-bottom:16px}
  footer .flogo p{font-size:.86rem;color:#9fb0c4;max-width:24em}
  footer h4{font-family:"Zen Kaku Gothic New";font-weight:700;color:#fff;font-size:.95rem;margin-bottom:14px}
  footer ul{list-style:none;display:grid;gap:9px}
  footer ul a{font-size:.88rem;color:#b3c2d4;transition:.25s}
  footer ul a:hover{color:var(--sun)}
  .f-note{border-top:1px solid rgba(255,255,255,.12);padding-top:22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:.78rem;color:#8ea0b6}
  .f-give{background:rgba(242,166,90,.16);color:var(--sun-soft);padding:.4em 1em;border-radius:999px;font-size:.78rem}

  /* ===== responsive ===== */
  @media(max-width:920px){
    .about .grid,.signage .grid,.region .grid{grid-template-columns:1fr;gap:34px}
    .blog-grid{grid-template-columns:repeat(2,1fr)}
    .m-grid{grid-template-columns:repeat(2,1fr);gap:24px}
    .why-grid{grid-template-columns:repeat(2,1fr);gap:28px}
    .f-grid{grid-template-columns:1fr 1fr}
    .hero-grid{grid-template-columns:1fr;gap:36px;padding-top:96px}
    .hero-copy{max-width:none}
    .hero-float.f2{right:8px}
    .bento{grid-template-columns:repeat(2,1fr);grid-template-rows:auto;grid-template-areas:"a a" "b c" "d e" "f f"}
    .t-blog h3{font-size:1.35rem}
  }
  @media(max-width:640px){
    .menu{position:fixed;inset:0 0 0 25%;z-index:90;background:#fff;flex-direction:column;justify-content:center;gap:30px;transform:translateX(100%);transition:.35s ease;box-shadow:-10px 0 30px rgba(0,0,0,.12);padding:40px;overflow-y:auto}
    .menu.open{transform:none}
    .menu a{font-size:1.1rem}
    .hamb{display:flex;z-index:120}
    .sec{padding:70px 0}
    .blog-grid,.why-grid{grid-template-columns:1fr}
    .bento{grid-template-columns:1fr;grid-template-areas:"a" "b" "c" "d" "e" "f"}
    .f-grid{grid-template-columns:1fr 1fr}
    .hero-cta{flex-direction:column;width:100%}
    .hero-cta .btn{width:100%;justify-content:center;white-space:nowrap}
    .hero-float{display:none}
  }
  @media(prefers-reduced-motion:reduce){
    *{animation:none!important;scroll-behavior:auto!important}
    .rv{opacity:1;transform:none}
    .hero-slide:nth-child(1){opacity:1}
  }

  /* ===== shared page components ===== */
  .crumb{font-size:.8rem;color:var(--muted)}
  .crumb a{color:var(--muted)}.crumb a:hover{color:var(--brand)}.crumb i{margin:0 .5em;font-style:normal;opacity:.5}
  .phero{position:relative;overflow:hidden;background:#fff;padding:118px 0 70px}
  .pglow{position:absolute;z-index:0;border-radius:50%;filter:blur(55px);pointer-events:none}
  .pglow.a{width:min(50vw,640px);height:min(50vw,640px);right:-8%;top:-6%;background:radial-gradient(circle,rgba(242,164,140,.26),rgba(249,200,146,.14) 48%,transparent 70%);animation:pf 26s ease-in-out infinite}
  .pglow.b{width:min(34vw,420px);height:min(34vw,420px);right:18%;bottom:-16%;background:radial-gradient(circle,rgba(191,216,199,.22),transparent 72%);animation:pf 30s ease-in-out infinite reverse}
  @keyframes pf{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-3%,4%) scale(1.07)}}
  .phero .wrap{position:relative;z-index:2}
  .phero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:center;margin-top:14px}
  .phero h1{font-size:clamp(2rem,4.3vw,3.2rem);font-weight:900;line-height:1.24;letter-spacing:-.015em;margin:.45em 0 .5em}
  .phero h1 .grad{background:linear-gradient(100deg,var(--coral),var(--sun));-webkit-background-clip:text;background-clip:text;color:transparent}
  .phero .lead{font-size:clamp(1rem,1.5vw,1.14rem);color:#42566b;max-width:31em;margin-bottom:1.7em;font-weight:500}
  .phero-cta{display:flex;gap:13px;flex-wrap:wrap}
  .phero-visual{position:relative}
  .float-chip{position:absolute;z-index:3;background:#fff;border-radius:12px;box-shadow:0 16px 36px -16px rgba(28,58,94,.4);padding:.6em .95em;font-weight:700;font-size:.78rem;color:var(--ink);display:flex;align-items:center;gap:8px;animation:pbob 5s ease-in-out infinite}
  .float-chip .d{width:9px;height:9px;border-radius:50%}
  .float-chip.c1{top:-16px;right:18px}.float-chip.c2{bottom:-16px;left:20px;animation-delay:1.3s}
  @keyframes pbob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
  /* stat strip */
  .stat-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:44px;border-top:1px solid var(--line2);padding-top:30px}
  .ss .v{font-family:"Inter";font-weight:800;font-size:clamp(1.7rem,3vw,2.3rem);color:var(--ink);line-height:1;letter-spacing:-.02em}
  .ss .v em{font-style:normal;color:var(--coral);font-size:.6em;margin-right:.1em}
  .ss .l{margin-top:7px;font-size:.86rem;color:#5a6b7d;font-weight:500}
  /* feature grid */
  .feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
  .feat{position:relative;background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px;transition:.3s;overflow:hidden}
  .feat::before{content:"";position:absolute;inset:0;background:var(--fg,linear-gradient(135deg,#fff,#fff));opacity:0;transition:.3s}
  .feat>*{position:relative}
  .feat:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:transparent}.feat:hover::before{opacity:.5}
  .feat .fn{font-family:"Inter";font-weight:800;font-size:.9rem;color:#fff;width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,var(--coral),var(--sun));display:grid;place-items:center;margin-bottom:14px}
  .feat .ico{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;margin-bottom:15px;background:#fff;box-shadow:0 8px 18px -10px rgba(28,58,94,.3)}
  .feat .ico svg{width:24px;height:24px}
  .feat h3{font-size:1.1rem;margin:0 0 .4em}
  .feat p{color:var(--muted);font-size:.9rem;line-height:1.7}
  /* steps */
  .flow{background:var(--wash)}
  .flow-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
  .step{background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px 24px}
  .step .sn{font-family:"Inter";font-weight:800;font-size:1.1rem;color:#fff;width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--coral),var(--sun));display:grid;place-items:center;margin-bottom:14px}
  .step h3{font-size:1.06rem;margin:0 0 .4em}.step p{color:var(--muted);font-size:.9rem;line-height:1.7}
  /* define card */
  .define{background:var(--wash)}
  .def-card{background:#fff;border-radius:20px;border:1px solid var(--line);border-left:5px solid var(--coral);padding:36px 38px;max-width:900px;box-shadow:var(--shadow)}
  .def-card .lbl{font-family:"Inter";font-weight:700;letter-spacing:.1em;font-size:.72rem;color:var(--coral)}
  .def-card .term{font-size:clamp(1.3rem,2.4vw,1.9rem);font-weight:900;color:var(--ink);margin:.3em 0 .5em}
  .def-card p{font-size:1.04rem;color:#3f5165;line-height:1.95}
  @media(max-width:920px){
    .phero-grid{grid-template-columns:1fr;gap:38px}
    .feat-grid,.flow-grid,.stat-strip{grid-template-columns:repeat(2,1fr)}
    .def-card{padding:28px 24px}
  }
  @media(max-width:640px){
    .feat-grid,.flow-grid,.stat-strip{grid-template-columns:1fr}
    .phero-cta{flex-direction:column}.phero-cta .btn{width:100%;justify-content:center}
    .float-chip{display:none}
  }

  /* MEO specifics */
  .phero h1 .nw{white-space:nowrap}
  .gbp-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 40px 80px -34px rgba(28,58,94,.42),0 0 0 1px rgba(28,58,94,.03);overflow:hidden}
  .gbp-map{height:150px;background:linear-gradient(135deg,#E7EEF6,#DDEAE0);position:relative;overflow:hidden}
  .gbp-map .road{position:absolute;background:#fff;opacity:.8}
  .gbp-map .r1{top:40%;left:0;right:0;height:10px}.gbp-map .r2{top:0;bottom:0;left:55%;width:10px}.gbp-map .r3{top:0;bottom:0;left:22%;width:6px;opacity:.6}
  .gbp-pin{position:absolute;top:30%;left:50%;transform:translate(-50%,-100%);width:34px;height:34px;border-radius:50% 50% 50% 0;background:linear-gradient(135deg,var(--coral),var(--sun));transform-origin:bottom;rotate:-45deg;box-shadow:0 10px 20px -8px rgba(232,131,107,.7);animation:drop2 2.5s ease-in-out infinite}
  .gbp-pin::after{content:"";position:absolute;inset:9px;background:#fff;border-radius:50%}
  @keyframes drop2{0%,100%{transform:translate(-50%,-100%) rotate(-45deg)}50%{transform:translate(-50%,-115%) rotate(-45deg)}}
  .gbp-body{padding:18px 20px}
  .gbp-body .nm{font-weight:900;font-size:1.05rem;color:var(--ink)}
  .gbp-body .rate{display:flex;align-items:center;gap:7px;margin:6px 0 12px;font-family:"Inter";font-size:.84rem;color:var(--muted)}
  .gbp-body .stars{color:var(--sun);letter-spacing:1px}
  .gbp-tags{display:flex;gap:7px;flex-wrap:wrap}
  .gbp-tags span{background:var(--wash);border-radius:999px;padding:.28em .8em;font-size:.74rem;color:#5a6b7d;font-weight:600}
  .gbp-ai{margin-top:14px;display:flex;align-items:center;gap:8px;background:#EAF1F8;border-radius:10px;padding:.6em .8em;font-size:.8rem;color:var(--brand);font-weight:700}
  .gbp-ai b{width:18px;height:18px;border-radius:6px;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:.62rem}
  /* results table */
  .rtable{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;font-size:.92rem}
  .rtable th,.rtable td{padding:14px 18px;text-align:left;border-bottom:1px solid var(--line2)}
  .rtable thead th{background:var(--wash);font-family:"Inter";font-size:.68rem;letter-spacing:.1em;color:var(--muted);font-weight:700;text-transform:uppercase}
  .rtable tbody tr:last-child td{border-bottom:none}
  .rtable .ind{font-weight:700;color:var(--ink)}
  .rtable .num{font-family:"Inter";color:#5a6b7d}.rtable .num b{color:var(--ink)}
  .rtable .gw{font-family:"Inter";font-weight:800;color:#fff;background:linear-gradient(135deg,var(--coral),var(--sun));padding:.25em .7em;border-radius:999px;font-size:.82rem;white-space:nowrap}
  .rtable-note{margin-top:14px;font-size:.76rem;color:var(--muted)}
  @media(max-width:720px){.rtable{font-size:.8rem}.rtable th,.rtable td{padding:10px 10px}}

/* スクリーンリーダー用テキスト（視覚的に非表示） */
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;clip-path:inset(50%)}

/* ============ モバイル表示の調整（追記） ============ */
/* 導入実績サマリー（365MEO / 365ブログ共通） */
.res-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:30px}
.res-summary .rs{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 24px;border-top:3px solid var(--sun)}
.res-summary .rs:nth-child(2){border-top-color:var(--coral)}
.res-summary .rs:nth-child(3){border-top-color:var(--sage)}
.res-summary .rs .v{font-family:"Inter";font-weight:800;font-size:1.55rem;color:var(--ink);line-height:1.15}
.res-summary .rs .v em{font-style:normal;color:var(--coral)}
.res-summary .rs .l{color:var(--muted);font-size:.86rem;margin-top:8px;line-height:1.6}
/* 実績テーブルは狭い画面で横スクロール */
.rtable-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:16px}
@media(max-width:760px){
  .res-summary{grid-template-columns:1fr;gap:14px}
}
@media(max-width:560px){
  .rtable{min-width:480px}
  .rtable th,.rtable td{white-space:nowrap}
}
