/* Shared component styles. Gutenberg and GeneratePress consume the same definitions. */
.gm-site.page-template-template-interior .site.grid-container {
  max-width: var(--fsc-width);
  padding-inline: var(--fsc-gutter);
}

.gm-site.page-template-template-interior .site-content {
  padding: 0;
}

.gm-site.page-template-template-interior .content-area {
  width: 100%;
}

.gm-site.page-template-template-interior .inside-article {
  padding: 64px 0 80px;
  background: transparent;
}

.gm-site.page-template-template-interior .entry-header {
  padding-bottom: 32px;
  border-bottom: 1px solid var(--fsc-line);
}

.gm-site.page-template-template-interior .entry-title {
  max-width: 20ch;
  margin: 0;
}

.gm-site.page-template-template-interior .entry-content {
  margin-top: 36px;
}

.gm-interior-flow {
  display: flex;
  flex-direction: column;
  gap: 52px;
}

.gm-interior-flow>* {
  margin-block: 0;
}

.gm-interior-lead {
  max-width: 68ch;
  font-size: clamp(21px,2vw,27px);
  line-height: 1.5;
}

:is(.gm-editorial-section,.is-style-gm-editorial-section) {
  display: grid;
  grid-template-columns: minmax(0,.85fr) minmax(0,1.45fr);
  gap: clamp(28px,5vw,76px);
  padding-block: 36px;
  border-top: 1px solid var(--fsc-line);
  align-items: start;
}

:is(.gm-editorial-section,.is-style-gm-editorial-section) h2 {
  margin: 0;
}

:is(.gm-editorial-section,.is-style-gm-editorial-section) h3 {
  font-size: 27px;
  line-height: 1.15;
}

:is(.gm-editorial-section,.is-style-gm-editorial-section) p {
  max-width: 64ch;
}

:is(.gm-editorial-section,.is-style-gm-editorial-section) p:last-child {
  margin-bottom: 0;
}

.gm-interior-media {
  margin: 0!important;
  min-width: 0;
}

.gm-interior-media img {
  display: block;
  width: 100%;
  height: auto;
}

:is(.gm-service-intro,.is-style-gm-service-intro) {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(0,1.25fr);
  gap: clamp(30px,5vw,70px);
  align-items: center;
}

:is(.gm-service-intro,.is-style-gm-service-intro) .gm-interior-media img {
  aspect-ratio: 1.25;
  object-fit: cover;
}

:is(.gm-service-intro,.is-style-gm-service-intro) p {
  font-size: clamp(21px,2vw,27px);
  line-height: 1.5;
  max-width: 32ch;
}

:is(.gm-service-intro,.is-style-gm-service-intro) .gm-interior-media--portrait {
  max-width: 460px;
  justify-self: center;
}

:is(.gm-service-intro,.is-style-gm-service-intro) .gm-interior-media--portrait img {
  aspect-ratio: 3/4;
  object-fit: cover;
}

:is(.gm-interior-inset,.is-style-gm-interior-inset) {
  padding: 30px;
  background: var(--fsc-sand);
}

:is(.gm-interior-inset,.is-style-gm-interior-inset) h2 {
  margin-top: 0;
}

:is(.gm-interior-inset,.is-style-gm-interior-inset) h3 {
  margin-top: 0;
}

:is(.gm-interior-links,.is-style-gm-interior-links) {
  display: flex;
  gap: 18px 30px;
  flex-wrap: wrap;
  border-top: 1px solid var(--fsc-line);
  padding-top: 25px;
}

:is(.gm-interior-links,.is-style-gm-interior-links) p {
  margin: 0;
}

:is(.gm-interior-links,.is-style-gm-interior-links) a {
  font-weight: 600;
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
}

.gm-principles {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 0 64px;
}

:is(.gm-principle,.is-style-gm-principle) {
  grid-template-columns: 56px minmax(0,1fr);
  gap: 22px;
  padding-block: 32px;
}

:is(.gm-principle,.is-style-gm-principle) h2 {
  font-size: clamp(26px,2.4vw,34px);
  max-width: 24ch;
  margin-bottom: 18px;
}

:is(.gm-principle,.is-style-gm-principle) p {
  font-size: 18px;
  line-height: 1.6;
  max-width: 49ch;
}

.gm-principle-icon {
  font-size: 35px;
  color: var(--fsc-forest);
  padding-top: 3px;
}

.gm-principle-icon .wp-font-awesome-icon {
  line-height: 1;
}

