/*
Theme Name: Dr. Doug's Kids
Theme URI: https://www.drdougskids.com/
Description: Restoration theme for Baribeau Pediatric Dental Specialists P.C. Reproduces the practice's historical visual identity with modern, accessible, responsive markup. Lightweight, dependency-free, no page builder.
Author: Baribeau Pediatric Dental Specialists P.C.
Version: 1.0.0
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: drdougs-kids
Tags: block-theme, one-column, custom-colors, accessibility-ready
*/

/* ---------------------------------------------------------------
   1. Base / page frame
   The historical site sat on a deep-blue background with a white
   content card. Preserved, with a max-width so the card does not
   stretch uncomfortably on very large screens.
--------------------------------------------------------------- */
:root{
  --dk-sky:#b2e8fa; --dk-sky-deep:#3c759b;
  --dk-forest:#325939; --dk-forest-dark:#29583c;
  --dk-leaf:#76a26b; --dk-leaf-dark:#61a251;
  --dk-sunset:#f08052; --dk-sunset-deep:#b4542b;
  --dk-bark:#795f43; --dk-bark-dark:#382c1f;
  --dk-sunshine:#f0be52; --dk-night:#23272a;
  --dk-ink:#2d2d2d; --dk-muted:#6b6b6b; --dk-cloud:#f4f7f9;
  --dk-shell:1180px; --dk-radius:14px;
  --dk-shadow:0 2px 14px rgba(0,0,0,.12);
}
html{ -webkit-text-size-adjust:100%; }
body{
  background:var(--dk-sky-deep);
  color:var(--dk-ink);
  overflow-x:hidden;
}
img{ max-width:100%; height:auto; }
*,*::before,*::after{ box-sizing:border-box; }

.dk-shell{ width:min(100% - 2rem, var(--dk-shell)); margin-inline:auto; }

.dk-site{
  background:#fff;
  width:min(100%, var(--dk-shell));
  margin-inline:auto;
  box-shadow:var(--dk-shadow);
}
@media (min-width:1220px){ .dk-site{ border-radius:0 0 var(--dk-radius) var(--dk-radius); } }

/* Skip link */
.dk-skip{
  position:absolute; left:-9999px; top:0; z-index:1000;
  background:#fff; color:var(--dk-forest); padding:.75rem 1.25rem;
  font-weight:700; border:3px solid var(--dk-sunset-deep); border-radius:0 0 8px 0;
}
.dk-skip:focus{ left:0; }

/* Visible focus everywhere (the historical site had none) */
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, summary:focus-visible, [tabindex]:focus-visible{
  outline:3px solid var(--dk-sunset-deep);
  outline-offset:2px;
  border-radius:3px;
}

/* ---------------------------------------------------------------
   2. Header - sky band (logo + phone) over the green nav bar
--------------------------------------------------------------- */
.dk-topbar{ background:var(--dk-sky); padding:.85rem 0; }
.dk-topbar__inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem; flex-wrap:wrap;
}
.dk-logo{ display:inline-flex; align-items:center; gap:.65rem; text-decoration:none; }
.dk-logo img{ max-height:78px; width:auto; display:block; }
.dk-logo__text{ font-family:"Lobster Two","Cabin",Georgia,serif; font-size:1.5rem; color:var(--dk-forest); line-height:1.1; }
.dk-topbar__phone{
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:"Lobster Two","Cabin",Georgia,serif;
  font-size:clamp(1.35rem,1.1rem + 1.1vw,1.9rem);
  color:var(--dk-forest); text-decoration:none; font-weight:700;
}
.dk-topbar__phone:hover,.dk-topbar__phone:focus{ color:var(--dk-sunset-deep); }
.dk-topbar__phone svg{ width:1em; height:1em; flex:none; }

