/*--------------------------------------------------------------
	CSS
--------------------------------------------------------------*/

/* -------------------------
   Reset & Base
------------------------- */
    :root{
      --main:#0B1F3A;
      --sub:#1E6BD6;
      --base:#FFFFFF;
      --base-soft:#F5F7FA;
      --cta:#FF8A00;
      --cta-hover:#FF6B00;
      --text:#0E1726;
      --muted:#5B6472;
      --radius:16px;
      --shadow:0 10px 30px rgba(11,31,58,.08);
      --shadow-soft:0 6px 18px rgba(11,31,58,.06);
      --shadow-strong:0 20px 60px rgba(11,31,58,.15);
      --gradient-main:linear-gradient(135deg, #0B1F3A 0%, #1a3a6e 100%);
      --gradient-sub:linear-gradient(135deg, #1E6BD6 0%, #4a90e2 100%);
      --gradient-cta:linear-gradient(135deg, #FF8A00 0%, #ffb84d 100%);
    }
    *{box-sizing:border-box}
    body{
      margin:0; font-family: system-ui,-apple-system,"Hiragino Kaku Gothic ProN","Yu Gothic",Segoe UI,Roboto,sans-serif;
      color:var(--text); background:var(--base); line-height:1.7;
    }
    a{color:inherit;text-decoration:none}
    .container{width:min(1140px,92vw);margin-inline:auto}
    img{max-width:100%;height:auto}
    
    /* ボタンのデザイン強化 */
    .btn{
      display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
      padding:1rem 1.8rem;border-radius:999px;
      font-weight:800;background:var(--gradient-cta);color:#fff;
      box-shadow:0 6px 20px rgba(255,138,0,.35);
      transition:all .3s cubic-bezier(0.4, 0, 0.2, 1);
      border:2px solid transparent;white-space:nowrap;
      font-size:clamp(0.9rem, 2vw, 1.05rem);
      position:relative;overflow:hidden;
      text-shadow:0 1px 2px rgba(0,0,0,.1);
    }
    .btn::before{
      content:'';position:absolute;top:0;left:0;right:0;bottom:0;
      background:linear-gradient(135deg, rgba(255,255,255,.2) 0%, transparent 100%);
      opacity:0;transition:opacity .3s ease;
    }
    .btn:hover{
      transform:translateY(-3px);
      box-shadow:0 10px 30px rgba(255,138,0,.45);
    }
    .btn:hover::before{opacity:1;}
    .btn:active{transform:translateY(-1px);}
    @media (hover: none){
      .btn:hover{transform:translateY(-1px);}
    }
    .btn.outline{
      background:transparent;
      border:2px solid rgba(255,255,255,.6);
      color:#fff;
      box-shadow:0 4px 15px rgba(255,255,255,.15);
      backdrop-filter:blur(10px);
    }
    .btn.outline:hover{
      background:rgba(255,255,255,.1);
      border-color:rgba(255,255,255,.9);
      box-shadow:0 6px 20px rgba(255,255,255,.25);
    }
    .btn.secondary{
      background:#fff;
      border:2px solid var(--sub);
      color:var(--sub);
      box-shadow:0 6px 20px rgba(30,107,214,.25);
      font-weight:900;
    }
    .btn.secondary:hover{
      background:var(--gradient-sub);
      border-color:var(--sub);
      color:#fff;
      box-shadow:0 10px 30px rgba(30,107,214,.4);
    }
    
    /* タグのデザイン強化 */
    .tag{
      display:inline-flex;align-items:center;gap:.4rem;
      font-size:.85rem;font-weight:800;color:#fff;
      background:var(--gradient-sub);
      border:1px solid rgba(255,255,255,.3);
      padding:.4rem .9rem;border-radius:999px;
      box-shadow:0 4px 12px rgba(30,107,214,.25);
      animation:tagPulse 2s ease-in-out infinite;
    }
    .tag::before{
      content:'✨';font-size:1rem;
    }
    @keyframes tagPulse{
      0%, 100%{box-shadow:0 4px 12px rgba(30,107,214,.25);}
      50%{box-shadow:0 6px 16px rgba(30,107,214,.4);}
    }

    /* ヘッダーの強化 */
    header{
      position:sticky;top:0;z-index:50;
      background:rgba(255,255,255,.95);
      backdrop-filter:blur(12px) saturate(180%);
      border-bottom:1px solid rgba(11,31,58,.08);
      box-shadow:0 2px 10px rgba(11,31,58,.05);
    }
    .nav{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;position:relative;gap:.8rem;}
    .logo{display:flex;align-items:center;gap:.7rem;font-weight:900;letter-spacing:.02em;flex:1 1 auto;min-width:0;max-width:fit-content;transition:transform .3s ease;}
    .logo:hover{transform:scale(1.02);}
    .logo span:last-child{
      font-size:clamp(0.8rem, 1.8vw, 0.95rem);
      overflow:visible;white-space:normal;line-height:1.3;
      background:var(--gradient-main);
      -webkit-background-clip:text;
      background-clip:text;
      -webkit-text-fill-color:transparent;
      word-break:keep-all;
    }
    .logo-mark{
      width:38px;height:38px;border-radius:12px;
      background:var(--gradient-main);
      display:grid;place-items:center;color:#fff;font-weight:900;
      box-shadow:0 4px 15px rgba(11,31,58,.3);
      flex-shrink:0;position:relative;
    }
    .logo-mark::after{
      content:'';position:absolute;inset:-2px;
      border-radius:12px;
      background:linear-gradient(135deg, #1E6BD6, #FF8A00);
      z-index:-1;opacity:.3;
      animation:logoGlow 3s ease-in-out infinite;
    }
    @keyframes logoGlow{
      0%, 100%{opacity:.3;transform:scale(1);}
      50%{opacity:.5;transform:scale(1.05);}
    }
    .nav-links{display:flex;gap:1rem;font-weight:700;color:#2A3446;font-size:0.95rem;}
    .nav-links a{
      padding:.5rem .7rem;border-radius:10px;
      transition:all .3s ease;position:relative;
    }
    .nav-links a::after{
      content:'';position:absolute;bottom:0;left:50%;right:50%;
      height:2px;background:var(--gradient-sub);
      transition:all .3s ease;
    }
    .nav-links a:hover{
      background:linear-gradient(135deg, rgba(30,107,214,.08), rgba(30,107,214,.12));
      color:var(--sub);
    }
    .nav-links a:hover::after{left:10%;right:10%;}
    .nav-cta{display:flex;gap:.6rem;align-items:center}
    .hamburger{
      display:none;width:44px;height:44px;border-radius:12px;
      border:2px solid #E9EDF3;background:#fff;flex-shrink:0;cursor:pointer;
      transition:all .3s ease;box-shadow:0 2px 8px rgba(11,31,58,.06);
    }
    .hamburger:hover{
      border-color:var(--sub);
      box-shadow:0 4px 12px rgba(30,107,214,.15);
    }
    .hamburger span{
      display:block;width:20px;height:2px;background:#25324A;margin:4px auto;
      transition:all .3s ease;border-radius:2px;
    }
    @media (max-width:900px){
      .nav{gap:.5rem;}
      .logo{flex:0 1 auto;max-width:65%;}
      .logo span:last-child{
        font-size:clamp(0.75rem, 1.6vw, 0.85rem);
      }
      .nav-links{
        display:none;position:absolute;left:0;right:0;top:70px;
        background:rgba(255,255,255,.98);backdrop-filter:blur(12px);
        padding:1.5rem;border-bottom:1px solid #E9EDF3;
        flex-direction:column;z-index:100;
        box-shadow:0 10px 30px rgba(11,31,58,.1);
        border-radius:0 0 20px 20px;
      }
      .nav-links.open{display:flex;animation:slideDown .3s ease;}
      .nav-cta{display:none}
      .hamburger{display:block}
    }
    @keyframes slideDown{
      from{opacity:0;transform:translateY(-10px);}
      to{opacity:1;transform:translateY(0);}
    }
    @media (max-width:560px){
      .logo{max-width:60%;}
      .logo span:last-child{
        font-size:clamp(0.7rem, 1.5vw, 0.8rem);
        max-width:none;
      }
      .logo-mark{width:32px;height:32px;font-size:0.9rem;}
    }

    /* ヒーローセクションの大幅強化 */
    .hero{
      background:
        radial-gradient(1200px 600px at 15% -15%, rgba(30,107,214,.15), transparent 70%),
        radial-gradient(1200px 700px at 85% 10%, rgba(255,138,0,.12), transparent 70%),
        radial-gradient(1000px 500px at 50% 50%, rgba(11,31,58,.08), transparent 60%),
        linear-gradient(180deg,#fff 0%, #F5F7FA 100%);
      padding:clamp(3rem,8vw,6rem) 0 clamp(3rem,6vw,5rem);
      position:relative;overflow:hidden;
    }
    .hero::before{
      content:'';position:absolute;top:0;left:0;right:0;bottom:0;
      background:
        repeating-linear-gradient(90deg, transparent 0, transparent 99px, rgba(30,107,214,.02) 99px, rgba(30,107,214,.02) 100px),
        repeating-linear-gradient(0deg, transparent 0, transparent 99px, rgba(30,107,214,.02) 99px, rgba(30,107,214,.02) 100px);
      opacity:.4;
    }
    .hero-grid{
      display:grid;grid-template-columns:1.2fr .8fr;
      gap:clamp(1.5rem,5vw,3rem);align-items:center;
      position:relative;z-index:1;
    }
    .hero h1{
      font-size:clamp(1.5rem,3.5vw,2.8rem);
      line-height:1.35;margin:.8rem 0 1.2rem;
      color:var(--main);font-weight:900;
      letter-spacing:-.01em;
      text-shadow:0 2px 3px rgba(11,31,58,.05);
    }
    .hero h1 .line{
      display:block;
      white-space:nowrap;
    }
    @media (max-width:900px){
      .hero h1{
        font-size:clamp(1.4rem,4vw,2rem);
      }
      .hero h1 .line{
        white-space:normal;
      }
    }
    @media (max-width:560px){
      .hero h1{
        font-size:clamp(1.3rem,5vw,1.6rem);
      }
    }
    .hero h1::after{
      content:'';display:block;width:80px;height:5px;
      background:var(--gradient-cta);
      margin-top:1rem;border-radius:3px;
      box-shadow:0 2px 8px rgba(255,138,0,.3);
    }
    .hero p{
      color:var(--muted);
      font-size:clamp(1rem,1.6vw,1.15rem);
      line-height:1.8;
    }
    .hero-actions{
      display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.5rem;
    }
    .hero-card{
      background:linear-gradient(135deg, #fff 0%, #fafbfc 100%);
      border-radius:20px;
      box-shadow:0 15px 50px rgba(11,31,58,.12);
      padding:clamp(1.5rem,3.5vw,2rem);
      border:1px solid rgba(30,107,214,.1);
      position:relative;overflow:hidden;
    }
    .hero-card::before{
      content:'';position:absolute;top:0;left:0;right:0;height:4px;
      background:var(--gradient-sub);
    }
    .hero-card::after{
      content:'';position:absolute;top:-50%;right:-50%;
      width:200%;height:200%;
      background:radial-gradient(circle, rgba(30,107,214,.05) 0%, transparent 70%);
      animation:cardGlow 4s ease-in-out infinite;
    }
    @keyframes cardGlow{
      0%, 100%{transform:translate(0, 0) scale(1);}
      50%{transform:translate(-10%, -10%) scale(1.1);}
    }
    
    /* メトリクスの強化 */
    .metrics{
      display:grid;grid-template-columns:repeat(3,1fr);
      gap:1rem;margin-top:1.5rem;
    }
    .metric{
      background:linear-gradient(135deg, #fff 0%, var(--base-soft) 100%);
      border-radius:16px;padding:clamp(1rem,2.5vw,1.3rem);
      text-align:center;
      border:2px solid rgba(30,107,214,.15);
      box-shadow:0 6px 20px rgba(11,31,58,.08);
      transition:all .3s ease;
      position:relative;overflow:hidden;
    }
    .metric::before{
      content:'';position:absolute;inset:0;
      background:var(--gradient-sub);opacity:0;
      transition:opacity .3s ease;
    }
    .metric:hover{
      transform:translateY(-5px);
      box-shadow:0 12px 30px rgba(30,107,214,.2);
      border-color:var(--sub);
    }
    .metric:hover::before{opacity:.05;}
    .metric .num{
      font-size:clamp(1.4rem,3.5vw,1.8rem);
      font-weight:900;
      background:var(--gradient-main);
      -webkit-background-clip:text;
      background-clip:text;
      -webkit-text-fill-color:transparent;
      position:relative;z-index:1;
    }
    .metric .label{
      font-size:clamp(0.8rem,2vw,0.9rem);
      color:var(--muted);font-weight:800;
      position:relative;z-index:1;
    }
    @media (max-width:900px){.hero-grid{grid-template-columns:1fr}}
    @media (max-width:560px){
      .metrics{grid-template-columns:1fr;max-width:320px;margin-inline:auto;}
    }

    /* セクション共通スタイルの強化 */
    section{padding:clamp(3rem,6vw,5rem) 0}
    section.alt{
      background:
        radial-gradient(1000px 800px at 80% 20%, rgba(30,107,214,.04), transparent 60%),
        linear-gradient(180deg, var(--base-soft) 0%, #fff 100%);
    }
    .section-head{
      display:flex;align-items:flex-end;justify-content:space-between;
      gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap;
    }
    .section-head h2{
      font-size:clamp(1.6rem,2.8vw,2.4rem);
      margin:0;color:var(--main);font-weight:900;
      position:relative;padding-bottom:.5rem;
    }
    .section-head h2::after{
      content:'';position:absolute;bottom:0;left:0;
      width:60px;height:4px;
      background:var(--gradient-cta);
      border-radius:2px;
    }
    .section-head p{
      margin:.4rem 0 0;color:var(--muted);
      font-size:clamp(0.95rem,1.8vw,1.05rem);
      font-weight:600;
    }
    @media (max-width:560px){
      .section-head{flex-direction:column;align-items:flex-start;}
    }

    /* グリッドシステム */
    .grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
    .grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}
    @media(max-width:900px){.grid-3{grid-template-columns:1fr 1fr}.grid-2{grid-template-columns:1fr}}
    @media(max-width:560px){.grid-3{grid-template-columns:1fr}}

    /* カードデザインの大幅強化 */
    .card{
      background:#fff;
      border-radius:20px;
      box-shadow:0 8px 25px rgba(11,31,58,.08);
      padding:clamp(1.3rem,3.5vw,1.8rem);
      border:1px solid rgba(30,107,214,.08);
      height:100%;
      transition:all .4s cubic-bezier(0.4, 0, 0.2, 1);
      position:relative;overflow:hidden;
    }
    .card::before{
      content:'';position:absolute;top:0;left:0;right:0;height:3px;
      background:var(--gradient-sub);transform:scaleX(0);
      transform-origin:left;transition:transform .4s ease;
    }
    .card:hover{
      transform:translateY(-8px);
      box-shadow:0 20px 50px rgba(11,31,58,.15);
      border-color:rgba(30,107,214,.2);
    }
    .card:hover::before{transform:scaleX(1);}
    .card h3{
      margin:.3rem 0 .6rem;
      font-size:clamp(1.05rem,2.4vw,1.2rem);
      color:var(--main);font-weight:800;
    }
    .card p,.card li{
      color:var(--muted);
      font-size:clamp(0.95rem,1.9vw,1.05rem);
      line-height:1.7;
    }
    
    /* アイコンの強化 */
    .icon{
      width:52px;height:52px;border-radius:14px;
      background:linear-gradient(135deg, rgba(30,107,214,.1), rgba(30,107,214,.15));
      display:grid;place-items:center;
      font-size:1.5rem;
      border:2px solid rgba(30,107,214,.2);
      box-shadow:0 6px 20px rgba(30,107,214,.15);
      margin-bottom:.8rem;
      transition:all .3s ease;
      display:inline-grid;
    }
    .card:hover .icon{
      transform:scale(1.1) rotate(5deg);
      box-shadow:0 8px 25px rgba(30,107,214,.25);
    }
    
    /* チェックリストの強化 */
    ul.check{list-style:none;padding:0;margin:.4rem 0 0}
    ul.check li{
      position:relative;padding-left:2rem;margin:.7rem 0;
      font-size:clamp(0.95rem,1.9vw,1.05rem);
      transition:all .3s ease;
    }
    ul.check li::before{
      content:"✓";position:absolute;left:0;top:.05rem;
      color:#fff;font-weight:900;
      width:24px;height:24px;
      background:var(--gradient-sub);
      border-radius:50%;
      display:grid;place-items:center;
      font-size:.9rem;
      box-shadow:0 3px 10px rgba(30,107,214,.25);
    }
    ul.check li:hover{padding-left:2.2rem;}

    /* ケーススタディの強化 */
    .case{display:flex;flex-direction:column;gap:.8rem}
    .case .case-title{
      font-weight:900;color:var(--main);
      font-size:clamp(1rem,2.2vw,1.1rem);
      margin-bottom:.3rem;
      display:flex;align-items:center;gap:.5rem;
    }
    .case .case-title::before{
      content:'📋';font-size:1.2rem;
    }
    .case .before,.case .after{
      background:var(--base-soft);
      border:2px solid #E9EDF3;
      border-radius:14px;
      padding:clamp(1rem,2.5vw,1.2rem);
      font-size:clamp(0.9rem,1.9vw,1rem);
      transition:all .3s ease;
      position:relative;
    }
    .case .before{
      background:linear-gradient(135deg, #fff5f5 0%, #ffe8e8 100%);
      border-color:#ffd4d4;
    }
/*
    .case .before::before{
      content:'⚠️';position:absolute;top:0.7rem;right:1rem;
      font-size:1.3rem;opacity:.5;
    }
*/
    .case .after{
      background:linear-gradient(135deg, #f0fff4 0%, #e6f9eb 100%);
      border-color:#b8e6c9;
    }
/*
    .case .after::before{
      content:'✨';position:absolute;top:0.7rem;right:1rem;
      font-size:1.3rem;opacity:.5;
    }
*/
    .case:hover .before,
    .case:hover .after{
      transform:translateX(5px);
      box-shadow:0 6px 20px rgba(11,31,58,.1);
    }

    /* ステップ表示の強化 */
    .steps{counter-reset:step;gap:1.2rem !important;}
    .step{
      display:grid;grid-template-columns:auto 1fr;
      gap:1.2rem;padding:clamp(1.2rem,3vw,1.5rem);
      background:#fff;
      border:2px solid rgba(30,107,214,.1);
      border-radius:18px;
      transition:all .4s ease;
      position:relative;overflow:hidden;
    }
    .step::after{
      content:'';position:absolute;inset:0;
      background:var(--gradient-sub);opacity:0;
      transition:opacity .3s ease;
    }
    .step:hover{
      border-color:var(--sub);
      box-shadow:0 12px 35px rgba(30,107,214,.2);
      transform:translateX(10px);
    }
    .step:hover::after{opacity:.03;}
    .step::before{
      counter-increment:step;content:counter(step);
      width:clamp(44px,9vw,50px);height:clamp(44px,9vw,50px);
      border-radius:14px;
      display:grid;place-items:center;font-weight:900;
      color:#fff;background:var(--gradient-main);
      box-shadow:0 6px 20px rgba(11,31,58,.3);
      flex-shrink:0;
      font-size:clamp(1.2rem,2.5vw,1.4rem);
      position:relative;z-index:1;
    }
    .step h3{
      margin:0 0 .3rem;
      font-size:clamp(1rem,2.2vw,1.15rem);
      position:relative;z-index:1;
    }
    .step p{
      font-size:clamp(0.9rem,1.9vw,1rem);
      position:relative;z-index:1;
    }

    /* アコーディオンの強化 */
    details{
      background:#fff;
      border:2px solid rgba(30,107,214,.1);
      border-radius:16px;
      padding:clamp(1rem,2.8vw,1.3rem);
      transition:all .3s ease;
      box-shadow:0 4px 15px rgba(11,31,58,.06);
    }
    details:hover{
      border-color:rgba(30,107,214,.25);
      box-shadow:0 8px 25px rgba(11,31,58,.1);
    }
    details+details{margin-top:1rem}
    summary{
      cursor:pointer;font-weight:800;color:var(--main);
      font-size:clamp(0.95rem,2.1vw,1.05rem);
      display:flex;align-items:center;gap:.8rem;
      transition:color .3s ease;
    }
    summary::before{
      content:'💡';font-size:1.2rem;
    }
    summary:hover{color:var(--sub);}
    summary::-webkit-details-marker{display:none}
    summary::after{
      content:"＋";margin-left:auto;
      font-weight:900;color:var(--sub);
      width:32px;height:32px;
      background:rgba(30,107,214,.1);
      border-radius:50%;
      display:grid;place-items:center;
      transition:all .3s ease;
    }
    summary:hover::after{
      background:var(--gradient-sub);
      color:#fff;transform:rotate(90deg);
    }
    details[open] summary::after{
      content:"－";
      background:var(--gradient-sub);
      color:#fff;transform:rotate(180deg);
    }
    details .small{
      font-size:clamp(0.9rem,1.9vw,0.95rem);
      padding-left:2rem;
    }

    /* CTAバンドの大幅強化 */
    .cta-band{
      background:
        radial-gradient(circle at 20% 50%, rgba(30,107,214,.15), transparent 50%),
        radial-gradient(circle at 80% 50%, rgba(255,138,0,.15), transparent 50%),
        var(--gradient-main);
      color:#fff;border-radius:clamp(20px,5vw,28px);
      padding:clamp(2rem,4.5vw,3rem);
      box-shadow:0 20px 60px rgba(11,31,58,.25);
      display:grid;grid-template-columns:1.2fr .8fr;
      gap:clamp(1.5rem,4vw,2rem);align-items:center;
      position:relative;overflow:hidden;
    }
    .cta-band::before{
      content:'';position:absolute;top:-50%;left:-50%;
      width:200%;height:200%;
      background:
        radial-gradient(circle, rgba(255,255,255,.1) 0%, transparent 60%);
      animation:ctaShine 4s ease-in-out infinite;
    }
    @keyframes ctaShine{
      0%, 100%{transform:translate(0, 0);}
      50%{transform:translate(10%, 10%);}
    }
    .cta-band h3{
      font-size:clamp(1.2rem,2.8vw,1.6rem);
      position:relative;z-index:1;
      text-shadow:0 2px 4px rgba(0,0,0,.1);
    }
    .cta-band p{
      color:rgba(255,255,255,.9);
      font-size:clamp(0.95rem,1.9vw,1.05rem);
      position:relative;z-index:1;
    }
    .cta-actions{
      display:flex;gap:1rem;flex-wrap:wrap;
      justify-content:flex-start;position:relative;z-index:1;
    }
    @media(max-width:900px){
      .cta-band{grid-template-columns:1fr;}
      .cta-actions{justify-content:center;}
    }

    /* フッターの強化 */
    footer{
      background:
        radial-gradient(circle at 30% 50%, rgba(30,107,214,.08), transparent 60%),
        linear-gradient(180deg, #07162B 0%, #0a1f38 100%);
      color:#C9D3E5;padding:clamp(2rem,5vw,3rem) 0;
      position:relative;
    }
    footer::before{
      content:'';position:absolute;top:0;left:0;right:0;height:2px;
      background:var(--gradient-sub);
    }
    footer .foot-grid{
      display:grid;grid-template-columns:1.2fr .8fr;
      gap:clamp(1.5rem,4vw,2rem);align-items:start
    }
    footer a{
      color:#fff;text-decoration:underline;
      transition:color .3s ease;
    }
    footer a:hover{color:var(--cta);}
    @media(max-width:900px){footer .foot-grid{grid-template-columns:1fr}}
    .small{font-size:clamp(0.88rem,1.9vw,0.95rem);color:#507dca}

    /* アニメーション効果の強化 */
    .reveal{
      opacity:0;transform:translateY(20px);
      transition:all .8s cubic-bezier(0.4, 0, 0.2, 1);
    }
    .reveal.show{opacity:1;transform:translateY(0);}

    /* フォームスタイルの強化 */
    form label{display:block;margin-bottom:1rem;}
    form input, form textarea{
      width:100%;
      padding:clamp(0.8rem,2.2vw,1rem);
      border:2px solid #E9EDF3;
      border-radius:12px;
      margin:.35rem 0 .6rem;
      font-size:clamp(0.95rem,1.9vw,1.05rem);
      font-family:inherit;
      transition:all .3s ease;
      background:#fff;
    }
    form input:focus, form textarea:focus{
      outline:none;
      border-color:var(--sub);
      box-shadow:0 4px 15px rgba(30,107,214,.15);
    }
    form button{margin-top:.8rem;}

    /* 特別なハイライトカード */
    .highlight-card{
      background:linear-gradient(135deg, #fff7ec 0%, #fff 100%);
      border:2px solid #ffd9ad;
      position:relative;
    }
    .highlight-card::before{
      background:var(--gradient-cta);
    }
    
    /* インラインスタイルの改善用クラス */
    .text-gradient-main{
      background:var(--gradient-main);
      -webkit-background-clip:text;
      background-clip:text;
      -webkit-text-fill-color:transparent;
    }
    .text-gradient-cta{
      background:var(--gradient-cta);
      -webkit-background-clip:text;
      background-clip:text;
      -webkit-text-fill-color:transparent;
    }

#thanks
.section-container{width:min(1140px,92vw);margin-inline:auto}
