/* WordPress-specific additions on top of the static design in site.css. */
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}
.admin-bar .aside{top:62px}
@media(max-width:850px){.admin-bar nav#navigation{top:170px}}
@media(max-width:782px){.admin-bar nav#navigation{top:170px}}
@media(max-width:600px){.admin-bar nav#navigation{top:165px}}
/* Editor output inside .prose */
.prose figure{margin:30px 0}
.prose figure img{margin:0}
.prose figcaption,.prose .wp-element-caption{font-size:.85rem;color:var(--muted);margin-top:8px}
.prose video,.prose iframe{max-width:100%}
.prose .alignleft{float:left;margin:6px 28px 18px 0}
.prose .alignright{float:right;margin:6px 0 18px 28px}
.prose .aligncenter{margin-inline:auto}
.prose:not(.testimonials) blockquote{font-size:1.4rem;border-left:2px solid var(--sand);padding-left:22px}
.prose table{border-collapse:collapse;width:100%;margin:24px 0}
.prose td,.prose th{border:1px solid var(--line);padding:8px 10px;text-align:left}
.prose::after{content:"";display:table;clear:both}
/* Pagination (kept off the <nav> element: site.css styles every nav as the main menu) */
.pager{display:flex;flex-wrap:wrap;gap:10px;margin-top:55px;font-weight:600;font-size:.9rem}
.pager a,.pager span{padding:9px 14px;border:1px solid var(--line);border-radius:3px}
.pager .current{background:var(--navy);color:#fff;border-color:var(--navy)}
.pager a:hover{border-color:var(--copper);color:var(--copper)}
.category-row{display:flex;flex-wrap:wrap;gap:10px;margin:-10px 0 40px}
.category-row a{font-size:.8rem;font-weight:600;padding:7px 13px;border:1px solid var(--line);border-radius:30px}
.category-row a:hover,.category-row a[aria-current]{border-color:var(--copper);color:var(--copper)}
/* Quote form result messages */
.form-notice{padding:18px 20px;margin-bottom:28px;border-left:3px solid var(--copper);background:var(--paper);color:var(--ink)}
.form-notice.ok{border-color:#2f7a4f}
.hp-field{position:absolute!important;left:-9999px!important;height:1px;overflow:hidden}
.empty-state{padding:30px 0}

/* Home testimonial rotator. Without JS only the first quote shows (as the static design did);
   with JS every slide shares one grid cell, so the section is as tall as the longest quote
   and never jumps when the quote changes. */
.quote-rotator{max-width:980px;margin:0 auto 26px}
.quote-slides{display:grid}
.quote-slide{margin:0}
.quote-slide:not(.is-active){display:none}
.quote-rotator.is-ready .quote-slide{display:flex;flex-direction:column;justify-content:center;grid-area:1/1;opacity:0;visibility:hidden;transition:opacity .9s ease,visibility 0s linear .9s}
.quote-rotator.is-ready .quote-slide.is-active{opacity:1;visibility:visible;transition:opacity .9s ease .25s,visibility 0s}
.quote-slide blockquote{font-size:clamp(1.45rem,2.5vw,2.2rem);line-height:1.4;margin:0 0 24px}
.quote-slide.is-short blockquote{font-size:clamp(2rem,3.8vw,3.4rem);line-height:1.3}
.quote-slide figcaption strong{color:#fff}
.quote-slide figcaption span{margin-left:14px;font-size:.85rem;color:#b4c8d5}
.quote-controls{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:30px}
.quote-dots{display:flex;gap:4px}
.quote-dot{width:26px;height:26px;padding:0;border:0;background:none;cursor:pointer;position:relative}
.quote-dot::before{content:"";position:absolute;inset:9px;border-radius:50%;background:#ffffff4d;transition:background .3s,transform .3s}
.quote-dot:hover::before{background:#ffffffa6}
.quote-dot[aria-current="true"]::before{background:var(--sand);transform:scale(1.25)}
.quote-pause{background:none;border:1px solid #ffffff40;color:#dbe5eb;font-size:.75rem;letter-spacing:.06em;padding:6px 12px;border-radius:3px;cursor:pointer}
.quote-pause:hover{border-color:var(--sand);color:#fff}
@media(max-width:600px){.quote-slide blockquote{font-size:1.3rem}.quote-slide.is-short blockquote{font-size:2.05rem}.quote-slide figcaption span{display:block;margin:4px 0 0}.quote-controls{flex-direction:column-reverse;gap:12px}}

/* Chat launcher (fixed bottom-right) would cover the hero's "Pause motion" button on first
   load. Keep the button clear of it whenever the chat widget is on the page. */
@media(min-width:601px){body:has(vapi-widget) .hero-bottom{padding-right:260px}}
