/*
 Theme Name: PG Twenty Four
 Template: twentytwentyfour
 Version: 1.0
 Description: Prospect Generator child block theme based on Twenty Twenty-Four.
*/


/* ========================================================================== Root styles */
/* === Icon headings (Tabler SVG via mask) === */
:root{
  /* Pointer (filled) */
  --icon-pointer: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black"><path d="M3.039 4.277l3.904 13.563c.185 .837 .92 1.516 1.831 1.642l.17 .016a2.2 2.2 0 0 0 1.982 -1.006l.045 -.078l1.4 -2.072l4.05 4.05a2.067 2.067 0 0 0 2.924 0l1.047 -1.047c.388 -.388 .606 -.913 .606 -1.461l-.008 -.182a2.067 2.067 0 0 0 -.598 -1.28l-4.047 -4.048l2.103 -1.412c.726 -.385 1.18 -1.278 1.053 -2.189a2.2 2.2 0 0 0 -1.701 -1.845l-13.524 -3.89a1 1 0 0 0 -1.236 1.24z"/></svg>');
  /* Calculator (outline) */
  --icon-calculator: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 5a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2z"/><path d="M8 8a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1z"/><path d="M8 14l0 .01"/><path d="M12 14l0 .01"/><path d="M16 14l0 .01"/><path d="M8 17l0 .01"/><path d="M12 17l0 .01"/><path d="M16 17l0 .01"/></svg>');
  /* Presentation (outline) */
  --icon-presentation: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 4h18"/><path d="M4 4v10a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V4"/><path d="M12 16v4"/><path d="M9 20h6"/><path d="M8 12l3-3l2 2l3-3"/></svg>');
  /* House (filled) */
  --icon-house: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black"><path d="M12.707 2.293l9 9c.63 .63 .184 1.707 -.707 1.707h-1v6a3 3 0 0 1 -3 3h-1v-7a3 3 0 0 0 -2.824 -2.995l-.176 -.005h-2a3 3 0 0 0 -3 3v7h-1a3 3 0 0 1 -3 -3v-6h-1c-.89 0 -1.337 -1.077 -.707 -1.707l9 -9a1 1 0 0 1 1.414 0m.293 11.707a1 1 0 0 1 1 1v7h-4v-7a1 1 0 0 1 .883 -.993l.117 -.007z"/></svg>');
  /* Target (outline) */
  --icon-target: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="1"/><circle cx="12" cy="12" r="5"/><circle cx="12" cy="12" r="9"/></svg>');
  /* Map (outline) */
  --icon-map: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 7l6 -3l6 3l6 -3v13l-6 3l-6 -3l-6 3v-13"/><path d="M9 4v13"/><path d="M15 7v13"/></svg>');
	/* Users (outline) */
	--icon-users: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M9 7m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0"/><path d="M3 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/><path d="M21 21v-2a4 4 0 0 0 -3 -3.85"/></svg>');
  /* Circle-check (filled) */
  --icon-circle-check: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'><path stroke='none' d='M0 0h24v24H0z' fill='none'/><path d='M17 3.34a10 10 0 1 1 -14.995 8.984l-.005 -.324l.005 -.324a10 10 0 0 1 14.995 -8.336zm-1.293 5.953a1 1 0 0 0 -1.32 -.083l-.094 .083l-3.293 3.292l-1.293 -1.292l-.094 -.083a1 1 0 0 0 -1.403 1.403l.083 .094l2 2l.094 .083a1 1 0 0 0 1.226 0l.094 -.083l4 -4l.083 -.094a1 1 0 0 0 -.083 -1.32z'/></svg>");
}


/* ========================================================================== Header styles */
.wp-block-navigation,
.wp-block-navigation .wp-block-button a {
	font-size: 16px;
}

/* 1) Top-level hover: remove underline + make hover white */
.wp-block-navigation a:hover,
.wp-block-navigation a:focus {
  text-decoration: none !important;
  color: var(--wp--preset--color--white) !important;
}

.wp-block-navigation a:active {
	border: 0 !important;
	color: var(--wp--preset--color--white) !important;
}

