/* ==========================================================================
   WordPress integration glue.
   Additive only — nothing here overrides the original design tokens. It maps
   WordPress-generated markup (admin bar, nav menus, core alignment classes,
   comments, post prose) onto the theme's existing visual language.
   ========================================================================== */

/* ---- Admin bar: keep the sticky header clear of the WP toolbar ---------- */
body.admin-bar .nav{top:32px}
@media screen and (max-width:782px){
  body.admin-bar .nav{top:46px}
}

/* ---- wp_nav_menu fallback parity -----------------------------------------
   When an admin assigns a menu to the "Primary" location, WordPress outputs
   <ul class="sub-menu"> for dropdowns and marks parents with
   .menu-item-has-children. The original design used <div class="sub"> and
   <li class="has-sub">. These rules let a real WP menu inherit the exact
   dropdown behaviour without touching the core stylesheet.                  */
.menu .menu-item-has-children{position:relative}
.menu > li > .sub-menu,
.menu .menu-item-has-children > .sub-menu{
  position:absolute;top:100%;left:50%;transform:translateX(-50%);
  /* small transparent top spacer gives a floating look with NO dead zone */
  margin-top:0;padding:16px 8px 8px;background-clip:padding-box;
  min-width:230px;background:#fff;border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow);display:flex;flex-direction:column;gap:2px;
  opacity:0;visibility:hidden;transition:opacity .18s ease;z-index:70}
.menu .menu-item-has-children:hover > .sub-menu,
.menu .menu-item-has-children:focus-within > .sub-menu{
  opacity:1;visibility:visible}
/* Wide invisible bridge (covers the full dropdown width, only while hovering)
   so moving the cursor down or diagonally into the list keeps it open and
   never blocks clicks on the page below. */
.menu .menu-item-has-children:hover::after,
.menu .menu-item-has-children:focus-within::after{
  content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);
  width:320px;max-width:80vw;height:20px;z-index:69}
.menu .sub-menu li{list-style:none}
.menu .sub-menu a{display:block;padding:11px 14px;border-radius:9px;font-size:14px;
  color:var(--ink);white-space:nowrap}
.menu .sub-menu a:hover{background:var(--bg-tint);color:var(--primary)}
/* caret for real menu parents, matching the designed one */
.menu .menu-item-has-children > a::after{content:"";display:inline-block;position:static;
  width:6px;height:6px;margin-left:6px;background:transparent;transition:none;
  border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:rotate(45deg) translateY(-2px)}
.menu .current-menu-item > a,.menu .current_page_item > a{color:var(--primary)}

/* Mobile drawer: a WP menu here renders as a nested list */
.drawer-nav .sub-menu{list-style:none;padding-left:14px;display:flex;flex-direction:column}
.drawer-nav .sub-menu a{padding:9px 0;font-size:14.5px;opacity:.9}

/* ---- WordPress core alignment / caption / media classes ----------------- */
.alignleft{float:left;margin:6px 24px 18px 0}
.alignright{float:right;margin:6px 0 18px 24px}
.aligncenter{display:block;margin-left:auto;margin-right:auto}
.alignnone{margin:6px 0 18px 0}
figure.wp-caption,.wp-caption{max-width:100%}
.wp-caption-text,.wp-element-caption{font-size:13.5px;color:var(--body);text-align:center;margin-top:8px}
.wp-block-image img{border-radius:var(--r)}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px;margin:24px 0}
.gallery img{width:100%;border-radius:var(--r-sm)}
.sticky{display:block}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;
  margin:-1px;overflow:hidden;padding:0;position:absolute;word-wrap:normal!important}
.screen-reader-text:focus{background:#fff;clip:auto;clip-path:none;color:var(--primary-deep);
  display:block;font-size:14px;font-weight:600;height:auto;left:6px;line-height:normal;padding:14px 22px;
  position:absolute;top:6px;width:auto;z-index:100000;border-radius:8px;box-shadow:var(--shadow)}

