/* OrSolutions - ASAP Dental: shared components (forms, system templates, widget states, motion). */

/* Highlighted words (*word* in a field) */
.orasap-hl{color:var(--orasap-hl,var(--orasap-green-700))}
h1 .orasap-hl{color:var(--orasap-hl,var(--orasap-green-600))}
.orasap-pg-service h1 .orasap-hl{font-style:italic;font-weight:600}

/* Scroll reveal: only hidden when JS is running */
.orasap-js .orasap-reveal{opacity:0;transform:translateY(26px);transition:opacity .7s var(--orasap-ease),transform .7s var(--orasap-ease)}
.orasap-js .orasap-reveal.in{opacity:1;transform:none}
.orasap-js .orasap-reveal-stagger>*{opacity:0;transform:translateY(26px);transition:opacity .7s var(--orasap-ease),transform .7s var(--orasap-ease)}
.orasap-js .orasap-reveal-stagger.in>*{opacity:1;transform:none}
.orasap-js .orasap-reveal-stagger.in>*:nth-child(2){transition-delay:80ms}
.orasap-js .orasap-reveal-stagger.in>*:nth-child(3){transition-delay:160ms}
.orasap-js .orasap-reveal-stagger.in>*:nth-child(4){transition-delay:240ms}
.orasap-js .orasap-reveal-stagger.in>*:nth-child(5){transition-delay:320ms}
.orasap-js .orasap-reveal-stagger.in>*:nth-child(6){transition-delay:400ms}
.orasap-js .orasap-reveal-stagger.in>*:nth-child(7){transition-delay:480ms}
a span[aria-hidden="true"]{display:inline-block;transition:transform .2s var(--orasap-ease)}
a:hover span[aria-hidden="true"]{transform:translateX(4px)}

