:root {
  --cfdv-teal: #09aeb8;
  --cfdv-teal-accessible: #087f87;
  --cfdv-yellow: #ffd763;
  --cfdv-charcoal: #3a3a3a;
  --cfdv-slate: #4B4F58;
  --cfdv-soft-gray: #f1f1f1;
  --cfdv-mist: #F2F5F7;
  --cfdv-white: #FFFFFF;
  --cfdv-content: 1200px;
  --cfdv-wide: 1320px;
  --cfdv-reading: 820px;
  --cfdv-header-height: 72px;
  --cfdv-radius-sm: 6px;
  --cfdv-radius: 12px;
  --cfdv-radius-lg: 18px;
  --cfdv-shadow-sm: 0 4px 18px rgba(28, 45, 55, 0.08);
  --cfdv-shadow: 0 14px 40px rgba(28, 45, 55, 0.10);
  --cfdv-border: rgba(58, 58, 58, 0.12);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--cfdv-white);
  color: var(--cfdv-slate);
  font-family: "Open Sans", sans-serif;
  font-size: 15px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.cfdv-nav-open { overflow: hidden; }
img { max-width: 100%; height: auto; }
a { color: var(--cfdv-charcoal); text-decoration-thickness: .08em; text-underline-offset: .16em; }
a:hover { color: var(--cfdv-teal-accessible); }
::selection { background: var(--cfdv-teal-accessible); color: #fff; }

h1,h2,h3,h4,h5,h6 {
  margin-top: 0;
  color: var(--cfdv-slate);
  font-family: "Josefin Sans", sans-serif;
  font-weight: 700;
  line-height: 1.2;
  text-wrap: balance;
}
h1 { font-size:68px; line-height:1.18; }
h2 { font-size:35px; line-height:1.3; }
h3 { font-size:30px; line-height:1.3; }
h4 { font-size:25px; line-height:1.2; }
h5 { font-size:20px; line-height:1.2; }
h6 { font-size:18px; line-height:1.25; }

/* Respect Gutenberg's explicit font-size classes. Content imported from the
   Astra site uses has-medium-font-size on many H2/H3 blocks, so do not
   override those classes with the global heading scale. */

.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;
}
.screen-reader-text:focus {
  clip: auto !important; clip-path: none; height: auto; width: auto; top: 12px; left: 12px; z-index: 100000; padding: 12px 16px; background: #fff; color: #000; border-radius: var(--cfdv-radius-sm); box-shadow: var(--cfdv-shadow);
}
:focus-visible { outline: 3px solid var(--cfdv-yellow); outline-offset: 3px; }

.cfdv-content-width { width: min(calc(100% - 48px), var(--cfdv-content)); margin-inline: auto; }
.cfdv-reading-width { max-width: var(--cfdv-reading); }
.cfdv-main { min-height: 50vh; }