.gm-principle-icon svg {
  display: block;
  width: 1em;
  height: 1em;
  fill: currentColor;
}

.gm-pledge-intro {
  max-width: 82ch;
}

.gm-pledge-intro>p:first-of-type {
  font-size: clamp(21px,2vw,27px);
  line-height: 1.5;
}

.gm-pledge-close {
  border-left: 4px solid var(--fsc-gold);
  padding: 8px 0 8px 25px;
  max-width: 76ch;
  font-size: 21px;
}

.gm-history {
  display: flex;
  flex-direction: column;
}

:is(.gm-history-entry,.is-style-gm-history-entry) {
  grid-template-columns: minmax(0,.8fr) minmax(0,1.4fr);
  gap: clamp(30px,6vw,90px);
  padding-block: 40px;
}

:is(.gm-history-entry,.is-style-gm-history-entry) figure {
  margin: 0!important;
}

:is(.gm-history-entry,.is-style-gm-history-entry) figure img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 340px;
  object-fit: cover;
}

:is(.gm-history-entry,.is-style-gm-history-entry) .gm-history-date {
  font-size: clamp(25px,2.8vw,38px);
  font-weight: 600;
  letter-spacing: -.02em;
  margin-bottom: 20px;
}

:is(.gm-history-entry,.is-style-gm-history-entry) .gm-history-date em {
  font-style: normal;
}

:is(.gm-history-entry,.is-style-gm-history-entry) p {
  max-width: 55ch;
  font-size: 19px;
}

.gm-rules .wp-block-list {
  margin: 0;
  padding-left: 1.25em;
  max-width: 64ch;
}

.gm-rules li {
  padding: 0 0 15px 10px;
  margin: 0;
  line-height: 1.5;
}

.gm-rules li::marker {
  color: var(--fsc-soil);
}

.gm-location-grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: clamp(30px,6vw,80px);
  align-items: start;
}

.gm-location-grid h2 {
  font-size: 30px;
  line-height: 1.15;
  margin-bottom: 24px;
}

.gm-location-grid .wpseo-map-canvas {
  max-width: 100%!important;
}

.gm-location-grid .wpseo_map {
  max-width: 100%!important;
}

.gm-location-grid iframe {
  max-width: 100%!important;
}

.gm-location-grid .wpseo-opening-hours {
  width: 100%;
  font-size: 18px;
}

.gm-location-grid table {
  border: 0;
  width: 100%;
}

.gm-location-grid td {
  border: 0;
  border-bottom: 1px solid var(--fsc-line);
  padding: 10px 0;
  text-align: left;
}

.gm-location-grid th {
  border: 0;
  border-bottom: 1px solid var(--fsc-line);
  padding: 10px 0;
  text-align: left;
}

.gm-entrance {
  max-width: 900px;
}

.gm-entrance img {
  width: 100%;
  height: auto;
}

.gm-live-bays {
  padding: 30px;
  background: var(--fsc-sand);
}

.gm-live-bays h2 {
  margin-top: 0;
  font-size: 32px;
}

.gm-live-bays h3 {
  margin-top: 0;
  font-size: 32px;
}

.gm-bay-grid {
  background: transparent;
  border: 0;
  padding: 0;
}

.gm-bay-grid .gm-bay {
  background: var(--fsc-paper);
  padding: 20px 16px;
}

.gm-bay-grid>p {
  grid-column: 1/-1;
}

.gm-service-logo {
  max-width: 320px;
  margin: 0 0 25px!important;
}

.gm-service-logo img {
  width: 100%;
  height: auto;
}

.gm-inquiry-placeholder {
  padding: 35px;
  background: var(--fsc-sand);
  max-width: 900px;
}

.gm-inquiry-placeholder h2 {
  font-size: 32px;
  margin: 0 0 20px;
}

@media(max-width:1000px) {
  .gm-principles {
    gap: 0 35px;
  }
}

@media(max-width:1000px) {
  :is(.gm-principle,.is-style-gm-principle) {
    grid-template-columns: 38px 1fr;
    gap: 15px;
  }
}

@media(max-width:1000px) {
  .gm-principle-icon {
    font-size: 28px;
  }
}

@media(max-width:767px) {
  .gm-site.page-template-template-interior .inside-article {
    padding: 35px 0 50px;
  }
}

@media(max-width:767px) {
  .gm-site.page-template-template-interior .entry-header {
    padding-bottom: 25px;
  }
}