/* ---- Post / archive prose (single.php, archive.php, search.php) --------- */
.post-prose{max-width:820px;margin:0 auto}
.post-prose p{margin:0 0 18px;color:var(--body);font-size:16px;line-height:1.75}
.post-prose h1,.post-prose h2,.post-prose h3{color:var(--ink);margin:34px 0 14px;line-height:1.25}
.post-prose h2{font-size:26px}.post-prose h3{font-size:21px}
.post-prose a{color:var(--primary);text-decoration:underline}
.post-prose ul,.post-prose ol{margin:0 0 18px 22px}
.post-prose ul{list-style:disc}.post-prose ol{list-style:decimal}
.post-prose li{margin:6px 0;color:var(--body)}
.post-prose blockquote{border-left:3px solid var(--accent);padding:6px 0 6px 20px;margin:22px 0;
  color:var(--ink);font-style:italic}
.post-prose img{border-radius:var(--r);margin:20px 0}
/* content/editor images fill the column and keep their aspect ratio */
.post-prose img,.entry-content img,.wp-block-image img{width:100%;height:auto}
.post-prose code{background:var(--bg-tint);padding:2px 7px;border-radius:6px;font-size:.9em}
.post-prose pre{background:var(--top-bar);color:#fff;padding:18px;border-radius:var(--r);overflow:auto;margin:20px 0}

.entry-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:var(--shadow);padding:30px;margin-bottom:28px;transition:transform .25s ease,box-shadow .25s ease}
.entry-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.entry-card h2{font-size:24px;margin-bottom:10px}
.entry-card h2 a:hover{color:var(--primary)}
.entry-meta{font-size:13px;color:var(--body);margin-bottom:14px;display:flex;gap:14px;flex-wrap:wrap}
.entry-thumb{border-radius:var(--r);margin-bottom:18px;overflow:hidden}
.entry-thumb img{width:100%;height:auto}

/* Pagination — clean circular pills, teal current page */
.dss-pagination{display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap;margin:56px 0 0;list-style:none;padding:0}
.dss-pagination .page-numbers{list-style:none;display:inline-flex;align-items:center;justify-content:center;
  min-width:46px;height:46px;padding:0 16px;border-radius:var(--r-pill);border:1px solid var(--line);
  background:#fff;color:var(--ink);font-weight:600;font-size:14.5px;line-height:1;text-decoration:none;
  transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease}
.dss-pagination a.page-numbers:hover{background:var(--bg-tint);border-color:var(--primary);color:var(--primary);transform:translateY(-2px)}
.dss-pagination .page-numbers.current{background:var(--primary);border-color:var(--primary);color:#fff;
  box-shadow:0 10px 24px -10px rgba(var(--primary-rgb),.6)}
.dss-pagination .page-numbers.dots{border-color:transparent;background:transparent;color:var(--body);
  min-width:auto;padding:0 4px}
.dss-pagination .page-numbers.prev,.dss-pagination .page-numbers.next{font-weight:700;color:var(--primary);gap:6px}
.dss-pagination .page-numbers.prev:hover,.dss-pagination .page-numbers.next:hover{background:var(--primary);color:#fff;border-color:var(--primary)}
@media (max-width:520px){
  .dss-pagination{gap:7px}
  .dss-pagination .page-numbers{min-width:40px;height:40px;padding:0 12px;font-size:13.5px}
}

/* ---- Service risk-factor chips (single-service) ------------------------- */
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chips span{display:inline-block;background:var(--bg-tint);color:var(--primary);border:1px solid var(--line);
  font-size:13px;font-weight:600;padding:7px 14px;border-radius:var(--r-pill)}

/* ---- Single article page: two-column layout + sidebar ------------------- */
.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:56px;align-items:start}
.article-layout .post-prose,
.article-layout .entry-content{max-width:none;margin:0}
.article-layout .entry-tags,
.article-layout .post-nav,
.article-layout .comments-area{max-width:none;margin-left:0;margin-right:0}
@media (max-width:1000px){
  .article-layout{grid-template-columns:1fr;gap:44px}
}

.dss-sidebar{position:sticky;top:96px;display:flex;flex-direction:column;gap:24px}
body.admin-bar .dss-sidebar{top:128px}
@media (max-width:1000px){.dss-sidebar{position:static}}