/* Remove focus ring when the focus isn't keyboard-initiated */
.wp-block-navigation a:focus:not(:focus-visible),
.wp-block-navigation .wp-block-navigation-item__content:focus:not(:focus-visible) {
  outline: none !important;
  box-shadow: none !important;
}

/* Overlay menu too */
.wp-block-navigation__responsive-container a:focus:not(:focus-visible),
.wp-block-navigation__responsive-container 
  .wp-block-navigation-item__content:focus:not(:focus-visible) {
  outline: none !important;
  box-shadow: none !important;
}

/* iOS/Android tap flash */
.wp-block-navigation a { -webkit-tap-highlight-color: transparent; }

/* Site Logo: remove click/tap focus ring, keep keyboard ring */
.wp-block-site-logo a:focus:not(:focus-visible) {
  outline: none !important;
  box-shadow: none !important; /* TT4 sometimes uses box-shadow for focus */
}

/* Remove mobile tap highlight */
.wp-block-site-logo a { 
  -webkit-tap-highlight-color: transparent; 
}

/* Extra belt-and-braces if the image itself ever gets focused */
.wp-block-site-logo img:focus {
  outline: none !important;
  box-shadow: none !important;
}

/* 2) Active/current menu item: brand light blue */
/* Active/Current: Navigation block + Page List */
.wp-block-navigation a[aria-current],
.wp-block-navigation .wp-block-navigation-item__content[aria-current],
.wp-block-navigation .wp-block-page-list__item--current
  > .wp-block-navigation-item__content {
  color: var(--wp--preset--color--brand-lighter-blue) !important;
  text-decoration: none;
}

/* Keep the active color even on hover/focus (so it doesn’t flip to white) */
.wp-block-navigation a[aria-current]:hover,
.wp-block-navigation a[aria-current]:focus,
.wp-block-navigation .wp-block-navigation-item__content[aria-current]:hover,
.wp-block-navigation .wp-block-navigation-item__content[aria-current]:focus {
  color: var(--wp--preset--color--brand-lighter-blue) !important;
}

/* Submenu version (optional but tidy) */
.wp-block-navigation__submenu-container a[aria-current],
.wp-block-navigation__submenu-container
  .wp-block-navigation-item__content[aria-current] {
  color: var(--wp--preset--color--brand-lighter-blue) !important;
}

/* 3) Submenu panel: spacing, width, border, alignment */
.wp-block-navigation__submenu-container {
	display: block;
  box-sizing: border-box;
  left: 0 !important;
  right: auto !important;
  padding: 40px 20px 20px 20px !important;
  border: none !important;
  box-shadow: none;
}

.wp-block-navigation .wp-block-navigation-item.has-child
  > .wp-block-navigation__submenu-container {
  width: 340px !important;
  inline-size: 340px !important;
}

/* 4) Submenu item spacing (vertical rhythm) */
.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  padding: 15px 0;
}

/* 5) Submenu links: consistent hover/active behavior */
.wp-block-navigation__submenu-container a:hover,
.wp-block-navigation__submenu-container a:focus {
  text-decoration: none !important;
  color: var(--wp--preset--color--white) !important;
}

.wp-block-navigation__submenu-container .current-menu-item > a,
.wp-block-navigation__submenu-container a[aria-current="page"] {
  color: var(--wp--preset--color--brand-light-blue) !important;
}

/* 6) Prevent awkward wrapping on long labels but still allow 2 lines if needed */
.wp-block-navigation__submenu-container a {
  line-height: 1.4;
  white-space: normal;
  word-break: break-word;
}

/* === Submenu icons (reuse footer vars, no ring) === */
.wp-block-navigation__submenu-container .nav-icon > .wp-block-navigation-item__content {
  position: relative;
  padding-left: 28px;
  display: inline-block;
}

.wp-block-navigation__submenu-container .nav-icon > .wp-block-navigation-item__content::before{
  content:"";
  position:absolute;
  left:0; top:50%;
  transform: translateY(-50%);
  width:18px; height:18px;
  background-color: var(--icon-color, var(--wp--preset--color--brand-green));
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
  -webkit-mask-position:center;  mask-position:center;
  -webkit-mask-size:contain;      mask-size:contain;
}

