.sorairo-policy,
.tsukikoyomi-policy{
  --policy-accent:#679fbc;
  --policy-accent-dark:#477d99;
  --policy-pale:#eaf6fb;
  --policy-border:#cfe8f1;
  background:radial-gradient(circle at 12% 22%,#fff 0 2px,transparent 3px),
    radial-gradient(circle at 84% 42%,#fff 0 2px,transparent 3px),
    #f7fbfc;
  background-size:130px 130px,170px 170px,auto;
}

.tsukikoyomi-policy{
  --policy-accent:#9d8cc4;
  --policy-accent-dark:#7664a3;
  --policy-pale:#f4effb;
  --policy-border:#e5d9f1;
  background-color:#fbf8fd;
}

.sorairo-policy .page-head,
.tsukikoyomi-policy .page-head{
  position:relative;
  overflow:hidden;
  padding:46px 0 58px;
  border-bottom:2px dashed var(--policy-border);
  background:linear-gradient(135deg,#fef9f3 0%,var(--policy-pale) 62%,#fff8f6 100%);
}

.sorairo-policy .page-head::before,
.tsukikoyomi-policy .page-head::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.55;
  background:radial-gradient(circle at 14% 28%,#fff 0 42px,transparent 43px),
    radial-gradient(circle at 85% 68%,#fff 0 30px,transparent 31px),
    radial-gradient(circle at 75% 18%,#fff 0 5px,transparent 6px),
    radial-gradient(circle at 24% 78%,#fff 0 4px,transparent 5px);
}

.sorairo-policy .page-head .wrap,
.tsukikoyomi-policy .page-head .wrap{position:relative;}

.sorairo-policy .page-head .eyebrow,
.tsukikoyomi-policy .page-head .eyebrow{
  display:inline-block;
  padding:5px 16px;
  border-radius:999px;
  color:var(--policy-accent-dark);
  background:#fff;
  box-shadow:0 3px 12px rgba(85,73,74,.06);
}

.sorairo-policy .page-head h1,
.tsukikoyomi-policy .page-head h1{
  margin-top:10px;
  color:var(--ink);
  font-size:clamp(1.85rem,4.4vw,2.75rem);
  line-height:1.45;
}

.policy-motif{
  display:inline-grid;
  place-items:center;
  width:58px;
  height:58px;
  margin-top:10px;
  border:2px solid #fff;
  border-radius:26px;
  color:var(--policy-accent-dark);
  background:#fff9;
  box-shadow:0 7px 20px rgba(85,73,74,.07);
  font-size:2rem;
  line-height:1;
  transform:rotate(-7deg);
}

.tsukikoyomi-policy .policy-motif{transform:rotate(8deg);}

.sorairo-policy .policy-panel,
.tsukikoyomi-policy .policy-panel{
  position:relative;
  margin-top:-32px;
  padding:34px 38px 38px;
  border:2px solid var(--policy-border);
  border-radius:30px;
  background:#fffdfb;
  box-shadow:0 14px 38px rgba(85,73,74,.08);
}

.sorairo-policy .policy-panel::before,
.tsukikoyomi-policy .policy-panel::before{
  content:"";
  display:block;
  width:74px;
  height:8px;
  margin-bottom:18px;
  border-radius:999px;
  background:var(--policy-accent);
  box-shadow:84px 0 0 var(--pink-soft),112px 0 0 var(--yellow-soft);
}

.sorairo-policy .policy-main-title,
.tsukikoyomi-policy .policy-main-title{
  margin-bottom:18px;
  color:var(--policy-accent-dark);
  font-size:clamp(1.4rem,3vw,1.8rem);
}

.sorairo-policy .policy-effective,
.tsukikoyomi-policy .policy-effective{
  display:table;
  margin:8px 0;
  padding:6px 15px;
  border-radius:999px;
  color:var(--ink);
  background:var(--policy-pale);
  font-size:.92rem;
}

.sorairo-policy .policy-note,
.tsukikoyomi-policy .policy-note{
  margin:22px 0 26px;
  color:var(--ink);
}

.sorairo-policy .policy-block,
.tsukikoyomi-policy .policy-block{
  margin:16px 0;
  padding:22px 24px;
  border:1px solid var(--policy-border);
  border-radius:22px;
  background:linear-gradient(135deg,#fff 50%,var(--policy-pale));
}

.sorairo-policy .policy-block h3,
.tsukikoyomi-policy .policy-block h3{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:12px;
  color:var(--policy-accent-dark);
  font-size:1.12rem;
  line-height:1.5;
}

.sorairo-policy .policy-block h3::before,
.tsukikoyomi-policy .policy-block h3::before{
  content:"";
  flex:0 0 12px;
  width:12px;
  height:12px;
  border-radius:5px;
  background:var(--policy-accent);
  transform:rotate(-16deg);
}

.sorairo-policy .policy-block p + p,
.tsukikoyomi-policy .policy-block p + p{margin-top:12px;}

.sorairo-policy .policy-block ul,
.tsukikoyomi-policy .policy-block ul{display:grid;gap:10px;}

.sorairo-policy .policy-block li,
.tsukikoyomi-policy .policy-block li{
  padding:12px 15px;
  border-left:4px solid var(--policy-accent);
  border-radius:10px;
  background:#fff;
}

.sorairo-policy .policy-block ul + p,
.tsukikoyomi-policy .policy-block ul + p{margin-top:16px;}

.sorairo-policy .policy-panel a:not(.btn),
.tsukikoyomi-policy .policy-panel a:not(.btn){
  color:var(--policy-accent-dark);
  text-decoration:underline;
  text-underline-offset:3px;
}

.sorairo-policy .back-home .btn,
.tsukikoyomi-policy .back-home .btn{
  border-color:var(--policy-border);
  background:var(--policy-pale);
}

.sorairo-policy .back-home .btn:hover,
.tsukikoyomi-policy .back-home .btn:hover{background:var(--policy-border);}

@media(max-width:640px){
  .sorairo-policy .page-head,
  .tsukikoyomi-policy .page-head{padding:40px 0 58px;}

  .policy-motif{width:58px;height:58px;font-size:2rem;}

  .sorairo-policy .policy-panel,
  .tsukikoyomi-policy .policy-panel{margin-top:-30px;padding:24px 18px 30px;}

  .sorairo-policy .policy-block,
  .tsukikoyomi-policy .policy-block{padding:18px 16px;}
}
