/*
Theme Name: Dental Krafts
Author: Dental Krafts
Description: Approved Dental Krafts design with editable WordPress pages, patient guides, legacy blog templates and staging migration tools.
Version: 1.0.0-rc15
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: dental-krafts
*/
.legacy-content{max-width:1100px;margin:0 auto;padding:60px 24px}
.legacy-content .entry-content{max-width:850px;margin:auto}
.legacy-content img{height:auto;max-width:100%}
.legacy-content .post-card{padding:30px;border-bottom:1px solid var(--line)}
.legacy-content .pagination{margin:30px 0;display:flex;gap:14px;justify-content:center}
.legacy-content .screen-reader-text{position:absolute;clip:rect(1px,1px,1px,1px)}
.admin-bar .site-header{top:32px}
@media(max-width:782px){.admin-bar .site-header{top:46px}}
@media(max-width:600px){.admin-bar .site-header{top:0}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
/* Keep the existing Cherry calculator above the mobile contact bar. */
@media(max-width:1100px){
 body [class*="floatingEstimator-floatingContainer-"]{bottom:calc(90px + env(safe-area-inset-bottom))!important}
 body:has(#primary-navigation.is-open) [class*="floatingEstimator-floatingContainer-"]{visibility:hidden}
}
/* A shared booking drawer keeps scheduling within the current page. */
body.booking-drawer-open{position:fixed;overflow:hidden;width:100%;overscroll-behavior:none}
.booking-drawer{box-sizing:border-box;position:fixed;inset:0 0 0 auto;margin:0;padding:0;width:min(800px,100%);max-width:100%;height:100vh;height:100dvh;max-height:100%;border:0;border-radius:24px 0 0 24px;background:#fff;color:#30232d;box-shadow:-12px 0 64px #28142133;overflow:hidden}
.booking-drawer::backdrop{background:#24152099;backdrop-filter:blur(4px)}
.booking-drawer[open]{animation:dk-booking-enter .24s ease-out}
.booking-drawer-shell{height:100%;display:flex;flex-direction:column}
.booking-drawer-header{flex:none;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:24px 28px 20px;background:#faf6f9;border-bottom:1px solid #e9dee5}
.booking-drawer-eyebrow{margin:0 0 6px;font-family:"Montserrat",sans-serif;font-size:10px;font-weight:700;letter-spacing:.18em;color:#74425f}
.booking-drawer-header h2{margin:0;font-family:"Montserrat",sans-serif;font-size:26px;font-weight:600;line-height:1.25;letter-spacing:-.03em}
.booking-drawer-header #booking-drawer-intro{margin:7px 0 0;font-size:14px;line-height:1.45;color:#6d5a65}
.booking-drawer-close{flex:none;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #ddcbd6;border-radius:50%;background:#fff;color:#643c55;cursor:pointer}
.booking-drawer-close:hover{background:#efe5eb}
.booking-drawer :focus-visible{outline:3px solid #885470;outline-offset:3px}
.booking-drawer-content{position:relative;flex:1;min-height:0;background:#fff}
.booking-drawer-frame{display:block;width:100%;height:100%;border:0;background:#fff}
.booking-drawer-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#fff;pointer-events:none;color:#6d5a65}
.booking-drawer-loading[hidden]{display:none}
.booking-drawer-loading span{width:28px;height:28px;border:3px solid #eee4ea;border-top-color:#74425f;border-radius:50%;animation:dk-booking-spin .8s linear infinite}
.booking-drawer-loading p{font-size:14px}
.booking-drawer-footer{flex:none;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 20px;border-top:1px solid #e9dee5;padding:14px 28px max(14px,env(safe-area-inset-bottom));background:#faf6f9;font-size:12px;line-height:1.6}
.booking-drawer-footer a{color:#643c55;text-decoration:underline;text-underline-offset:3px}
@keyframes dk-booking-enter{from{transform:translateX(100%);opacity:.65}to{transform:translateX(0);opacity:1}}
@keyframes dk-booking-spin{to{transform:rotate(360deg)}}
@media(max-width:600px){
 .booking-drawer{width:100%;border-radius:0}
 .booking-drawer-header{padding:calc(16px + env(safe-area-inset-top)) 18px 14px;gap:12px}
 .booking-drawer-header h2{font-size:22px}
 .booking-drawer-header #booking-drawer-intro{font-size:13px;margin-top:5px}
 .booking-drawer-footer{padding:10px 18px max(10px,env(safe-area-inset-bottom));font-size:11px;gap:5px 14px}
}

/* Give the Google review carousel its own anchor clearance and keyboard focus. */
#google-reviews{scroll-margin-top:140px}
.home-google-reviews .wp-gr{margin-top:26px}
.home-google-reviews .wp-gr button:focus-visible{outline:3px solid var(--plum);outline-offset:3px}

/* Website policies use a readable document layout and native editable blocks. */
.footer-base{align-items:flex-start;flex-wrap:wrap}
.footer-policies{display:flex;flex-wrap:wrap;gap:10px 22px}
.footer-policies a{color:var(--muted);text-decoration:none}
.footer-policies a:hover{color:var(--plum);text-decoration:underline}
.policy-page{max-width:1040px;padding:64px 0 80px;overflow-wrap:anywhere}
.policy-page h1{font-size:clamp(38px,5vw,58px);line-height:1.15;margin-bottom:22px}
.policy-page .policy-intro{max-width:760px;font-size:1.15rem;color:var(--muted)}
.policy-date{font-size:.875rem;color:var(--muted)}
.policy-review-note{padding:16px 20px;border-left:3px solid var(--plum);background:#f6eff5;font-size:.875rem;line-height:1.65}
.policy-toc{background:#f8f5f8;border:1px solid var(--line);border-radius:16px;padding:26px 30px;margin:32px 0 42px}
.policy-toc h2{font-size:1.1rem;margin-bottom:14px;letter-spacing:0}
.policy-toc ul{columns:2;column-gap:36px;padding-left:20px;margin:0}
.policy-toc li{break-inside:avoid;margin:0 0 9px;line-height:1.5;font-size:.9375rem}
.policy-page>section{max-width:80ch;scroll-margin-top:155px;margin-top:40px}
.policy-page>section h2{font-size:clamp(24px,2.5vw,31px);line-height:1.3;margin-bottom:18px}
.policy-page>section p,.policy-page>section li{font-size:1rem;line-height:1.8;max-width:80ch}
.policy-page>section ul{padding-left:24px}
.policy-page>section li{margin:12px 0}
.policy-page a{color:var(--plum)}
.policy-sitemap-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;margin-top:35px}
.policy-sitemap-grid section{border:1px solid var(--line);border-radius:16px;padding:28px;background:#fcf9fc}
.policy-sitemap-grid h2{font-size:1.35rem;letter-spacing:-.02em;line-height:1.35}
.policy-sitemap-grid ul{padding-left:19px;margin-bottom:0}
.policy-sitemap-grid li{font-size:1rem;line-height:1.65;margin:10px 0}
@media(max-width:760px){.policy-page{padding:38px 0 52px}.policy-toc{padding:22px}.policy-toc ul{columns:1}.policy-sitemap-grid{grid-template-columns:1fr}.footer-policies{gap:12px 20px;max-width:100%}}
@media print{body:has(.policy-page) .top,body:has(.policy-page) .site-header,body:has(.policy-page) .closing,body:has(.policy-page) .site-footer,body:has(.policy-page) .mobile-cta,body:has(.policy-page) #wpadminbar,body:has(.policy-page) [class*="floatingEstimator-floatingContainer-"]{display:none!important}.policy-page{width:100%;max-width:none;padding:0}.policy-toc{display:none}.policy-page>section{break-inside:auto}.policy-page h2{break-after:avoid}.policy-page a{color:#000}}

.legacy-page-heading{padding-top:3rem;padding-bottom:1rem}