.side-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);
  padding:26px 24px;box-shadow:var(--shadow)}
.side-card h4{font-size:16px;font-weight:700;color:var(--ink);margin:0 0 18px;display:flex;align-items:center;gap:11px}
.side-card h4::before{content:"";width:20px;height:3px;background:var(--accent);border-radius:2px;flex:none}

/* Booking CTA card */
.side-cta{background:linear-gradient(150deg,var(--primary),var(--primary-deep));border-color:transparent;color:#fff}
.side-cta h4{color:#fff}
.side-cta h4::before{background:var(--accent)}
.side-cta p{color:rgba(255,255,255,.85);font-size:13.5px;line-height:21px;margin:0 0 18px}
.side-cta .btn{width:100%;margin-top:10px}
.side-cta .side-phone{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:16px;
  color:#fff;font-weight:600;font-size:15px}
.side-cta .side-phone svg{width:17px;height:17px;fill:none;stroke:var(--accent);stroke-width:2}

/* Recent articles */
.side-recent-list{display:flex;flex-direction:column}
.side-recent-item{display:flex;gap:13px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}
.side-recent-item:first-child{padding-top:0}
.side-recent-item:last-child{border-bottom:0;padding-bottom:0}
.side-recent-item .rthumb{width:68px;height:60px;border-radius:11px;object-fit:cover;flex:none;background:var(--bg-tint);display:block}
.side-recent-item .rt{font-size:13.5px;font-weight:600;color:var(--ink);line-height:1.35;display:block}
.side-recent-item:hover .rt{color:var(--primary)}
.side-recent-item time{font-size:11.5px;color:var(--body);display:block;margin-top:4px}

/* Categories */
.side-cats ul{list-style:none;margin:0;padding:0}
.side-cats li{border-bottom:1px solid var(--line)}
.side-cats li:last-child{border-bottom:0}
.side-cats a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;
  font-size:14px;font-weight:500;color:var(--ink)}
.side-cats a:hover{color:var(--primary)}
.side-cats .count{background:var(--bg-tint);color:var(--body);font-size:12px;font-weight:600;
  min-width:26px;height:22px;padding:0 8px;border-radius:var(--r-pill);display:inline-flex;align-items:center;justify-content:center}

.side-card .dss-search-form{flex-direction:column;gap:10px}
.side-card .dss-search-submit{width:100%}

/* ---- Single article page ------------------------------------------------ */
.post-banner .crumb{margin-bottom:18px}
.post-cat-chip{display:inline-block;background:var(--accent);color:var(--primary-deep);
  font-size:11.5px;font-weight:700;letter-spacing:1px;text-transform:uppercase;
  padding:7px 15px;border-radius:var(--r-pill);margin-bottom:20px}
.post-banner h1{max-width:920px}
.post-meta-line{margin-top:16px;color:rgba(255,255,255,.82);font-size:14px;font-weight:500}
.post-meta-line strong{color:#fff;font-weight:600}

.post-prose .entry-featured{margin:0 0 26px}
.post-prose .entry-featured img{width:100%;border-radius:var(--r-lg)}
.post-prose>img:first-child,.post-prose figure.wp-block-image:first-child{margin-top:0}

.entry-tags{max-width:820px;margin:34px auto 0;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.entry-tags .lab{font-size:13px;font-weight:700;color:var(--ink);margin-right:2px}
.entry-tags a{display:inline-block;background:var(--bg-tint);color:var(--primary);
  font-size:13px;font-weight:600;padding:7px 14px;border-radius:var(--r-pill);border:1px solid var(--line);transition:.2s}
.entry-tags a:hover{background:var(--primary);color:#fff;border-color:var(--primary)}

.post-nav{max-width:820px;margin:40px auto 0;display:grid;grid-template-columns:1fr 1fr;gap:18px}
.post-nav-link{display:flex;flex-direction:column;gap:7px;padding:20px 22px;border:1px solid var(--line);
  border-radius:var(--r);background:#fff;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.post-nav-link:hover{border-color:var(--primary);box-shadow:var(--shadow);transform:translateY(-3px)}
.post-nav-link span{font-size:11.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--accent-text)}
.post-nav-link b{font-size:15px;font-weight:600;color:var(--ink);line-height:1.4}
.post-nav-link.next{text-align:right;align-items:flex-end}
@media (max-width:640px){
  .post-nav{grid-template-columns:1fr}
  .post-nav-link.next{text-align:left;align-items:flex-start}
}

/* ---- Comments ----------------------------------------------------------- */
.comments-area{max-width:820px;margin:56px auto 0}
.comments-title,.comment-reply-title{font-size:22px;color:var(--ink);margin-bottom:22px}
.comment-list{list-style:none;margin:0;padding:0}
.comment-list li{margin:0 0 22px}
.comment-body{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:20px 22px}
.comment-list .children{list-style:none;margin:18px 0 0 28px}
.comment-author{font-weight:700;color:var(--ink)}
.comment-metadata{font-size:12.5px;color:var(--body);margin-bottom:8px}
.comment-form input[type=text],.comment-form input[type=email],
.comment-form input[type=url],.comment-form textarea{width:100%;padding:14px 16px;border:1px solid var(--line);
  border-radius:var(--r-sm);font:inherit;margin-top:6px;background:#fff}
.comment-form label{font-size:13.5px;font-weight:600;color:var(--ink)}
.comment-form p{margin-bottom:16px}

/* ---- Search form -------------------------------------------------------- */
.dss-search-form{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 8px}
.dss-search-field{flex:1;min-width:200px;padding:14px 18px;border:1px solid var(--line);
  border-radius:var(--r-pill);font:inherit;background:#fff}
.dss-search-field:focus{outline:2px solid var(--primary);outline-offset:1px}
.dss-search-submit{flex:none}

/* ---- Default WordPress body content wrapper spacing --------------------- */
.dss-default-main{padding:120px 0 96px}
.dss-default-main .wrap{max-width:1100px}

/* ---- Contact Form 7 inside the theme's .form card ---------------------- */
.cf7-form .wpcf7 form{display:flex;flex-direction:column;gap:14px}
.cf7-form .wpcf7 p{margin:0}
.cf7-form .wpcf7-form-control-wrap{display:block}
.cf7-form input[type=submit]{width:auto;align-self:flex-start;cursor:pointer;
  background:var(--primary);color:#fff;border:none;border-radius:var(--r);
  padding:14px 24px;font:inherit;font-size:14px;font-weight:600;
  box-shadow:0 10px 26px -10px rgba(var(--primary-rgb),.5);transition:.2s}
.cf7-form input[type=submit]:hover{filter:brightness(1.05)}
.cf7-form .wpcf7-spinner{margin:10px auto 0}
.cf7-form .wpcf7-response-output{border-radius:var(--r);font-size:13px;margin:8px 0 0}

/* ---- Elementor icon lists -> theme's green check-badge bullets ---------
   Turns the default dot icon into the round green check used across the
   service design (matches .check). Scoped to the icon-list widget so it
   never touches nav, footer or other lists. */
.elementor-widget-icon-list .elementor-icon-list-items{list-style:none;margin:0;padding:0}
.elementor-widget-icon-list .elementor-icon-list-item{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}
.elementor-widget-icon-list .elementor-icon-list-item > i,
.elementor-widget-icon-list .elementor-icon-list-icon,
.elementor-widget-icon-list .elementor-icon-list-icon i{
  flex:0 0 auto;width:22px;height:22px;border-radius:50%;background:var(--accent);
  display:grid;place-items:center;font-size:0;line-height:0;margin-top:1px}
.elementor-widget-icon-list .elementor-icon-list-item > i::before,
.elementor-widget-icon-list .elementor-icon-list-icon i::before{
  content:"";display:block;width:12px;height:12px;
  background:center/12px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6.5 9.4 17.5 4 12'/%3E%3C/svg%3E")}
.elementor-widget-icon-list .elementor-icon-list-icon svg{width:12px;height:12px}
.elementor-widget-icon-list .elementor-icon-list-text{font-size:15px;line-height:1.55;color:var(--ink)}
