  :root{
    --navy:#2D5A82;
    --navy-d:#234a6c;
    --blue:#5BA4D0;
    --blue-l:#8AC8E8;
    --ink:#2a2f36;
    --gray:#596673;
    --line:#e3e9ef;
    --bg:#f4f7fa;
    --white:#fff;
    --font-ja:'Noto Sans JP',sans-serif;
    --font-en:'Oswald',sans-serif;
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:var(--font-ja);
    color:var(--ink);
    background:var(--bg);
    line-height:1.8;
    -webkit-font-smoothing:antialiased;
  }
  a{color:inherit;text-decoration:none;}
  img{display:block;max-width:100%;}

  .site-header{
    position:sticky;top:0;z-index:50;
    background:var(--white);
    border-bottom:1px solid var(--line);
    box-shadow:0 1px 6px rgba(45,90,130,.05);
  }
  .header-inner{
    max-width:1160px;margin:0 auto;padding:0 24px;
    height:78px;display:flex;align-items:center;justify-content:space-between;
  }
  .header-logo img{height:46px;width:auto;}
  .gnav{display:flex;align-items:center;gap:4px;}
  .gnav a{
    font-size:14px;font-weight:500;color:var(--ink);
    padding:10px 14px;border-radius:6px;
    transition:color .2s,background .2s;white-space:nowrap;
  }
  .gnav a:hover{color:var(--navy);background:#eef4f9;}
  .gnav a.is-current{color:var(--navy);font-weight:700;}
  .nav-toggle{display:none;}

  .page-head{
    background:linear-gradient(120deg,#0d2438 0%,var(--navy) 55%,var(--blue) 130%);
    color:var(--white);
    text-align:center;
    padding:62px 24px 58px;
  }
  .page-head .en{
    font-family:var(--font-en);font-weight:700;font-style:italic;letter-spacing:.16em;
    font-size:44px;line-height:1;color:var(--blue-l);
  }
  .page-head h1{
    font-size:21px;font-weight:700;letter-spacing:.04em;margin-top:10px;
  }

  .entrance{
    max-width:1080px;margin:0 auto;padding:64px 24px 24px;
    display:grid;grid-template-columns:1fr 1fr;gap:30px;
  }
  .ecard{
    display:flex;flex-direction:column;
    background:var(--white);border-radius:14px;overflow:hidden;
    box-shadow:0 8px 26px rgba(45,90,130,.10);
    border:1px solid var(--line);
    transition:transform .28s ease,box-shadow .28s ease;
  }
  .ecard:hover{transform:translateY(-6px);box-shadow:0 16px 38px rgba(45,90,130,.18);}
  .ecard__media{position:relative;aspect-ratio:16/9;overflow:hidden;}
  .ecard__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
  .ecard:hover .ecard__media img{transform:scale(1.05);}
  .ecard__tag{
    position:absolute;left:0;bottom:0;
    background:var(--navy);color:#fff;
    font-family:var(--font-en);font-weight:700;font-style:italic;letter-spacing:.08em;
    font-size:13px;padding:7px 16px;border-top-right-radius:10px;
  }
  .ecard__body{padding:26px 28px 30px;display:flex;flex-direction:column;flex:1;}
  .ecard__title{font-size:23px;font-weight:900;color:var(--navy);letter-spacing:.02em;}
  .ecard__lead{font-size:14.5px;color:var(--gray);margin-top:12px;flex:1;}
  .ecard__btn{
    margin-top:22px;align-self:flex-start;
    display:inline-flex;align-items:center;gap:8px;
    background:var(--navy);color:#fff;font-weight:700;font-size:15px;
    padding:13px 26px;border-radius:999px;
    transition:background .2s,gap .2s;
  }
  .ecard:hover .ecard__btn{background:var(--blue);gap:13px;}
  .ecard__btn span{font-family:var(--font-en);}

  .site-footer{
    background:#1d3247;color:rgba(255,255,255,.85);
    padding:54px 24px 28px;
  }
  .footer-inner{max-width:1080px;margin:0 auto;}
  .footer-top{
    display:flex;flex-wrap:wrap;justify-content:space-between;
    gap:34px 24px;align-items:flex-start;
  }
  .footer-brand img{height:50px;width:auto;background:#fff;padding:8px 12px;border-radius:8px;}
  .footer-brand .sns{margin-top:18px;display:flex;gap:12px;}
  .footer-brand .sns a{
    width:38px;height:38px;border-radius:50%;
    border:1px solid rgba(255,255,255,.35);
    display:flex;align-items:center;justify-content:center;
    font-family:var(--font-en);font-weight:700;font-size:15px;color:#fff;
    transition:background .2s,color .2s;
  }
  .footer-brand .sns a:hover{background:var(--blue);border-color:var(--blue);color:#fff;}
  .offices{
    display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;flex:1;
    min-width:300px;
  }
  .office h3{
    font-size:13px;font-weight:700;color:var(--blue-l);
    letter-spacing:.04em;margin-bottom:7px;
  }
  .office p{font-size:13px;line-height:1.7;color:rgba(255,255,255,.8);}
  .office .tel{display:inline-block;margin-top:4px;font-weight:500;color:#fff;}
  .footer-copy{
    margin-top:40px;padding-top:20px;border-top:1px solid rgba(255,255,255,.15);
    text-align:center;font-size:12px;color:rgba(255,255,255,.6);
    font-family:var(--font-en);letter-spacing:.04em;
  }

  @media(max-width:860px){
    .header-inner{height:64px;padding:0 18px;}
    .header-logo img{height:38px;}
    .nav-toggle{
      display:flex;flex-direction:column;gap:5px;
      background:none;border:0;cursor:pointer;padding:8px;
    }
    .nav-toggle span{width:24px;height:2px;background:var(--navy);transition:.3s;}
    .gnav{
      position:absolute;top:64px;left:0;right:0;
      flex-direction:column;align-items:stretch;gap:0;
      background:var(--white);border-bottom:1px solid var(--line);
      box-shadow:0 12px 24px rgba(45,90,130,.12);
      max-height:0;overflow:hidden;transition:max-height .3s ease;
    }
    .gnav.is-open{max-height:420px;}
    .gnav a{padding:15px 22px;border-radius:0;border-top:1px solid var(--line);font-size:15px;}
    .gnav a:hover{background:#eef4f9;}

    .page-head{padding:46px 20px 44px;}
    .page-head .en{font-size:34px;}
    .page-head h1{font-size:18px;}

    .entrance{grid-template-columns:1fr;gap:24px;padding:42px 20px 16px;}
    .ecard__body{padding:22px 22px 26px;}

    .footer-top{flex-direction:column;}
    .footer-brand{display:flex;align-items:center;gap:20px;}
    .footer-brand .sns{margin-top:0;}
    .offices{grid-template-columns:1fr;min-width:0;}
  }