.dk-navbar{ background:var(--dk-forest); }
.dk-navbar__inner{ display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.dk-nav ul{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; }
.dk-nav li{ margin:0; }
.dk-nav a{
  display:block; padding:.9rem 1rem; color:#fff; text-decoration:none;
  font-weight:700; font-size:.95rem;
}
.dk-nav a:hover,.dk-nav a:focus{ color:var(--dk-sunshine); background:var(--dk-forest-dark); }
.dk-nav a[aria-current="page"]{ background:var(--dk-forest-dark); color:var(--dk-sunshine); }

.dk-nav__toggle{
  display:none; align-items:center; gap:.55rem;
  background:transparent; border:2px solid rgba(255,255,255,.6); color:#fff;
  font:inherit; font-weight:700; padding:.55rem .9rem; margin:.5rem 0;
  border-radius:8px; cursor:pointer;
}
.dk-nav__toggle:hover{ background:var(--dk-forest-dark); }
.dk-nav__bars{ display:inline-block; width:20px; height:2px; background:#fff; position:relative; }
.dk-nav__bars::before,.dk-nav__bars::after{ content:""; position:absolute; left:0; width:20px; height:2px; background:#fff; }
.dk-nav__bars::before{ top:-6px; } .dk-nav__bars::after{ top:6px; }

@media (max-width:900px){
  .dk-nav__toggle{ display:inline-flex; }
  .dk-navbar__inner{ flex-direction:column; align-items:stretch; }
  .dk-nav{ display:none; padding-bottom:.5rem; }
  .dk-nav.is-open{ display:block; }
  .dk-nav ul{ flex-direction:column; }
  .dk-nav a{ padding:.85rem .25rem; border-bottom:1px solid rgba(255,255,255,.15); }
}

/* ---------------------------------------------------------------
   3. Hero
--------------------------------------------------------------- */
.dk-hero{ position:relative; background:var(--dk-sky); overflow:hidden; }
.dk-hero__media{ position:relative; }
.dk-hero__media img{ width:100%; height:auto; aspect-ratio:1180/420; object-fit:cover; display:block; }
.dk-hero__overlay{
  position:absolute; inset:auto 0 0 0; padding:1.1rem 1.25rem;
  display:flex; align-items:center; justify-content:center; gap:1.25rem; flex-wrap:wrap;
  background:linear-gradient(to top, rgba(41,88,60,.9), rgba(41,88,60,0));
}
.dk-hero__tagline{
  margin:0; color:#fff; font-family:"Lobster Two","Cabin",Georgia,serif;
  font-size:clamp(1.5rem,1.1rem + 2.2vw,2.9rem); text-shadow:0 2px 6px rgba(0,0,0,.45);
}
.dk-hero--page{ background:var(--dk-forest); padding:1.5rem 0; }
.dk-hero--page .dk-page-title{
  margin:0; color:#fff; font-family:"Lobster Two","Cabin",Georgia,serif;
  font-size:clamp(1.7rem,1.2rem + 2vw,2.6rem); line-height:1.15;
}

/* ---------------------------------------------------------------
   4. Buttons
--------------------------------------------------------------- */
.dk-btn{
  display:inline-block; background:var(--dk-leaf); color:#fff;
  text-decoration:none; font-weight:700; padding:.75rem 1.6rem;
  border-radius:999px; border:2px solid transparent; line-height:1.3; cursor:pointer;
  font:inherit; font-weight:700;
  transition:background-color .15s ease;
}
.dk-btn:hover,.dk-btn:focus{ background:var(--dk-leaf-dark); color:#fff; }
.dk-btn--sun{ background:var(--dk-sunset-deep); }
.dk-btn--sun:hover,.dk-btn--sun:focus{ background:#93401f; }
.dk-btn--ghost{ background:transparent; color:#fff; border-color:#fff; }
.dk-btn--ghost:hover,.dk-btn--ghost:focus{ background:rgba(255,255,255,.18); color:#fff; }

/* ---------------------------------------------------------------
   5. Quick links strip
--------------------------------------------------------------- */
.dk-quicklinks{ background:var(--dk-cloud); padding:1.75rem 0; }
.dk-quicklinks h2{ margin:0 0 1rem; font-size:1.4rem; color:var(--dk-forest); text-align:center; font-family:"Lobster Two","Cabin",Georgia,serif; }
.dk-quicklinks ul{ list-style:none; margin:0; padding:0; display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); }
.dk-quicklinks a{
  display:flex; flex-direction:column; gap:.5rem; align-items:center; text-align:center;
  background:#fff; border:2px solid #e3eaee; border-radius:var(--dk-radius);
  padding:1.1rem .9rem; text-decoration:none; color:var(--dk-forest); font-weight:700;
  height:100%; transition:border-color .15s ease, transform .15s ease;
}
.dk-quicklinks a:hover,.dk-quicklinks a:focus{ border-color:var(--dk-leaf); transform:translateY(-2px); }
.dk-quicklinks svg{ width:34px; height:34px; color:var(--dk-leaf); }

/* ---------------------------------------------------------------
   6. Content layout + sidebar
--------------------------------------------------------------- */
.dk-main{ padding:2rem 0 2.5rem; }
.dk-layout{ display:grid; gap:2rem; grid-template-columns:minmax(0,1fr); }
@media (min-width:980px){ .dk-layout--sidebar{ grid-template-columns:minmax(0,1fr) 300px; } }
.dk-content h1,.dk-content h2,.dk-content h3,.dk-content h4{
  font-family:"Lobster Two","Cabin",Georgia,serif; color:var(--dk-forest); line-height:1.2;
}
.dk-content h1{ font-size:clamp(1.7rem,1.3rem + 1.6vw,2.4rem); margin:0 0 1rem; }
.dk-content h2{ font-size:clamp(1.4rem,1.15rem + 1vw,1.9rem); margin:2rem 0 .75rem; }
.dk-content h3{ font-size:1.25rem; margin:1.5rem 0 .5rem; }
.dk-content h4{ font-size:1.1rem; margin:1.25rem 0 .4rem; }
.dk-content p{ margin:0 0 1.1rem; }
.dk-content ul,.dk-content ol{ margin:0 0 1.2rem; padding-left:1.4rem; }
.dk-content li{ margin-bottom:.4rem; }
.dk-content a{ color:var(--dk-sunset-deep); }
.dk-content a:hover,.dk-content a:focus{ color:var(--dk-forest); }
.dk-content img{ border-radius:8px; }
.dk-content img.dd-right,.dk-content .alignright{
  float:right; margin:.35rem 0 1rem 1.25rem; max-width:45%;
}
.dk-content img.dd-left,.dk-content .alignleft{
  float:left; margin:.35rem 1.25rem 1rem 0; max-width:45%;
}
@media (max-width:600px){
  .dk-content img.dd-right,.dk-content .alignright,
  .dk-content img.dd-left,.dk-content .alignleft{
    float:none; margin:0 0 1rem; max-width:100%; display:block;
  }
}
.dk-content blockquote{
  margin:1.5rem 0; padding:1rem 1.25rem; border-left:5px solid var(--dk-leaf);
  background:var(--dk-cloud); border-radius:0 8px 8px 0; font-style:italic;
}
.dk-content hr{ border:0; border-top:2px dashed #d8e2e7; margin:2rem 0; }
.dk-table-wrap{ overflow-x:auto; margin:0 0 1.25rem; }
.dk-table-wrap table{ border-collapse:collapse; width:100%; min-width:420px; }
.dk-content th,.dk-content td{ border:1px solid #dbe3e7; padding:.6rem .75rem; text-align:left; }
.dk-content th{ background:var(--dk-cloud); }
.dk-content figure{ margin:0 0 1.25rem; }
.dk-content figcaption{ font-size:.875rem; color:var(--dk-muted); margin-top:.4rem; }

/* Info box (historical #boxLeft) */
.dk-infobox{
  background:var(--dk-cloud); border:2px solid #dde6ea; border-radius:var(--dk-radius);
  padding:1.15rem 1.25rem; margin:0 0 1.5rem;
}
.dk-infobox p{ margin:0 0 .6rem; }
.dk-infobox p:last-child{ margin-bottom:0; }
.dk-infobox img{ border-radius:8px; }

/* ---------------------------------------------------------------
   7. Sidebar
--------------------------------------------------------------- */
.dk-sidebar{ font-size:.95rem; }
.dk-widget{ background:var(--dk-cloud); border:2px solid #e1e9ed; border-radius:var(--dk-radius); padding:1.1rem 1.15rem; margin:0 0 1.25rem; }
.dk-widget h2{ margin:0 0 .75rem; font-size:1.15rem; color:var(--dk-forest); font-family:"Lobster Two","Cabin",Georgia,serif; }
.dk-widget ul{ list-style:none; margin:0; padding:0; }
.dk-widget li{ margin:0; border-bottom:1px solid #e1e9ed; }
.dk-widget li:last-child{ border-bottom:0; }
.dk-widget a{ display:block; padding:.45rem 0; color:var(--dk-forest); text-decoration:none; }
.dk-widget a:hover,.dk-widget a:focus{ color:var(--dk-sunset-deep); text-decoration:underline; }
.dk-widget--cta{ background:var(--dk-forest); border-color:var(--dk-forest); text-align:center; }
.dk-widget--cta h2{ color:#fff; }
.dk-widget--cta p{ color:#eef3ef; }
.dk-widget details > summary{ cursor:pointer; padding:.5rem 0; font-weight:700; color:var(--dk-forest); list-style-position:inside; }
.dk-widget details[open] > summary{ color:var(--dk-sunset-deep); }
.dk-widget details ul{ padding-left:.6rem; }
.dk-widget details li{ border-bottom:0; }

/* ---------------------------------------------------------------
   8. Post / archive cards
--------------------------------------------------------------- */
.dk-postmeta{ color:var(--dk-muted); font-size:.9rem; margin:0 0 1.25rem; }
.dk-postmeta a{ color:var(--dk-muted); }
.dk-postlist{ display:grid; gap:1.5rem; list-style:none; margin:0; padding:0; }
.dk-card{
  display:grid; gap:1rem; grid-template-columns:minmax(0,1fr);
  border:2px solid #e6edf1; border-radius:var(--dk-radius); padding:1.15rem; background:#fff;
}
@media (min-width:620px){ .dk-card--media{ grid-template-columns:200px minmax(0,1fr); align-items:start; } }
.dk-card h2,.dk-card h3{ margin:0 0 .4rem; font-size:1.3rem; font-family:"Lobster Two","Cabin",Georgia,serif; }
.dk-card h2 a,.dk-card h3 a{ color:var(--dk-forest); text-decoration:none; }
.dk-card h2 a:hover,.dk-card h3 a:hover,.dk-card h2 a:focus,.dk-card h3 a:focus{ color:var(--dk-sunset-deep); text-decoration:underline; }
.dk-card img{ width:100%; height:auto; border-radius:8px; display:block; }
.dk-card p{ margin:0 0 .75rem; }
.dk-taxlinks{ margin:1.5rem 0 0; font-size:.9rem; }
.dk-taxlinks a{
  display:inline-block; background:var(--dk-cloud); border:1px solid #dbe4e9;
  border-radius:999px; padding:.2rem .7rem; margin:0 .3rem .4rem 0;
  text-decoration:none; color:var(--dk-forest);
}
.dk-taxlinks a:hover,.dk-taxlinks a:focus{ background:var(--dk-forest); color:#fff; border-color:var(--dk-forest); }
.dk-pagination{ display:flex; gap:.5rem; flex-wrap:wrap; margin:2rem 0 0; }
.dk-pagination a,.dk-pagination span{
  padding:.5rem .9rem; border:2px solid #e0e8ec; border-radius:8px;
  text-decoration:none; color:var(--dk-forest);
}
.dk-pagination .current{ background:var(--dk-forest); color:#fff; border-color:var(--dk-forest); }

/* Breadcrumbs */
.dk-crumbs{ font-size:.875rem; color:var(--dk-muted); margin:0 0 1.25rem; }
.dk-crumbs ol{ list-style:none; display:flex; flex-wrap:wrap; gap:.35rem; margin:0; padding:0; }
.dk-crumbs li::after{ content:"\203A"; margin-left:.35rem; color:#b9c6cd; }
.dk-crumbs li:last-child::after{ content:""; }
.dk-crumbs a{ color:var(--dk-forest); }

/* Testimonial */
.dk-testimonial{
  background:var(--dk-sky); border-radius:var(--dk-radius); padding:1.75rem 1.5rem;
  text-align:center; margin:2rem 0;
}
.dk-testimonial blockquote{ margin:0; border:0; background:none; padding:0; font-style:normal; }
.dk-testimonial blockquote p{
  font-family:"Lobster Two","Cabin",Georgia,serif; color:var(--dk-forest);
  font-size:clamp(1.2rem,1rem + 1vw,1.7rem); margin:0 0 .5rem; line-height:1.35;
}
.dk-testimonial cite{ color:var(--dk-bark); font-style:normal; font-weight:700; }

/* Doctor panel */
.dk-doctor{ display:grid; gap:1.5rem; align-items:start; margin:2rem 0; }
@media (min-width:700px){ .dk-doctor{ grid-template-columns:240px minmax(0,1fr); } }
.dk-doctor img{ width:100%; border-radius:var(--dk-radius); border:5px solid var(--dk-sky); display:block; }
.dk-doctor h2{ margin-top:0; }

/* Section heading used on the front page */
.dk-section-title{
  font-family:"Lobster Two","Cabin",Georgia,serif; color:var(--dk-forest);
  font-size:clamp(1.5rem,1.2rem + 1.4vw,2.2rem); margin:0 0 1rem; text-align:center;
}

/* ---------------------------------------------------------------
   9. Footer
--------------------------------------------------------------- */
.dk-footer{ background:var(--dk-night); color:#e7eaec; padding:2.25rem 0 1.25rem; }
.dk-footer a{ color:#fff; }
.dk-footer a:hover,.dk-footer a:focus{ color:var(--dk-sunshine); }
.dk-footer__grid{ display:grid; gap:1.75rem; grid-template-columns:minmax(0,1fr); }
@media (min-width:760px){ .dk-footer__grid{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
.dk-footer h2{ font-family:"Lobster Two","Cabin",Georgia,serif; font-size:1.25rem; color:#fff; margin:0 0 .75rem; }
.dk-footer ul{ list-style:none; margin:0; padding:0; }
.dk-footer li{ margin-bottom:.4rem; }
.dk-footer address{ font-style:normal; line-height:1.7; }
.dk-footer__bottom{
  border-top:1px solid rgba(255,255,255,.18); margin-top:1.75rem; padding-top:1rem;
  display:flex; flex-wrap:wrap; gap:.75rem 1.25rem; justify-content:space-between;
  font-size:.85rem; color:#c3cace;
}
.dk-footer__bottom a{ color:#dfe4e7; }
.dk-social{ display:flex; gap:.6rem; flex-wrap:wrap; margin-top:.5rem; }
.dk-social a{
  display:inline-flex; align-items:center; justify-content:center; gap:.4rem;
  background:rgba(255,255,255,.12); border-radius:8px; padding:.45rem .8rem; text-decoration:none;
}
.dk-social a:hover,.dk-social a:focus{ background:var(--dk-leaf); }

/* Back to top */
.dk-top{
  position:fixed; right:1rem; bottom:1rem; z-index:50;
  background:var(--dk-forest); color:#fff; border-radius:50%; width:44px; height:44px;
  display:none; align-items:center; justify-content:center; text-decoration:none;
  box-shadow:var(--dk-shadow); border:0; cursor:pointer;
}
.dk-top.is-visible{ display:flex; }
.dk-top:hover,.dk-top:focus{ background:var(--dk-sunset-deep); color:#fff; }

/* Forms */
.dk-form{ display:grid; gap:1rem; max-width:660px; }
.dk-field label{ display:block; font-weight:700; margin-bottom:.3rem; color:var(--dk-forest); }
.dk-field input,.dk-field select,.dk-field textarea{
  width:100%; padding:.65rem .75rem; border:2px solid #cfdae0; border-radius:8px;
  font:inherit; color:var(--dk-ink); background:#fff;
}
.dk-field input:focus,.dk-field select:focus,.dk-field textarea:focus{ border-color:var(--dk-leaf); }
.dk-hint{ font-size:.85rem; color:var(--dk-muted); margin:.25rem 0 0; }
.dk-required{ color:var(--dk-sunset-deep); }
.dk-notice{ padding:.9rem 1.1rem; border-radius:8px; margin:0 0 1rem; border:2px solid; }
.dk-notice--ok{ background:#eef7ec; border-color:var(--dk-leaf); color:#20421d; }
.dk-notice--err{ background:#fdeee8; border-color:var(--dk-sunset-deep); color:#6d2c11; }

.dk-visually-hidden{
  position:absolute!important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.001ms!important; transition-duration:.001ms!important; }
}
@media print{
  .dk-topbar,.dk-navbar,.dk-hero,.dk-quicklinks,.dk-sidebar,.dk-footer,.dk-top,.dk-skip{ display:none!important; }
  body,.dk-site{ background:#fff; box-shadow:none; }
}