/* Header */
.cfdv-site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid var(--cfdv-border);
  transition: background-color .2s ease, box-shadow .2s ease, backdrop-filter .2s ease;
  isolation: isolate;
}
.cfdv-site-header.is-scrolled {
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(12px) saturate(150%);
  -webkit-backdrop-filter: blur(12px) saturate(150%);
  box-shadow: 0 8px 28px rgba(28,45,55,.08);
}
.cfdv-transparent-header .cfdv-site-header {
  position: absolute;
  left: 0; right: 0;
  background: transparent;
  border-color: transparent;
}
.cfdv-transparent-header .cfdv-site-header.is-scrolled {
  position: fixed;
  background: rgba(255,255,255,.94);
  border-color: var(--cfdv-border);
}
.cfdv-header-inner {
  width: min(calc(100% - 70px), 1400px);
  min-height: var(--cfdv-header-height);
  margin-inline: auto;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 24px;
}
.cfdv-brand { display: inline-flex; align-items: center; text-decoration: none; }
.cfdv-brand__logo { display:block; width:60px; height:60px; object-fit:contain; }
.cfdv-brand--text { font-family:"Josefin Sans",sans-serif; font-weight:700; font-size:1.35rem; }
.cfdv-primary-nav { justify-self: center; }
.cfdv-menu { display:flex; align-items:center; gap: 2px; margin:0; padding:0; list-style:none; }
.cfdv-menu > li { position:relative; display:flex; align-items:center; }
.cfdv-menu a { display:flex; align-items:center; min-height:48px; padding:0 11px; color:var(--cfdv-charcoal); font-weight:600; text-decoration:none; white-space:nowrap; transition:color .15s ease; }
.cfdv-menu > li > a::after { content:""; position:absolute; left:11px; right:11px; bottom:7px; height:2px; background:var(--cfdv-teal); transform:scaleX(0); transform-origin:center; transition:transform .18s ease; }
.cfdv-menu > li:hover > a::after,
.cfdv-menu > li:focus-within > a::after,
.cfdv-menu > .current-menu-item > a::after,
.cfdv-menu > .current-menu-ancestor > a::after { transform:scaleX(1); }
.cfdv-menu > .current-menu-item > a,
.cfdv-menu > .current-menu-ancestor > a,
.cfdv-menu a:hover { color:var(--cfdv-teal-accessible); }
.cfdv-submenu-toggle { border:0; background:transparent; width:28px; height:40px; padding:0; margin-left:-8px; display:grid; place-items:center; color:currentColor; cursor:pointer; }
.cfdv-submenu-toggle span { width:7px; height:7px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg) translateY(-2px); }
.cfdv-menu .sub-menu {
  position:absolute; top:calc(100% - 2px); left:0; z-index:100;
  min-width:260px; margin:0; padding:8px; list-style:none;
  background:#fff; border:1px solid var(--cfdv-border); border-top:2px solid var(--cfdv-teal); border-radius:0 0 var(--cfdv-radius) var(--cfdv-radius);
  box-shadow:var(--cfdv-shadow); opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity .15s ease, transform .15s ease, visibility .15s ease;
}
.cfdv-menu .sub-menu li { position:relative; }
.cfdv-menu .sub-menu a { min-height:auto; padding:11px 13px; white-space:normal; border-radius:var(--cfdv-radius-sm); }
.cfdv-menu .sub-menu a:hover { background:var(--cfdv-mist); }
.cfdv-menu li:hover > .sub-menu,
.cfdv-menu li:focus-within > .sub-menu { opacity:1; visibility:visible; transform:translateY(0); }
.cfdv-header-cta,
.cfdv-button,
.wp-block-button__link,
input[type="submit"] {
  display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:12px 24px;
  border:1px solid var(--cfdv-teal-accessible); border-radius:var(--cfdv-radius-sm); background:var(--cfdv-teal-accessible); color:#fff;
  font:600 .9rem/1.2 "Open Sans",sans-serif; text-transform:uppercase; letter-spacing:.035em; text-decoration:none;
  transition:transform .15s ease, box-shadow .15s ease, background-color .15s ease, border-color .15s ease, color .15s ease;
}
.cfdv-header-cta:hover,
.cfdv-button:hover,
.wp-block-button__link:hover,
input[type="submit"]:hover { transform:translateY(-1px); background:var(--cfdv-charcoal); border-color:var(--cfdv-charcoal); color:#fff; box-shadow:0 8px 20px rgba(28,45,55,.14); }
.cfdv-menu-toggle { display:none; border:0; background:transparent; width:44px; height:44px; padding:10px; cursor:pointer; color:var(--cfdv-charcoal); }
.cfdv-menu-toggle__lines { display:grid; gap:5px; }
.cfdv-menu-toggle__lines span { display:block; width:24px; height:2px; background:currentColor; border-radius:3px; transition:transform .2s ease, opacity .2s ease; }
.cfdv-site-header.nav-open .cfdv-menu-toggle__lines span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.cfdv-site-header.nav-open .cfdv-menu-toggle__lines span:nth-child(2) { opacity:0; }
.cfdv-site-header.nav-open .cfdv-menu-toggle__lines span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* Content compatibility */
.cfdv-page-header { width:min(calc(100% - 40px),var(--cfdv-content)); padding-top:48px; padding-bottom:26px; }
.cfdv-page-title { margin-bottom:0; font-size:30px; line-height:1.2; }
.cfdv-entry-content > * { width:min(calc(100% - 40px),var(--cfdv-content)); max-width:var(--cfdv-content); margin-left:auto; margin-right:auto; }
.cfdv-entry-content > .alignwide { width:min(calc(100% - 40px),var(--cfdv-wide)); max-width:var(--cfdv-wide); }
.cfdv-entry-content > .alignfull { width:100%; max-width:none; margin-left:0; margin-right:0; }
.cfdv-entry-content > .wp-block-uagb-container.alignfull { width:100%; max-width:none; }

/* Page editorial rhythm — tuned to preserve the cleaner Astra spacing on
   service/content pages without changing the underlying Gutenberg content. */
.cfdv-entry-content > p { margin-top:0; margin-bottom:1.45em; }
.cfdv-entry-content > h2 { margin-top:2.15em; margin-bottom:.72em; }
.cfdv-entry-content > h3 { margin-top:1.7em; margin-bottom:.62em; }
.cfdv-entry-content > h4,
.cfdv-entry-content > h5,
.cfdv-entry-content > h6 { margin-top:1.45em; margin-bottom:.55em; }
.cfdv-entry-content > h2:first-child,
.cfdv-entry-content > h3:first-child { margin-top:0; }
.cfdv-entry-content > ul,
.cfdv-entry-content > ol { margin-top:0; margin-bottom:1.45em; }
.cfdv-entry-content > .wp-block-media-text { margin-top:1.35em; margin-bottom:2.1em; }
.cfdv-entry-content .wp-block-media-text__content > p { margin-top:0; margin-bottom:1.25em; }
.cfdv-entry-content .wp-block-media-text__content > p:last-child { margin-bottom:0; }
.cfdv-entry-content > p:empty { display:none; }
.cfdv-entry-content > .wp-block-separator { display:none; }

.cfdv-entry-content .wp-block-media-text .wp-block-media-text__content { padding:0 0 0 8%; }
.cfdv-entry-content .wp-block-media-text.has-media-on-the-right .wp-block-media-text__content { padding:0 8% 0 0; }
.cfdv-entry-content .wp-block-media-text.has-background .wp-block-media-text__content { padding:8%; }
.cfdv-featured-image { margin-top:0; margin-bottom:32px; }
.cfdv-featured-image img { width:100%; border-radius:var(--cfdv-radius); }

/* Prose */
.cfdv-single,
.cfdv-project { padding-block:64px 80px; }
.cfdv-single-header,
.cfdv-project-header { margin-bottom:32px; }
.cfdv-single-title,
.cfdv-project-title { margin-bottom:14px; font-size:30px; line-height:1.2; letter-spacing:0; }
.cfdv-entry-meta,
.cfdv-project-taxonomy { color:#687078; font-size:.9rem; }
.cfdv-project .cfdv-prose { max-width:900px; }
.cfdv-project-featured { max-width:1040px; margin:0 0 36px; overflow:hidden; border-radius:var(--cfdv-radius-lg); box-shadow:var(--cfdv-shadow-sm); }
.cfdv-project-featured img { display:block; width:100%; height:auto; }
.cfdv-prose > * { margin-top:0; }
.cfdv-prose p { margin:0 0 1.15em; }
.cfdv-prose h2 { margin:2.35em 0 .72em; }
.cfdv-prose h3 { margin:1.9em 0 .65em; }
.cfdv-prose h4,.cfdv-prose h5,.cfdv-prose h6 { margin:1.55em 0 .55em; }
.cfdv-prose h2:first-child,.cfdv-prose h3:first-child { margin-top:0; }
.cfdv-prose ul,.cfdv-prose ol { margin:0 0 1.3em; padding-left:1.5em; }
.cfdv-prose li + li { margin-top:.42em; }
.cfdv-prose figure,.cfdv-prose .wp-block-image,.cfdv-prose .wp-block-table { margin-top:1.8em; margin-bottom:1.8em; }
.cfdv-prose .wp-block-separator { display:none; }
.cfdv-prose a { color:var(--cfdv-teal-accessible); }
.cfdv-prose blockquote { margin:2rem 0; padding:1.2rem 1.5rem; background:var(--cfdv-mist); border-left:4px solid var(--cfdv-teal); border-radius:0 var(--cfdv-radius-sm) var(--cfdv-radius-sm) 0; }
.cfdv-prose table { width:100%; border-collapse:collapse; overflow:hidden; border-radius:var(--cfdv-radius-sm); }
.cfdv-prose th,.cfdv-prose td { padding:11px 13px; border:1px solid #dce2e6; text-align:left; }
.cfdv-prose th { background:var(--cfdv-mist); }
.post-navigation { margin-top:48px; padding-top:28px; border-top:1px solid var(--cfdv-border); }
.post-navigation .nav-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.post-navigation a { display:block; padding:16px 18px; border:1px solid var(--cfdv-border); border-radius:var(--cfdv-radius); background:#fff; text-decoration:none; box-shadow:var(--cfdv-shadow-sm); }
.post-navigation a:hover { border-color:rgba(9,174,184,.35); transform:translateY(-1px); }

/* Archives / cards */
.cfdv-archive { padding-block:58px 80px; }
.cfdv-archive-header { margin-bottom:34px; }
.cfdv-archive-header h1 { margin-bottom:8px; font-size:35px; line-height:1.3; }
.cfdv-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; }
.cfdv-card { overflow:hidden; border:1px solid var(--cfdv-border); border-radius:var(--cfdv-radius-lg); background:linear-gradient(180deg,#fff 0%,#fcfdfd 100%); box-shadow:var(--cfdv-shadow-sm); transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.cfdv-card:hover { transform:translateY(-4px); border-color:rgba(9,174,184,.38); box-shadow:var(--cfdv-shadow); }
.cfdv-card__link { display:flex; flex-direction:column; height:100%; color:inherit; text-decoration:none; }
.cfdv-card__media { aspect-ratio:16/9; overflow:hidden; background:var(--cfdv-mist); }
.cfdv-card__media img { width:100%; height:100%; object-fit:cover; transition:transform .32s ease; }
.cfdv-card:hover .cfdv-card__media img { transform:scale(1.035); }
.cfdv-card__body { display:flex; flex:1; flex-direction:column; padding:26px; }
.cfdv-card__meta { display:block; margin-bottom:9px; color:#71777d; font-size:.8rem; font-weight:600; letter-spacing:.025em; text-transform:uppercase; }
.cfdv-card__title { margin-bottom:11px; font-size:clamp(1.35rem,2vw,1.65rem); letter-spacing:-.012em; }
.cfdv-card__excerpt { color:#626a72; }
.cfdv-card__readmore { display:inline-block; margin-top:auto; padding-top:20px; color:var(--cfdv-teal-accessible); font-weight:700; }
.navigation.pagination { margin-top:42px; }
.nav-links { display:flex; flex-wrap:wrap; gap:8px; }
.page-numbers { display:grid; place-items:center; min-width:42px; min-height:42px; padding:4px 10px; border:1px solid var(--cfdv-border); border-radius:var(--cfdv-radius-sm); text-decoration:none; }
.page-numbers.current { background:var(--cfdv-teal-accessible); border-color:var(--cfdv-teal-accessible); color:#fff; }

/* Forms & calculators */
input[type="text"],input[type="email"],input[type="url"],input[type="password"],input[type="search"],input[type="number"],input[type="tel"],select,textarea {
  width:100%; min-height:48px; padding:12px 14px; border:1px solid #c8d2d8; border-radius:10px; background:#fff; color:var(--cfdv-charcoal); font:inherit; transition:border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}
textarea { min-height:150px; resize:vertical; }
input[type="text"]:hover,input[type="email"]:hover,input[type="url"]:hover,input[type="password"]:hover,input[type="search"]:hover,input[type="number"]:hover,input[type="tel"]:hover,select:hover,textarea:hover { border-color:#aab7bf; }
input[type="text"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="password"]:focus,input[type="search"]:focus,input[type="number"]:focus,input[type="tel"]:focus,select:focus,textarea:focus { border-color:var(--cfdv-teal-accessible); box-shadow:0 0 0 3px rgba(8,127,135,.12); outline:0; }
.cfdv-form,.cfdv-calculator,.calculator-container,[class*="calculator"] form { border-radius:var(--cfdv-radius-lg); }
.cfdv-form-wrap,.calculator-container,.cfdv-calculator { overflow-wrap:anywhere; }
.cfdv-form label,.calculator-container label,[class*="calculator"] label { font-weight:600; color:var(--cfdv-charcoal); }

/* Footer */
.cfdv-site-footer { margin-top:0; background:linear-gradient(180deg,#f5f7f8 0%,#edf1f2 100%); border-top:1px solid var(--cfdv-border); }
.cfdv-footer-inner { position:relative; width:min(calc(100% - 48px),var(--cfdv-content)); margin:auto; padding:72px 0 50px; }
.cfdv-footer-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:36px; align-items:start; }
.cfdv-footer-column { min-width:0; }
.cfdv-footer-widget { margin:0 0 20px; }
.cfdv-footer-widget__title,.cfdv-footer-widget .widget-title,.cfdv-footer-widget .wp-block-heading { font-size:1.15rem; margin-bottom:14px; letter-spacing:-.01em; }
.cfdv-footer-widget ul { margin:0; padding:0; list-style:none; }
.cfdv-footer-widget li + li { margin-top:8px; }
.cfdv-footer-widget a { text-decoration:none; }
.cfdv-footer-widget iframe { display:block; width:100%; max-width:100%; border:0; border-radius:var(--cfdv-radius-lg); box-shadow:var(--cfdv-shadow-sm); }
.cfdv-social-link { display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; margin-top:8px; border:1px solid rgba(9,174,184,.25); border-radius:50%; color:var(--cfdv-teal-accessible); background:#fff; }
.cfdv-social-link svg { width:19px; height:19px; fill:currentColor; }
.cfdv-social-link:hover { background:var(--cfdv-teal-accessible); color:#fff; }
.cfdv-footer-bottom { border-top:1px solid var(--cfdv-border); }
.cfdv-footer-bottom__inner { width:min(calc(100% - 48px),var(--cfdv-content)); margin:auto; padding:20px 0; }
.cfdv-footer-bottom p { margin:0; font-size:.88rem; color:#697077; }

/* Error/search */
.cfdv-error-page { padding-block:88px; text-align:center; }
.cfdv-error-page .search-form { max-width:560px; margin:24px auto; }

/* Future WooCommerce: no overrides unless plugin is active. */
.woocommerce .cfdv-main { padding-block:48px; }

@media (max-width: 1180px) {
  .cfdv-header-inner { width:min(calc(100% - 40px),1400px); gap:14px; }
  .cfdv-menu a { padding-inline:8px; font-size:.92rem; }
  .cfdv-header-cta { padding-inline:18px; }
}

@media (max-width: 1024px) {
  :root { --cfdv-header-height: 70px; }
  h1 { font-size:50px; }
  h2 { font-size:35px; }
  h3 { font-size:30px; }
  /* Gutenberg font-size utility classes keep their own responsive sizing. */
  .cfdv-header-inner { grid-template-columns:1fr auto; width:calc(100% - 40px); }
  .cfdv-menu-toggle { display:block; grid-column:2; grid-row:1; justify-self:end; }
  .cfdv-header-cta { display:none; }
  .cfdv-primary-nav { display:none; grid-column:1 / -1; justify-self:stretch; margin-top:2px; padding:8px 0 16px; border-top:1px solid var(--cfdv-border); }
  .cfdv-site-header.nav-open .cfdv-primary-nav { display:block; }
  .cfdv-site-header.nav-open { background:rgba(255,255,255,.98); box-shadow:var(--cfdv-shadow); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); }
  .cfdv-menu { display:block; max-height:calc(100dvh - 86px); overflow:auto; overscroll-behavior:contain; }
  .cfdv-menu > li { display:grid; grid-template-columns:1fr auto; border-top:1px solid var(--cfdv-border); }
  .cfdv-menu > li:first-child { border-top:0; }
  .cfdv-menu > li > a { min-height:50px; padding:9px 6px; font-size:.98rem; }
  .cfdv-menu > li > a::after { display:none; }
  .cfdv-submenu-toggle { margin:0; width:48px; height:50px; }
  .cfdv-menu .sub-menu { position:static; grid-column:1 / -1; display:none; min-width:0; padding:2px 0 10px 14px; border:0; box-shadow:none; opacity:1; visibility:visible; transform:none; background:transparent; }
  .cfdv-menu .submenu-open > .sub-menu { display:block; }
  .cfdv-menu li:hover > .sub-menu:not(.submenu-open > .sub-menu) { display:none; }
  .cfdv-menu .sub-menu a { padding:10px 12px; border-radius:8px; }
  .cfdv-card-grid { gap:20px; }
  .cfdv-footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .post-navigation .nav-links { grid-template-columns:1fr; }
}

@media (max-width: 544px) {
  h1 { font-size:30px; }
  h2 { font-size:20px; }
  h3 { font-size:18px; }
  /* Gutenberg font-size utility classes keep their own responsive sizing. */
}

@media (max-width: 680px) {
  body { font-size:14.5px; }
  .cfdv-entry-content .wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__content,
  .cfdv-entry-content .wp-block-media-text.has-media-on-the-right.is-stacked-on-mobile .wp-block-media-text__content { padding:8% 0 0; }
  .cfdv-content-width { width:min(calc(100% - 30px),var(--cfdv-content)); }
  .cfdv-page-header,
  .cfdv-entry-content > *:not(.alignfull) { width:min(calc(100% - 30px),var(--cfdv-content)); }
  .cfdv-header-inner { width:calc(100% - 30px); }
  .cfdv-brand__logo { width:54px; height:54px; }
  .cfdv-card-grid { grid-template-columns:1fr; }
  .cfdv-footer-inner,.cfdv-footer-bottom__inner { width:calc(100% - 30px); }
  .cfdv-footer-inner { padding-top:50px; }
  .cfdv-footer-grid { grid-template-columns:1fr; gap:24px; }
  .cfdv-single,.cfdv-project { padding-block:44px 60px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}
/* Comments */
.cfdv-comments { max-width: var(--cfdv-reading); margin: 48px auto 0; padding: 0 15px; }
.cfdv-comments__title { font-size: 25px; margin-bottom: 24px; }
.cfdv-comment-list { list-style: none; margin: 0; padding: 0; }
.cfdv-comment-list .comment-body { padding: 20px 0; border-top: 1px solid var(--cfdv-border); }
.cfdv-comment-list .bypostauthor > .comment-body { padding-left:16px; border-left:3px solid var(--cfdv-teal-accessible); }
.cfdv-comment-list ol.children { list-style: none; margin: 0 0 0 32px; padding: 0; }
.cfdv-comment-form { margin-top: 32px; }
.cfdv-comment-form p { margin: 0 0 14px; }
.cfdv-comment-form label { display: block; font-weight: 600; margin-bottom: 6px; }
.cfdv-comment-form input[type="text"],
.cfdv-comment-form input[type="email"],
.cfdv-comment-form input[type="url"],
.cfdv-comment-form textarea {
  width: 100%; padding: 10px 14px; border: 1px solid var(--cfdv-border);
  border-radius: var(--cfdv-radius-sm); font-family: inherit; font-size: 15px;
}
.cfdv-comment-form input:focus,
.cfdv-comment-form textarea:focus { outline: 2px solid var(--cfdv-teal-accessible); outline-offset: 2px; }
.cfdv-comments__closed { color: var(--cfdv-slate); }

/* Search form */
.cfdv-search-form { display: flex; align-items: center; gap: 8px; max-width: 420px; }
.cfdv-search-form__field {
  flex: 1; padding: 10px 14px; border: 1px solid var(--cfdv-border);
  border-radius: var(--cfdv-radius-sm); font-family: inherit; font-size: 15px;
}
.cfdv-search-form__field:focus { outline: 2px solid var(--cfdv-teal-accessible); outline-offset: 2px; }
.cfdv-search-form__submit {
  display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px; min-height:40px; padding:0; border:0; border-radius:var(--cfdv-radius-sm);
  background:var(--cfdv-teal-accessible); color:#fff; cursor:pointer;
}
.cfdv-search-form__submit svg { fill: currentColor; }
.cfdv-search-form__submit:hover { background: var(--cfdv-teal-accessible); }

@media (max-width: 680px) {
  .cfdv-comment-list ol.children { margin-left:16px; }
  .cfdv-comments { padding-inline:0; }
}