@media(max-width:767px) {
  .gm-site.page-template-template-interior .entry-content {
    margin-top: 28px;
  }
}

@media(max-width:767px) {
  .gm-interior-flow {
    gap: 35px;
  }
}

@media(max-width:767px) {
  :is(.gm-service-intro,.is-style-gm-service-intro) {
    grid-template-columns: 1fr;
    gap: 25px;
  }
}

@media(max-width:767px) {
  :is(.gm-editorial-section,.is-style-gm-editorial-section) {
    grid-template-columns: 1fr;
    gap: 25px;
  }
}

@media(max-width:767px) {
  .gm-location-grid {
    grid-template-columns: 1fr;
    gap: 25px;
  }
}

@media(max-width:767px) {
  .gm-principles {
    grid-template-columns: 1fr;
    gap: 0;
  }
}

@media(max-width:767px) {
  :is(.gm-principle,.is-style-gm-principle) {
    grid-template-columns: 38px minmax(0,1fr);
    gap: 16px;
  }
}

@media(max-width:767px) {
  :is(.gm-history-entry,.is-style-gm-history-entry) {
    gap: 25px;
    padding-block: 30px;
  }
}

@media(max-width:767px) {
  :is(.gm-history-entry,.is-style-gm-history-entry) figure img {
    max-height: 320px;
  }
}

@media(max-width:767px) {
  :is(.gm-interior-inset,.is-style-gm-interior-inset) {
    padding: 24px;
  }
}

@media(max-width:767px) {
  .gm-live-bays {
    padding: 24px;
  }
}

@media(max-width:767px) {
  .gm-inquiry-placeholder {
    padding: 24px;
  }
}

@media(max-width:767px) {
  :is(.gm-service-intro,.is-style-gm-service-intro) .gm-interior-media--portrait {
    max-width: 350px;
  }
}

@media(max-width:767px) {
  :is(.gm-principle,.is-style-gm-principle) h2 {
    font-size: 29px;
  }
}

@media(max-width:767px) {
  :is(.gm-principle,.is-style-gm-principle) p {
    font-size: 18px;
  }
}

.gm-bay-grid {
  display: grid;
  grid-template-columns: repeat(5,minmax(0,1fr));
  gap: 16px;
}

.gm-service-intro--process .gm-editorial-copy p {
  font-size: 19px;
  line-height: 1.65;
  max-width: 56ch;
}

.gm-service-intro--process .gm-editorial-copy h2 {
  font-size: 36px;
  margin-bottom: 24px;
}

.gm-about-mission>p {
  font-size: clamp(21px,2vw,27px);
  max-width: 68ch;
}

.gm-about-mission h2 {
  font-size: 32px;
}

.gm-location-hours .wpseo-opening-hours {
  margin-bottom: 25px;
}

@media(max-width:1000px) {
  .gm-bay-grid {
    grid-template-columns: repeat(3,minmax(0,1fr));
  }
}

@media(max-width:767px) {
  .gm-bay-grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
}

.gm-about-mission {
  border: 0;
  padding-block: 0;
}

.gm-about-mission .gm-editorial-copy>p {
  font-size: 22px;
  max-width: 60ch;
}

.gm-about-mission .gm-editorial-copy>.wp-block-group__inner-container>p {
  font-size: 22px;
  max-width: 60ch;
}

.gm-about-mission .gm-about-pledge {
  margin-bottom: 0;
}

.gm-about-mission .gm-about-pledge p {
  font-size: 18px;
}

:is(.gm-service-intro,.is-style-gm-service-intro) .gm-interior-media img {
  object-position: 50% 20%;
}

.gm-location-details .wpseo-map-canvas {
  width: 100%!important;
  height: 360px!important;
}

