:root{
    --navy-950:#0A1D33;
    --navy-900:#0E2540;
    --navy-800:#16375C;
    --navy-600:#33608F;
    --gold:#B99653;
    --gold-soft:#CDB37A;
    --bg:#FCFCFD;
    --bg-alt:#F5F7F9;
    --surface:#FFFFFF;
    --ink:#22303C;
    --ink-soft:#5E6B77;
    --ink-faint:#8B96A1;
    --line:#E6EAEE;
    --line-strong:#D9DEE3;
    --font:'Noto Sans JP', sans-serif;
    --max:1160px;
    --shadow-sm:0 1px 2px rgba(14,37,64,.05), 0 4px 14px rgba(14,37,64,.05);
    --shadow-md:0 2px 6px rgba(14,37,64,.05), 0 18px 44px rgba(14,37,64,.09);
    --shadow-lg:0 20px 60px rgba(10,29,51,.22);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0; font-family:var(--font); color:var(--ink);
    background:var(--bg); line-height:1.95; -webkit-font-smoothing:antialiased;
    font-size:15px;
  }
  img{max-width:100%; display:block;}
  .wrap{max-width:var(--max); margin:0 auto; padding:0 32px;}
  h1,h2,h3{font-family:var(--font); color:var(--navy-900); margin:0; font-weight:900; letter-spacing:.01em;}

  .eyebrow{
    font-family:var(--font); font-size:12px; letter-spacing:.22em; font-weight:700;
    color:var(--gold); display:inline-flex; align-items:center; gap:14px; margin:0 0 16px;
    text-transform:uppercase;
  }
  .eyebrow::before{content:""; width:28px; height:1px; background:var(--gold);}
  .eyebrow.center-line{justify-content:center;}
  .eyebrow.center-line::after{content:""; width:28px; height:1px; background:var(--gold);}

  /* ---------- Header ---------- */
  .site-header{
    position:sticky; top:0; z-index:50;
    background:rgba(252,252,253,.92); backdrop-filter:blur(12px);
    border-bottom:1px solid var(--line);
  }
  .site-header .wrap{display:flex; align-items:center; justify-content:space-between; height:76px;}
  .logo{display:flex; align-items:center; gap:11px; text-decoration:none; line-height:1.3;}
  .logo-mark{height:40px; width:auto; display:block; flex-shrink:0;}
  .logo-text{display:flex; flex-direction:column;}
  .logo .l-main{font-weight:900; font-size:17px; color:var(--navy-900); letter-spacing:.03em;}
  .logo .l-sub{font-size:11px; letter-spacing:.1em; color:var(--ink-faint); margin-top:2px; font-weight:500;}
  .nav-links{display:flex; align-items:center; gap:34px; list-style:none; margin:0; padding:0; flex-wrap:nowrap;}
  .nav-links a{
    text-decoration:none; font-size:13.5px; font-weight:700; color:var(--ink);
    letter-spacing:.03em; padding:6px 0; position:relative; transition:color .2s;
    white-space:nowrap;
  }
  .nav-links a::after{
    content:""; position:absolute; left:0; bottom:0; width:0; height:1.5px;
    background:var(--gold); transition:width .25s;
  }
  .nav-links a:hover{color:var(--navy-900);}
  .nav-links a:hover::after{width:100%;}

  /* ---------- Hero (Plan D: light / left-aligned) ---------- */
  .hero{
    position:relative; overflow:hidden; background:#fff;
    min-height:clamp(560px, 48vw, 740px);
    border-bottom:1px solid var(--line);
  }
  .hero-bg{
    position:absolute; inset:0;
    background:url('../img/hero.webp') 12% 45%/cover no-repeat;
  }
  /* 画面が狭くなると人物が寄ってくるため、見せる範囲をずらす */
  @media (max-width:1240px){
    .hero-bg{background-position:25% 45%;}
  }
  .hero-veil{
    position:absolute; inset:0;
    background:linear-gradient(96deg,
      rgba(255,255,255,.30) 0%,
      rgba(255,255,255,.26) 28%,
      rgba(255,255,255,.14) 44%,
      rgba(255,255,255,.03) 58%,
      rgba(255,255,255,0) 70%);
  }
  .hero-glow{
    position:absolute; inset:0; pointer-events:none;
    background:
      linear-gradient(180deg, rgba(255,255,255,.50) 0%, rgba(255,255,255,0) 11%),
      linear-gradient(0deg, rgba(255,255,255,.34) 0%, rgba(255,255,255,0) 10%);
  }
  .hero .wrap{position:relative; padding-top:96px; padding-bottom:120px;}
  .hero-inner{max-width:640px; position:relative; z-index:1;}
  .hero-photo-mobile{display:none;}

  .hero .eyebrow{color:var(--gold); text-shadow:0 1px 12px rgba(255,255,255,.9);}
  .hero .eyebrow::before{background:var(--gold);}
  .hero h1{
    font-size:clamp(36px,4.45vw,53px); line-height:1.4; letter-spacing:.015em;
    color:var(--navy-900);
    text-shadow:0 1px 16px rgba(255,255,255,.95), 0 4px 40px rgba(255,255,255,.85);
  }
  .hero h1 .gold{color:var(--gold);}
  .hero-lead{
    font-size:17.5px; color:var(--ink); max-width:560px; margin:28px 0 44px;
    font-weight:600; line-height:1.9; letter-spacing:.02em;
    text-shadow:0 1px 12px rgba(255,255,255,.95), 0 2px 26px rgba(255,255,255,.85);
  }
  .hero-lead .lead-line{display:inline;}
  .hero .btn-row{justify-content:flex-start;}
  .hero .btn-pill{
    background:var(--navy-900); border-color:var(--navy-900); color:#fff;
    box-shadow:0 12px 30px rgba(14,37,64,.20);
  }
  .hero .btn-pill:hover{background:var(--gold); border-color:var(--gold); color:#fff;}
  .hero .link-more{
    color:var(--navy-900); border:1.4px solid rgba(14,37,64,.26); border-radius:999px;
    padding:15px 32px; font-size:14.5px;
    background:rgba(255,255,255,.82);
    -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
    box-shadow:0 8px 24px rgba(14,37,64,.09);
  }
  .hero .link-more:hover{color:var(--navy-900); border-color:var(--gold); background:#fff;}

  .btn-row{display:flex; gap:20px; flex-wrap:wrap; align-items:center;}

  .btn-pill{
    display:inline-flex; align-items:center; gap:10px;
    background:#fff; border:1.6px solid var(--navy-900); color:var(--navy-900);
    padding:17px 38px; border-radius:999px; font-size:15px; font-weight:700; letter-spacing:.02em;
    text-decoration:none; transition:all .22s; box-shadow:var(--shadow-sm);
  }
  .btn-pill svg{width:17px; height:17px; flex-shrink:0;}
  .btn-pill:hover{background:var(--navy-900); color:#fff; transform:translateY(-1px); box-shadow:var(--shadow-md);}
  .btn-pill--invert{background:#fff; border-color:#fff; color:var(--navy-900);}
  .btn-pill--invert:hover{background:var(--gold); border-color:var(--gold); color:#fff;}

  .link-more{
    display:inline-flex; align-items:center; gap:8px; text-decoration:none;
    color:var(--navy-900); font-weight:700; font-size:14px; border-bottom:1.5px solid var(--line-strong);
    padding-bottom:3px; transition:border-color .2s, color .2s;
  }
  .link-more:hover{border-color:var(--gold); color:var(--gold);}
  .link-more .arrow{transition:transform .2s;}
  .link-more:hover .arrow{transform:translateX(4px);}

  /* ---------- Sections ---------- */
  section{padding:112px 0; scroll-margin-top:76px;}
  .section-head{max-width:680px; margin-bottom:60px;}
  .section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
  .section-head h2{font-size:clamp(27px,3.4vw,37px); line-height:1.5;}
  .section-head p{color:var(--ink-soft); font-size:15px; margin-top:18px; font-weight:500; text-wrap:balance;}
  .intro-catch{
    display:block; color:var(--gold); font-weight:700; font-size:17px;
    letter-spacing:.03em; margin-bottom:16px; padding-bottom:9px;
    border-bottom:1px solid rgba(185,150,83,.35);
  }
  .bg-alt{background:var(--bg-alt);}

  /* ---------- Values ---------- */
  /* ---------- Values list ---------- */
  .values-list{max-width:860px; margin:0 auto; position:relative;}
  .value-item{
    position:relative; display:grid; grid-template-columns:96px 1fr; gap:0 34px;
    padding:0 0 64px;
  }
  .value-item:last-child{padding-bottom:0;}
  /* 縦のつなぎ線 */
  .value-item::before{
    content:""; position:absolute; left:47px; top:78px; bottom:10px; width:1px;
    background:linear-gradient(180deg, var(--gold-soft), var(--line-strong));
    opacity:.55;
  }
  .value-item:last-child::before{display:none;}
  .value-num{
    width:96px; height:96px; border-radius:50%;
    background:var(--surface); border:1px solid var(--line);
    box-shadow:var(--shadow-sm);
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    position:relative; z-index:1;
  }
  .value-num .n{
    font-size:30px; font-weight:900; color:var(--navy-900); line-height:1; letter-spacing:.02em;
  }
  .value-num .n-label{
    font-size:9px; font-weight:700; letter-spacing:.24em; color:var(--gold);
    text-transform:uppercase; margin-top:5px;
  }
  .value-body{padding-top:6px;}
  .value-body h3{font-size:20px; line-height:1.65; margin-bottom:10px;}
  .value-catch{
    display:inline-block; font-size:14.5px; font-weight:700; color:var(--gold);
    letter-spacing:.04em; margin-bottom:14px; padding-bottom:6px;
    border-bottom:1px solid rgba(185,150,83,.35);
  }
  .value-body p{color:var(--ink-soft); font-size:14.5px; margin:0; font-weight:500;}
  .value-body p + p{margin-top:10px;}
  .value-points{
    list-style:none; margin:14px 0; padding:20px 26px;
    background:var(--bg-alt); border-left:3px solid var(--gold); border-radius:0 10px 10px 0;
  }
  .value-points li{
    position:relative; padding-left:20px; color:var(--navy-900);
    font-size:14.5px; font-weight:700; line-height:2.1;
  }
  .value-points li::before{
    content:""; position:absolute; left:2px; top:.95em; width:7px; height:7px;
    background:var(--gold); transform:rotate(45deg);
  }
  .value-em{color:var(--navy-900); font-weight:700;}

  /* ---------- Services ---------- */
  .service-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:28px;}
  .service-card{
    background:var(--surface); border:1px solid var(--line); border-radius:18px;
    padding:42px 40px 38px; position:relative; overflow:hidden;
    box-shadow:var(--shadow-sm);
    display:flex; flex-direction:column;
    transition:box-shadow .3s, transform .3s, border-color .3s;
  }
  .service-card::before{
    content:""; position:absolute; top:0; left:0; width:100%; height:3px;
    background:linear-gradient(90deg, var(--gold), var(--gold-soft));
    transform:scaleX(0); transform-origin:left; transition:transform .35s;
  }
  .service-card:hover{box-shadow:var(--shadow-md); transform:translateY(-4px); border-color:var(--line-strong);}
  .service-card:hover::before{transform:scaleX(1);}
  .service-top{display:flex; align-items:baseline; gap:16px; margin-bottom:14px;}
  .service-num{
    font-size:40px; font-weight:900; line-height:1; letter-spacing:.02em;
    color:var(--gold-soft);
    flex-shrink:0; transform:translateY(2px);
  }
  @supports (-webkit-text-stroke: 1px black){
    .service-num{color:transparent; -webkit-text-stroke:1.3px var(--gold);}
  }
  .service-card h3{font-size:19.5px; line-height:1.55; margin:0;}
  .service-catch{
    display:inline-block; font-size:14px; font-weight:700; color:var(--gold);
    letter-spacing:.04em; margin-bottom:16px; padding-bottom:6px;
    border-bottom:1px solid rgba(185,150,83,.35);
  }
  .service-card p{color:var(--ink-soft); font-size:14px; margin:0; font-weight:500;}
  .service-card p + p{margin-top:10px;}
  .service-figure{margin:24px 0 4px;}
  .service-figure img{
    width:100%; height:auto; display:block;
    border:1px solid var(--line); border-radius:12px;
  }
  .service-figure figcaption{
    font-size:11.5px; color:var(--ink-faint); font-weight:500;
    text-align:center; margin-top:10px; letter-spacing:.04em;
  }
  .service-list-block{
    padding-top:24px;
  }
  .service-list-label{
    display:flex; align-items:center; gap:10px;
    font-size:11px; font-weight:700; letter-spacing:.18em; color:var(--gold);
    text-transform:uppercase; margin-bottom:14px;
  }
  .service-list-label::after{content:""; flex:1; height:1px; background:linear-gradient(90deg, rgba(185,150,83,.4), transparent);}
  .service-list{
    list-style:none; margin:0; padding:0;
    display:grid; grid-template-columns:1fr 1fr; gap:6px 18px;
  }
  .service-list li.span-2{grid-column:1 / -1;}
  .service-list li{
    position:relative; padding-left:18px;
    font-size:13.5px; font-weight:600; color:var(--navy-900); line-height:1.9;
  }
  .service-list li::before{
    content:""; position:absolute; left:1px; top:.82em; width:6px; height:6px;
    background:var(--gold); transform:rotate(45deg);
  }

  /* ---------- Pricing ---------- */
  .price-grid{
    display:grid; grid-template-columns:1.18fr .82fr; gap:28px;
    max-width:1000px; margin:0 auto; align-items:stretch;
  }
  .price-card{
    background:var(--surface); border:1px solid var(--line); border-radius:20px;
    overflow:hidden; box-shadow:var(--shadow-md);
    display:flex; flex-direction:column;
  }
  .price-top{
    background:linear-gradient(135deg, var(--navy-950), var(--navy-800));
    color:#fff; padding:36px 40px 32px; position:relative;
  }
  .price-top::after{
    content:""; position:absolute; left:40px; right:40px; bottom:0; height:1px;
    background:linear-gradient(90deg, var(--gold), transparent);
  }
  .price-top .plan{font-size:11px; letter-spacing:.2em; color:var(--gold-soft); display:block; margin-bottom:10px; text-transform:uppercase; font-weight:700;}
  .price-top h3{color:#fff; font-size:21px; margin-bottom:14px;}
  .price-amount{font-size:27px; font-weight:900; color:#fff; line-height:1.3;}
  .price-amount .unit{font-size:14px; font-weight:700; color:var(--gold-soft); margin-right:6px;}
  .price-amount small{font-size:12.5px; font-weight:500; color:rgba(255,255,255,.6); margin-left:8px;}
  .price-body{padding:32px 40px 36px; display:flex; flex-direction:column; flex:1;}
  .price-desc{font-size:14px; color:var(--ink-soft); font-weight:500; margin:0 0 24px;}
  .price-body ul{list-style:none; margin:0; padding:24px 0 0; border-top:1px solid var(--line); display:grid; grid-template-columns:1fr; gap:13px;}
  .price-body li{font-size:13.8px; color:var(--ink); padding-left:26px; position:relative; font-weight:600;}
  .price-body li::before{content:"✓"; position:absolute; left:0; color:var(--gold); font-weight:700;}
  .price-inline-note{
    font-size:11.8px; color:var(--ink-faint); font-weight:500; line-height:1.85;
    margin:22px 0 0; padding-left:1.15em; text-indent:-1.15em;
  }
  .price-note{
    font-size:12.5px; color:var(--ink-faint); margin:28px auto 0; font-weight:500;
    max-width:780px; line-height:2;
  }
  .price-note .note-line{display:block; padding-left:1.3em; text-indent:-1.3em;}
  .price-note .note-line + .note-line{margin-top:8px;}

  /* ---------- Blog ---------- */
  .blog-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
  .blog-card{
    background:var(--surface); border:1px solid var(--line); border-radius:14px;
    padding:34px 30px; display:flex; flex-direction:column; min-height:200px;
    box-shadow:var(--shadow-sm); transition:box-shadow .3s, transform .3s;
  }
  .blog-card:hover{box-shadow:var(--shadow-md); transform:translateY(-4px);}
  .blog-cat{
    font-size:11px; letter-spacing:.1em; color:var(--gold);
    font-weight:700; margin-bottom:16px; text-transform:uppercase;
    display:inline-flex; align-items:center; gap:8px;
  }
  .blog-cat::before{content:""; width:5px; height:5px; border-radius:50%; background:var(--gold);}
  .blog-card h3{font-size:16px; line-height:1.75; margin-bottom:auto; font-weight:700;}
  .blog-soon{font-size:10.5px; color:var(--ink-faint); margin-top:22px; letter-spacing:.06em; text-transform:uppercase; font-weight:700;}
  .blog-lead{font-size:13px; color:var(--ink-faint); margin-top:28px; text-align:center; font-weight:500;}

  /* ---------- Profile ---------- */
  .profile-grid{
    display:grid; grid-template-columns:280px 1fr; gap:0 70px;
    grid-template-areas:"side body" "creds body"; align-items:start;
  }
  .profile-side{grid-area:side;}
  .profile-body{grid-area:body;}
  .profile-photo-wrap{position:relative;}
  .profile-photo{
    width:100%; aspect-ratio:1/1; border-radius:50%; object-fit:cover;
    border:8px solid var(--surface);
    box-shadow:0 0 0 1px var(--line), var(--shadow-md);
  }
  .profile-photo-wrap::after{
    content:""; position:absolute; top:-10px; right:-6px; width:64px; height:64px;
    border:1px solid var(--gold); border-radius:50%; opacity:.5;
  }
  .profile-credentials{
    grid-area:creds; margin:30px 0 0; padding:24px 0 0; border-top:1px solid var(--line-strong);
  }
  .profile-credentials .cred-label{
    display:block; font-size:11px; font-weight:700; letter-spacing:.18em;
    color:var(--ink-faint); margin-bottom:10px;
  }
  .profile-credentials ul{
    list-style:none; margin:0; padding:0;
    font-size:13px; color:var(--ink-soft); line-height:2.4; font-weight:500;
  }
  .profile-credentials li{padding-left:20px; position:relative;}
  .profile-credentials li::before{content:"—"; position:absolute; left:0; color:var(--gold);}
  .profile-name{font-size:clamp(24px,3vw,31px); margin-bottom:4px; letter-spacing:.02em;}
  .profile-role{font-size:12px; letter-spacing:.1em; color:var(--ink-faint); font-weight:700;}
  .profile-catch{margin:26px 0;}
  .profile-catch .catch-main{
    display:block; font-weight:900; color:var(--navy-900); font-size:19.5px;
    line-height:1.55; letter-spacing:.02em;
  }
  .profile-catch .catch-sub{
    display:inline-block; font-weight:700; color:var(--gold); font-size:14px;
    letter-spacing:.04em; line-height:1.8; margin-top:10px; padding-bottom:6px;
    border-bottom:1px solid rgba(185,150,83,.35);
  }
  .profile-bio p{font-size:14.5px; color:var(--ink-soft); margin:0 0 18px; font-weight:500;}
  .profile-bio .bio-lead{
    font-size:15.5px; color:var(--ink); font-weight:700;
    margin-bottom:24px; letter-spacing:.01em;
  }
  .bio-close{margin-top:30px; padding-top:26px; border-top:1px solid var(--line);}
  .bio-close-lead{
    font-size:16.5px; font-weight:900; color:var(--navy-900);
    line-height:1.75; letter-spacing:.015em; margin-bottom:16px;
  }
  .bio-close-lead .cl-line{display:block;}
  .bio-close p:last-child{margin-bottom:0;}

  /* ---------- Contact ---------- */
  .contact-card{
    background:linear-gradient(135deg, var(--navy-950) 0%, var(--navy-800) 100%);
    border-radius:24px; overflow:hidden; color:#fff; position:relative;
    padding:76px 40px; text-align:center; box-shadow:var(--shadow-md);
  }
  .contact-card::before{
    content:""; position:absolute; inset:0; pointer-events:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='560' height='190' viewBox='0 0 560 190'%3E%3Cpolyline points='0,160 56,128 112,144 168,84 224,104 280,44 336,72 392,24 448,58 504,12 560,40' fill='none' stroke='%23CDB37A' stroke-width='1.5' opacity='0.14'/%3E%3Ccircle cx='280' cy='44' r='3' fill='%23CDB37A' opacity='0.25'/%3E%3Ccircle cx='448' cy='58' r='3' fill='%23CDB37A' opacity='0.25'/%3E%3C/svg%3E");
    background-repeat:no-repeat; background-position:right -30px bottom -20px; background-size:580px;
  }
  .contact-card .eyebrow{color:var(--gold-soft); justify-content:center;}
  .contact-card .eyebrow::after{content:""; width:28px; height:1px; background:var(--gold-soft);}
  .contact-card h2{color:#fff; font-size:clamp(26px,3.4vw,36px);}
  .contact-card p{color:rgba(255,255,255,.72); font-size:15px; max-width:440px; margin:20px auto 36px; position:relative; font-weight:500;}
  .contact-card .btn-pill{position:relative;}

  /* ---------- Footer ---------- */
  footer{background:var(--surface); border-top:1px solid var(--line); padding:76px 0 44px; position:relative;}
  .f-inner{display:flex; flex-direction:column; align-items:center; text-align:center;}
  .f-brand{display:flex; flex-direction:column; align-items:center; text-decoration:none;}
  .f-brand img{height:72px; width:auto;}
  .f-name{font-weight:900; font-size:17.5px; color:var(--navy-900); letter-spacing:.06em; margin-top:16px;}
  .f-sub{font-size:11px; color:var(--ink-faint); letter-spacing:.08em; font-weight:500; margin-top:5px;}
  .f-nav{margin-top:46px;}
  .f-nav ul{display:flex; flex-wrap:wrap; justify-content:center; gap:18px 52px; list-style:none; margin:0; padding:0;}
  .f-nav a{text-decoration:none; display:block; text-align:center;}
  .f-nav .jp{display:block; font-size:14px; font-weight:700; color:var(--navy-900); letter-spacing:.05em; transition:color .2s;}
  .f-nav .en{display:block; font-size:10.5px; font-weight:700; color:var(--gold); letter-spacing:.16em; text-transform:uppercase; margin-top:6px;}
  .f-nav a:hover .jp{color:var(--gold);}
  .f-copy{margin:52px 0 0; color:var(--ink-faint); font-size:11.5px; font-weight:500; letter-spacing:.04em;}
  .f-top{
    position:absolute; right:44px; top:76px;
    display:flex; flex-direction:column; align-items:center; gap:12px;
    text-decoration:none; color:var(--navy-900);
  }
  .f-top::before{
    content:""; width:1px; height:56px;
    background:linear-gradient(180deg, var(--gold), var(--line-strong));
  }
  .f-top .f-top-arrow{
    position:absolute; top:-7px; left:50%;
    width:8px; height:8px; border-top:1.5px solid var(--gold); border-left:1.5px solid var(--gold);
    transform:translateX(-50%) rotate(45deg);
  }
  .f-top .f-top-label{
    writing-mode:vertical-rl; font-size:11px; font-weight:700; letter-spacing:.34em;
    color:var(--ink-soft); transition:color .2s;
  }
  .f-top:hover .f-top-label{color:var(--gold);}

  /* ---------- Reveal on scroll ---------- */
  .reveal{opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease;}
  .reveal.in{opacity:1; transform:none;}

  @media (max-width:1060px) and (min-width:921px){
    .nav-links{gap:20px;}
    .nav-links a{font-size:12.5px;}
  }

  @media (max-width:920px){
    .hero-bg,.hero-veil,.hero-glow{display:none;}
    .hero{background:#fff; min-height:0; border-bottom:none;}
    .hero .wrap{padding-top:0; padding-bottom:58px;}
    .hero-photo-mobile{
      display:block; position:relative; width:100%;
      height:clamp(330px,88vw,420px); overflow:hidden; background:#fff;
    }
    .hero-photo-mobile img{
      width:100%; height:100%; object-fit:cover; object-position:75% 44%; display:block;
    }
    .hero-photo-mobile__veil{
      position:absolute; inset:0;
      background:linear-gradient(180deg,
        rgba(255,255,255,.34) 0%,
        rgba(255,255,255,.04) 24%,
        rgba(255,255,255,.10) 50%,
        rgba(255,255,255,.74) 78%,
        rgba(255,255,255,.97) 92%,
        #fff 100%);
    }
    .hero-inner{position:relative; z-index:2; margin-top:-60px; padding:0 2px; max-width:none;}
    .hero h1{
      font-size:clamp(31px,8.6vw,44px); line-height:1.42;
      text-shadow:0 1px 14px rgba(255,255,255,.95);
    }
    .hero-lead{
      font-size:15.5px; max-width:none; margin:24px 0 34px;
      text-shadow:0 1px 12px rgba(255,255,255,.9);
    }
    .hero .btn-row{flex-direction:column; gap:13px; align-items:stretch;}
    .hero .btn-row > *{width:100%; justify-content:center;}
    .hero-lead .lead-line{display:block;}
    .nav-links li:not(:last-child){display:none;}
    .blog-grid,.service-grid{grid-template-columns:1fr;}
    .service-card{padding:32px 24px 30px;}
    .service-num{font-size:32px;}
    .service-card h3{font-size:17.5px;}
    .service-catch{font-size:13.5px;}
    .service-list{grid-template-columns:1fr;}
    .value-item{grid-template-columns:56px 1fr; gap:0 18px; padding-bottom:48px;}
    .value-item::before{left:27px; top:66px;}
    .value-num{width:56px; height:56px;}
    .value-num .n{font-size:20px;}
    .value-num .n-label{display:none;}
    .value-body h3{font-size:17.5px;}
    .value-catch{font-size:13.5px;}
    .intro-catch{font-size:15px;}
    .value-points{padding:14px 18px;}
    .profile-grid{display:block;}
    .profile-side{display:flex; justify-content:center;}
    .profile-photo-wrap{width:172px;}
    .profile-body{margin-top:28px;}
    .profile-name{text-align:center;}
    .profile-role{display:block; text-align:center;}
    .profile-catch{margin:26px 0 22px;}
    .profile-bio .bio-lead{font-size:15px;}
    .bio-close{margin-top:26px; padding-top:22px;}
    .bio-close-lead{font-size:15.5px; line-height:1.85;}
    .bio-close-lead .cl-line{display:inline;}
    .profile-catch .catch-main{font-size:17.5px;}
    .profile-catch .catch-sub{font-size:13.5px;}
    .profile-credentials{
      margin:30px 0 0; padding:20px 24px; border-top:none;
      background:var(--surface); border:1px solid var(--line); border-radius:14px;
    }
    .price-grid{grid-template-columns:1fr;}
    .price-top,.price-body{padding-left:30px; padding-right:30px;}
    .price-body ul{grid-template-columns:1fr;}
    footer{padding:56px 0 36px;}
    .f-top{display:none;}
    .f-nav ul{gap:20px 32px;}
    .f-brand img{height:60px;}
    .contact-card{padding:56px 26px;}
    section{padding:84px 0;}
  }
  @media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto;}
    *{animation:none !important; transition:none !important;}
    .reveal{opacity:1; transform:none;}
  }

  /* ---------- Blog card link / meta ---------- */
  a.blog-card{text-decoration:none; color:inherit;}
  a.blog-card:hover h3{color:var(--navy-800);}
  .blog-head{display:flex; align-items:center; gap:12px; margin-bottom:14px; flex-wrap:wrap;}
  .blog-head .blog-cat{margin-bottom:0;}
  .blog-date{font-size:11px; color:var(--ink-faint); font-weight:600; letter-spacing:.06em;}
  .blog-excerpt{font-size:12.8px; color:var(--ink-soft); line-height:1.9; margin-top:14px; font-weight:500;}
  .blog-more{display:flex; justify-content:center; margin-top:44px;}

  /* ---------- Blog index page ---------- */
  .page-head{padding:132px 0 0;}
  .blog-filter{display:flex; gap:10px; flex-wrap:wrap; justify-content:center; margin-bottom:44px;}
  .filter-btn{
    font-family:inherit; font-size:13px; font-weight:700; color:var(--ink-soft);
    background:var(--surface); border:1px solid var(--line); border-radius:999px;
    padding:10px 24px; cursor:pointer; transition:all .2s; letter-spacing:.04em;
  }
  .filter-btn:hover{border-color:var(--gold); color:var(--navy-900);}
  .filter-btn.is-active{background:var(--navy-900); border-color:var(--navy-900); color:#fff;}
  .blog-grid-full{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
  .blog-empty{
    text-align:center; color:var(--ink-faint); font-size:13.5px; font-weight:500;
    padding:60px 0; grid-column:1 / -1;
  }

  /* ---------- Article page ---------- */
  .article{max-width:760px; margin:0 auto;}
  .article-head{padding-bottom:34px; margin-bottom:44px; border-bottom:1px solid var(--line);}
  .article-head .blog-head{margin-bottom:20px;}
  .article-head h1{font-size:clamp(25px,3.4vw,34px); line-height:1.6; letter-spacing:.01em;}
  .article-body{font-size:15.5px; line-height:2.1; color:var(--ink-soft); font-weight:500;}
  .article-body > p{margin-bottom:26px;}
  .article-body h2{
    font-size:20px; color:var(--navy-900); margin:52px 0 22px; padding-left:16px;
    border-left:3px solid var(--gold); line-height:1.6; letter-spacing:.01em;
  }
  .article-body h3{font-size:16.5px; color:var(--navy-900); margin:38px 0 16px; line-height:1.7;}
  .article-body ul,.article-body ol{margin:0 0 26px; padding-left:1.4em;}
  .article-body li{margin-bottom:9px;}
  .article-body strong{color:var(--navy-900); font-weight:700;}
  .article-body blockquote{
    margin:32px 0; padding:24px 28px; background:var(--bg-alt);
    border-radius:12px; font-size:14.5px; color:var(--navy-800); font-weight:600; line-height:1.95;
  }
  .article-body img{width:100%; height:auto; border-radius:12px; border:1px solid var(--line); margin:32px 0;}
  .article-foot{margin-top:64px; padding-top:36px; border-top:1px solid var(--line); display:flex; justify-content:center;}
  .article-cta{
    margin-top:72px; background:var(--bg-alt); border:1px solid var(--line);
    border-radius:20px; padding:44px 40px; text-align:center;
  }
  .article-cta h3{font-size:18px; margin-bottom:12px;}
  .article-cta p{font-size:13.8px; color:var(--ink-soft); margin-bottom:26px; font-weight:500;}

  @media (max-width:920px){
    .blog-grid-full{grid-template-columns:1fr;}
    .page-head{padding:104px 0 0;}
    .article-body{font-size:15px; line-height:2.0;}
    .article-body h2{font-size:18px;}
    .article-cta{padding:36px 24px;}
    .filter-btn{padding:9px 18px; font-size:12.5px;}
  }
