/* Component library */

/* ── Testimonial Card ── */
.testimonial-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
@media(max-width:767px){.testimonial-grid{grid-template-columns:1fr}}
.testimonial-card{border:1px solid var(--c-line);padding:2.5rem;background:var(--c-surface);display:flex;flex-direction:column;justify-content:space-between;min-height:320px;transition:box-shadow .3s ease,transform .3s var(--ease)}
.testimonial-card:hover{box-shadow:0 10px 30px var(--c-p06);transform:translateY(-2px)}
.testimonial-quote{font-family:var(--f-d);font-style:italic;font-size:clamp(.9rem,1.8vw,1.0625rem);line-height:1.8;color:var(--c-primary);margin:1.25rem 0 1.75rem}
.testimonial-author{display:flex;align-items:center;gap:.875rem}
.testimonial-avatar{width:40px;height:40px;border-radius:50%;background:var(--c-surface2);overflow:hidden;flex-shrink:0}
.testimonial-name{font-family:var(--f-l);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;display:block}
.testimonial-service{font-size:.8rem;color:var(--c-p40)}

/* ── Authority Strip ── */
.authority-strip{display:flex;flex-wrap:wrap;border:1px solid var(--c-line)}
.authority-badge{flex:1;min-width:200px;padding:1.25rem 1.5rem;border-right:1px solid var(--c-line);display:flex;align-items:flex-start;gap:.625rem;transition:background .2s ease}
.authority-badge:hover{background:var(--c-surface)}
.authority-badge:last-child{border-right:none}
.authority-icon{color:var(--c-accent);flex-shrink:0;margin-top:.1rem}
.authority-text{font-family:var(--f-l);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;line-height:1.4}
@media(max-width:767px){.authority-badge{flex:0 0 50%;border-bottom:1px solid var(--c-line)}.authority-badge:nth-child(2n){border-right:none}}

/* ── Mobile Menu ── */
body.menu-open{overflow:hidden}
.mobile-menu a{font-family:var(--f-h);font-size:1.625rem;font-weight:700;padding:1rem 0;border-bottom:1px solid var(--c-line);display:block;transition:color .2s ease,padding-left .2s ease}
.mobile-menu a:hover{color:var(--c-accent);padding-left:.5rem}

/* ── Scroll Progress ── */
.scroll-progress{position:fixed;top:0;left:0;height:2px;background:linear-gradient(90deg,var(--c-accent),var(--c-accent-l,#E8D5C0));z-index:999;transform-origin:left;transform:scaleX(0);width:100%}

/* ── Selection ── */
::selection{background:rgba(127,156,150,.24);color:var(--c-primary)}

/* ── Scrollbar ── */
::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:var(--c-bg)}
::-webkit-scrollbar-thumb{background:var(--c-accent);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--c-accent-h)}

/* ── Badge ── */
.badge{display:inline-block;font-family:var(--f-l);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:.25rem .75rem;border:1px solid var(--c-line2);color:var(--c-p60)}
.badge--accent{color:var(--c-accent);border-color:rgba(127,156,150,.42)}
.badge--dark{background:var(--c-primary);color:#fff;border-color:var(--c-primary)}

/* ── Divider ── */
.divider{height:1px;background:var(--c-line);margin:2rem 0}
.divider--accent{background:linear-gradient(90deg,var(--c-accent),transparent)}

/* ── Notice Box ── */
.notice{padding:1rem 1.25rem;border-left:3px solid var(--c-accent);background:rgba(127,156,150,.08);font-size:.875rem;line-height:1.7;color:var(--c-p60)}

/* ── Numbered List ── */
.numbered-list{list-style:none}
.numbered-list li{display:flex;gap:1rem;padding:1.25rem 0;border-bottom:1px solid var(--c-line);align-items:flex-start}
.numbered-list li:first-child{padding-top:0}
.numbered-list li:last-child{border-bottom:none}
.numbered-list__num{font-family:var(--f-d);font-style:italic;font-size:1.125rem;color:var(--c-accent);flex-shrink:0;min-width:2rem}
.numbered-list__content h4{font-family:var(--f-h);font-size:.9375rem;font-weight:700;margin-bottom:.3rem}
.numbered-list__content p{font-size:.875rem;color:var(--c-p60);line-height:1.65}

/* ── Tag Cloud ── */
.tag-cloud{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.5rem}
.tag-cloud a{font-family:var(--f-l);font-size:11px;font-weight:600;letter-spacing:.06em;padding:.375rem .875rem;border:1px solid var(--c-line2);color:var(--c-p60);transition:all .2s ease}
.tag-cloud a:hover{border-color:var(--c-accent);color:var(--c-accent);background:rgba(127,156,150,.08)}

/* ── Accessibility ── */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px}
.hide-mobile{display:block}
.show-mobile{display:none}
@media(max-width:767px){.hide-mobile{display:none}.show-mobile{display:block}}

/* ── Shared CTA / Sub Hero ── */
.sub-hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}
.sub-hero-media{
  margin-top:1.75rem;max-width:540px;border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.06);padding:.75rem;box-shadow:0 22px 60px rgba(0,0,0,.18)
}
.sub-hero-media img{display:block;width:100%;height:auto}
.main-return-banner{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.5rem;
  align-items:center;padding:2rem;border:1px solid var(--c-line);background:var(--c-surface)
}
@media(max-width:767px){
  .sub-hero-actions{flex-direction:column;align-items:stretch}
  .sub-hero-actions .btn{width:100%;justify-content:center}
  .sub-hero-media{display:none}
  .main-return-banner{grid-template-columns:1fr;padding:1.5rem}
}

/* ── Sitemap Search / Filter ── */
.sitemap-toolbar{
  margin-top:2rem;display:grid;gap:1rem;padding:1.5rem;
  border:1px solid var(--c-line);background:var(--c-surface)
}
.sitemap-search input{
  width:100%;min-height:52px;border:1px solid var(--c-line2);background:#fff;
  padding:0 1rem;font:inherit;color:var(--c-primary)
}
.sitemap-search input::placeholder{color:var(--c-p40)}
.sitemap-filters{display:flex;flex-wrap:wrap;gap:.625rem}
.sitemap-filter{
  border:1px solid var(--c-line2);background:transparent;color:var(--c-primary);
  min-height:40px;padding:.625rem .95rem;font:inherit;cursor:pointer;
  transition:border-color .2s ease,background .2s ease,color .2s ease
}
.sitemap-filter.is-active,.sitemap-filter:hover{
  border-color:var(--c-accent);background:rgba(127,156,150,.08);color:var(--c-accent)
}
.sitemap-count{font-size:.875rem;color:var(--c-p60)}
.sitemap-empty{
  margin-top:2rem;padding:1.75rem;border:1px dashed var(--c-line2);
  text-align:center;background:#fff;color:var(--c-p60)
}
[data-sitemap-section][hidden],[data-sitemap-card][hidden],[data-sitemap-empty][hidden]{display:none !important}