:where(.gm-interior-flow,:is(.gm-editorial-section,.is-style-gm-editorial-section),:is(.gm-service-intro,.is-style-gm-service-intro),.gm-principles,:is(.gm-history-entry,.is-style-gm-history-entry),.gm-location-grid,.gm-bay-grid)>.wp-block-group__inner-container {
  display: contents;
}
/* Editorial templates are GP Elements; article prose stays in WordPress Posts. */
.gm-blog-index{width:min(calc(100% - var(--fsc-gutter)*2),var(--fsc-width));margin-inline:auto;padding:45px 0 70px;}
.gm-blog-index>h1{margin-bottom:40px;}
.gm-blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;list-style:none;margin:0;padding:0;}
.gm-blog-card{border-bottom:1px solid var(--fsc-line);padding-bottom:30px;}
.gm-blog-card .wp-block-post-featured-image img{display:block;width:100%;aspect-ratio:1.6;object-fit:cover;}
.gm-blog-card__copy{padding-top:20px;}
.gm-blog-card h2{margin:15px 0;}
.gm-blog-card h2 a{text-decoration:none;}
.gm-blog-card h2 a:hover{text-decoration:underline;}
.gm-blog-card .wp-block-post-date,.gm-article-meta{color:var(--fsc-soil);}
.gm-blog-query .wp-block-query-pagination{margin-top:35px;}
.gm-article{max-width:900px;margin-inline:auto;}
.gm-article-header{margin-bottom:35px;}
.gm-article-meta{display:flex;gap:20px;flex-wrap:wrap;}
.gm-article .wp-block-post-featured-image{margin-block:35px;}
.gm-article-content h2{margin-top:45px;}
@media(max-width:767px){.gm-blog-grid{grid-template-columns:1fr;gap:30px}}

/* Shared editorial navigation, owned by the GP article template and WP menus. */
.is-style-fsc-breadcrumb-menu{margin-bottom:28px;font-size:15px;}
.is-style-fsc-breadcrumb-menu .fsc-menu__list{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:0;padding:0;}
.is-style-fsc-breadcrumb-menu .fsc-menu__list li+li::before{content:">";margin-right:10px;color:var(--fsc-soil);}
.is-style-fsc-breadcrumb-menu a{text-decoration:none;}
.is-style-fsc-breadcrumb-menu a:hover{text-decoration:underline;}
.gm-article-navigation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;border-top:1px solid var(--fsc-line);margin-top:45px;padding-top:25px;}
.gm-article-navigation .post-navigation-link-next{grid-column:2;text-align:right;}
.gm-article-navigation .post-navigation-link__label{display:block;font-size:15px;color:var(--fsc-soil);margin-bottom:8px;}
.gm-article-navigation a{text-decoration:none;font-weight:600;}
.gm-article-navigation a:hover{text-decoration:underline;}
@media(min-width:768px) and (max-width:1099px){.gm-blog-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}

/* A single Spotlight section; native grids retain unoccupied columns. */
.is-style-gm-spotlight-section{
    margin-block:0 56px;
    padding:28px 0;
    position:relative;
    isolation:isolate;
}
.is-style-gm-spotlight-section::before{
    content:"";
    position:absolute;
    inset:0 calc(-1 * min(28px,var(--fsc-gutter)));
    border-top:3px solid var(--fsc-forest);
    background:color-mix(in srgb,var(--fsc-sage) 22%,var(--fsc-paper));
    z-index:-1;
    pointer-events:none;
}
.is-style-gm-spotlight-section>h2{margin:0 0 28px;font-size:32px;}
.is-style-gm-spotlight-section .gm-blog-card{border:0;padding-bottom:0;}
.is-style-gm-spotlight-section:not(:has(.gm-blog-card)){display:none;}
@media(max-width:767px){
    .is-style-gm-spotlight-section{padding:20px 0;margin-bottom:36px;}
}

/* The existing wireframe pattern occupies the same frame as a real blog photo. */
.gm-blog-card .is-style-gm-image-placeholder{aspect-ratio:16/10;min-height:0;margin:0;}

/* Fit-whole cards retain a sharp foreground over a decorative CSS-blurred copy. */
.gm-blog-card .fsc-blog-image-fit-whole{position:relative;overflow:hidden;isolation:isolate;}
.gm-blog-card .wp-block-post-featured-image img.fsc-blog-card-backdrop{
    position:absolute;inset:-8%;width:116%;height:116%;max-width:none;
    object-fit:cover;aspect-ratio:auto;filter:blur(18px);z-index:0;pointer-events:none;
}
.gm-blog-card .fsc-blog-image-fit-whole>a,
.gm-blog-card .fsc-blog-image-fit-whole>img:not(.fsc-blog-card-backdrop){position:relative;z-index:1;}
.gm-blog-card .fsc-blog-image-fit-whole>a{display:block;}
/* Pagination remains native and crawlable; this is progressive enhancement only. */
.gm-blog-query.is-infinite-scroll .wp-block-query-pagination-numbers,
.gm-blog-query.is-infinite-scroll .wp-block-query-pagination-previous{display:none;}
.gm-blog-scroll-status{margin-top:24px;font-size:16px;color:var(--fsc-soil);}

.gm-blog-query .wp-block-query-pagination[hidden]{display:none;}
