.policy-eyebrow { margin: 0 0 18px; color: #607d77; font: 600 11px/1.6 'Montserrat', sans-serif; letter-spacing: .16em; }
.policy-invite { box-sizing: border-box; margin-block: 75px; padding: 44px 48px; border: 1px solid #d8e3dc; background: #f2f6f1; color: #203a35; }
.policy-invite h2 { margin: 0 0 16px; font-size: clamp(23px, 2.5vw, 32px); font-weight: 500; line-height: 1.7; }
.policy-invite > p:not(.policy-eyebrow) { margin: 0; font-size: 14px; line-height: 2; }
.policy-invite a { display: inline-flex; align-items: center; gap: 24px; margin-top: 25px; padding-bottom: 7px; border-bottom: 1px solid #819b8b; color: #203a35; font-size: 13px; text-decoration: none; }
.policy-invite a span { font-size: 20px; }
.policy-page { margin: 0; background: #f5f5f1; color: #263734; font-family: 'Noto Sans JP', sans-serif; line-height: 1.8; }
.policy-page * { box-sizing: border-box; }
.policy-container { width: min(1040px, calc(100% - 96px)); margin-inline: auto; }
.policy-header { height: 80px; display: flex; justify-content: space-between; align-items: center; padding: 0 5%; background: #fff; }
.policy-header img { display: block; width: 180px; max-width: 40vw; height: auto; }
.policy-header-back { color: #334a45; font-size: 12px; text-decoration: none; }
.policy-header-back span { margin-left: 12px; }
.policy-hero { padding: 100px 0 90px; background: #e5ede8; }
.policy-hero h1 { margin: 0; font-size: clamp(29px, 3.6vw, 46px); font-weight: 500; line-height: 1.6; letter-spacing: .02em; }
.policy-hero > div > p:last-child { margin: 28px 0 0; color: #536b63; font-size: 15px; line-height: 2; }
.policy-mobile-break { display: none; }
.policy-content { padding: 72px 0 90px; }
.policy-intro { max-width: 780px; margin: 0 auto 80px; font-size: 16px; line-height: 2.2; }
.policy-intro p { margin: 0; }
.policy-section { display: grid; grid-template-columns: 1fr 1.4fr; gap: 65px; padding-top: 46px; border-top: 1px solid #cbd5ce; }
.policy-section-heading h2, .policy-contact h2 { margin: 0; font-size: clamp(22px, 2.4vw, 30px); font-weight: 500; line-height: 1.7; }
.policy-list > div { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 20px; padding: 22px 0; border-bottom: 1px solid #d7ded8; }
.policy-list > div:first-child { padding-top: 0; }
.policy-list span { color: #82978a; font: 500 12px/2 'Montserrat', sans-serif; }
.policy-list p { margin: 0; font-size: 14px; line-height: 2; }
.policy-contact { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: end; margin-top: 90px; padding: 46px; background: #263f38; color: #fff; }
.policy-contact .policy-eyebrow { color: #b0c9b9; }
.policy-contact p:last-child { color: #d1ded4; font-size: 13px; }
.policy-contact-action > span { display: block; margin-bottom: 10px; color: #c5d6ca; font-size: 12px; }
.policy-contact-action a { display: flex; justify-content: space-between; gap: 15px; padding-bottom: 10px; border-bottom: 1px solid #9aafa0; color: #fff; font-size: 14px; line-height: 1.8; overflow-wrap: anywhere; text-decoration: none; }
.policy-contact-action a span { flex-shrink: 0; font-size: 20px; }
.policy-back { display: inline-block; margin-top: 52px; color: #334a45; font-size: 13px; text-decoration: none; }
.policy-footer { padding: 40px 0; background: #111c19; color: #fff; }
.policy-footer .policy-container { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 20px; align-items: center; }
.policy-footer strong { font-size: 16px; }.policy-footer small { color: #bdc7c0; font-size: 10px; }
.policy-page a:focus-visible, .policy-invite a:focus-visible { outline: 3px solid #57886b; outline-offset: 4px; }
@media (max-width: 700px) {
 .policy-container { width: calc(100% - 40px); }
 .policy-header { height: 68px; padding: 0 20px; }
 .policy-header img { width: 145px; }
 .policy-header-back { font-size: 11px; }
 .policy-hero { padding: 60px 0 54px; }
 .policy-hero h1 { font-size: clamp(22px, 6vw, 30px); overflow-wrap: anywhere; }
 .policy-mobile-break { display: block; }
 .policy-content { padding: 46px 0 60px; }
 .policy-intro { margin-bottom: 48px; font-size: 15px; }
 .policy-section { grid-template-columns: 1fr; gap: 25px; padding-top: 32px; }
 .policy-list > div { gap: 10px; }
 .policy-contact { grid-template-columns: 1fr; gap: 24px; margin-top: 55px; padding: 28px 22px; }
 .policy-contact-action a { font-size: 13px; }
 .policy-invite { margin-block: 48px; padding: 32px 24px; }
}

.policy-contact-action a.policy-mail-button { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:16px 20px; border:1px solid #ffffff70; border-radius:3px; background:#fff; color:#263f38; font-size:14px; font-weight:500; text-decoration:none; }
.policy-contact-action a.policy-mail-button:hover { background:#edf3e9; }
.policy-contact-action p.policy-mail-note { margin:10px 0 0; color:#d1ded4; font-size:12px; }