/* Shared SEOULVIRA page patterns. Original branding and published records. */
.primary-nav { gap:18px; font-size:12px; }
.directory-tools { display:flex; flex-wrap:wrap; gap:12px; justify-content:flex-end; padding:0 0 22px; }
.directory-tools label { display:flex; align-items:center; gap:10px; color:var(--muted); font-size:13px; }
.directory-tools select { min-height:44px; max-width:240px; border:1px solid var(--line); border-radius:12px; background:#fff; padding:8px 32px 8px 13px; color:var(--ink); }
.profile-tabs { position:sticky; top:0; z-index:12; background:rgba(255,255,255,.97); border-block:1px solid var(--line); padding:12px 0; margin-block:20px 32px; overflow-x:auto; white-space:nowrap; scroll-padding-inline:12px; }
.profile-tabs a { display:inline-flex; min-height:44px; align-items:center; padding:8px 18px; border-radius:10px; }
.profile-tabs a:hover,.profile-tabs a:focus-visible { background:var(--soft); color:var(--jade-dark); }
.profile-section { scroll-margin-top:90px; }
.profile-heading h1 { overflow-wrap:anywhere; font-size:clamp(27px,3.5vw,42px); }
.profile-section h2 { font-size:clamp(23px,2.4vw,30px); }
.profile-gallery { margin-top:24px; }
.planning-page { padding-bottom:56px; }
.planning-page>.page-heading { max-width:780px; padding-inline:0; }
.planning-page h1 { font-size:clamp(29px,4vw,46px); }
.planning-page .lead { font-size:16px; color:var(--muted); margin-top:20px; }
.planning-section-title { margin-bottom:24px; font-size:25px; }
.planning-steps { display:grid; grid-template-columns:1fr 1fr; gap:18px; padding:0; list-style:none; }
.planning-steps li { display:flex; align-items:flex-start; gap:16px; padding:28px; border:1px solid var(--line); border-radius:20px; background:#fff; }
.planning-step-number { width:36px; height:36px; flex:none; display:grid; place-items:center; border-radius:50%; background:#e9f4ef; color:var(--jade-dark); font-size:16px; font-weight:650; }
.planning-steps h2 { font-size:20px; margin-bottom:12px; letter-spacing:-.02em; }
.planning-steps p { color:var(--muted); font-size:14px; overflow-wrap:anywhere; }
.planning-faqs { margin-top:48px; max-width:880px; }
.planning-faqs h2 { margin-bottom:20px; }
.planning-faq { border-bottom:1px solid var(--line); padding:18px 0; }
.planning-faq summary { cursor:pointer; font-weight:600; min-height:44px; padding-block:8px; }
.planning-faq p { color:var(--muted); margin-top:10px; font-size:14px; }
.planning-note { margin-block:30px; padding:20px 24px; background:var(--soft); border-radius:16px; color:var(--muted); font-size:13px; }
.planning-actions { display:flex; flex-wrap:wrap; gap:10px; }
@media(max-width:1100px) { .primary-nav { gap:14px; } .header-inner { gap:16px; } .brand-wordmark { width:160px; } }
@media(max-width:700px) {
  .header-inner { gap:8px; min-height:72px; }
  .brand-wordmark { width:124px; height:44px; }
  .preferences { gap:5px; }
  .preferences select { width:68px; min-height:38px; }
  .preferences label:last-child select { width:60px; }
  .menu-toggle { width:36px; height:36px; flex:none; }
  .directory-tools { justify-content:flex-start; gap:10px; padding-bottom:20px; }
  .directory-tools label { min-width:0; flex:1 1 140px; flex-direction:column; align-items:flex-start; gap:5px; }
  .directory-tools select { width:100%; max-width:100%; }
  .profile-tabs { margin-inline:-18px; padding-inline:18px; gap:2px; }
  .profile-tabs a { font-size:13px; padding:8px 13px; }
  .profile-heading { gap:14px; }
  .profile-gallery { margin-top:20px; }
  .planning-steps { grid-template-columns:1fr; gap:12px; }
  .planning-steps li { padding:22px 18px; gap:12px; border-radius:16px; }
  .planning-steps h2 { font-size:19px; }
  .planning-actions .button { width:100%; }
  .planning-page>.page-heading { padding-top:28px; }
}
@media(max-width:360px) { .brand-wordmark { width:108px; } .header-inner { column-gap:5px; } .preferences select { width:61px; } .preferences label:last-child select { width:56px; } }
@media(prefers-reduced-motion:reduce) { .profile-tabs { scroll-behavior:auto; } }