@keyframes orasap-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-24px)}}
@keyframes orasap-teeth{to{background-position-x:-40px}}
@keyframes orasap-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.orasap-marquee{width:100%;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.orasap-marquee-track{display:flex;align-items:center;gap:72px;width:max-content;animation:orasap-marquee 34s linear infinite}
.orasap-marquee:hover .orasap-marquee-track{animation-play-state:paused}
.orasap-marquee-track img{display:block;height:28px;width:auto}
.orasap-amb{position:absolute;border-radius:999px;pointer-events:none;z-index:0}
.orasap-band{height:8px;width:100%;background:repeating-linear-gradient(-45deg,var(--orasap-green-400) 0 14px,var(--orasap-green-300) 14px 28px)}
.orasap-svc-card img{transition:transform .5s var(--orasap-ease)}
.orasap-svc-card:hover img{transform:scale(1.06)}
.orasap-ig-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.orasap-ig-grid img{display:block;width:100%;height:100%;object-fit:cover}
@media(max-width:900px){.orasap-ig-grid{grid-template-columns:repeat(2,1fr)}}

/* Forms */
.orasap-form{display:flex;flex-direction:column;gap:18px}
.orasap-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.orasap-lbl{display:flex;flex-direction:column;gap:8px;font-family:var(--orasap-font-body);font-weight:600;font-size:.9375rem;color:var(--orasap-ink-700)}
.orasap-fld{width:100%;font-family:var(--orasap-font-body);font-size:1rem;color:var(--orasap-ink-700);background:#fff;border:1.5px solid var(--orasap-rule-strong);border-radius:calc(14px * var(--orasap-radius-scale,1));padding:15px 16px;outline:none;transition:border-color .15s,box-shadow .15s}
.orasap-fld::placeholder{color:var(--orasap-ink-faint)}
.orasap-fld:focus{border-color:var(--orasap-green-400);box-shadow:var(--orasap-shadow-focus)}
select.orasap-fld{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23A87C4D' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:44px}
.orasap-form-submit{align-self:flex-start}
.orasap-form-note{font-size:.875rem;color:var(--orasap-ink-soft)}
.orasap-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.orasap-form-msg{border-radius:var(--orasap-radius-lg);padding:28px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.orasap-form-msg--ok{background:var(--orasap-green-50);border:1.5px solid var(--orasap-green-300)}
.orasap-form-msg--err{background:#FCEFEA;border:1.5px solid var(--orasap-danger);margin-bottom:18px}
@media(max-width:620px){.orasap-form-grid{grid-template-columns:1fr}}

/* System templates */
.orasap-wrap--narrow{max-width:var(--orasap-container-narrow)}
.orasap-pagehead{padding:calc(72px * var(--orasap-space-scale,1)) 0 calc(40px * var(--orasap-space-scale,1));border-bottom:1px solid var(--orasap-rule);background:linear-gradient(180deg,var(--orasap-green-50),var(--orasap-paper))}
.orasap-pagehead>.orasap-wrap{display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.orasap-pagehead--center>.orasap-wrap{align-items:center;text-align:center}
.orasap-pagehead h1{font-size:calc(clamp(2rem,5vw,3.25rem) * var(--orasap-h1-scale,1))}
.orasap-lead{font-size:var(--orasap-fs-body-lg);color:var(--orasap-ink-soft);max-width:60ch}
.orasap-sec--tight{padding:calc(56px * var(--orasap-space-scale,1)) 0 calc(88px * var(--orasap-space-scale,1))}
.orasap-actions{margin-top:8px}
.orasap-h-sm{font-size:var(--orasap-fs-h4);margin-bottom:20px}
.orasap-search{display:flex;gap:10px;width:100%;max-width:520px}
.orasap-search .orasap-fld{flex:1}
.orasap-linklist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.orasap-linklist a{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:#fff;border:1px solid var(--orasap-rule);border-radius:var(--orasap-radius-md);font-weight:600;color:var(--orasap-ink-700);font-family:var(--orasap-font-body)}
.orasap-linklist a:hover{border-color:var(--orasap-green-400)}
.orasap-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.orasap-card{background:#fff;border:1px solid var(--orasap-rule);border-radius:var(--orasap-radius-lg);box-shadow:var(--orasap-shadow-card);overflow:hidden;transition:transform .35s var(--orasap-ease),box-shadow .35s var(--orasap-ease)}
.orasap-card:hover{transform:translateY(-6px);box-shadow:var(--orasap-shadow-lift)}
.orasap-card-link{display:flex;flex-direction:column;height:100%;color:inherit}
.orasap-card-media{aspect-ratio:16/10;overflow:hidden;background:var(--orasap-surface-2)}
.orasap-card-media img{display:block;width:100%;height:100%;object-fit:cover}
.orasap-card-body{display:flex;flex-direction:column;gap:10px;padding:24px;flex:1}
.orasap-card-body h2,.orasap-card-body h3{font-size:1.25rem}
.orasap-card-body p{color:var(--orasap-ink-soft);font-size:.9375rem}
.orasap-card-more{margin-top:auto;font-family:var(--orasap-font-body);font-weight:600;font-size:.9375rem;color:var(--orasap-green-700)}
.orasap-empty{padding:32px;background:var(--orasap-surface-2);border-radius:var(--orasap-radius-lg);display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.orasap-pagination{margin-top:40px}
.orasap-pagination .nav-links{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.orasap-pagination .page-numbers{padding:10px 16px;border:1px solid var(--orasap-rule-strong);border-radius:var(--orasap-radius-pill);color:var(--orasap-ink-700);font-weight:600;font-family:var(--orasap-font-body)}
.orasap-pagination .page-numbers.current{background:var(--orasap-ink-700);color:var(--orasap-paper);border-color:var(--orasap-ink-700)}
.orasap-crumbs{display:flex;gap:8px;font-size:.875rem;font-family:var(--orasap-font-body);color:var(--orasap-ink-soft)}
.orasap-meta{display:flex;flex-wrap:wrap;gap:6px 20px;font-size:.9375rem;color:var(--orasap-ink-soft);font-family:var(--orasap-font-body)}
.orasap-single-media{margin:0 0 32px;border-radius:var(--orasap-radius-lg);overflow:hidden}
.orasap-single-media img{display:block;width:100%;height:auto}
.orasap-prose{font-size:1.0625rem;line-height:1.75}
.orasap-prose h2{font-size:1.75rem;margin-top:1.8em}
.orasap-prose h3{font-size:1.35rem;margin-top:1.6em}
.orasap-prose ul,.orasap-prose ol{padding-left:1.3em}
.orasap-prose li+li{margin-top:.4em}
.orasap-prose a{text-decoration:underline}
.orasap-prose blockquote{margin:1.5em 0;padding:1em 1.4em;border-left:4px solid var(--orasap-green-400);background:var(--orasap-green-50);border-radius:0 var(--orasap-radius-md) var(--orasap-radius-md) 0}
.orasap-prose img{border-radius:var(--orasap-radius-md)}
.orasap-back{margin-top:40px;font-weight:600}
.orasap-band-cta{background:var(--orasap-ink-700);color:var(--orasap-paper);padding:72px 0;text-align:center}
.orasap-band-cta .orasap-wrap{display:flex;flex-direction:column;align-items:center;gap:16px}
.orasap-band-cta h2{color:var(--orasap-paper)}
.orasap-band-cta p{color:rgba(255,252,249,.78)}
.orasap-btn--green-lg{background:var(--orasap-green-400);color:var(--orasap-on-primary)}
.orasap-btn--green-lg:hover{background:var(--orasap-green-hover);color:var(--orasap-on-primary)}
@media(max-width:980px){.orasap-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.orasap-cards,.orasap-linklist{grid-template-columns:1fr}.orasap-search{flex-direction:column}.orasap-pagehead{padding:48px 0 28px}}

/* Widget states (behavior in main.js) */
/* Reviews carousel: transform is set by JS through --orasap-offset */
.orasap-pg-home [data-orasap-track]{transition:transform .6s var(--orasap-ease);transform:translateX(var(--orasap-offset,0))}
.orasap-dot{width:10px;height:10px;border-radius:999px;border:0;padding:0;background:var(--orasap-rule-strong);cursor:pointer}
.orasap-dot.is-on{background:var(--orasap-green-500)}
/* Emergency accordion */
.orasap-pg-emergency [data-acc-panel]{display:grid;grid-template-rows:0fr;transition:grid-template-rows .34s var(--orasap-ease)}
.orasap-pg-emergency [data-acc].is-open>[data-acc-panel]{grid-template-rows:1fr}
.orasap-pg-emergency .acc-chev{transition:transform .25s var(--orasap-ease)}
.orasap-pg-emergency [data-acc].is-open .acc-chev{transform:rotate(180deg)}
.orasap-pg-emergency .acc-btn:focus-visible{outline:3px solid var(--orasap-green-400);outline-offset:-3px}
/* New patient checklist */
.orasap-pg-new-patients [data-prep-item]{background:#fff;border:1.5px solid var(--orasap-rule);cursor:pointer;transition:background .2s,border-color .2s}
.orasap-pg-new-patients [data-prep-item].is-checked{background:var(--orasap-green-50);border-color:var(--orasap-green-300)}
.orasap-pg-new-patients [data-prep-item]>span:first-child{border:2px solid var(--orasap-rule-strong);background:transparent;transition:background .2s,border-color .2s}
.orasap-pg-new-patients [data-prep-item].is-checked>span:first-child{background:var(--orasap-green-400);border-color:var(--orasap-green-400)}
.orasap-pg-new-patients [data-prep-item]>span:first-child svg{opacity:0;transition:opacity .2s}
.orasap-pg-new-patients [data-prep-item].is-checked>span:first-child svg{opacity:1}
.orasap-pg-new-patients [data-prep-bar]{width:0;transition:width .3s var(--orasap-ease)}
/* First-visit stepper */
.orasap-pg-new-patients [data-step-tab]{background:#fff;border:1.5px solid var(--orasap-rule);box-shadow:var(--orasap-shadow-card);cursor:pointer;transition:background .2s,border-color .2s}
.orasap-pg-new-patients [data-step-tab]>span:first-child{background:var(--orasap-green-50);color:var(--orasap-green-700)}
.orasap-pg-new-patients [data-step-tab]>span:last-child{color:var(--orasap-ink-700)}
.orasap-pg-new-patients [data-step-tab].is-active{background:var(--orasap-ink-700);border-color:var(--orasap-ink-700);box-shadow:var(--orasap-shadow-lift)}
.orasap-pg-new-patients [data-step-tab].is-active>span:first-child{background:var(--orasap-green-400);color:var(--orasap-on-primary)}
.orasap-pg-new-patients [data-step-tab].is-active>span:last-child{color:var(--orasap-paper)}
.orasap-js .orasap-pg-new-patients [data-step-panel]:not(.is-active){display:none}

@media(prefers-reduced-motion:reduce){
  .orasap-js .orasap-reveal,.orasap-js .orasap-reveal-stagger>*{opacity:1!important;transform:none!important;transition:none!important}
  .orasap-marquee-track,.orasap-amb,.orasap-teeth-border{animation:none!important}
}

/* Safety nets and small-screen fixes */
.orasap-pg{overflow-x:clip}
[data-orasap-dots]{display:inline-flex;gap:8px;align-items:center}
.orasap-dot{min-width:10px}
@media(max-width:520px){
  .orasap-pg a{white-space:normal;text-align:center}
  .orasap-pg .orasap-marquee-track a{white-space:nowrap}
  .orasap-pg-service .orasap-pg a,.orasap-pg a[class]{max-width:100%}
  .orasap-form-submit{align-self:stretch}
}
@media (hover:none){
  .orasap-svc-card:hover img,.orasap-card:hover{transform:none}
}

/* Tablet: keep card grids at two columns instead of one long column */
@media(min-width:621px) and (max-width:900px){
  .orasap-pg.orasap-pg .grid3{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* Header and motion switches (set from the Customizer) */
.orasap-header-static .orasap-header{position:relative}
.orasap-no-reveal .orasap-reveal,.orasap-no-reveal .orasap-reveal-stagger>*{opacity:1!important;transform:none!important;transition:none!important}
.orasap-no-motion *,.orasap-no-motion *::before,.orasap-no-motion *::after{animation:none!important}

/* Map fills the full height of its column (Home "Come See Us", Contact) */
.orasap-map-fill{display:flex}
.orasap-map-fill .orasap-map{flex:1 1 auto;width:100%;aspect-ratio:auto;min-height:inherit;height:auto;border-radius:0;box-shadow:none}
.orasap-map-fill .orasap-map iframe{min-height:inherit}

/* Phones: card link centered like the card text */
@media(max-width:520px){
  .orasap-pg.orasap-pg .orasap-svc-card>div:last-child>span:last-child{align-self:center}
}
