/*
Theme Name: Gutflex
Description: A flexible native block theme with independent, editable section patterns.
Version: 1.0.0
Requires at least: 7.1
Requires PHP: 8.1
Text Domain: gutflex
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

/* Layout refinements shared by the frontend and canvas editor. Values use theme tokens. */
:root { --gutflex-gap: var(--wp--preset--spacing--64); }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: var(--wp--preset--spacing--96); }
body { margin: 0; }
.wp-site-blocks > *, .gutflex-main, .gutflex-main > *, .gutflex-main .wp-block-post-content > * { margin-block-start: 0; }
.gutflex-section { padding: var(--wp--custom--spacing--section) var(--wp--custom--spacing--gutter); }
.gutflex-section > .gutflex-container { max-width: var(--wp--style--global--wide-size); margin-inline: auto; }
.gutflex-medium > .gutflex-container { max-width: var(--wp--custom--layout--medium); }
.gutflex-narrow > .gutflex-container { max-width: var(--wp--style--global--content-size); }
.gutflex-container > *, .gutflex-hero-copy > * { max-width: none !important; }
.gutflex-container .wp-block-columns { gap: var(--gutflex-gap); margin-block: 0; align-items: center; }
.gutflex-container .wp-block-column { min-width: 0; }
.gutflex-section h2 { margin-block: var(--wp--preset--spacing--16) var(--wp--preset--spacing--24); }
.gutflex-section p { margin-block: 0 var(--wp--preset--spacing--16); }
.gutflex-section figure { margin: 0; }
.gutflex-section img { display: block; width: 100%; object-fit: cover; border-radius: var(--wp--preset--border-radius--medium); }
.is-style-eyebrow { color: var(--wp--preset--color--brand); font-size: var(--wp--preset--font-size--label); font-weight: 500; line-height: 1.3333; letter-spacing: .1em; text-transform: uppercase; }
.gutflex-section .is-style-eyebrow { margin: 0; }
.gutflex-small { font-size: var(--wp--preset--font-size--label); }
.gutflex-surface { background: var(--wp--preset--color--surface); }
.gutflex-surface .is-style-eyebrow { color: var(--wp--preset--color--brand-text); }
.gutflex-dark { background: var(--wp--preset--color--ink); color: #c1bfba; }
.gutflex-dark h2,.gutflex-dark h3 { color: var(--wp--preset--color--white); }
.gutflex-dark .is-style-eyebrow { color: var(--wp--preset--color--accent-light); }
.gutflex-header { position: relative; z-index: 10; background: var(--wp--preset--color--ink); }
.gutflex-header-overlay { position: absolute; inset: 0 0 auto; background: transparent; }
.gutflex-header-row { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: var(--wp--preset--spacing--24); padding: var(--wp--preset--spacing--16) clamp(1.25rem,2.54vw,3rem); color: white; }
.gutflex-header-row > * { margin: 0 !important; }
.gutflex-header-row:not(:has(> .wp-block-buttons)) { grid-template-columns: 1fr auto; }
.gutflex-header-row .wp-block-site-title { font-size: var(--wp--preset--font-size--lead); }
.gutflex-header-row .wp-block-site-title a { color: inherit; text-decoration: none; }
.gutflex-header-row > .wp-block-buttons { justify-self: end; }
.gutflex-header-row .wp-block-navigation { gap: var(--wp--custom--spacing--card); }
.gutflex-header-row .wp-block-navigation a { color: inherit; text-decoration: none; }
.gutflex-header-row .wp-block-navigation a:hover { text-decoration: underline; text-underline-offset: .3em; }
.gutflex-logo img { width: 136px; height: 40px; object-fit: contain; }
.gutflex-logo-footer img { width: 82px; height: 24px; object-fit: contain; }
.wp-block-button.is-style-ghost .wp-block-button__link { background: #ffffff26; border: 1px solid #ffffff99; padding: .625rem var(--wp--preset--spacing--20); min-height: 44px; }
.wp-block-button__link:hover { filter: brightness(.9); }
.gutflex-hero.wp-block-cover { min-height: min(1173px, 100svh); padding: clamp(10rem,19.7vw,23.25rem) var(--wp--custom--spacing--gutter) var(--wp--preset--spacing--96); align-items: flex-start; }
.gutflex-hero > .wp-block-cover__background { opacity: 1; background: linear-gradient(90deg,rgba(26,25,22,.86) 40%,rgba(26,25,22,.3)); }
.gutflex-hero .wp-block-cover__inner-container { width: 100%; }
.gutflex-hero-copy { margin: 0 !important; max-width: 48rem; }
.gutflex-hero-copy > * { margin-inline: 0 !important; }
.gutflex-hero-copy h1 { color: white; margin-block: var(--wp--preset--spacing--20) var(--wp--preset--spacing--24); }
.gutflex-hero-copy mark { color: var(--wp--preset--color--accent-light); background: transparent; }
.gutflex-hero-copy .is-style-eyebrow { color: var(--wp--preset--color--accent-light); }
.gutflex-hero-copy .gutflex-lead { max-width: var(--wp--custom--layout--lead) !important; font-size: var(--wp--preset--font-size--lead); color: #f0eeeb; margin-block: 0 var(--wp--preset--spacing--40); }
.gutflex-badge-image { position: relative; padding-bottom: var(--wp--preset--spacing--20); }
.gutflex-badge-image img { aspect-ratio: 544 / 480; }
.gutflex-badge { position: absolute; bottom: 0; left: calc(-1 * var(--wp--preset--spacing--24)); width: 220px; padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--24); background: var(--wp--preset--color--brand); color: white; border-radius: var(--wp--preset--border-radius--small); }
.gutflex-badge p { margin: 0; font-size: var(--wp--preset--font-size--small); line-height: 1.43; }
.gutflex-badge .gutflex-stat { font-family: var(--wp--preset--font-family--canela-deck); font-size: var(--wp--preset--font-size--title-small); }
.gutflex-step-grid,.gutflex-card-grid { display: grid; gap: var(--wp--preset--spacing--40) var(--gutflex-gap); margin-top: var(--wp--preset--spacing--64); grid-template-columns: repeat(2,minmax(0,1fr)); }
.gutflex-step-grid > *, .gutflex-card-grid > * { margin: 0 !important; }
.gutflex-step { display: grid; grid-template-columns: 3.5rem 1fr; gap: var(--wp--preset--spacing--24); }
.gutflex-step > * { margin: 0; }
.gutflex-step h3 { margin: 0 0 var(--wp--preset--spacing--8); }
.gutflex-step p { font-size: var(--wp--preset--font-size--small); }
.gutflex-step .gutflex-step-number { font: var(--wp--preset--font-size--step-number)/1 var(--wp--preset--font-family--canela-deck); color: var(--wp--preset--color--accent-light); }
.gutflex-card-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--wp--preset--spacing--32); }
.is-style-benefit-card { border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--preset--border-radius--medium); padding: var(--wp--custom--spacing--card); }
.is-style-benefit-card::before { content: ''; display: block; width: var(--wp--preset--spacing--32); height: var(--wp--preset--spacing--4); background: var(--wp--preset--color--brand); margin-bottom: var(--wp--preset--spacing--20); }
.is-style-benefit-card h3 { color: var(--wp--preset--color--brand); margin: 0 0 var(--wp--preset--spacing--12); }
.is-style-benefit-card p { font-size: var(--wp--preset--font-size--small); margin: 0; }
.gutflex-apartment { --gutflex-gap: var(--wp--preset--spacing--48); }
.gutflex-apartment h3 { font: var(--wp--preset--font-size--title-small)/1.5 var(--wp--preset--font-family--canela-deck); }
.gutflex-section .wp-block-tabs { margin-top: var(--wp--preset--spacing--40); }
.gutflex-section .wp-block-tab-list { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--8); margin-bottom: var(--wp--preset--spacing--40); }
.gutflex-section .wp-block-tab-list button { color: var(--wp--preset--color--text-secondary); background: transparent; border: 1px solid var(--wp--preset--color--border); border-radius: var(--wp--preset--border-radius--small); font: 500 var(--wp--preset--font-size--small)/1.43 var(--wp--preset--font-family--left-21); padding: .625rem var(--wp--preset--spacing--20); min-height: 44px; cursor: pointer; }
.gutflex-section .wp-block-tab-list button[aria-selected="true"] { color: white; background: var(--wp--preset--color--brand); border-color: var(--wp--preset--color--brand); }
.gutflex-rooms { padding: 0; list-style: none; }
.gutflex-rooms li { border-bottom: 1px solid var(--wp--preset--color--border); padding-block: var(--wp--preset--spacing--12); color: var(--wp--preset--color--ink); font-size: var(--wp--preset--font-size--small); }
.is-style-checklist { padding-left: var(--wp--preset--spacing--24); font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--ink); }
.is-style-checklist li { padding-left: var(--wp--preset--spacing--8); margin-block: var(--wp--preset--spacing--12); }
.is-style-checklist li::marker { content: '✓'; color: var(--wp--preset--color--brand); font-weight: 700; }
.gutflex-suitability-image img { aspect-ratio: 544 / 520; }
.is-style-comparison { overflow-x: auto; margin-top: var(--wp--preset--spacing--48) !important; }
.is-style-comparison table { border-collapse: collapse; min-width: 48rem; width: 100%; }
.is-style-comparison th,.is-style-comparison td { padding: var(--wp--preset--spacing--16) var(--wp--preset--spacing--20); border: 0; border-bottom: 1px solid var(--wp--preset--color--border); text-align: left; }
.is-style-comparison th { font-size: var(--wp--preset--font-size--label); text-transform: uppercase; letter-spacing: .05em; }
.is-style-comparison td:nth-child(2) { border-left: 2px solid var(--wp--preset--color--brand); color: var(--wp--preset--color--brand); font-weight: 500; }
.is-style-comparison tr:nth-child(even) td:nth-child(2) { color: var(--wp--preset--color--brand-text); }
.is-style-comparison tbody th { font-size: var(--wp--preset--font-size--small); text-transform: none; letter-spacing: 0; font-weight: 500; color: var(--wp--preset--color--ink); }
.is-style-comparison tr:nth-child(even) { background: #00000005; }
.gutflex-faq-list { margin-top: var(--wp--preset--spacing--48); border-top: 1px solid var(--wp--preset--color--border); }
.gutflex-faq-list details { margin: 0; border-bottom: 1px solid var(--wp--preset--color--border); }
.gutflex-faq-list summary { cursor: pointer; color: var(--wp--preset--color--ink); font-weight: 500; padding-right: var(--wp--preset--spacing--32); position: relative; list-style: none; }
.gutflex-faq-list summary::-webkit-details-marker { display: none; }
.gutflex-faq-list summary::after { content: '+'; position: absolute; right: 0; color: var(--wp--preset--color--brand); }
.gutflex-faq-list details[open] summary::after { content: '−'; }
.gutflex-faq-list details p { margin-top: var(--wp--preset--spacing--16); }
.gutflex-registration { background: var(--wp--preset--color--brand); color: white; }
.gutflex-registration h2 { font-size: var(--wp--preset--font-size--registration-title); color: white; }
.gutflex-registration .is-style-eyebrow { color: white; }
.gutflex-registration .wp-block-columns { align-items: flex-start; }
.gutflex-footer-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--wp--preset--spacing--24); padding: var(--wp--preset--spacing--32) var(--wp--custom--spacing--gutter); border-top: 1px solid var(--wp--preset--color--border); }
.gutflex-footer-row > * { margin: 0; }
:where(a,button,input,summary,[tabindex]):focus-visible { outline: 3px solid currentColor; outline-offset: 5px; }
.gutflex-skip-link { position: fixed; left: var(--wp--preset--spacing--16); top: -10rem; z-index: 100000; padding: var(--wp--preset--spacing--16); background: white; color: #1a1916; }
.gutflex-skip-link:focus { top: var(--wp--preset--spacing--16); }
@media (max-width: 1000px) {
 .gutflex-card-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .gutflex-container { --gutflex-gap: var(--wp--preset--spacing--32); }
 .gutflex-hero.wp-block-cover { min-height: 48rem; }
}
@media (max-width: 781px) {
 .gutflex-step-grid,.gutflex-card-grid { grid-template-columns: 1fr; }
 .gutflex-badge { position: relative; left: 0; margin-top: calc(-1 * var(--wp--preset--spacing--48)); }
 .gutflex-badge-image { padding-bottom: 0; }
 .gutflex-header-row { grid-template-columns: 1fr auto; }
 .gutflex-header-row > .wp-block-buttons { display: none; }
 .gutflex-hero.wp-block-cover { min-height: 45rem; padding-top: 10rem; }
 .gutflex-hero-copy h1 { font-size: clamp(2rem,7vw,3rem); }
 .gutflex-section h2 { overflow-wrap: anywhere; }
 .gutflex-footer-row { align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
