
  /* ---- hero ---- */
  .fhero{padding:64px 0 44px; text-align:center;}
  .fhero h1{ font-size:clamp(2rem,3.6vw,2.8rem); font-weight:600; line-height:1.15; max-width:760px; margin:16px auto 14px; }
  .fhero p{ max-width:600px; margin:0 auto; color:var(--ink-soft); font-size:16px; }
  .fhero .effective{ display:inline-block; margin-top:18px; font-size:13px; font-weight:600; color:var(--maroon-deep); background:var(--bg-alt); border:1px solid var(--line); border-radius:100px; padding:8px 18px; }
  .skyline{width:100%; display:block; height:56px;}

  /* ---- policy layout ---- */
  .policy-main{padding:70px 0 100px; background:var(--bg-alt);}
  .policy-layout{display:grid; grid-template-columns:270px 1fr; gap:48px; align-items:start;}

  .toc{ position:sticky; top:100px; background:var(--bg); border:1px solid var(--line); border-radius:20px; padding:26px 22px; }
  .toc-title{font-family:'Fraunces',serif; font-size:13px; font-weight:700; color:var(--gold); letter-spacing:.08em; text-transform:uppercase; margin-bottom:14px;}
  .toc ol{list-style:none; margin:0; padding:0; counter-reset:toc; display:flex; flex-direction:column; gap:2px; max-height:60vh; overflow-y:auto;}
  .toc li{counter-increment:toc;}
  .toc a{ display:flex; gap:10px; font-size:13.5px; color:var(--ink-soft); padding:8px 10px; border-radius:10px; transition:background .2s ease, color .2s ease; line-height:1.4; }
  .toc a::before{content:counter(toc, decimal-leading-zero); font-family:'Fraunces',serif; font-weight:700; color:var(--gold); flex-shrink:0;}
  .toc a:hover{background:var(--bg-alt); color:var(--ink);}
  .toc a.active{background:var(--maroon-deep); color:#F7E9C9;}
  .toc a.active::before{color:var(--gold-light);}
  @media (max-width:960px){ .policy-layout{grid-template-columns:1fr;} .toc{position:static; max-height:none;} .toc ol{max-height:none;} }

  .policy-content{display:flex; flex-direction:column; gap:8px;}
  .intro-card{ background:var(--maroon-deep); color:#F2E4CB; border-radius:22px; padding:28px 30px; margin-bottom:20px; font-size:15px; line-height:1.7; }
  .intro-card p{margin:0;}
  .intro-card strong{color:#F7E9C9;}

  .policy-section{ background:var(--bg); border:1px solid var(--line); border-radius:20px; padding:32px 34px; margin-bottom:20px; scroll-margin-top:100px; }
  .policy-section .num{ font-family:'Fraunces',serif; font-size:13px; font-weight:700; color:var(--gold); letter-spacing:.08em; }
  .policy-section h2{font-size:21px; font-weight:600; margin:8px 0 16px;}
  .policy-section h3{font-size:15.5px; font-weight:600; color:var(--ink); margin:18px 0 8px;}
  .policy-section p{color:var(--ink-soft); font-size:15px; margin:0 0 12px; line-height:1.7;}
  .policy-section p:last-child{margin-bottom:0;}
  .policy-section ul{margin:0 0 12px; padding-left:20px; color:var(--ink-soft); font-size:15px;}
  .policy-section ul:last-child{margin-bottom:0;}
  .policy-section li{margin-bottom:6px; line-height:1.6;}
  .note-chip{ display:inline-flex; align-items:center; gap:8px; background:var(--bg-alt); border:1px solid var(--line); border-radius:100px; padding:8px 16px; font-size:13px; color:var(--ink-soft); margin-top:8px; }
  .note-chip svg{width:14px;height:14px; color:var(--teal); flex-shrink:0;}

  .contact-block{ background:var(--maroon-deep); color:#F2E4CB; border-radius:20px; padding:32px 34px; }
  .contact-block h2{color:#F7E9C9; font-size:21px; margin:8px 0 12px;}
  .contact-block p{color:rgba(242,228,203,0.78); font-size:15px; margin:0 0 16px;}
  .contact-rows{display:flex; flex-direction:column; gap:10px;}
  .contact-rows div{display:flex; gap:10px; align-items:center; font-size:14.5px; color:rgba(242,228,203,0.9);}
  .contact-rows svg{width:16px;height:16px; color:var(--gold-light); flex-shrink:0;}
