
  /* ===== PROUD Experience System — Surface: Warm Precision (顧客) ===== */
  :root{
    --canvas:#F7F4EE; --raised:#FFFFFF; --ink:#1F1C19; --sub:#6B655C;
    --action:#2B3A67; --action-ink:#FFFFFF; --hairline:#E8E2D8; --gold:#B08A3E;
    --focus:#2B3A67; --maxw:1080px; --gutter:20px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{margin:0; background:var(--canvas); color:var(--ink);
    font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic",-apple-system,sans-serif;
    line-height:1.7; -webkit-font-smoothing:antialiased; font-size:16px;}
  img{max-width:100%; display:block;}
  a{color:var(--action); text-decoration:none;}
  a:focus-visible, button:focus-visible{outline:2px solid var(--focus); outline-offset:3px;}
  .wrap{max-width:var(--maxw); margin:0 auto; padding:0 var(--gutter);}
  .eyebrow{font-size:12px; letter-spacing:.16em; color:var(--sub); font-weight:600; margin:0 0 10px;}
  .eyebrow .rule{display:inline-block; width:34px; height:1px; background:var(--sub); vertical-align:middle; margin-right:10px;}
  h2.sec{font-size:26px; font-weight:600; letter-spacing:.02em; margin:0 0 6px;}
  .sec-lead{color:var(--sub); margin:0 0 30px; font-size:15px;}
  /* Header */
  header{position:sticky; top:0; z-index:20; background:rgba(247,244,238,.92); backdrop-filter:saturate(1.2) blur(6px); -webkit-backdrop-filter:saturate(1.2) blur(6px); border-bottom:1px solid var(--hairline);}
  .bar{display:flex; align-items:center; justify-content:space-between; height:66px;}
  .brand{display:flex; align-items:center; gap:11px;}
  .brand img{height:38px; width:auto; display:block;}
  .brand .word{line-height:1;}
  .brand .word .p{font-size:19px; letter-spacing:.14em; color:var(--ink);}
  .brand .word .t{font-family:Georgia,"Times New Roman",serif; font-style:italic; font-size:10.5px; letter-spacing:.05em; color:var(--gold); margin-top:3px;}
  nav.main{display:flex; gap:26px;}
  nav.main a{color:var(--ink); font-size:14px; letter-spacing:.03em; padding:4px 0; border-bottom:1px solid transparent;}
  .navtoggle{display:none; background:none; border:1px solid var(--hairline); border-radius:8px; width:42px; height:38px; align-items:center; justify-content:center; cursor:pointer;}
  .navtoggle svg{width:20px; height:20px; stroke:var(--ink);}
  /* Hero */
  .hero{position:relative; color:#FFF; overflow:hidden;}
  .hero .bg{position:absolute; inset:0; background:center/cover no-repeat; transform:scale(1.02);}
  .hero .scrim{position:absolute; inset:0; background:linear-gradient(180deg,rgba(16,20,32,.66),rgba(16,20,32,.5) 50%,rgba(16,20,32,.72));}
  .hero .inner{position:relative; padding:104px 0 96px;}
  .hero h1{font-size:34px; font-weight:600; line-height:1.55; letter-spacing:.03em; margin:0 0 22px; text-shadow:0 1px 18px rgba(0,0,0,.3);}
  .hero p.lead{font-size:16px; line-height:1.9; max-width:640px; margin:0 0 34px; color:#F1EEE8;}
  .btn{display:inline-flex; align-items:center; gap:9px; background:var(--action); color:var(--action-ink); border:none; border-radius:11px; padding:15px 28px; font-size:15px; letter-spacing:.04em; cursor:pointer; transition:transform .08s ease;}
  .btn:active{transform:translateY(1px);}
  .btn svg{width:17px; height:17px; stroke:currentColor; fill:none;}
  .btn.ghost{background:transparent; border:1px solid var(--action); color:var(--action);}
  .btn.is-disabled{opacity:.55; cursor:default;}
  /* Sections */
  section{padding:74px 0; scroll-margin-top:78px;}
  section.alt{background:var(--raised); border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline);}
  /* Business */
  .cards{display:grid; grid-template-columns:repeat(2,1fr); gap:22px;}
  .card{background:var(--raised); border:1px solid var(--hairline); border-radius:14px; overflow:hidden; display:flex; flex-direction:column;}
  .card.value{border-top:2px solid var(--gold);}
  .ph-jewel{background:linear-gradient(135deg,#EFE9DE,#E5DBC7); display:flex; align-items:center; justify-content:center;}
  .ph-jewel .jewel-mark{width:58px; height:58px; opacity:.72;}
  .ph-env{background:linear-gradient(135deg,#E9EAEF,#DDE0E8); display:flex; align-items:center; justify-content:center;}
  .ph-social{background:linear-gradient(135deg,#E7EEE9,#DBE7DF); display:flex; align-items:center; justify-content:center;}
  .ph-health{background:linear-gradient(135deg,#E7EAF0,#DDE1EC); display:flex; align-items:center; justify-content:center;}
  .ph-env .soft-mark, .ph-social .soft-mark, .ph-health .soft-mark{width:58px; height:58px; opacity:.62;}
  section.alt .card{background:var(--canvas);}
  .card .ph{aspect-ratio:16/10; background:#EDE7DC center/cover no-repeat; position:relative;}
  .card .ph .tag{position:absolute; left:14px; top:14px; background:rgba(31,28,25,.72); color:#FFF; font-size:11px; letter-spacing:.08em; padding:5px 11px; border-radius:20px;}
  .card .body{padding:22px 22px 24px;}
  .card h3{font-size:18px; font-weight:600; margin:0 0 4px; letter-spacing:.02em;}
  .card .kicker{font-size:11.5px; letter-spacing:.12em; color:var(--sub); margin:0 0 10px;}
  .card p{margin:0; color:var(--sub); font-size:14.5px; line-height:1.85;}
  .card .note{margin-top:14px; font-size:11.5px; color:#8f887e; line-height:1.7;}
  /* Company */
  .company{display:grid; grid-template-columns:1.15fr .85fr; gap:40px; align-items:center;}
  .dl{border-top:1px solid var(--hairline);}
  .dl .row{display:grid; grid-template-columns:120px 1fr; gap:16px; padding:15px 4px; border-bottom:1px solid var(--hairline);}
  .dl dt{color:var(--sub); font-size:13.5px; margin:0;}
  .dl dd{margin:0; font-size:15px;}
  .dl .num{font-variant-numeric:tabular-nums; letter-spacing:.02em;}
  .company .photo{border-radius:14px; overflow:hidden; border:1px solid var(--hairline);}
  /* News */
  .news-list{border-top:1px solid var(--hairline);}
  .news-empty{color:var(--sub); font-size:14px; padding:22px 4px;}
  /* Contact */
  .contact-card{background:var(--raised); border:1px solid var(--hairline); border-radius:16px; padding:44px 34px; text-align:center;}
  .contact-card .tel{font-size:34px; letter-spacing:.04em; font-variant-numeric:tabular-nums; margin:8px 0 2px; color:var(--ink);}
  .contact-card .hours{color:var(--sub); font-size:13.5px; margin:0 0 26px;}
  .contact-actions{display:flex; gap:14px; justify-content:center; flex-wrap:wrap;}
  /* Footer */
  footer{background:var(--canvas); border-top:1px solid var(--hairline); padding:52px 0 34px;}
  .foot{display:grid; grid-template-columns:1.4fr 1fr; gap:30px;}
  .foot .addr{color:var(--sub); font-size:13.5px; line-height:1.9;}
  .foot nav{display:flex; flex-direction:column; gap:11px;}
  .foot nav a{color:var(--ink); font-size:14px;}
  .foot .copy{margin-top:34px; padding-top:20px; border-top:1px solid var(--hairline); color:#8f887e; font-size:12px; letter-spacing:.03em;}
  .foot .fbrand{display:flex; align-items:center; gap:10px; margin-bottom:14px;}
  .foot .fbrand img{height:32px; width:auto;}
  .foot .fbrand .p{font-size:16px; letter-spacing:.14em;}
  @media (max-width:820px){ .company{grid-template-columns:1fr; gap:26px;} .foot{grid-template-columns:1fr;} }
  @media (max-width:620px){
    nav.main{position:absolute; top:66px; left:0; right:0; background:var(--canvas); border-bottom:1px solid var(--hairline); flex-direction:column; gap:0; padding:6px 0; display:none;}
    nav.main.open{display:flex;}
    nav.main a{padding:13px var(--gutter); border-bottom:1px solid var(--hairline);}
    .navtoggle{display:inline-flex;}
    .cards{grid-template-columns:1fr;}
    .hero h1{font-size:26px; line-height:1.6;}
    .hero .inner{padding:74px 0 68px;}
    h2.sec{font-size:22px;}
    .contact-card .tel{font-size:27px;}
    .dl .row{grid-template-columns:1fr; gap:4px; padding:11px 4px;}
  }

  /* ===== Card link & Detail pages ===== */
  a.card{color:inherit; text-decoration:none; cursor:pointer;}
  .card .more{display:inline-block; margin-top:16px; color:var(--action); font-size:13.5px; letter-spacing:.02em;}
  .detail-hero{background:var(--raised); border-bottom:1px solid var(--hairline); padding:52px 0 38px;}
  .detail-hero h1{font-size:30px; font-weight:600; letter-spacing:.02em; margin:6px 0 0;}
  .detail-body{padding:52px 0 72px;}
  .detail-body .lead{font-size:17px; line-height:1.9; color:var(--ink); margin:0 0 24px; letter-spacing:.01em;}
  .detail-body p{color:#3a3630; line-height:2; margin:0 0 20px; font-size:15px;}
  .detail-figure{border-radius:14px; overflow:hidden; border:1px solid var(--hairline); margin:0 0 34px; max-width:720px;}
  .detail-figure img{width:100%; display:block;}
  .detail-note{color:#8f887e; font-size:12.5px; line-height:1.8; margin-top:10px;}
  .video-links{list-style:none; padding:0; margin:26px 0 0; border-top:1px solid var(--hairline); max-width:720px;}
  .video-links li{border-bottom:1px solid var(--hairline); padding:14px 2px;}
  .video-links a{color:var(--action); font-size:14px; word-break:break-all;}
  .video-links .vl-label{display:block; color:var(--sub); font-size:12.5px; margin-bottom:4px; letter-spacing:.02em;}
  .backlink{display:inline-flex; align-items:center; gap:8px; margin-top:30px; color:var(--action); font-size:14px;}
  @media (max-width:620px){ .detail-hero h1{font-size:24px;} }

  /* News items */
  .news-list .news-item{border-top:1px solid var(--hairline); padding:24px 2px;}
  .news-list .news-item:last-child{border-bottom:1px solid var(--hairline);}
  .news-ttl{font-size:16px; font-weight:600; margin:0 0 12px; letter-spacing:.01em; line-height:1.6;}
  .news-body p{margin:0 0 12px; color:var(--sub); font-size:14px; line-height:1.95;}
  .news-body p:last-child{margin-bottom:0;}
  .news-body .sub{color:var(--ink); font-size:13.5px; margin-top:2px;}
  .news-body a{color:var(--action);}
