/* M02 candidate: scoped layout; shared design tokens and buttons remain untouched. */
html { overflow-x: visible; }
body.m02 { overflow-x: visible; font-weight: 400; }
.m02 .wrap { width: 100%; padding-inline: 20px; }
.m02 main { outline: none; }
.m02 :where(h1,h2,h3,p,a,dd) { overflow-wrap: break-word; }
.m02 :where(a,summary):focus-visible { outline: 3px solid var(--gold); outline-offset: 5px; }
.m02 :where(section,[id]) { scroll-margin-top: 24px; }
.m02-skip { position: absolute; top: 8px; left: 16px; padding: 12px 18px; background: var(--ink); color: white; z-index: 100; transform: translateY(-200%); }
.m02-skip:focus { transform: translateY(0); }
.m02-masthead { border-bottom: 1px solid var(--line); background: var(--bg); }
.m02-masthead__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 32px; padding-block: 18px; }
.m02-brand { display: flex; align-items: center; gap: 10px; font-family: 'Cormorant Garamond',serif; font-size: 24px; }
.m02-brand img { flex: none; width: 46px; height: 46px; object-fit: contain; }
.m02-brand small { display: block; font: 400 11px/1.6 'Inter',sans-serif; color: var(--ink-soft); }
.m02-masthead nav { display: flex; flex-wrap: wrap; gap: 4px 18px; }
.m02-masthead nav a { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; text-decoration: underline; text-underline-offset: 5px; }
.m02-breadcrumb { padding-block: 18px; font-size: 13px; color: var(--ink-soft); }
.m02-breadcrumb ol { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; }
.m02-breadcrumb a { text-decoration: underline; text-underline-offset: 3px; }
.m02-hero { padding: 40px 0 64px; }
.m02-hero__grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 36px; align-items: center; }
.m02 .eyebrow { color: var(--gold); letter-spacing: .16em; line-height: 1.8; }
.m02 h1 { font-size: clamp(40px,6vw,76px); margin: 18px 0 24px; }
.m02 h1 em { display: block; color: var(--gold); font-style: normal; }
.m02-lead { color: var(--ink-soft); font-size: 18px; line-height: 1.75; max-width: 660px; }
.m02-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; margin-top: 28px; }
.m02 .btn { min-height: 48px; max-width: 100%; text-align: center; white-space: normal; }
.m02-text-link { display: inline-block; padding-block: 12px; text-decoration: underline; text-underline-offset: 5px; font-weight: 500; }
.m02-note { border: 1px solid var(--gold); border-radius: 20px; background: var(--gold-soft); padding: 28px; }
.m02-note h2 { font-size: clamp(30px,3vw,40px); margin: 18px 0; }
.m02-note p + p { margin-top: 18px; }
.m02-section { padding: 64px 0; }
.m02-surface { background: var(--surface); }
.m02-section h2 { font-size: clamp(32px,4vw,48px); margin: 14px 0 24px; }
.m02-section p { color: var(--ink-soft); line-height: 1.75; }
.m02-section p + p { margin-top: 18px; }
.m02-section-head { max-width: 720px; margin-bottom: 32px; }
.m02-reading { max-width: 820px; }
.m02-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 24px; }
.m02-card { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; padding: 28px; border: 1px solid var(--line); border-radius: 20px; background: var(--bg); }
.m02-card--gold { border-color: var(--gold); }
.m02-number { color: var(--gold); font-size: 13px; letter-spacing: .16em; margin-bottom: 18px; }
.m02-card h3 { font-size: 30px; margin-bottom: 20px; }
.m02-card .btn { margin-top: 24px; }
.m02 p.m02-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px 24px; margin: 0 0 18px; color: var(--ink); }
.m02-price strong { font-family: 'Cormorant Garamond',serif; font-size: 48px; font-weight: 500; }
.m02-steps { padding-left: 24px; }
.m02-steps li { padding: 18px 0 18px 10px; border-bottom: 1px solid var(--line); }
.m02-steps li::marker { color: var(--gold); font-weight: 600; }
.m02-steps h3 { font-size: 18px; font-weight: 500; margin-bottom: 10px; }
.m02-conditions { margin-bottom: 24px; }
.m02-conditions > div { padding: 22px 0; border-bottom: 1px solid var(--line); }
.m02-conditions dt { font-weight: 600; margin-bottom: 8px; }
.m02-conditions dd { color: var(--ink-soft); }
.m02 address { font-style: normal; line-height: 1.9; margin-bottom: 20px; }
.m02-faq { border-bottom: 1px solid #c5bba9; }
.m02-faq summary { padding: 22px 4px; min-height: 48px; cursor: pointer; font-weight: 500; }
.m02-faq p { padding: 0 4px 22px; }
.m02-final { background: var(--ink); color: var(--bg); }
.m02-final .eyebrow { color: #d9be8c; }
.m02-final p { color: var(--bg); }
.m02-final .btn { margin-top: 28px; }
.m02-footer { background: var(--bg); color: var(--ink); padding: 32px 0; border-top: 1px solid var(--line); }
.m02-footer p { margin: 0 0 12px; font-size: 14px; }
.m02-footer nav { display: flex; flex-wrap: wrap; gap: 4px 24px; }
.m02-footer a { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; text-decoration: underline; text-underline-offset: 4px; }
@media (min-width: 760px) {
 .m02 .wrap { padding-inline: 32px; }
 .m02-section { padding: 88px 0; }
 .m02-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .m02-card { padding: 36px; }
}
@media (min-width: 1040px) {
 .m02-hero { padding: 64px 0 88px; }
 .m02-hero__grid { grid-template-columns: minmax(0,1.6fr) minmax(0,1fr); gap: 56px; }
 .m02-note { padding: 36px; }
}
@media (prefers-reduced-motion: reduce) {
 html { scroll-behavior: auto; }
 .m02 *, .m02 *::before, .m02 *::after { animation: none !important; transition: none !important; }
 .m02 .btn:hover { transform: none; }
}
