/* Shared editorial components. Presentation is controlled by the theme. */
.gp-content .gp-note { font-size: var(--wp--preset--font-size--small); line-height: 1.6; color: var(--gp-muted); }
.gp-content .gp-lead { font-size: var(--wp--preset--font-size--lead); line-height: 1.6; }
.gp-image img { display: block; width: 100%; height: auto; }
.gp-content a:not(.wp-element-button, .wp-block-button__link, .gp-button):not(:has(img)):not(:hover, :focus-visible, :active, [aria-current="page"]) { color: #39b54a; }
.gp-card { border-top: 1px solid var(--gp-rule); padding-top: 20px; display: grid; gap: 12px; align-content: start; }
.gp-content .gp-number { color: var(--gp-brand); font-size: 14px; font-weight: 700; }
.gp-card > p:last-child { font-size: 16px; }
.gp-resource { padding: 28px 0; border-top: 1px solid var(--gp-rule); }
.gp-resource h3 { margin-bottom: 12px; }
.gp-resource h3 a { display: flex !important; justify-content: space-between; gap: 12px; }
.gp-resource h3 span { color: var(--gp-brand); }
.gp-resource p { font-size: 16px; }
.gp-content .gp-illustrated-cta { border: 0; background: #fff; position: relative; isolation: isolate; text-align: left; padding: 80px max(32px, calc((100% - 1256px) / 2)); min-height: 540px; display: flex; align-items: center; }
.gp-illustrated-cta::before { content: ""; position: absolute; inset: 0; z-index: -1; mask-image: linear-gradient(to bottom, transparent, #000 48px, #000 calc(100% - 48px), transparent); background: linear-gradient(90deg, transparent 12%, rgba(255,255,255,.15) 28%, #fff 54%), var(--gp-cta-image, none) left center / cover no-repeat; }
.gp-content .gp-illustrated-cta__copy { width: min(46%, 578px); margin-left: auto; padding-block: 16px; }
.gp-illustrated-cta__copy > h2 { margin-bottom: 24px; }
.gp-illustrated-cta__copy > p { margin-bottom: 28px; }
.gp-illustrated-cta .gp-actions { justify-content: flex-start; }
@media (max-width: 800px) {
  .gp-content .gp-illustrated-cta { padding: 260px 20px 56px; min-height: 0; }

  .gp-illustrated-cta::before { bottom: auto; height: 290px; mask-image: linear-gradient(to bottom, transparent, #000 32px, #000 calc(100% - 48px), transparent); background: linear-gradient(180deg, transparent 35%, #fff 100%), var(--gp-cta-image, none) 35% center / cover no-repeat; }

  .gp-content .gp-illustrated-cta__copy { width: 100%; padding: 0; }
}
.gp-feature-icon { display: block; width: 28px; height: 28px; object-fit: contain; }
.gp-grid-four > .gp-card { display: flex; flex-direction: column; }
.gp-grid-four .gp-card > p { font-size: 16px; }
.gp-content .gp-gallery-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 20px 32px; margin-bottom: 28px; }
.gp-content .gp-gallery-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(12px, 1.5vw, 24px); }
.gp-gallery-strip img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--gp-radius-content, 16px); }
@media (max-width: 800px) {
  .gp-content .gp-gallery-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Photo cards and native disclosures shared by informational pages. */
.gp-photo-card .gp-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--gp-radius-content); }
.gp-content .gp-photo-card h4 { margin: 0; font-size: var(--wp--preset--font-size--heading-4); }
.gp-content .gp-section-nav { display: flex; flex-wrap: wrap; gap: 12px 28px; padding-block: 20px; border-top: 1px solid var(--gp-rule); }
.gp-section-nav a { padding: 10px !important; text-decoration: none; font-weight: 650; }
.gp-accordion { padding-block: 18px; border-top: 1px solid var(--gp-rule); }
.gp-accordion summary { padding: 8px 4px; cursor: pointer; font-weight: 650; color: var(--gp-ink); }
.gp-accordion summary::marker { color: var(--gp-brand); }
.gp-accordion summary:focus-visible { outline: 3px solid var(--gp-focus); outline-offset: 4px; }
.gp-accordion ul { padding-left: 24px; margin-block: 16px 8px; color: var(--gp-muted); }
.gp-accordion li { margin-block: 10px; }

/* Recovered Font Awesome icon shapes; decorative masks inherit the brand colour. */
.gp-icon-bolt { --gp-component-icon: url("icons/bolt-green.svg"); }
.gp-icon-box-open { --gp-component-icon: url("icons/box-open-green.svg"); }
.gp-icon-caravan { --gp-component-icon: url("icons/caravan-green.svg"); }
.gp-icon-circle-dot { --gp-component-icon: url("icons/circle-dot-green.svg"); }
.gp-icon-couch { --gp-component-icon: url("icons/couch-green.svg"); }
.gp-icon-feather-pointed { --gp-component-icon: url("icons/feather-pointed-green.svg"); }
.gp-icon-fire-burner { --gp-component-icon: url("icons/fire-burner-green.svg"); }
.gp-icon-layer-group { --gp-component-icon: url("icons/layer-group-green.svg"); }
.gp-icon-lightbulb { --gp-component-icon: url("icons/lightbulb-green.svg"); }
.gp-icon-link { --gp-component-icon: url("icons/link-green.svg"); }
.gp-icon-list-check { --gp-component-icon: url("icons/list-check-green.svg"); }
.gp-icon-plug { --gp-component-icon: url("icons/plug-green.svg"); }
.gp-icon-road { --gp-component-icon: url("icons/road-green.svg"); }
.gp-icon-shield-halved { --gp-component-icon: url("icons/shield-halved-green.svg"); }
.gp-icon-wind { --gp-component-icon: url("icons/wind-green.svg"); }
.gp-icon-window-maximize { --gp-component-icon: url("icons/window-maximize-green.svg"); }
.gp-icon-heading::before, .gp-accordion[class*="gp-icon-"] > summary::before { content: ""; display: block; flex: 0 0 28px; width: 28px; height: 28px; background: var(--gp-brand); mask: var(--gp-component-icon) center / contain no-repeat; }
.gp-content .gp-icon-heading { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; margin: 0; font-size: var(--wp--preset--font-size--heading-4); }
/* Native horizontal rails remain scrollable without JavaScript. */
.gp-content .gp-rail { display: grid; grid-auto-flow: column; grid-auto-columns: clamp(270px, 28vw, 330px); gap: 24px; overflow-x: auto; overscroll-behavior-inline: contain; scroll-snap-type: x proximity; scrollbar-width: thin; scrollbar-color: var(--gp-brand) var(--gp-rule); padding: 4px 4px 20px; margin-top: 24px; }
.gp-rail > .gp-card { scroll-snap-align: start; padding: 24px; border: 1px solid var(--gp-rule); border-radius: var(--gp-radius-content); gap: 16px; }
.gp-rail > .gp-photo-card { padding: 0 0 24px; overflow: hidden; }
.gp-rail > .gp-photo-card > :not(figure) { margin-inline: 24px; }
.gp-rail > .gp-photo-card .gp-image img { border-radius: 0; }
.gp-rail:focus-visible { outline: 3px solid var(--gp-focus); outline-offset: 4px; }
.gp-rail-controls { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }
@media (min-width: 801px) {
  .gp-rail-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
  .gp-content .gp-rail-heading > :is(h2, h3, h4, h5, h6) { margin: 0; min-width: 0; }
  .gp-rail-heading .gp-rail-controls { margin: 0; flex-shrink: 0; }
}
.gp-rail-controls button { width: 44px; height: 44px; padding: 0; border: 1px solid var(--gp-rule); border-radius: 5px; background: #fff; color: var(--gp-forest); font: 600 22px var(--gp-font); cursor: pointer; }
.gp-rail-controls button:enabled:is(:hover, :focus-visible) { color: #fff; background: var(--gp-brand); border-color: var(--gp-brand); }
.gp-rail-controls button:disabled { opacity: .35; cursor: default; }
@media (max-width: 480px) { .gp-content .gp-rail { grid-auto-columns: 86%; gap: 16px; } }
/* Animated disclosures keep native Details behaviour as their no-JS fallback. */
.gp-accordion > summary { display: flex; align-items: center; gap: 20px; padding: 12px 4px; list-style: none; }
.gp-accordion > summary::-webkit-details-marker { display: none; }
.gp-accordion > summary::after { content: ""; margin-left: auto; flex: 0 0 8px; height: 8px; border-right: 2px solid var(--gp-brand); border-bottom: 2px solid var(--gp-brand); transform: rotate(45deg); transition: transform 480ms ease; }
.gp-accordion[open]:not([data-expanded="false"]) > summary::after { transform: rotate(225deg); }
.gp-accordion > summary:hover { color: var(--gp-brand); }
.gp-accordion__body { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows 480ms cubic-bezier(.4,0,.2,1), opacity 360ms ease; }
.gp-accordion__inner { min-height: 0; overflow: hidden; }
.gp-accordion[data-expanded="true"] > .gp-accordion__body { grid-template-rows: 1fr; opacity: 1; }
.gp-accordion__inner > ul { padding-left: 68px; padding-right: 16px; }
.gp-accordion li::marker { color: var(--gp-brand); }
@media (prefers-reduced-motion: reduce) {
  .gp-accordion__body, .gp-accordion > summary::after { transition: none; }
}

.gp-icon-route { --gp-component-icon: url("icons/route-green.svg"); }

/* Shared day/bed tour: one control switches the photograph and floorplan together. */
.gp-layout-tour [hidden] { display: none !important; }
.gp-layout-tour__controls { display: flex; gap: 8px; margin-bottom: 24px; }
.gp-layout-tour__controls button { min-height: 44px; padding: 10px 18px; border: 1px solid var(--gp-rule); border-radius: 5px; background: #fff; color: var(--gp-ink); font: 600 14px var(--gp-font); cursor: pointer; }
.gp-layout-tour__controls button:is([aria-pressed="true"], :hover, :focus-visible) { background: var(--gp-brand); border-color: var(--gp-brand); color: #fff; }
.gp-layout-tour__panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; align-items: start; --gp-layout-image-height: clamp(280px, 30vw, 380px); }
.gp-layout-tour__room > img { display: block; width: 100%; height: var(--gp-layout-image-height); object-fit: cover; border-radius: var(--gp-radius-content); }
.gp-content .gp-layout-tour__room h3 { margin-block: 24px 12px; }
.gp-layout-tour__plan { text-align: center; }
.gp-layout-tour__plan img { width: 100%; height: var(--gp-layout-image-height); object-fit: contain; }
.gp-layout-tour > .gp-note { margin-top: 24px; }
@media (max-width: 800px) {
  .gp-layout-tour__panel { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px 16px; align-items: start; --gp-layout-image-height: clamp(180px, 50vw, 280px); }
  .gp-layout-tour__room { display: contents; }
  .gp-layout-tour__room > img { grid-column: 1; grid-row: 1; }
  .gp-layout-tour__room > :is(h3, p) { grid-column: 1 / -1; }
  .gp-content .gp-layout-tour__room h3 { margin: 12px 0 0; }
  .gp-layout-tour__plan { grid-column: 2; grid-row: 1; }
  .gp-layout-tour__plan figcaption { margin-top: 4px; }
  .gp-layout-tour__controls button { flex: 1; }
}

@media (prefers-reduced-motion: no-preference) {
  .gp-layout-tour__panel { transition: opacity 220ms ease, translate 320ms ease; }
  .gp-layout-tour__panel.is-changing { opacity: 0; translate: 0 6px; }
}

/* Preserve the complete configurator screenshot, including its laptop frame. */
.gp-content .gp-configurator-image img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; }

.gp-content .gp-layout-tour__link { margin-top: 16px; }

/* Functional metadata and form progress are plain text, not heading eyebrows. */
.gp-meta-text,.gp-form-progress{color:#000;font-size:.875rem;font-weight:400;letter-spacing:normal;text-transform:none;line-height:1.5}
