    :root{
      --bg:#ffffff;
      --sub-bg:#faf8f4;
      --line:#e7dfd2;
      --gold:#a58a5a;
      --gold-soft:#c8b28c;
      --ink:#1e1a17;
      --muted:#6e655d;
    }

    body{
      font-family:"Kaisei Tokumin",serif;
      background:var(--bg);
      color:var(--ink);
      line-height:1.95;
      letter-spacing:.03em;
    }

    a{
      color:inherit;
      text-decoration:none;
    }

    img{
      max-width:100%;
      height:auto;
      display:block;
    }

    .navbar-brand,
    .page-title,
    .section-title,
    .news-title,
    .related-card h3{
      font-family:"Yuji Syuku",serif;
    }

    .navbar{
      background:rgba(255,255,255,.94);
      backdrop-filter:blur(10px);
      border-bottom:1px solid rgba(165,138,90,.15);
    }

    .navbar-brand{
      display:flex;
      align-items:center;
      gap:.65rem;
      font-size:1.45rem;
      letter-spacing:.08em;
    }

    .brand-logo{
      width:42px;
      height:42px;
      object-fit:contain;
    }

    .nav-link{
      letter-spacing:.10em;
      color:var(--ink);
      position:relative;
    }

    .nav-link::after{
      content:"";
      position:absolute;
      left:.7rem;
      right:.7rem;
      bottom:.35rem;
      height:1px;
      background:var(--gold);
      transform:scaleX(0);
      transform-origin:center;
      transition:.3s ease;
    }

    .nav-link:hover::after{
      transform:scaleX(1);
    }

    .page-hero{
      padding:150px 0 80px;
      background:
        linear-gradient(90deg, rgba(255,255,255,.94) 0%, rgba(255,255,255,.86) 48%, rgba(255,255,255,.55) 100%),
        url('https://hanayagi-yatsuki.com/img/smp-top2.jpg') center center / cover no-repeat;
      border-bottom:1px solid rgba(165,138,90,.15);
    }

    .page-kicker{
      color:var(--gold);
      letter-spacing:.22em;
      font-size:.84rem;
      margin-bottom:.8rem;
    }

    .page-title{
      font-size:clamp(2.2rem,5vw,4rem);
      letter-spacing:.06em;
      margin-bottom:.8rem;
    }

    .breadcrumb-wrap{
      font-size:.9rem;
      color:var(--muted);
    }

    .breadcrumb-wrap a{
      color:var(--gold);
    }

    section{
      padding:90px 0;
    }

    .section-soft{
      background:var(--sub-bg);
    }

    .news-layout{
      max-width:980px;
      margin:0 auto;
    }

    .news-detail-box{
      background:#fff;
      border:1px solid rgba(165,138,90,.18);
      box-shadow:0 18px 40px rgba(34,24,16,.04);
      padding:3rem;
      position:relative;
    }

    .news-detail-box::before{
      content:"";
      position:absolute;
      top:0;
      left:0;
      width:100%;
      height:3px;
      background:linear-gradient(90deg, var(--gold), transparent);
    }

    .news-meta{
      display:flex;
      flex-wrap:wrap;
      gap:.75rem 1rem;
      align-items:center;
      margin-bottom:1.2rem;
    }

    .news-date{
      color:var(--gold);
      letter-spacing:.12em;
      font-size:.95rem;
    }

    .news-category{
      border:1px solid rgba(165,138,90,.35);
      color:var(--gold);
      padding:.15rem .7rem;
      font-size:.82rem;
      letter-spacing:.08em;
    }

    .news-title{
      font-size:clamp(1.9rem,3vw,2.8rem);
      letter-spacing:.04em;
      margin-bottom:2rem;
      padding-bottom:1.2rem;
      border-bottom:1px solid var(--line);
    }

    .news-body p{
      color:var(--muted);
      margin-bottom:1.5rem;
    }

    .news-body h2{
      font-family:"Yuji Syuku",serif;
      font-size:1.7rem;
      letter-spacing:.05em;
      margin:2.8rem 0 1rem;
      padding-left:1rem;
      border-left:3px solid var(--gold);
    }

    .news-body ul{
      margin:1rem 0 1.8rem;
      padding-left:1.3rem;
      color:var(--muted);
    }

    .news-body li{
      margin-bottom:.5rem;
    }

    .news-photo{
      margin:2rem 0;
      border:1px solid rgba(165,138,90,.18);
      overflow:hidden;
      background:#f7f3ec;
    }

    .news-photo img{
      width:100%;
      height:auto;
      filter:saturate(.82) contrast(1.02) brightness(1.03) sepia(.08);
    }

    .back-area{
      display:flex;
      justify-content:space-between;
      gap:1rem;
      flex-wrap:wrap;
      margin-top:2rem;
      padding-top:2rem;
      border-top:1px solid var(--line);
    }

    .btn-japan{
      background:#111;
      color:#fff;
      border:1px solid #111;
      border-radius:0;
      padding:.9rem 1.4rem;
      letter-spacing:.12em;
    }

    .btn-japan:hover{
      background:var(--gold);
      border-color:var(--gold);
      color:#fff;
    }

    .btn-outline-japan{
      background:transparent;
      border:1px solid var(--gold-soft);
      color:var(--ink);
      border-radius:0;
      padding:.9rem 1.4rem;
      letter-spacing:.12em;
    }

    .btn-outline-japan:hover{
      background:var(--sub-bg);
      border-color:var(--gold);
      color:var(--gold);
    }

    .section-head{
      margin-bottom:2.5rem;
    }

    .section-kicker{
      color:var(--gold);
      letter-spacing:.20em;
      font-size:.82rem;
      margin-bottom:.8rem;
    }

    .section-title{
      font-size:clamp(1.8rem,3vw,2.8rem);
      letter-spacing:.05em;
      margin-bottom:.7rem;
    }

    .section-line{
      width:70px;
      height:1px;
      background:var(--gold);
    }

    .related-card{
      background:#fff;
      border:1px solid rgba(165,138,90,.18);
      padding:1.7rem;
      height:100%;
      box-shadow:0 18px 35px rgba(34,24,16,.04);
      transition:.3s ease;
    }

    .related-card:hover{
      transform:translateY(-4px);
    }

    .related-date{
      color:var(--gold);
      font-size:.9rem;
      letter-spacing:.12em;
      margin-bottom:.7rem;
    }

    .related-card h3{
      font-size:1.35rem;
      margin-bottom:.8rem;
    }

    .related-card p{
      color:var(--muted);
      margin-bottom:0;
      font-size:.95rem;
    }

    .footer{
      background:#11100e;
      color:rgba(255,255,255,.82);
      text-align:center;
      padding:34px 0;
      letter-spacing:.08em;
      font-size:.93rem;
    }

    @media (max-width: 575.98px){
      .page-hero{
        padding:120px 0 60px;
      }

      section{
        padding:68px 0;
      }

      .news-detail-box{
        padding:1.5rem;
      }

      .brand-logo{
        width:34px;
        height:34px;
      }
    }