.wp-block-navigation__submenu-container .nav-icon.icon-calculator   > .wp-block-navigation-item__content::before { -webkit-mask-image: var(--icon-calculator);   mask-image: var(--icon-calculator); }
.wp-block-navigation__submenu-container .nav-icon.icon-presentation > .wp-block-navigation-item__content::before { -webkit-mask-image: var(--icon-presentation); mask-image: var(--icon-presentation); }
.wp-block-navigation__submenu-container .nav-icon.icon-house        > .wp-block-navigation-item__content::before { -webkit-mask-image: var(--icon-house);        mask-image: var(--icon-house); }
.wp-block-navigation__submenu-container .nav-icon.icon-target       > .wp-block-navigation-item__content::before { -webkit-mask-image: var(--icon-target);       mask-image: var(--icon-target); }
.wp-block-navigation__submenu-container .nav-icon.icon-map          > .wp-block-navigation-item__content::before { -webkit-mask-image: var(--icon-map);          mask-image: var(--icon-map); }
.wp-block-navigation__submenu-container .nav-icon.icon-pointer      > .wp-block-navigation-item__content::before { -webkit-mask-image: var(--icon-pointer);      mask-image: var(--icon-pointer); }
.wp-block-navigation__submenu-container .nav-icon.icon-users      	> .wp-block-navigation-item__content::before { -webkit-mask-image: var(--icon-users);      	 mask-image: var(--icon-users); }

.wp-block-navigation__submenu-container .nav-icon.--green { --icon-color: var(--wp--preset--color--brand-green); }
.wp-block-navigation__submenu-container .nav-icon.--blue  { --icon-color: var(--wp--preset--color--brand-light-blue); }
.wp-block-navigation__submenu-container .nav-icon.--white { --icon-color: #fff; }

/* Active/current: make text and icon brand-lighter-blue */
.wp-block-navigation .nav-icon > .wp-block-navigation-item__content[aria-current],
.wp-block-navigation__submenu-container .nav-icon > .wp-block-navigation-item__content[aria-current] {
  color: var(--wp--preset--color--brand-lighter-blue) !important;
  --icon-color: var(--wp--preset--color--brand-lighter-blue) !important;
}

/* Keep the active color on hover/focus too */
.wp-block-navigation .nav-icon > .wp-block-navigation-item__content[aria-current]:hover,
.wp-block-navigation .nav-icon > .wp-block-navigation-item__content[aria-current]:focus,
.wp-block-navigation__submenu-container .nav-icon > .wp-block-navigation-item__content[aria-current]:hover,
.wp-block-navigation__submenu-container .nav-icon > .wp-block-navigation-item__content[aria-current]:focus {
  color: var(--wp--preset--color--brand-lighter-blue) !important;
  --icon-color: var(--wp--preset--color--brand-lighter-blue) !important;
}

/* === Mobile overlay === */
@media (max-width: 782px) {
  .wp-block-navigation__responsive-container 
    .nav-icon > .wp-block-navigation-item__content {
    display: flex;
    align-items: center;
    gap: 10px;
    row-gap: 10px;
  }

  .wp-block-navigation__responsive-container
    .wp-block-navigation__submenu-container > li {
    margin-block: 6px;
  }

  .wp-block-navigation__responsive-container 
    .nav-icon > .wp-block-navigation-item__content::before {
    position: static;
    transform: none;
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
  }
}


/* ========================================================================== Custom styles */
/* Heading: green accent bar on the left */
.wp-block-heading.is-style-accent-left {
  position: relative;
  border-left: 7px solid var(--wp--preset--color--brand-green) !important;
  padding: 10px 0 10px 15px;
  left: 12px;
}

/* Column: top border */
.wp-block-columns.is-style-border-top {
  position: relative;
  border-top: none !important;
  --border-line-color: var(--wp--preset--color--brand-green);
  --border-line-height: 1px;
  --border-line-span: 80%;
}
.wp-block-columns.is-style-border-top::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: var(--border-line-span);
  border-top: var(--border-line-height) solid var(--border-line-color);
  transform: translateX(-50%);
  pointer-events: none;
}
.wp-block-columns.is-style-border-top.--left::before { left: 0; transform: none; }
.wp-block-columns.is-style-border-top.--right::before { left: auto; right: 0; transform: none; }
.wp-block-columns.is-style-border-top.--w-60::before { width: 60%; }
.wp-block-columns.is-style-border-top.--w-70::before { width: 70%; }
.wp-block-columns.is-style-border-top.--w-80::before { width: 80%; }
.wp-block-columns.is-style-border-top.--w-100::before { width: 100%; }

