.seo-breadcrumb { padding-top: 16px; padding-bottom: 16px; font-size: 13px; color: #66545b; }
.seo-breadcrumb ol { display: flex; flex-wrap: wrap; gap: 6px 10px; margin: 0; padding: 0; list-style: none; }
.seo-breadcrumb li { display: flex; align-items: baseline; gap: 10px; }
.seo-breadcrumb li + li::before { content: "/"; color: #806c73; }
.seo-breadcrumb a { color: #704455; text-decoration: underline; text-underline-offset: 3px; }
.seo-breadcrumb a:focus-visible { outline: 2px solid #704455; outline-offset: 3px; }

/* Editorial tables and crawlable navigation; independent of reveal scripts. */
.seo-toc { padding-top: 24px; padding-bottom: 24px; }
.seo-toc strong { color: #593847; }
.seo-toc ul { display: flex; flex-wrap: wrap; gap: 10px 24px; margin: 14px 0 0; padding-left: 20px; }
.seo-toc a, .seo-depth a { color: #74384f; text-decoration: underline; text-underline-offset: 4px; }
.seo-depth { background: #fff9f6; padding: 56px 0; color: #493c42; }
.seo-depth h2 { font-size: clamp(23px, 3vw, 32px); line-height: 1.45; margin: 0 0 18px; }
.seo-depth h3 { margin: 28px 0 12px; font-size: 20px; }
.seo-depth p { line-height: 1.85; max-width: 85ch; margin: 12px 0 22px; word-break: keep-all; overflow-wrap: anywhere; }
.seo-table-scroll { overflow-x: auto; margin: 24px 0; border: 1px solid #e5d4da; border-radius: 12px; background: white; }
.seo-depth table { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.75; }
.seo-depth caption { text-align: left; padding: 16px; font-weight: 600; }
.seo-depth th, .seo-depth td { text-align: left; vertical-align: top; padding: 16px; border-top: 1px solid #e5d4da; overflow-wrap: anywhere; }
.seo-depth thead th { background: #f6e9ee; }
.seo-depth tbody th { width: 19%; color: #673b4b; }
.seo-depth details { margin: 24px 0; padding: 20px; border: 1px solid #e5d4da; border-radius: 12px; background: white; }
.seo-depth summary { cursor: pointer; font-weight: 700; line-height: 1.7; }
.seo-depth details p { margin-bottom: 0; }
.seo-sources { border-left: 3px solid #b66a85; padding-left: 20px; }
.seo-sources a { display: block; line-height: 1.8; margin: 10px 0; }
.seo-related { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-top: 24px; }
.seo-toc a:focus-visible, .seo-depth :focus-visible { outline: 3px solid #74384f; outline-offset: 4px; }
main section[id] { scroll-margin-top: 110px; }
@media (max-width: 600px) {
  .seo-depth { padding: 36px 0; }
  .seo-depth th, .seo-depth td { padding: 10px; font-size: 14px; }
  .seo-depth tbody th { width: 22%; }
  .seo-toc ul { display: grid; gap: 12px; }
}

/* Second-pass reading and preparation tools. */
[hidden] { display: none !important; }
.main-nav a[aria-current="page"] { color: #9b365d; }
.site-search, .site-directory-search { padding-top: 24px; padding-bottom: 24px; }
.site-search label, .site-directory-search label, .site-message-preview > label { display: block; font-weight: 700; margin-bottom: 10px; }
.site-search input, .site-directory-search input { width: 100%; max-width: 640px; padding: 14px; border: 1px solid #bb9da9; border-radius: 10px; font: inherit; }
.site-search p, .site-directory-search p { margin-top: 12px; line-height: 1.7; }
[data-directory-matches] { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 14px; padding: 20px; background: #fff7f9; }
[data-directory-matches] a { text-decoration: underline; text-underline-offset: 4px; }
[data-checklist] fieldset { border: 1px solid #dfc9d1; border-radius: 12px; padding: 16px 20px; margin: 24px 0; background: #fff; }
[data-checklist] legend { font-weight: 700; padding: 0 8px; }
.site-check-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 14px 0; border-bottom: 1px solid #f0e2e7; }
.site-check-row:last-child { border: 0; }
.site-check-row label { display: flex; align-items: center; gap: 12px; cursor: pointer; line-height: 1.7; }
.site-check-row input { width: 21px; height: 21px; flex-shrink: 0; accent-color: #9b365d; }
.site-check-row a { flex-shrink: 0; font-size: 14px; }
.site-message-preview { padding: 18px; background: #fff7f9; border: 1px solid #dfc9d1; border-radius: 12px; }
.site-message-preview textarea { width: 100%; min-height: 210px; font: inherit; line-height: 1.7; }
.site-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 18px 0; }
.v19-faq-filter { flex-wrap: wrap; }
.v19-faq-item > a { display: inline-block; margin: 0 20px 20px; text-decoration: underline; }
.seo-toc ul { max-height: 240px; overflow-y: auto; padding-bottom: 4px; }
input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 3px solid #74384f; outline-offset: 3px; }
@media(max-width:700px) {
  input, textarea, select { font-size: 16px !important; }
  .site-check-row { align-items: flex-start; flex-direction: column; gap: 8px; }
  .site-check-row a { margin-left: 33px; }
  .mobile-fixed { bottom: max(10px, env(safe-area-inset-bottom)); }
  .site-footer { padding-bottom: calc(90px + env(safe-area-inset-bottom)) !important; }
}
@media print {
  .site-header, .site-footer, .mobile-fixed, .seo-toc, .cta-section, .menu-toggle { display: none !important; }
  .reveal { opacity: 1 !important; transform: none !important; }
  .seo-depth { background: white; padding: 20px 0; }
  .seo-table-scroll { overflow: visible; }
  tr, fieldset { break-inside: avoid; }
}
.service-grid > * { min-width: 0; }
@media(max-width:700px) {
  .service-grid { grid-template-columns: minmax(0,1fr); }
  .steps { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 6px; }
  .steps > div { min-width: 0; }
  .steps > em { display: none; }
}

/* Every directory card uses the destination page's own representative image. */
.search-card-image { display: block; width: 100%; height: 220px; object-fit: contain; background: #fff8fa; border-radius: 12px; margin: 0 0 16px; }
.search-card-image-link { display: block; }
.search-image-card { min-width: 0; }
.search-image-card p { overflow-wrap: anywhere; }
.search-page-image { max-width: 720px; margin: 28px 0 0; }
.search-page-image img { display: block; width: 100%; height: auto; max-height: 420px; object-fit: contain; border-radius: 14px; }
.search-page-image figcaption { font-size: 13px; line-height: 1.7; margin-top: 10px; color: #705b64; }
@media(max-width:700px) { .search-card-image { height: 230px; } }

/* Main consultation block and the persistent right-hand phone panel. */
.hero-phone-numbers { display: grid; gap: 0; margin: 28px 0 24px; max-width: 540px; padding: 8px 24px; background: rgba(255,255,255,.9); border: 1px solid #f1c6d3; border-radius: 22px; box-shadow: 0 12px 36px rgba(137,52,80,.07); }
.hero-phone-numbers a { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 0; color: #bb2856; text-decoration: none; }
.hero-phone-numbers a + a { border-top: 1px solid #f4e1e8; }
.hero-phone-numbers span { font-size: 13px; font-weight: 700; color: #77535f; flex-shrink: 0; }
.hero-phone-numbers strong { font-size: clamp(28px, 2.7vw, 40px); font-weight: 900; line-height: 1.2; letter-spacing: -1px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.hero-phone-numbers a:hover strong { color: #eb4275; }
.hero-copy { position: relative; z-index: 4; }
.hero h1 { line-height: 1.22; }
.hero h1 span { font-size: clamp(21px,2vw,28px); line-height: 1.5; color: #604b54; letter-spacing: -1px; margin-bottom: 12px; }
.hero-desc { line-height: 1.85; }
.floating-contact { position: fixed; right: 18px; bottom: 28px; z-index: 45; width: 196px; color: #5e3c49; }
.floating-contact details { border: 1px solid #edbfd0; border-radius: 18px; background: #fff; box-shadow: 0 10px 38px rgba(81,33,52,.15); overflow: hidden; }
.floating-contact summary { padding: 14px 16px; background: linear-gradient(110deg,#c83160,#ed527e); color: white; cursor: pointer; font-weight: 800; font-size: 15px; }
.floating-contact summary span { margin-right: 7px; }
.floating-contact-body { padding: 4px 16px 14px; }
.floating-contact-body > p { font-size: 11px; margin: 12px 0 6px; color: #8d7380; }
.floating-contact-body > a { display: block; padding: 12px 0; text-decoration: none; }
.floating-contact-body > a + a { border-top: 1px solid #f3e4ea; }
.floating-contact-body span { display: block; font-size: 11px; color: #856774; margin-bottom: 5px; }
.floating-contact-body strong { display: block; color: #bb2856; font-size: 20px; line-height: 1.2; letter-spacing: -.5px; white-space: nowrap; }
.floating-contact-body .floating-contact-guide { font-size: 12px; padding-bottom: 0; color: #75525f; }
.floating-contact .floating-sms { display:grid; grid-template-columns:42px 1fr; grid-template-rows:auto auto; column-gap:10px; align-items:center; padding:13px 15px; border:1px solid #edbfd0; border-radius:18px; background:linear-gradient(115deg,#c83160,#ed527e); color:#fff; box-shadow:0 10px 38px rgba(81,33,52,.2); text-decoration:none; }
.floating-contact .floating-sms > span { grid-row:1/3; display:grid; place-items:center; width:42px; height:42px; border-radius:50%; background:rgba(255,255,255,.18); font-size:21px; }
.floating-contact .floating-sms b { align-self:end; font-size:15px; line-height:1.25; }
.floating-contact .floating-sms small { align-self:start; font-size:11px; opacity:.88; white-space:nowrap; }
@media(min-width:1600px) { .floating-contact { top: 50%; bottom: auto; transform: translateY(-50%); } }
@media(max-width:1100px) {
  .floating-contact { right: 12px; bottom: calc(82px + env(safe-area-inset-bottom)); width: 182px; }
  .floating-contact:not(:has(details[open])) { width: 130px; }
  .floating-contact:has(.floating-sms) { width: 182px; }
  .floating-contact summary { padding: 12px 14px; font-size: 13px; }
}
@media(max-width:700px) {
  .hero-phone-numbers { padding: 4px 18px; margin: 22px 0; border-radius: 18px; }
  .hero-phone-numbers a { align-items: flex-start; flex-direction: column; gap: 5px; padding: 14px 0; }
  .hero-phone-numbers strong { font-size: clamp(30px,8.8vw,40px); }
  .hero-phone-numbers span { font-size: 12px; }
  .hero h1 { font-size: 32px; letter-spacing: -1.4px; }
  .hero h1 span { font-size: 20px; }
}
@media print { .floating-contact { display: none !important; } }

/* Supplementary guidance remains in initial HTML and works without JavaScript. */
.seo-depth details.seo-accordion { margin:0; padding:0; border:1px solid #e8ddd6; border-radius:16px; background:#fff; }
.seo-depth details.seo-accordion > summary { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:56px; padding:18px 24px; font-size:18px; line-height:1.55; cursor:pointer; list-style:none; }
.seo-accordion > summary::-webkit-details-marker { display:none; }
.seo-depth details.seo-accordion > summary::after { content:'+'; flex:none; font-size:24px; }
.seo-depth details.seo-accordion[open] > summary::after { content:'−'; }
.seo-accordion > summary:focus-visible { outline:3px solid #8b5265; outline-offset:3px; border-radius:12px; }
.seo-accordion-body { padding:0 24px 24px; overflow-wrap:anywhere; }
.seo-accordion-body p,.seo-accordion-body li { font-size:16px; line-height:1.85; }
.seo-accordion-body h2 { margin-top:28px; }
.seo-accordion-body h3 { margin-top:24px; font-size:19px; }
.seo-accordion-body ul { padding-left:22px; }
.seo-accordion[open] > .seo-accordion-body { animation:seo-accordion-in .18s ease-out; }
@keyframes seo-accordion-in { from {opacity:0} to {opacity:1} }
@media(max-width:600px) { .seo-depth details.seo-accordion > summary {padding:16px;font-size:16px;} .seo-accordion-body {padding:0 16px 20px;} }
@media(prefers-reduced-motion:reduce) { .seo-accordion[open] > .seo-accordion-body {animation:none;} }
.search-intent-extension { margin-top:36px; padding-top:8px; border-top:1px solid #eadfe2; }
.search-intent-extension > h2 { max-width:780px; }
.search-intent-intro { max-width:850px; color:#5f565a; }
.search-intent-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:24px; }
.search-intent-grid article { padding:20px; border:1px solid #eadfe2; border-radius:14px; background:#fffafc; }
.search-intent-grid h3 { margin:0 0 8px; }
.search-intent-grid article > p { margin:0; color:#675f63; }
.search-intent-grid nav { display:flex; flex-wrap:wrap; gap:8px 14px; margin-top:14px; }
.search-intent-grid a { color:#7d3450; font-weight:700; text-decoration:underline; text-underline-offset:3px; }
@media(max-width:700px) { .search-intent-grid { grid-template-columns:1fr; } .search-intent-grid article { padding:17px; } }
.detail-intent-path { margin-top:34px; padding-top:28px; border-top:1px solid #eadfe2; }
.detail-intent-lead { max-width:850px; color:#5f565a; }
.detail-intent-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:22px; }
.detail-intent-links a { display:flex; align-items:center; gap:12px; min-height:52px; padding:11px 14px; border:1px solid #eadfe2; border-radius:12px; background:#fffafc; color:#633247; font-weight:750; }
.detail-intent-links b { color:#a8667d; font-size:11px; letter-spacing:.08em; }
.detail-intent-note { margin:16px 0 0; color:#756c70; font-size:14px !important; }
@media(max-width:700px) { .detail-intent-links { grid-template-columns:1fr; } }
.page-completion-guide { margin-top:34px; padding-top:28px; border-top:1px solid #eadfe2; }
.page-completion-intro { max-width:820px; color:#62595d; }
.page-completion-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:22px; }
.page-completion-grid article { padding:18px; border-radius:14px; background:#fffafc; border:1px solid #eadfe2; }
.page-completion-grid b { color:#a8667d; font-size:11px; letter-spacing:.1em; }
.page-completion-grid h3 { margin:7px 0; font-size:18px; }
.page-completion-grid p { margin:0; color:#696064; font-size:15px; }
.page-completion-links { display:flex; flex-wrap:wrap; align-items:center; gap:9px 16px; margin-top:18px; }
.page-completion-links strong { width:100%; font-size:14px; }
.page-completion-links a { color:#71384e; font-weight:700; text-decoration:underline; text-underline-offset:3px; }
@media(max-width:760px) { .page-completion-grid { grid-template-columns:1fr; } }

.seo-related-cards{list-style:none;padding:0;margin:24px 0 0;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.seo-related-cards li{border:1px solid rgba(182,106,133,.25);border-radius:10px;padding:14px 16px;background:#fff}
.seo-related-cards a{font-weight:700;display:block;margin-bottom:4px}
.seo-related-cards span{font-size:.92em;opacity:.8}

/* Final mobile overrides: loaded after the shared layout on every content page. */
@media(max-width:700px){
  html,body{max-width:100%;overflow-x:hidden}
  .hero-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-template-rows:auto 300px!important;min-height:0!important}
  .hero-copy{grid-row:1!important;padding:30px 0 14px!important;min-width:0}
  .hero h1 span{display:none!important}
  .hero-desc,.hero-trust,.hero-phone-numbers{display:none!important}
  .hero-visual{grid-row:2!important;height:300px!important;width:100%;min-width:0}
  .hero-person{right:50%!important;height:100%!important;max-width:none!important;transform:translateX(50%)}
  .hero-heart-wrap{inset:0!important;z-index:10!important}
  .hero-heart-line{right:50%!important;top:0!important;width:330px!important;transform:translateX(53%)}
  .floating-contact{display:none!important}
  .seo-breadcrumb{display:none!important}
  .seo-toc{width:100%!important;padding:10px 16px 14px!important;background:#f8f4fa!important;border:0!important}
  .seo-toc>strong{display:none!important}
  .seo-toc ul{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important;max-height:none!important;margin:0!important;padding:0!important;overflow:visible!important;list-style:none!important}
  .seo-toc ul::-webkit-scrollbar{display:none}
  .seo-toc li{display:block;min-width:0}
  .seo-toc li:nth-child(n+5){display:none!important}
  .seo-toc a{display:grid;height:100%;place-items:center;padding:8px 10px;border:1px solid #e8dbe3;border-radius:12px;background:#fff;color:#63394b;font-size:12px;line-height:1.35;text-align:center;text-decoration:none;white-space:normal;word-break:keep-all}
  .subpage-hero,.v19-page .subpage-hero{padding:28px 0!important}
  .subpage-hero .hero-mini{display:block!important;min-width:0}
  .subpage-hero h1,.hero-mini-copy h1{font-size:30px!important;line-height:1.25!important;word-break:keep-all}
  .subpage-hero-visual{width:100%!important;min-width:0!important;max-width:none!important;margin-top:18px}
  .page-preview-frame img,.v19-page .page-preview-frame img{width:100%;height:auto!important;max-height:340px!important;object-fit:cover}
  .seo-depth{padding:40px 0}
  .seo-depth p,.seo-depth li{font-size:14px;line-height:1.75}
  .seo-table-scroll{width:100%;overflow-x:auto}
  .mobile-fixed{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .mobile-fixed a:nth-child(n+3){display:none!important}
}
