    /* Cocoonのスタイルをリセット */
    #container, #main, .site-body, .content-area {
      all: unset !important;
      display: block !important;
    }

    :root{
      --navy:#132742;
      --navy-deep:#081321;
      --navy-mid:#1f3e67;
      --navy-soft:#45658f;
      --white:#ffffff;
      --off-white:#f6f8fb;
      --line:#d3dce8;
      --line-strong:#bcc9da;
      --text:#192b44;
      --text-light:#5f7089;
      --text-faint:#8190a6;
      --accent:#2d5a96;
      --accent-2:#6e89ad;
      --shadow:0 24px 60px rgba(8,19,33,.08);
      --shadow-soft:0 14px 34px rgba(8,19,33,.06);
      --container:min(1240px, calc(100% - 56px));
      --ease:cubic-bezier(.22,1,.36,1);
    }

    *, *::before, *::after {
      margin:0;
      padding:0;
      box-sizing:border-box;
    }

    html{ scroll-behavior:smooth; }

    body{
      font-family:"Noto Sans JP", sans-serif;
      color:var(--text);
      background:#fff;
      line-height:1.9;
      overflow-x:hidden;
      -webkit-font-smoothing:antialiased;
      text-rendering:optimizeLegibility;
    }

    body.menu-open, body.is-loading{ overflow:hidden; }

    a{ color:inherit; text-decoration:none; }
    img{ display:block; max-width:100%; }

    .container{ width:var(--container); margin-inline:auto; }

    .section{ position:relative; padding:132px 0; }
    .section-line{ border-top:1px solid var(--line); }
    .section-muted{
      background:
        radial-gradient(circle at top right, rgba(110,137,173,.08), transparent 22%),
        linear-gradient(180deg, #fbfcfe 0%, #f5f8fc 100%);
    }

    .eyebrow{
      display:inline-flex; align-items:center; gap:14px; margin-bottom:18px;
      font-size:11px; font-weight:700; letter-spacing:.30em; text-transform:uppercase;
      color:var(--accent); white-space:nowrap;
    }
    .eyebrow::before{ content:""; width:48px; height:1px; background:var(--accent); }

    .section-head{ display:block; max-width:920px; margin-bottom:62px; }
    .section-title{
      font-family:"Cormorant Garamond", serif;
      font-size:clamp(28px, 3.2vw, 48px); line-height:1.22;
      letter-spacing:.01em; color:var(--navy-deep); font-weight:600;
    }
    .section-lead{ margin-top:18px; max-width:720px; font-size:15px; color:var(--text-light); }

    .message-title{
      font-family:"Cormorant Garamond", serif;
      font-size:clamp(22px, 2.4vw, 32px); line-height:1.5;
      color:var(--navy-deep); font-weight:600; margin-bottom:22px;
    }

    .hero-title{
      font-family:"Cormorant Garamond", serif;
      font-size:clamp(22px, 4.8vw, 54px); line-height:1.08;
      letter-spacing:.01em; font-weight:600; margin-bottom:24px;
      max-width:11em; text-wrap:balance;
    }
    .hero-title span{ display:block; }

    .service-name{ font-size:24px; line-height:1.46; color:var(--navy-deep); font-weight:700; }
    .issue-item h3{ font-size:23px; line-height:1.46; color:var(--navy-deep); margin-bottom:8px; font-weight:700; }

    /* loader */
    .page-loader{
      position:fixed; inset:0; z-index:3000;
      display:flex; align-items:center; justify-content:center;
      background:
        radial-gradient(circle at top right, rgba(110,137,173,.12), transparent 24%),
        linear-gradient(180deg, #0a172c 0%, #081321 100%);
      opacity:1; visibility:visible;
      transition: opacity .8s cubic-bezier(.22,1,.36,1), visibility .8s cubic-bezier(.22,1,.36,1);
    }
    .page-loader.is-hidden{ opacity:0; visibility:hidden; pointer-events:none; }
    .page-loader-inner{ width:min(420px, calc(100% - 48px)); text-align:center; }
    .page-loader-logo-wrap{
      width:170px; height:170px; margin:0 auto 22px;
      display:flex; align-items:center; justify-content:center;
      border:1px solid rgba(255,255,255,.18);
      background:rgba(255,255,255,.04);
      box-shadow:0 18px 40px rgba(0,0,0,.12);
      backdrop-filter:blur(8px);
    }
    .page-loader-logo{ width:140px; height:140px; object-fit:contain; display:block; margin:auto; animation:loaderFloat 2.2s ease-in-out infinite; }
    .page-loader-title{
      font-family:"Cormorant Garamond", serif;
      font-size:clamp(34px, 5vw, 46px); line-height:1.1;
      letter-spacing:.04em; color:#fff; margin-bottom:6px;
    }
    .page-loader-sub{ font-size:11px; letter-spacing:.24em; text-transform:uppercase; color:rgba(255,255,255,.66); margin-bottom:24px; }
    .page-loader-bar{ position:relative; width:100%; height:1px; background:rgba(255,255,255,.16); overflow:hidden; }
    .page-loader-bar-fill{
      display:block; width:40%; height:100%;
      background:linear-gradient(90deg, rgba(255,255,255,0) 0%, #ffffff 50%, rgba(255,255,255,0) 100%);
      animation:loaderBarMove 1.4s ease-in-out infinite;
    }
    @keyframes loaderBarMove{ 0%{ transform:translateX(-120%); } 100%{ transform:translateX(320%); } }
    @keyframes loaderFloat{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-4px); } }

    /* header */
    .site-header{
      position:fixed; inset:0 0 auto 0; width:100%; z-index:1000;
      border-bottom:1px solid transparent;
      transition: background .35s var(--ease), border-color .35s var(--ease), box-shadow .35s var(--ease), backdrop-filter .35s var(--ease);
    }
    .site-header.scrolled{
      background:rgba(255,255,255,.94);
      border-color:rgba(19,39,66,.08);
      box-shadow:0 10px 30px rgba(8,19,33,.06);
      backdrop-filter:blur(18px);
    }
    .header-inner{
      width:var(--container); margin-inline:auto;
      min-height:88px; display:flex; align-items:center; justify-content:space-between; gap:24px;
    }
    .brand{ display:flex; align-items:center; gap:15px; min-width:0; }
    .brand-logo{ width:72px; height:72px; flex:0 0 auto; }
    .brand-logo img{ width:100%; height:100%; object-fit:contain; }
    .brand-name{ font-size:18px; line-height:1.2; font-weight:800; letter-spacing:.08em; color:var(--navy-deep); }
    .brand-sub{ margin-top:4px; font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--text-faint); }

    .desktop-nav{ display:flex; align-items:center; gap:30px; }
    .desktop-nav a{
      position:relative; padding:8px 0;
      font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--navy);
    }
    .desktop-nav a::after{
      content:""; position:absolute; left:0; bottom:0; width:100%; height:1px;
      background:var(--navy); transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease);
    }
    .desktop-nav a:hover::after{ transform:scaleX(1); }

    .header-cta, .mobile-contact, .btn, .floating-contact{ border-radius:0; }
    .header-cta{
      display:inline-flex; align-items:center; justify-content:center;
      min-height:44px; padding:0 18px; border:1px solid var(--navy); color:var(--navy);
      font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
      transition:all .3s var(--ease); white-space:nowrap;
    }
    .header-cta:hover{ background:var(--navy); color:#fff; }

    .menu-toggle{
      display:none; width:46px; height:46px; border:none; background:transparent;
      position:relative; cursor:pointer; flex:0 0 auto;
    }
    .menu-toggle span{
      position:absolute; left:10px; width:26px; height:1.5px;
      background:var(--navy); transition:.3s var(--ease);
    }
    .menu-toggle span:nth-child(1){ top:15px; }
    .menu-toggle span:nth-child(2){ top:22px; }
    .menu-toggle span:nth-child(3){ top:29px; }
    .menu-open .menu-toggle span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
    .menu-open .menu-toggle span:nth-child(2){ opacity:0; }
    .menu-open .menu-toggle span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

    .mobile-panel{
      position:fixed; inset:88px 20px auto 20px;
      background:#fff; border:1px solid var(--line); box-shadow:var(--shadow);
      opacity:0; visibility:hidden; transform:translateY(-12px);
      transition:.35s var(--ease); z-index:999;
    }
    .mobile-panel.active{ opacity:1; visibility:visible; transform:none; }
    .mobile-nav a{
      display:block; padding:15px 22px; border-top:1px solid var(--line);
      color:var(--navy); font-size:14px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
    }
    .mobile-nav a:first-child{ border-top:none; }
    .mobile-contact{
      display:block; margin:18px 22px 22px; padding:14px 16px;
      border:1px solid var(--navy); text-align:center; color:var(--navy);
      font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
    }

    /* hero */
    .hero{
      position:relative; min-height:100vh; display:flex; align-items:flex-end;
      overflow:hidden; color:#fff; padding:168px 0 84px;
      background:
        linear-gradient(0deg, rgba(8,19,33,.74), rgba(8,19,33,.52)),
        url("https://rlead-incorporated.com/wp-content/uploads/2026/07/header-bg.png-2.png") center/cover no-repeat;
      background-position:center center;
    }
    .hero::before{
      content:""; position:absolute; inset:0;
      background:linear-gradient(90deg, rgba(8,19,33,.84) 0%, rgba(8,19,33,.52) 48%, rgba(8,19,33,.18) 100%);
      pointer-events:none;
    }
    .hero-illustration{
      position:absolute; left:50%; top:50%; transform:translate(-50%, -50%);
      width:min(780px, 72vw); height:auto; opacity:0;
      pointer-events:none; user-select:none; object-fit:contain;
      filter:drop-shadow(0 0 40px rgba(80,140,255,.25));
    }
    @media(max-width:767px){
      .hero-illustration{ width:95vw; opacity:.13; }
    }
    .hero::after{
      content:""; position:absolute; inset:0;
      background:
        linear-gradient(135deg, rgba(255,255,255,.05) 0 1px, transparent 1px),
        linear-gradient(315deg, rgba(255,255,255,.03) 0 1px, transparent 1px);
      background-size:240px 240px, 240px 240px;
      opacity:.24; mix-blend-mode:screen; pointer-events:none;
    }
    .hero-inner{ position:relative; z-index:1; width:var(--container); margin-inline:auto; }
    .hero-grid{ display:grid; grid-template-columns:1.08fr .92fr; gap:64px; align-items:end; }
    .hero-copy{ max-width:860px; }
    .hero-kicker{
      display:inline-flex; align-items:center; gap:14px; margin-bottom:26px;
      font-size:11px; font-weight:700; letter-spacing:.32em; text-transform:uppercase; color:rgba(255,255,255,.78);
    }
    .hero-kicker::before{ content:""; width:54px; height:1px; background:rgba(255,255,255,.62); }
    .hero-desc{ max-width:700px; font-size:16px; color:rgba(255,255,255,.86); margin-bottom:36px; }
    .hero-actions{ display:flex; flex-wrap:wrap; gap:14px; margin-bottom:54px; }

    .btn{
      display:inline-flex; align-items:center; justify-content:center;
      min-height:54px; padding:0 22px; font-size:12px; font-weight:700;
      letter-spacing:.16em; text-transform:uppercase; transition:all .32s var(--ease);
    }
    .btn-primary{ background:#fff; color:var(--navy-deep); border:1px solid #fff; }
    .btn-primary:hover{ background:transparent; color:#fff; }
    .btn-secondary{ background:transparent; color:#fff; border:1px solid rgba(255,255,255,.34); }
    .btn-secondary:hover{ border-color:#fff; background:rgba(255,255,255,.06); }

    .hero-side{ display:flex; justify-content:flex-end; }
    .hero-side-panel{
      width:min(100%, 430px); position:relative; padding:2px 0;
      border-top:1px solid rgba(255,255,255,.28); border-bottom:1px solid rgba(255,255,255,.28);
    }
    .hero-side-item{ padding:20px 0; border-bottom:1px solid rgba(255,255,255,.18); }
    .hero-side-item:last-child{ border-bottom:none; }
    .hero-side-item strong{
      display:block; margin-bottom:8px; font-size:10px; font-weight:700;
      letter-spacing:.28em; text-transform:uppercase; color:rgba(255,255,255,.56);
    }
    .hero-side-item span{ display:block; font-size:16px; line-height:1.72; color:#fff; }

    .hero-fade{ opacity:0; transform:translateY(18px); transition: opacity 1s cubic-bezier(.22,1,.36,1), transform 1s cubic-bezier(.22,1,.36,1); }
    .hero-fade.hero-visible{ opacity:1; transform:none; }
    .hero-fade.delay-1{ transition-delay:.12s; }
    .hero-fade.delay-2{ transition-delay:.24s; }
    .hero-fade.delay-3{ transition-delay:.36s; }

    /* about */
    .intro-layout{ display:block; }
    .intro-right{ max-width:900px; }
    .intro-copy{ position:relative; padding-left:36px; border-left:1px solid var(--line-strong); }
    .intro-copy p{ font-size:15px; color:var(--text-light); margin-bottom:18px; }
    .intro-copy p:last-child{ margin-bottom:0; }

    /* services */
    .service-list{ border-top:1px solid var(--line-strong); }
    .service-row{
      display:grid; grid-template-columns:160px 1fr 1.08fr; gap:32px;
      padding:30px 0; border-bottom:1px solid var(--line-strong); align-items:start;
      transition:background .3s var(--ease), padding-left .3s var(--ease);
    }
    .service-row:hover{ background:rgba(19,39,66,.018); padding-left:10px; }
    .service-index{ font-family:"Cormorant Garamond", serif; font-size:34px; line-height:1; color:var(--accent); padding-top:4px; }
    .service-desc{ max-width:600px; font-size:15px; color:var(--text-light); }

    .service-desc a, .issue-item p a{
      color:var(--accent); text-decoration:underline; text-underline-offset:3px; font-weight:700;
    }
    .service-desc a:hover, .issue-item p a:hover{ color:var(--navy-deep); }
    .service-name a{ color:inherit; }
    .service-name a:hover{ color:var(--accent); }

    /* case studies */
    .case-studies-grid{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:28px; }
    .case-study{ position:relative; padding:0 0 28px; border-bottom:1px solid var(--line-strong); }
    .case-study::before{
      content:""; position:absolute; left:0; top:0; width:100%; height:1px;
      background:linear-gradient(90deg, var(--line-strong), transparent 75%);
    }
    .case-study-inner{ padding-top:22px; }
    .case-icon{
      width:72px; height:72px; margin-bottom:22px; display:grid; place-items:center;
      border:1px solid var(--line-strong);
      background:linear-gradient(180deg, #ffffff 0%, #f4f7fb 100%);
      box-shadow:0 8px 18px rgba(8,19,33,.05);
    }
    .case-icon svg{ width:34px; height:34px; stroke:var(--accent); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
    .case-label{ display:block; margin-bottom:12px; font-size:11px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--accent); }
    .case-title{ font-size:22px; line-height:1.5; font-weight:700; color:var(--navy-deep); margin-bottom:14px; }
    .case-desc{ font-size:15px; line-height:1.9; color:var(--text-light); margin-bottom:18px; }
    .case-result{ padding-top:18px; border-top:1px solid var(--line); }
    .case-result-label{ display:block; margin-bottom:8px; font-size:10px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--text-faint); }
    .case-result-text{ font-size:16px; line-height:1.8; font-weight:700; color:var(--navy); }

    /* issues */
    .issues-layout{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start; }
    .issues-visual{ position:relative; min-height:820px; overflow:hidden; box-shadow:var(--shadow); }
    .issues-visual img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease); }
    .issues-visual:hover img{ transform:scale(1.03); }
    .issues-visual::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(8,19,33,.04), rgba(8,19,33,.20)); }
    .issues-list{ border-top:1px solid var(--line-strong); }
    .issue-item{ display:grid; grid-template-columns:88px 1fr; gap:24px; padding:28px 0; border-bottom:1px solid var(--line-strong); }
    .issue-num{ font-family:"Cormorant Garamond", serif; font-size:38px; line-height:1; color:var(--accent); padding-top:2px; }
    .issue-item p{ font-size:15px; color:var(--text-light); }

    /* message */
    .message-layout{ display:grid; grid-template-columns:.9fr 1.1fr; gap:64px; align-items:start; }
    .message-photo{ position:relative; overflow:hidden; box-shadow:var(--shadow); }
    .message-photo img{ width:100%; height:auto; display:block; object-fit:contain; transition:transform 1s var(--ease); }
    .message-photo:hover img{ transform:scale(1.03); }
    .message-photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(8,19,33,.03), rgba(8,19,33,.14)); }
    .message-copy{ padding-top:8px; border-top:1px solid var(--line-strong); }
    .message-label{ margin-bottom:18px; font-size:11px; font-weight:700; letter-spacing:.30em; text-transform:uppercase; color:var(--accent); }
    .message-copy p{ font-size:15px; color:var(--text-light); margin-bottom:17px; }
    .signature{ margin-top:36px; padding-top:20px; border-top:1px solid var(--line-strong); color:var(--navy-deep); font-size:18px; font-weight:700; }
    .signature span{ display:block; margin-top:4px; color:var(--text-faint); font-size:13px; font-weight:500; }

    /* contact */
    .contact-section{ background:linear-gradient(180deg, #091526 0%, #0a172c 100%); color:#fff; overflow:hidden; }
    .contact-section::before{
      content:""; position:absolute; inset:0;
      background:
        linear-gradient(135deg, rgba(255,255,255,.05) 0 1px, transparent 1px),
        linear-gradient(315deg, rgba(255,255,255,.02) 0 1px, transparent 1px);
      background-size:220px 220px, 220px 220px; opacity:.18; pointer-events:none;
    }
    .contact-section .section-title{ color:#fff; font-size:clamp(24px, 2.8vw, 42px); }
    .contact-section .section-lead{ color:rgba(255,255,255,.74); }
    .contact-section .eyebrow{ color:rgba(255,255,255,.74); }
    .contact-section .eyebrow::before{ background:rgba(255,255,255,.42); }
    .contact-layout{
      position:relative; z-index:1; display:grid; grid-template-columns:1.04fr .96fr;
      gap:52px; align-items:end; padding-top:18px; border-top:1px solid rgba(255,255,255,.22);
    }
    .contact-copy{ max-width:720px; font-size:16px; color:rgba(255,255,255,.84); }
    .contact-actions{ display:flex; justify-content:flex-end; gap:14px; flex-wrap:wrap; }
    .contact-actions .btn-primary{ background:#fff; color:var(--navy-deep); border-color:#fff; }
    .contact-actions .btn-primary:hover{ background:transparent; color:#fff; }
    .contact-actions .btn-secondary{ border-color:rgba(255,255,255,.30); }

    /* footer */
    .footer{ background:#fff; padding:38px 0 32px; }
    .footer-inner{
      border-top:1px solid var(--line); padding-top:26px;
      display:grid; grid-template-columns:1fr auto; gap:28px; align-items:end;
    }
    .footer-brand{ display:flex; align-items:center; gap:14px; margin-bottom:12px; }
    .footer-brand .brand-logo{ width:42px; height:42px; }
    .footer-text{ max-width:640px; font-size:14px; color:var(--text-light); }
    .copyright{ margin-top:18px; font-size:12px; color:var(--text-faint); }
    .footer-nav{
      display:flex; gap:20px; flex-wrap:wrap; justify-content:flex-end;
      color:var(--navy); font-size:13px; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
    }

    /* floating */
    .floating-contact{
      position:fixed; right:20px; bottom:20px; z-index:950;
      display:inline-flex; align-items:center; gap:12px;
      min-height:54px; padding:0 18px; background:var(--navy); color:#fff;
      border:1px solid var(--navy); font-size:12px; font-weight:700;
      letter-spacing:.14em; text-transform:uppercase; transition:all .32s var(--ease);
      box-shadow:0 18px 34px rgba(8,19,33,.14);
    }
    .floating-contact:hover{ background:#fff; color:var(--navy); }
    .floating-contact small{ display:block; font-size:10px; letter-spacing:.18em; line-height:1.1; opacity:.72; }

    /* site-links */
    .site-links{
      background:linear-gradient(180deg, #0a172c 0%, #081321 100%);
      padding:0; overflow:hidden; position:relative;
    }
    .site-links::before{
      content:""; position:absolute; inset:0; pointer-events:none;
      background:
        linear-gradient(135deg, rgba(255,255,255,.04) 0 1px, transparent 1px),
        linear-gradient(315deg, rgba(255,255,255,.02) 0 1px, transparent 1px);
      background-size:200px 200px;
    }
    .site-links-inner{ position:relative; z-index:1; }
    .site-links-row{
      display:grid; grid-template-columns:repeat(2,1fr);
      border-bottom:1px solid rgba(255,255,255,.10);
    }
    .site-links-row:last-child{ border-bottom:none; }
    .site-link-item{
      display:flex; align-items:stretch; border-right:1px solid rgba(255,255,255,.10);
      text-decoration:none; color:inherit;
      transition:background .32s cubic-bezier(.22,1,.36,1);
    }
    .site-link-item:last-child{ border-right:none; }
    .site-link-item:hover{ background:rgba(255,255,255,.04); }
    .site-link-body{
      flex:1; display:flex; align-items:center; justify-content:space-between;
      gap:24px; padding:42px 48px;
    }
    .site-link-left{ display:flex; flex-direction:column; gap:10px; }
    .site-link-en{
      font-size:10px; font-weight:700; letter-spacing:.32em; text-transform:uppercase;
      color:rgba(255,255,255,.44);
    }
    .site-link-ja{
      font-family:"Cormorant Garamond", serif;
      font-size:clamp(24px, 2.6vw, 34px); line-height:1.15;
      font-weight:600; letter-spacing:.02em; color:#fff;
    }
    .site-link-desc{
      font-size:13px; line-height:1.8; color:rgba(255,255,255,.54);
      max-width:260px;
    }
    .site-link-arrow{
      flex:0 0 auto; width:48px; height:48px;
      display:grid; place-items:center;
      border:1px solid rgba(255,255,255,.18);
      color:rgba(255,255,255,.66);
      transition:border-color .32s cubic-bezier(.22,1,.36,1),
                 color .32s cubic-bezier(.22,1,.36,1),
                 transform .32s cubic-bezier(.22,1,.36,1);
    }
    .site-link-item:hover .site-link-arrow{
      border-color:rgba(255,255,255,.6);
      color:#fff;
      transform:translate(3px,-3px);
    }
    .site-link-arrow svg{ width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:1.6; }

    @media(max-width:900px){
      .site-links-row{ grid-template-columns:1fr; }
      .site-link-item{ border-right:none; border-bottom:1px solid rgba(255,255,255,.10); }
      .site-link-item:last-child{ border-bottom:none; }
      .site-link-body{ padding:30px 28px; }
    }
    @media(max-width:767px){
      .site-link-body{ padding:24px 20px; gap:16px; }
      .site-link-ja{ font-size:26px; }
      .site-link-desc{ display:none; }
    }

    /* blog */
    .blog-section{ background:var(--off-white); }
    .blog-wrap{ margin-top:40px; }
    .blog-card{
      display:grid; grid-template-columns:1fr 1.4fr; gap:0;
      text-decoration:none; color:inherit; background:#fff;
      border:1px solid var(--line); box-shadow:var(--shadow-soft);
      transition:transform .32s var(--ease), box-shadow .32s var(--ease);
      overflow:hidden;
    }
    .blog-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
    .blog-card-thumb{ aspect-ratio:16/9; overflow:hidden; }
    .blog-card-thumb img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
    .blog-card:hover .blog-card-thumb img{ transform:scale(1.04); }
    .blog-card-thumb--noimg{
      background:var(--off-white); display:grid; place-items:center;
      aspect-ratio:16/9;
    }
    .blog-card-thumb--noimg span{ font-size:12px; color:var(--text-light); }
    .blog-card-body{ padding:40px 48px; display:flex; flex-direction:column; justify-content:center; gap:16px; }
    .blog-card-date{ font-size:12px; color:var(--text-light); letter-spacing:.08em; }
    .blog-card-title{ font-family:"Cormorant Garamond",serif; font-size:clamp(20px,2.2vw,28px); line-height:1.4; color:var(--navy-deep); font-weight:600; }
    .blog-card-excerpt{ font-size:14px; line-height:1.9; color:var(--text-light); }
    .blog-card-more{ font-size:12px; font-weight:700; letter-spacing:.14em; color:var(--navy); }
    .blog-empty{ color:var(--text-light); font-size:14px; margin-top:24px; }
    @media(max-width:767px){
      .blog-card{ grid-template-columns:1fr; }
      .blog-card-body{ padding:24px 20px; }
    }

    /* reveal */
    .reveal{ opacity:0; transform:translateY(22px); transition:opacity .85s var(--ease), transform .85s var(--ease); }
    .reveal.is-visible{ opacity:1; transform:none; }
    .delay-1{ transition-delay:.08s; }
    .delay-2{ transition-delay:.16s; }
    .delay-3{ transition-delay:.24s; }

    /* responsive */
    @media (max-width:1100px){
      .desktop-nav, .header-cta{ display:none; }
      .menu-toggle{ display:inline-block; }
      .hero-grid, .issues-layout, .message-layout, .contact-layout, .footer-inner{ grid-template-columns:1fr; }
      .service-row{ grid-template-columns:140px 1fr; }
      .service-desc{ grid-column:2 / -1; }
      .hero-side{ justify-content:flex-start; }
      .hero-side-panel{ width:100%; max-width:560px; }
      .case-studies-grid{ grid-template-columns:1fr; gap:24px; }
      .issues-visual, .message-photo{ min-height:460px; }
      .contact-actions, .footer-nav{ justify-content:flex-start; }
    }

    @media (max-width:767px){
      .section{ padding:88px 0; }
      .header-inner{ min-height:76px; }
      .hero{ min-height:auto; padding:132px 0 58px; background-attachment:scroll; }
      .hero-title{ font-size:clamp(32px, 8vw, 46px); line-height:1.12; max-width:100%; }
      .section-title{ font-size:clamp(28px, 8vw, 40px); line-height:1.2; }
      .message-title{ font-size:clamp(30px, 8.5vw, 42px); line-height:1.2; }
      .hero-actions{ margin-bottom:38px; }
      .service-row{ grid-template-columns:1fr; gap:10px; padding:24px 0; }
      .service-row:hover{ padding-left:0; }
      .service-index{ font-size:26px; }
      .service-name, .issue-item h3, .case-title{ font-size:21px; line-height:1.5; }
      .issue-item{ grid-template-columns:62px 1fr; gap:14px; }
      .intro-copy{ padding-left:20px; }
      .case-icon{ width:64px; height:64px; margin-bottom:18px; }
      .case-desc{ font-size:14px; }
      .case-result-text{ font-size:15px; }
      .floating-contact{ right:14px; left:14px; bottom:14px; justify-content:center; }
      .mobile-panel{ inset:76px 14px auto 14px; }
    }

    @media (prefers-reduced-motion: reduce){
      html{ scroll-behavior:auto; }
      *, *::before, *::after{ transition:none !important; animation:none !important; }
      .reveal, .hero-fade{ opacity:1 !important; transform:none !important; }
    }

/* 社内ブログ: 記事一覧ボタン */
.blog-actions{ text-align:center; margin-top:30px; }
.blog-list-btn{
  display:inline-block;
  padding:14px 48px;
  border:1.5px solid var(--navy);
  border-radius:999px;
  color:var(--navy);
  font-weight:700;
  letter-spacing:.08em;
  text-decoration:none;
  transition:background .25s ease,color .25s ease,transform .2s ease;
}
.blog-list-btn:hover{ background:var(--navy); color:#fff; transform:translateY(-2px); }