/* Image: border */
.wp-block-image.is-style-img-border img { border: 7px solid var(--wp--preset--color--brand-green); }
.wp-block-image.is-style-img-border.--left img { border-right: 0 !important; }
.wp-block-image.is-style-img-border.--right img { border-left: 0 !important; }
.wp-block-image.is-style-img-border.--white img { border-color: var(--wp--preset--color--white); }

/* Mobile updates */
@media (max-width:640px) {
  .wp-block-heading.is-style-accent-left { left: 0; }
  .wp-block-image.is-style-img-border.--left img,  
  .wp-block-image.is-style-img-border.--right img { border: 0 !important; }
  .wp-block-columns.is-style-border-top { padding-top: 2rem !important; margin-top: 2rem; }
  .wp-block-columns.is-style-border-top::before { width: 100% !important; }
  .wp-block-image.hide-mobile { display: none; }
}

/* ========================================================================== Content styles */
.remove-margin-block-start { 
	margin-block-start: 0;
 }

/* Apply to the List block: class="list-icon icon-check --green" */
.wp-block-list.list-icon {
  font-size: 18px;
  line-height: 1.6;
  list-style: none;
  margin-block: 1.2rem 0;
  padding: 0;
  --icon-color: currentColor;
}

.wp-block-list.list-icon > li {
  position:relative;
  padding-left: 1.75em;
  margin :0 0 .5em 0;
}

.wp-block-list.list-icon > li::before {
  content:"";
  position:absolute;
  left:0;
  top:.25em;
  width:1.1em;
  height:1.1em;
  background: var(--icon-color);
  -webkit-mask-size:100% 100%;
          mask-size:100% 100%;
  -webkit-mask-repeat:no-repeat;
          mask-repeat:no-repeat;
}

.wp-block-list.list-icon.icon-check > li::before {-webkit-mask-image: var(--icon-circle-check); mask-image: var(--icon-circle-check); }

/* color modifiers (reuse your palette vars) */
.wp-block-list.list-icon.--green { --icon-color: var(--wp--preset--color--brand-green); }
.wp-block-list.list-icon.--blue { --icon-color: var(--wp--preset--color--brand-light-blue); }
.wp-block-list.list-icon.--white { --icon-color: #fff; }

/* Fallback if masks aren’t supported */
@supports not (-webkit-mask-image: url("")) {
  .wp-block-list.list-icon.icon-check > li::before{
    background:none;
    background-image: var(--icon-circle-check);
    background-repeat:no-repeat;
    background-size:1.1em 1.1em;
  }
}

/* Align the iframe */
/* Center and constrain iframes placed directly in a constrained Group */
.is-layout-constrained > .hubspot-iframe,
.is-layout-constrained > iframe {
  display: block;
  width: 100%;
  max-width: var(--wp--style--global--content-size);
  margin-left: auto;
  margin-right: auto;
  border: 0;
}


/* ========================================================================== Blog home list (Marketing News) */
.meta-inline .wp-block-post-date {
  min-width: 14ch;
  white-space: nowrap;
  display: inline-flex;
}
.meta-inline .meta-sep { margin: 0 .30rem; }

.cards-grid {
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:var(--wp--style--block-gap,1.5rem);
}
@media (max-width:1024px){ .cards-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .cards-grid{ grid-template-columns:1fr; } }

.cards-grid .wp-block-post {
	background: var(--wp--preset--color--white);
	border:1px solid rgba(0,0,0,.08);
	box-shadow:0 1px 2px rgba(0,0,0,.04);
  border-radius: 0 !important;
  margin-block-start: 0;
}
.cards-grid .wp-block-post .wp-block-post-featured-image img { display:block; width:100%; height:auto; }
.cards-grid .wp-block-post .wp-block-post-title { font-size: var(--wp--preset--font-size--h-3); padding-top: 20px; }
.cards-grid .wp-block-post .wp-block-post-title a { text-decoration:none; }
.cards-grid .wp-block-post .wp-block-post-excerpt { font-size: 16px; }

/* Marketing News cards: un-round featured images + add brand top border */
.cards-grid .wp-block-post .wp-block-post-featured-image,
.cards-grid .wp-block-post .wp-block-post-featured-image a,
.cards-grid .wp-block-post .wp-block-post-featured-image img {
  border-radius: 0 !important;      /* kill any inherited rounding */
  display: block;
  width: 100%;
  height: auto;
}

/* top border on the figure wrapper so it spans full width of the image */
.cards-grid .wp-block-post .wp-block-post-featured-image {
  border-top: 9px solid var(--wp--preset--color--brand-light-blue);
}

/* keep card excerpts tidy & consistent height */
.cards-grid .wp-block-post-excerpt__excerpt{
    display:-webkit-box;
    -webkit-line-clamp:3;     /* show ~3 lines, truncate with ellipsis */
    -webkit-box-orient:vertical;
    overflow:hidden;
}
.cards-grid .wp-block-post-excerpt { margin-bottom: .5rem; }
.cards-grid .wp-block-read-more {
    display: inline-block;
    text-decoration: none;
    font-weight: 400;
    font-size: 16px;
}
.cards-grid .wp-block-read-more:hover { text-decoration: underline; }

/* Remove the padding that wraps the featured image */
.news-card{
    padding: 0 !important; /* overrides the inline padding on the group */
}

/* Featured image flush to edges + top brand bar */
.news-card .wp-block-post-featured-image{
    margin: 0;
    border-top: 9px solid var(--wp--preset--color--brand-light-blue);
}
.news-card .wp-block-post-featured-image,
.news-card .wp-block-post-featured-image a,
.news-card .wp-block-post-featured-image img{
    border-radius: 0 !important;
    display: block;
    width: 100%;
    height: auto;
}

/* Add the padding back to the content, not the image */
.news-card .wp-block-post-title,
.news-card .meta-inline,
.news-card .wp-block-post-excerpt,
.news-card .wp-block-read-more{
    padding-left: 1rem;
    padding-right: 1rem;
}
.news-card .wp-block-post-title{ padding-top: 1rem; }
.news-card .wp-block-read-more{ padding-bottom: 1rem; display:inline-block; }

.pg-news-grid,
.pg-news-grid li { list-style: none; margin: 0; padding: 0; }
.pg-news-grid li::marker { content: none; } /* Safari-safe */

.pg-news-grid .news-card{ padding:0 !important; } /* if you want the image flush */
.pg-news-grid .wp-block-post-featured-image{ margin:0; border-top:9px solid var(--wp--preset--color--brand-light-blue); }
.pg-news-grid .wp-block-post-title,
.pg-news-grid .meta-inline,
.pg-news-grid .wp-block-post-excerpt,
.pg-news-grid .wp-block-read-more{ padding:0 1rem; }
.pg-news-grid .wp-block-post-title{ padding-top:1rem; }
.pg-news-grid .wp-block-read-more{ padding-bottom:1rem; display:inline-block; }

/* Normalize the meta row in shortcode cards */
.pg-news-grid .meta-inline{
    display: flex;                /* make sure it's flex even if theme CSS isn't applied here */
    flex-wrap: nowrap;            /* keep date | categories on one line */
    align-items: center;          /* vertical align */
    gap: .5rem;                   /* consistent spacing between items */
    line-height: 1.2;
    margin-top: .25rem;
}

/* Date: fixed min width + no wrapping (same as listing) */
.pg-news-grid .meta-inline .wp-block-post-date{
    display: inline-flex;
    min-width: 14ch;
    white-space: nowrap;
    margin: 0;
}

/* The pipe separator */
.pg-news-grid .meta-inline .meta-sep{
    margin: 0 .30rem;
    line-height: 1;
}

/* Categories: inline and allowed to shrink into the same row */
.pg-news-grid .meta-inline .taxonomy-category{
    display: inline-flex;
    flex: 1 1 auto;               /* share the remaining width */
    flex-wrap: wrap;              /* allow wrapping of long tag lists without dropping below the pipe */
    gap: .25rem;
    margin: 0;
}

/* Tidy commas inserted by WP between terms */
.pg-news-grid .taxonomy-category .wp-block-post-terms__separator{
    margin: 0 .25rem;
}

.pg-news-grid{
    display:grid;
    gap: var(--wp--style--block-gap, 1.5rem);
}

/* desktop defaults */
.pg-news-grid.cols-3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.pg-news-grid.cols-2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.pg-news-grid.cols-1{ grid-template-columns:1fr; }

/* breakpoints */
@media (max-width:1024px){
    .pg-news-grid.cols-3{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:640px){
    .pg-news-grid.cols-3,
    .pg-news-grid.cols-2{ grid-template-columns:1fr; }
}


/* ========================================================================== Blog post */
/* spacing between items in the Latest Posts list */
.pg-latest-posts.wp-block-latest-posts__list li {
  margin-bottom: var(--wp--preset--spacing--20); /* tweak to taste */
}

.pg-latest-posts.wp-block-latest-posts__list li:last-child {
  margin-bottom: 0;
}


/* ========================================================================== Logo rotator */
.logo-rotator {
  width: clamp(220px, 32vw, 420px);
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  background: #EFEFF1;
  position: relative;
  overflow: hidden;
  display: grid;
  place-items: center;
  isolation: isolate;
  display: block;
  margin: 0 auto;
}
.logo-rotator img {
  position: absolute;
  inset: 14% 14%;
  width: 72%;
  height: 72%;
  object-fit: contain;
  opacity: 0;
  transition: opacity .6s ease;
  will-change: opacity;
}
.logo-rotator.is-gray img { filter: grayscale(100%); }
.logo-rotator img.is-active { opacity: 1; }

@media (prefers-reduced-motion: reduce){
  .logo-rotator img { transition: none; }
}


/* ========================================================================== Footer styles */
footer { margin-block-start: 0; font-size: 16px; }
footer a { text-decoration: none; }
footer .footer-menu p { margin: 10px 0 0 0 !important; }

footer .wp-block-social-links { margin: 0 auto; margin-top: 0px; display: block; margin-top: 10px; }


/* Shared padding for both footer bands */
.footer-top,
.footer-bottom {
  padding-inline: var(--wp--preset--spacing--30) !important;
}

/* Tablet tweak */
@media (max-width: 900px) {
  .footer-top,
  .footer-bottom {
    padding-inline: var(--wp--preset--spacing--20) !important;
  }
}

/* Mobile: keep only side padding for footer-top (no centering) */
@media (max-width: 600px) {
  .footer-top {
    padding-inline: 16px !important;
  }
}

/* Mobile: footer-bottom keeps side padding AND centers content */
@media (max-width: 600px) {
  .footer-bottom {
    padding-inline: 16px !important;
    text-align: center;
  }
  .footer-bottom .wp-block-columns {
    flex-direction: column;
    gap: var(--wp--preset--spacing--10);
  }
  .footer-bottom .wp-block-site-logo { 
    margin-inline: auto; 
  }
  .footer-bottom .wp-block-column,
  .footer-bottom .footer-menu,
  .footer-bottom p {
    text-align: center;
  }
}

/* Base (move grid/position to the anchor so it’s clickable everywhere) */
.icon-heading > a {
  display: inline-grid;
  grid-auto-flow: column;
  align-items: center;
  column-gap: .6rem;
  position: relative;
  color: var(--wp--preset--color--white);
  text-decoration: inherit;
}

/* Ring (now on the link) */
.icon-heading.icon-ring > a::before {
  content: "";
  width: 48px;
  height: 48px;
  border: 2px solid var(--wp--preset--color--brand-light-blue);
  border-radius: 50%;
  display: inline-block;
  box-sizing: border-box;
}

/* Glyph via mask (now on the link) */
.icon-heading > a::after {
  content: "";
  width: 32px;
  height: 32px;
  position: absolute;
  left: 8px;
  top: 8px;
  background-color: var(--icon-color);
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
}

/* Size modifiers (unchanged selectors, but affect the link’s pseudos) */
.icon-heading.--sm.icon-ring > a::before { width: 36px; height: 36px; }
.icon-heading.--sm > a::after { width: 24px; height: 24px; left: 6px; top: 6px; }
.icon-heading.--lg.icon-ring > a::before { width: 64px; height: 64px; }
.icon-heading.--lg > a::after { width: 44px; height: 44px; left: 10px; top: 10px; }

/* Color utilities (your var continues to live on .icon-heading) */
.icon-heading.--green { --icon-color: var(--wp--preset--color--brand-green); }
.icon-heading.--blue  { --icon-color: var(--wp--preset--color--brand-light-blue); }
.icon-heading.--white { --icon-color: #fff; }

/* Per-icon masks (target the link’s ::after) */
.icon-heading.icon-pointer     > a::after { -webkit-mask-image: var(--icon-pointer);     mask-image: var(--icon-pointer); }
.icon-heading.icon-calculator  > a::after { -webkit-mask-image: var(--icon-calculator);  mask-image: var(--icon-calculator); }
.icon-heading.icon-presentation> a::after { -webkit-mask-image: var(--icon-presentation);mask-image: var(--icon-presentation); }
.icon-heading.icon-house       > a::after { -webkit-mask-image: var(--icon-house);       mask-image: var(--icon-house); }
.icon-heading.icon-target      > a::after { -webkit-mask-image: var(--icon-target);      mask-image: var(--icon-target); }
.icon-heading.icon-map         > a::after { -webkit-mask-image: var(--icon-map);         mask-image: var(--icon-map); }


/* === 3×2 service grid with dashed dividers === */
/* --- Desktop base (unchanged) --- */
.service-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  column-gap:0; row-gap:0;
}
.service-grid > .service-item {
  margin:0 !important;
  box-sizing:border-box;
  display:flex; align-items:center; justify-content:flex-start; text-align:left;
  border-style:dashed;
  border-color: rgba(255,255,255,.25);
  border-width: 0 1px 1px 0;  /* right + bottom */
}
.service-grid > .service-item.has-global-padding{
  padding: var(--wp--preset--spacing--20, 1.25rem) !important;
}
.service-grid > .service-item:not(.has-global-padding){
  padding: var(--wp--preset--spacing--20, 1.25rem);
}
.service-grid .wp-block-heading{ margin:0 !important; }

/* trim desktop edges for 3x2 */
.service-grid > .service-item:nth-child(3n){ border-right:0; }         /* 3rd item of each row */
.service-grid > .service-item:nth-last-child(-n+3){ border-bottom:0; } /* last row */
.service-grid > .service-item{ border-top:0 !important; border-left:0 !important; }

/* --- Tablet: 2 columns --- */
@media (max-width: 900px) {
  .service-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }

  /* reset all borders first (override desktop) */
  .service-grid > .service-item {
    border-right: 1px dashed rgba(255,255,255,.25) !important;
    border-bottom: 1px dashed rgba(255,255,255,.25) !important;
  }
  /* 2-col: no right border on the second column */
  .service-grid > .service-item:nth-child(2n) { border-right: 0 !important; }
  /* 2-col: no bottom border on the last row (last 2 items) */
  .service-grid > .service-item:nth-last-child(-n+2) { border-bottom: 0 !important; }
}

/* --- Mobile: 1 column --- */
@media (max-width: 600px) {
  .service-grid { grid-template-columns: 1fr; }

  /* reset tablet/desktop trims: only draw separators between items */
  .service-grid > .service-item {
    border-right: 0 !important;
    border-bottom: 1px dashed rgba(255,255,255,.25) !important;
  }
  /* undo the tablet "last 2" trim: keep border on the penultimate item */
  .service-grid > .service-item:nth-last-child(-n+2) { border-bottom: 1px dashed rgba(255,255,255,.25) !important; }
  /* only the very last item has no bottom border */
  .service-grid > .service-item:last-child { border-bottom: 0 !important; }
}
