/*
Theme Name: Bendiciones — Folklórico
Author: Custom project for Grupo Folklorico de Bendiciones
Description: Editorial, performance-first WordPress theme for Grupo Folklorico de Bendiciones. Booking-forward, responsive, and Customizer-managed.
Version: 0.5.0
Requires at least: 6.2
Requires PHP: 8.0
License: GPL-2.0-or-later
Text Domain: grupo-bendiciones
*/
:root{--ink:#2d191c;--dark:#381923;--plum:#64253a;--rose:#9d3d52;--cream:#fbf6ef;--paper:#f7ede0;--gold:#d7a34f;--orange:#e18a62;--forest:#295248;--muted:#735f5c;--white:#fff;--display:Georgia,'Times New Roman',serif;--sans:ui-sans-serif,-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.65 var(--sans);-webkit-font-smoothing:antialiased}body.admin-bar .site-header{top:32px}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}button,input,textarea{font:inherit}button{cursor:pointer}img{display:block;max-width:100%}::selection{background:#e7bd8e;color:var(--ink)}:focus-visible{outline:3px solid var(--gold);outline-offset:4px}.wrap{width:min(1180px,calc(100% - 56px));margin-inline:auto}.eyebrow{font-size:.7rem;font-weight:800;letter-spacing:.21em;text-transform:uppercase}.section-kicker{display:flex;align-items:center;gap:13px;margin-bottom:21px;color:var(--rose)}.section-kicker:before{content:'';height:1px;width:33px;background:currentColor}.section-title{font:400 clamp(2.6rem,4.9vw,5.1rem)/1.06 var(--display);letter-spacing:-.045em;margin:0 0 25px}.section-title em,.hero-title em{font-weight:400;color:var(--rose)}.muted{color:var(--muted)}.btn{display:inline-flex;gap:14px;align-items:center;justify-content:center;padding:15px 23px;letter-spacing:.11em;font-size:.72rem;font-weight:800;text-transform:uppercase;border:1px solid transparent;border-radius:2px;text-decoration:none!important;transition:transform .2s,background .2s,color .2s,box-shadow .2s}.btn:hover{transform:translateY(-2px);box-shadow:0 9px 25px #150a0a22}.btn-primary{background:var(--plum);color:white}.btn-primary:hover{background:#7a3049}.btn-light{background:var(--cream);color:var(--dark)}.btn-outline{border-color:var(--plum);color:var(--plum)}.btn-outline:hover{background:var(--plum);color:#fff}.btn-arrow{font-size:1rem;line-height:1;letter-spacing:0}.site-header{position:sticky;z-index:30;top:0;box-shadow:0 1px 0 #4d242016;background:rgba(251,246,239,.98);backdrop-filter:blur(16px)}.header-main{min-height:91px;display:flex;align-items:center;gap:36px;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}.brand:hover{text-decoration:none}.brand-mark{width:48px;height:48px;color:var(--plum)}.brand-name{display:block;font:400 1.22rem/1.04 var(--display);letter-spacing:-.025em}.brand-sub{display:block;margin-top:6px;font-size:.55rem;font-weight:800;letter-spacing:.21em;text-transform:uppercase;color:var(--rose)}.menu{display:flex;gap:clamp(15px,2.4vw,30px);align-items:center;margin:0;padding:0;list-style:none}.menu a{font-size:.71rem;font-weight:750;text-transform:uppercase;letter-spacing:.1em}.menu a:hover{color:var(--rose);text-decoration:none}.header-cta{padding:13px 17px}.nav-toggle{display:none;background:none;border:0;padding:9px;color:var(--plum)}.nav-toggle svg{width:25px;height:25px}.hero{overflow:hidden;background:var(--paper);position:relative;isolation:isolate}.hero:before{content:'';position:absolute;width:250px;height:250px;top:-170px;left:-140px;background:#e5c58c;border-radius:50%;opacity:.5}.hero-layout{display:grid;grid-template-columns:.92fr 1.08fr;min-height:646px;align-items:center;gap:30px}.hero-copy{position:relative;z-index:2;padding:88px 0 84px}.hero-copy .eyebrow{color:var(--rose);margin:0 0 24px;display:flex;align-items:center;gap:13px}.hero-copy .eyebrow:before{content:'✳';font-size:1.2rem;color:var(--gold)}.hero-title{font:400 clamp(3.95rem,7.25vw,7.35rem)/.96 var(--display);letter-spacing:-.065em;margin:0 0 29px;max-width:710px}.hero-title span{display:block}.hero-title em{white-space:nowrap}.hero-description{color:#665452;max-width:435px;font-size:1rem;line-height:1.9;margin:0 0 34px}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:13px}.hero-art{align-self:stretch;min-height:640px;position:relative;display:flex;align-items:center;justify-content:center;padding:48px 0 52px 36px}.hero-art:before{content:'';position:absolute;width:105%;height:76%;right:-22%;top:13%;background:var(--plum);border-radius:46% 54% 40% 60%/52% 40% 60% 48%;transform:rotate(-15deg)}.hero-art:after{content:'';position:absolute;z-index:1;left:5%;bottom:10%;width:100px;height:100px;border:2px solid #e5b875;border-radius:50%;opacity:.85}.hero-image-wrap{width:93%;height:550px;position:relative;z-index:1;overflow:hidden;border-radius:230px 230px 8px 8px;background:linear-gradient(145deg,#e6a283,#7c304d 70%);box-shadow:0 22px 60px #281a1e22}.hero-image-wrap img{width:100%;height:100%;object-fit:cover;object-position:center 27%;transition:transform 1s}.hero-image-wrap:hover img{transform:scale(1.04)}.hero-image-wrap.empty{display:flex;justify-content:center;align-items:center}.hero-image-wrap.empty .placeholder-art{max-width:85%;text-align:center;color:white;font:italic 2rem var(--display)}.hero-sticker{z-index:2;position:absolute;left:0;bottom:105px;width:132px;height:132px;display:flex;align-items:center;justify-content:center;background:var(--gold);color:var(--dark);text-align:center;border:7px solid var(--paper);border-radius:50%;transform:rotate(-13deg);font-size:.63rem;line-height:1.65;letter-spacing:.13em;font-weight:900;text-transform:uppercase}.hero-sticker span{display:block;font:italic 2rem/1 var(--display);letter-spacing:0}.heritage-strip{background:var(--dark);color:#f9eee5}.heritage-inner{min-height:91px;display:flex;align-items:center;justify-content:space-between;gap:25px}.heritage-inner p{margin:0;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.15em}.heritage-inner strong{font-weight:900;color:#e9ba7a}.dot{width:5px;height:5px;background:var(--gold);border-radius:50%}.story{padding:128px 0}.story-layout{display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;gap:clamp(60px,10vw,145px)}.story-art{position:relative}.story-art img{width:100%;height:545px;object-fit:cover;object-position:center;background:#b45b76;box-shadow:18px 18px 0 #e8d4bf}.story-art:before{content:'';position:absolute;z-index:1;width:105px;height:105px;top:-28px;left:-29px;border-top:4px solid var(--gold);border-left:4px solid var(--gold)}.story-caption{position:absolute;z-index:2;bottom:19px;left:-18px;background:var(--cream);padding:15px 22px;color:var(--dark);font:italic 1.15rem var(--display)}.story-copy{max-width:520px}.story-copy p{line-height:1.94;margin:0 0 22px}.signature{border-top:1px solid #ddcbbb;margin-top:33px;padding-top:26px;display:flex;gap:16px;align-items:center}.signature-icon{width:45px;height:45px;border-radius:50%;background:#eedfce;display:grid;place-items:center;color:var(--rose)}.signature-icon svg{width:22px;height:22px}.signature strong{display:block;font:.95rem var(--display)}.signature span{display:block;font-size:.72rem;color:var(--muted);letter-spacing:.07em}.performance-section{background:#efe1d1;padding:115px 0 120px;position:relative;overflow:hidden}.performance-section:after{content:'✳';position:absolute;right:-85px;bottom:-225px;font:480px/1 var(--display);color:#e7d1b9;opacity:.8;pointer-events:none}.performance-top{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:38px;position:relative;z-index:1}.performance-top p{max-width:350px;margin:0;color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;position:relative;z-index:1}.service-card{background:var(--cream);padding:38px 31px 34px;min-height:270px;transition:transform .25s}.service-card:hover{transform:translateY(-6px)}.service-number{display:flex;align-items:center;justify-content:space-between;color:var(--rose);font-size:.7rem;font-weight:800;letter-spacing:.18em;margin-bottom:59px}.service-symbol{font-size:1.55rem;color:var(--gold);line-height:1}.service-card h3{font:400 1.68rem/1.18 var(--display);letter-spacing:-.03em;margin:0 0 15px}.service-card p{font-size:.9rem;color:var(--muted);line-height:1.8;margin:0}.quote-band{background:var(--plum);color:var(--cream);text-align:center;padding:81px 20px}.quote-band .eyebrow{color:#efbd81}.quote-band p{max-width:770px;margin:18px auto 20px;font:italic 400 clamp(1.7rem,3.15vw,3rem)/1.34 var(--display)}.quote-band .line{width:60px;height:2px;background:#d8a368;margin:24px auto 0}.gallery{padding:120px 0 130px}.gallery-heading{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:40px}.gallery-heading .section-title{margin:0}.gallery-heading a{font-weight:800;color:var(--plum);font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}.gallery-grid{display:grid;grid-template-columns:1.05fr .8fr 1.05fr;gap:13px;min-height:430px}.gallery-card{position:relative;overflow:hidden;background:linear-gradient(135deg,#6b304f,#d19c6b);min-height:400px}.gallery-card img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.gallery-card:hover img{transform:scale(1.065)}.gallery-card:after{content:'';position:absolute;inset:35% 0 0;background:linear-gradient(transparent,#180a10aa);pointer-events:none}.gallery-card .gallery-label{position:absolute;z-index:2;bottom:20px;left:23px;font:italic 1.22rem var(--display);color:white}.gallery-card:nth-child(2){transform:translateY(24px)}.moments{padding:95px 0 110px;background:var(--paper)}.moments-head{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:end;margin-bottom:38px}.moments-head p{justify-self:end;max-width:365px;line-height:1.85;color:var(--muted)}.moments-list{border-top:1px solid #d6c8bb}.moment{display:grid;grid-template-columns:110px 1fr auto;align-items:center;gap:20px;padding:22px 8px;border-bottom:1px solid #d6c8bb}.moment-date{font-size:.72rem;letter-spacing:.15em;font-weight:800;color:var(--rose);text-transform:uppercase}.moment h3{margin:0;font:400 1.43rem var(--display)}.moment p{margin:5px 0 0;font-size:.86rem;color:var(--muted)}.moment-action{font-size:.75rem;font-weight:800;letter-spacing:.06em;color:var(--plum)}.contact{background:var(--dark);color:var(--cream);padding:117px 0;position:relative;overflow:hidden}.contact:before{content:'';position:absolute;width:660px;height:660px;border:1px solid #ffffff1a;border-radius:50%;right:-270px;top:-130px;box-shadow:0 0 0 90px #ffffff06,0 0 0 180px #ffffff06}.contact-inner{display:grid;grid-template-columns:1.1fr .9fr;gap:80px;position:relative}.contact .section-title{font-size:clamp(3rem,5.3vw,5.9rem)}.contact .section-title em{color:#e7b682}.contact .section-kicker{color:#f2bc81}.contact p{color:#e5d3cd;max-width:500px}.contact-actions{display:flex;gap:13px;flex-wrap:wrap;margin-top:34px}.contact-details{border-left:1px solid #ffffff29;padding-left:60px;display:flex;flex-direction:column;justify-content:center}.contact-item{padding:18px 0 22px;border-bottom:1px solid #ffffff21}.contact-item:first-child{padding-top:0}.contact-item .eyebrow{display:block;color:#dbb493;margin-bottom:7px}.contact-item a,.contact-item span.contact-value{font:400 clamp(1.1rem,2.3vw,1.65rem) var(--display);overflow-wrap:anywhere}.contact-item a:hover{color:var(--gold)}.social-links{display:flex;flex-wrap:wrap;gap:15px;margin-top:18px}.social-links a{font-size:.73rem;letter-spacing:.13em;text-transform:uppercase;font-weight:800}.site-footer{background:#241419;color:#f3e3d3;padding:34px 0}.footer-content{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.footer-content p{margin:0;font-size:.73rem;color:#d0bbb0}.footer-logo{font:400 1.24rem var(--display)}.footer-meta{font-size:.72rem;color:#d0bbb0}.skip-link{position:absolute;z-index:1000;top:-100px;left:12px;background:#fff;color:#000;padding:12px}.skip-link:focus{top:12px}.interior{min-height:55vh;padding:90px 0 115px}.interior h1{font:400 clamp(2.8rem,5vw,5rem)/1.1 var(--display);margin:0 0 35px}.entry-content{max-width:820px;font-size:1.07rem}.entry-content a{text-decoration:underline}.post-card{padding:30px 0;border-top:1px solid #ddcbbb}.post-card h2{font:400 1.9rem var(--display);margin:8px 0}.post-card a:hover{color:var(--rose)}.event-meta{color:var(--muted);font-size:.9rem}.section-empty{background:#fff;padding:28px 34px;color:var(--muted)}.screen-reader-text{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
@media(max-width:1100px){.header-main{gap:16px}.menu{gap:15px}.header-cta{display:none}.hero-title{font-size:clamp(3.6rem,7vw,6rem)}.story-layout{gap:70px}}@media(max-width:840px){body.admin-bar .site-header{top:46px}.wrap{width:min(100% - 36px,660px)}.header-main{min-height:76px}.nav-toggle{display:flex}.site-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--cream);border-top:1px solid #e1d3c5;box-shadow:0 16px 24px #150a101c}.site-nav.is-open{display:block}.menu{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:14px 25px 25px}.menu a{display:block;padding:12px 6px}.hero-layout{grid-template-columns:1fr;gap:0}.hero-copy{padding:72px 0 40px}.hero-title{font-size:clamp(4rem,13vw,6.4rem)}.hero-art{min-height:500px;padding:0 7% 65px}.hero-image-wrap{width:93%;height:470px}.hero-sticker{left:3%;bottom:88px}.heritage-inner{flex-wrap:wrap;justify-content:center;gap:12px 20px;padding:24px 0}.heritage-inner p{font-size:.63rem}.story{padding:90px 0}.story-layout{grid-template-columns:1fr;gap:75px}.story-art{max-width:460px;margin-left:20px}.story-art img{height:480px}.story-copy{max-width:610px}.performance-section,.gallery{padding:95px 0}.performance-top,.gallery-heading{display:block}.performance-top p{max-width:none}.cards{grid-template-columns:1fr;gap:12px}.service-card{min-height:auto;padding:29px}.service-number{margin-bottom:30px}.gallery-grid{grid-template-columns:1fr 1fr;min-height:0}.gallery-card{min-height:285px}.gallery-card:first-child{grid-row:span 2}.gallery-card:nth-child(2){transform:none}.moments-head{grid-template-columns:1fr;gap:0}.moments-head p{justify-self:start}.contact-inner{grid-template-columns:1fr;gap:50px}.contact-details{border-left:0;border-top:1px solid #ffffff29;padding:40px 0 0}.contact{padding:85px 0}}@media(max-width:520px){.brand-name{font-size:1.07rem}.brand-mark{width:39px;height:39px}.brand-sub{font-size:.5rem}.hero-title{font-size:clamp(3.25rem,12.5vw,4.3rem)}.hero-copy{padding:56px 0 27px}.hero-description{font-size:.94rem}.hero-art{min-height:370px;padding:0 6% 50px}.hero-image-wrap{height:360px}.hero-sticker{width:98px;height:98px;left:0;bottom:66px;font-size:.5rem;border-width:5px}.hero-sticker span{font-size:1.5rem}.section-title{font-size:clamp(2.6rem,10vw,3.65rem)}.gallery-grid{grid-template-columns:1fr 1fr;gap:9px}.gallery-card{min-height:220px}.gallery-card:first-child{grid-column:span 2;grid-row:auto;height:315px}.moment{grid-template-columns:1fr auto;gap:5px 15px}.moment-date{grid-column:span 2}.moment h3{font-size:1.24rem}.moment-action{font-size:.67rem}.footer-content{display:block}.footer-content>*{display:block;margin-bottom:8px!important}.contact .section-title{font-size:clamp(3rem,11vw,4.4rem)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

.brand img.brand-mark{object-fit:contain}.site-nav a[aria-current="page"]{color:var(--rose)}
/* Elegant self-contained art remains visible if demonstration photographs are unavailable. */
.hero-image-wrap,.story-art,.gallery-card{background-image:url('assets/images/ribbons.svg');background-size:cover;background-position:center}

/* Build 2 — Anniversary sticker, photo showcases and direct booking enquiries. */
#booking,#contact,#about,#gallery,#moments,#performances{scroll-margin-top:100px}
.hero-sticker{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1px;width:148px;height:148px;padding:9px;border-width:7px;transform:rotate(-9deg);letter-spacing:normal;line-height:1.1;text-transform:none;box-shadow:0 12px 28px #26161c20}
.hero-sticker .sticker-small{font:800 .66rem/1.22 var(--sans);letter-spacing:.11em;text-transform:uppercase;white-space:nowrap}
.hero-sticker .sticker-year{font:italic 2.95rem/.99 var(--display);letter-spacing:-.06em;display:block;padding:3px 0 2px}
.story-art img{height:auto;aspect-ratio:1880/1160;object-fit:contain;box-shadow:18px 18px 0 #e8d4bf}
.story-art{background:none}
.city-feature{background:#f1e4d3;padding:105px 0 110px;overflow:hidden}
.city-feature-intro{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:36px}
.city-feature-intro .section-title{margin:0}
.city-feature-intro>p{color:var(--muted);max-width:285px;margin:0 0 6px;line-height:1.8}
.city-feature-photo{margin:0;position:relative;box-shadow:20px 20px 0 #ddc29f}
.city-feature-photo img{display:block;width:100%;height:auto;object-fit:contain;background:#2866a5}
.city-feature-photo figcaption{display:flex;justify-content:space-between;gap:20px;color:var(--plum);font-size:.67rem;font-weight:800;text-transform:uppercase;letter-spacing:.15em;padding:18px 2px 0}
.booking-section{background:#f3e9db;padding:105px 0 120px;position:relative}
.booking-layout{display:grid;grid-template-columns:minmax(275px,.75fr) minmax(0,1.25fr);gap:clamp(45px,6vw,95px);align-items:start}
.booking-intro{position:sticky;top:125px;padding-top:25px}
.booking-intro .section-title{font-size:clamp(2.8rem,4.8vw,4.7rem)}
.booking-intro>p{font-size:1rem;line-height:1.85;color:var(--muted)}
.booking-note{display:flex;align-items:center;gap:15px;margin-top:48px;border-top:1px solid #d9c8b7;padding-top:28px}
.booking-note>span{font-size:2.35rem;color:var(--gold)}
.booking-note strong{display:block;font:italic 1.35rem var(--display);color:var(--plum)}
.booking-note div span{display:block;font-size:.8rem;color:var(--muted);margin-top:5px}
.booking-intro .booking-fine{font-size:.8rem;margin-top:28px}
.booking-panel{background:#fffaf3;box-shadow:0 18px 50px #3d23231b;border:1px solid #ead7c8;padding:clamp(24px,4.2vw,52px);position:relative}
.booking-panel:before{content:'';position:absolute;top:-12px;right:32px;width:72px;height:4px;background:var(--gold)}
.gfb-form-heading{display:flex;justify-content:space-between;gap:15px;align-items:center;border-bottom:1px solid #ead9c9;padding-bottom:17px;margin:0 0 25px}
.gfb-form-heading:not(:first-of-type){margin-top:42px}
.gfb-form-step{font-size:.73rem;letter-spacing:.17em;color:var(--plum);font-weight:900}
.gfb-form-required,.gfb-form-muted{font-size:.74rem;color:var(--muted)}
.gfb-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px 18px}
.gfb-field{display:flex;flex-direction:column;gap:7px;min-width:0}
.gfb-field-wide{grid-column:1/-1}
.gfb-field label{font-size:.78rem;color:var(--ink);font-weight:800}
.gfb-field label span{color:var(--rose)}
.gfb-field input,.gfb-field select,.gfb-field textarea{width:100%;max-width:100%;min-height:51px;border:1px solid #d9c6b6;border-radius:2px;background:#fffdfa;color:var(--ink);padding:12px 13px;outline:none;font-size:.92rem;transition:border .2s,box-shadow .2s}
.gfb-field select{appearance:auto}
.gfb-field textarea{resize:vertical;min-height:132px}
.gfb-field input:focus,.gfb-field select:focus,.gfb-field textarea:focus{border-color:var(--rose);box-shadow:0 0 0 3px #9d3d5220}
.gfb-field input::placeholder,.gfb-field textarea::placeholder{color:#98867f;opacity:1}
.gfb-consent{display:flex;gap:11px;align-items:start;margin-top:29px;font-size:.8rem;line-height:1.6;color:var(--muted);cursor:pointer}
.gfb-consent input{margin-top:4px;width:17px;height:17px;flex:0 0 17px;accent-color:var(--plum)}
.gfb-form-submit{margin-top:24px;display:flex;flex-direction:column;align-items:start;gap:11px}
.gfb-form-submit .btn{min-height:52px}
.gfb-form-submit p{font-size:.76rem;line-height:1.55;color:var(--muted);margin:0}
.gfb-form-message{padding:16px 18px;margin:0 0 28px;font-size:.9rem;line-height:1.6;background:#edf7ee;color:#1c5b35;border-left:4px solid #2d8953}
.gfb-form-warning{background:#fff4df;color:#744e11;border-left-color:#c98b18}
.gfb-form-error{background:#ffebe9;color:#812b28;border-left-color:#b94134}
.gfb-trap{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(100%);left:-9999px}
.booking-plugin-note h3{font:normal 2rem var(--display);margin-top:0}.booking-plugin-note p{color:var(--muted);line-height:1.8}
@media(max-width:900px){.booking-layout{grid-template-columns:1fr;gap:20px}.booking-intro{position:static;padding-top:0;max-width:680px}.booking-note{margin-top:25px}.city-feature-intro{display:block}.city-feature-intro>p{max-width:490px;margin-top:20px}}
@media(max-width:840px){.hero-sticker{left:3%;bottom:78px}.city-feature{padding:85px 0}.booking-section{padding:90px 0}}
@media(max-width:520px){.hero-sticker{width:112px;height:112px;padding:7px;border-width:5px;bottom:62px}.hero-sticker .sticker-small{font-size:.47rem;letter-spacing:.08em}.hero-sticker .sticker-year{font-size:2.25rem}.story-art img{height:auto}.city-feature-photo{box-shadow:10px 10px 0 #ddc29f}.city-feature-photo figcaption{font-size:.57rem;letter-spacing:.05em}.booking-panel{padding:24px 19px}.gfb-form-grid{grid-template-columns:1fr}.gfb-form-heading{align-items:start}.gfb-form-required,.gfb-form-muted{font-size:.68rem;text-align:right}.gfb-form-submit .btn{width:100%}}

/* Build 3 — 2026-10-17: compact San Antonio photograph, dedicated booking page, footer credit. */
.city-feature{padding:75px 0 83px}
.city-feature-grid{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(35px,5vw,85px);align-items:center}
.city-feature-intro{display:block;margin-bottom:0}
.city-feature-intro .section-title{font-size:clamp(2.9rem,4.4vw,4.85rem);margin-bottom:24px}
.city-feature-intro>p{max-width:355px;margin:0 0 24px;color:var(--muted);line-height:1.9}
.city-feature-link{font-size:.73rem;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:var(--plum);border-bottom:1px solid var(--plum);padding-bottom:6px}
.city-feature-photo{box-shadow:13px 13px 0 #ddc29f;margin:0}
.city-feature-photo img{width:100%;height:auto;aspect-ratio:2048/1571;object-fit:contain}
.city-feature-photo figcaption{font-size:.57rem;letter-spacing:.1em;padding-top:13px}
.booking-cta{padding:75px 0;background:#f3e9db}
.booking-cta-layout{display:flex;align-items:center;justify-content:space-between;gap:36px}
.booking-cta .section-title{font-size:clamp(2.7rem,4.4vw,4.3rem);margin-bottom:15px}
.booking-cta p{margin:0;max-width:530px;color:var(--muted)}
.booking-cta .btn{flex:0 0 auto}
.booking-page-hero{background:var(--paper);padding:82px 0 83px;position:relative;overflow:hidden}
.booking-page-hero:after{content:'';pointer-events:none;position:absolute;width:450px;height:450px;border:2px solid #ddb78d66;border-radius:50%;top:-240px;right:-80px;box-shadow:0 0 0 70px #ddb78d1c,0 0 0 140px #ddb78d12}
.booking-page-hero-inner{position:relative;z-index:1}
.booking-page-hero .section-kicker{margin-bottom:18px}
.booking-page-hero h1{font:400 clamp(3.65rem,7.8vw,7.3rem)/.98 var(--display);letter-spacing:-.055em;margin:0 0 22px}
.booking-page-hero h1 em,.booking-page-form-intro em{color:var(--rose);font-weight:400}
.booking-page-hero p{color:var(--muted);font-size:1.06rem;max-width:640px;line-height:1.85;margin:0}
.booking-page-hero-facts{display:flex;gap:26px;flex-wrap:wrap;margin-top:29px;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.11em;color:var(--plum)}
.booking-page-body{background:#f3e9db;padding:75px 0 90px;scroll-margin-top:95px}
.booking-page-form-intro{display:grid;grid-template-columns:1.35fr .65fr;gap:48px;align-items:end;margin-bottom:27px}
.booking-page-form-intro h2{font:400 clamp(2.6rem,4.4vw,4.5rem)/1.06 var(--display);letter-spacing:-.04em;margin:0}
.booking-page-form-intro .section-kicker{margin-bottom:16px}
.booking-page-form-intro p{max-width:350px;color:var(--muted);line-height:1.8;margin:0 0 7px}
.booking-page-panel{width:100%;padding:clamp(26px,5vw,65px);box-shadow:0 18px 44px #3d232319}
.booking-page-panel .gfb-form-grid{gap:22px 28px}
.booking-page-panel .gfb-field input,.booking-page-panel .gfb-field select{min-height:57px;font-size:1rem;padding:14px 16px}
.booking-page-panel .gfb-field textarea{font-size:1rem;padding:14px 16px}
.booking-page-panel .gfb-form-step{font-size:.77rem}
.booking-page-panel .gfb-form-submit{margin-top:31px}
.booking-page-panel .gfb-form-submit .btn{padding:17px 28px}
.booking-page-privacy{text-align:center;font-size:.76rem;margin:24px auto 0;color:var(--muted)}
.footer-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.designer-credit{display:block;line-height:1.45;color:#d0bbb0}
.designer-credit a{color:#eac28d;text-decoration:underline;text-underline-offset:3px}
.designer-credit a:hover{color:white}
@media(max-width:900px){
 .city-feature-grid{grid-template-columns:1fr;gap:27px}
 .city-feature-intro .section-title{font-size:clamp(2.85rem,6vw,4.3rem)}
 .city-feature-intro>p{max-width:600px}
 .city-feature-photo{max-width:640px}
 .booking-cta-layout{align-items:flex-start;flex-direction:column;gap:25px}
 .booking-page-form-intro{grid-template-columns:1fr;gap:14px}
 .booking-page-form-intro p{max-width:700px}
}
@media(max-width:520px){
 .city-feature{padding:65px 0 72px}
 .city-feature-grid{gap:28px}
 .city-feature-photo figcaption{gap:10px;font-size:.55rem}
 .city-feature-photo figcaption span:last-child{text-align:right}
 .booking-cta{padding:66px 0}
 .booking-cta .btn{width:100%}
 .booking-page-hero{padding:67px 0 60px}
 .booking-page-hero h1{font-size:clamp(3.25rem,12vw,4.65rem)}
 .booking-page-hero-facts{flex-direction:column;gap:7px;font-size:.61rem}
 .booking-page-body{padding:62px 0 75px}
 .booking-page-panel{padding:30px 18px}
 .booking-page-panel .gfb-form-grid{grid-template-columns:1fr;gap:19px}
 .footer-meta{align-items:flex-start}
 .designer-credit{margin-top:10px}
}


/* Build 4 v0.4.0: right-side desktop nav; compact booking-page form-first layout. */
@media(min-width:841px){
 .header-main{justify-content:flex-start;gap:clamp(16px,2.25vw,32px)}
 .site-nav{margin-left:auto}
 .header-cta{flex:0 0 auto}
}
.booking-page-body{padding:clamp(23px,3.6vw,52px) 0 70px}
.booking-page-form-intro{margin-bottom:18px;gap:14px}
.booking-page-form-intro h1{font:400 clamp(2.15rem,3.3vw,3.3rem)/1.08 var(--display);letter-spacing:-.04em;margin:0}
.booking-page-form-intro h1 em{color:var(--rose);font-weight:400}
.booking-page-form-intro p{max-width:460px}
/* Container-safe field sizing: handles native iOS Safari date/time/number controls. */
.booking-page,.booking-page-body,.booking-page-body .wrap,.booking-page-panel,
.gfb-booking-form-shell,.gfb-booking-form,.gfb-form-grid,.gfb-field{min-width:0;max-width:100%}
.gfb-booking-form,.gfb-form-grid,.gfb-field{width:100%}
.gfb-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.gfb-field{overflow-wrap:anywhere}
.gfb-field input,.gfb-field select,.gfb-field textarea{
 display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;font-size:16px;
}
.gfb-field input[type=date],.gfb-field input[type=time]{min-inline-size:0;max-inline-size:100%;}
.gfb-field select{min-width:0;text-overflow:ellipsis}
.gfb-form-heading{min-width:0}
@media(max-width:840px){
 .booking-page-body .wrap{width:min(100% - 36px,660px)}
 .booking-page-form-intro{grid-template-columns:minmax(0,1fr)}
 .booking-page-form-intro p{margin:0}
 .booking-page-panel{padding:clamp(18px,4vw,28px)}
 .booking-page-panel .gfb-form-grid{grid-template-columns:minmax(0,1fr);gap:17px}
 .gfb-field-wide{grid-column:auto}
}
@media(max-width:520px){
 .booking-page-body{padding:21px 0 58px}
 .booking-page-body .wrap{width:calc(100% - 24px)}
 .booking-page-form-intro{gap:8px;margin-bottom:15px}
 .booking-page-form-intro h1{font-size:clamp(2rem,8vw,2.7rem)}
 .booking-page-form-intro p{font-size:.84rem;line-height:1.55}
 .booking-page-panel{padding:21px 12px 24px}
 .booking-page-panel .gfb-form-grid{gap:17px}
 .booking-page-panel .gfb-field input,.booking-page-panel .gfb-field select,
 .booking-page-panel .gfb-field textarea{font-size:16px!important;padding:13px 10px;line-height:1.35}
 .gfb-form-heading{gap:8px;flex-wrap:wrap;margin-bottom:17px}
 .gfb-form-step{font-size:.69rem;letter-spacing:.11em}
 .gfb-form-required,.gfb-form-muted{font-size:.7rem;text-align:left}
 .gfb-consent{font-size:.79rem}
 .gfb-form-submit .btn{width:100%;min-width:0;padding-inline:9px;white-space:normal;text-align:center}
}
/* Keep the main desktop CTA visible with links grouped at its left until hamburger breakpoint. */
@media(min-width:841px) and (max-width:1100px){
 .header-main{gap:clamp(9px,1.4vw,17px)}
 .header-cta{display:inline-flex;padding:12px 12px;font-size:.63rem;white-space:nowrap}
 .menu{gap:clamp(9px,1.4vw,18px)}
 .menu a{font-size:.65rem;letter-spacing:.06em}
 .brand-name{font-size:1.1rem}
 .brand-mark{width:39px;height:39px}
 .brand-sub{font-size:.49rem;letter-spacing:.15em}
}

/* Build 5: native iOS date/time intrinsic sizing is replaced by accessible select controls at <=640px when JS initializes. */
.gfb-mobile-only{display:none!important}
.gfb-mobile-picker{min-width:0;max-width:100%;width:100%}
.gfb-mobile-picker .gfb-picker-row{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,.8fr) minmax(0,1fr);gap:8px;min-width:0;width:100%}
.gfb-mobile-picker select{box-sizing:border-box;min-width:0!important;width:100%;max-width:100%;font-size:16px!important;padding:13px 7px!important;line-height:1.4}
.gfb-mobile-picker .gfb-picker-label{font-size:.75rem;color:var(--muted);margin-bottom:7px}
@media(max-width:640px){
 .gfb-js-ready .gfb-native-picker{display:none!important}
 .gfb-js-ready .gfb-mobile-only{display:block!important}
 .gfb-mobile-picker .gfb-picker-row{grid-template-columns:minmax(0,1.25fr) minmax(0,.67fr) minmax(0,.95fr)}
 .gfb-mobile-picker .gfb-time-parts{grid-template-columns:repeat(3,minmax(0,1fr))}
 .gfb-field input[type=date],.gfb-field input[type=time]{max-width:100%;min-width:0}
}
.booking-confirmation-body{background:#f3e9db;min-height:65vh;padding:clamp(46px,8vw,105px) 0;text-align:center}
.booking-confirmation-panel{max-width:750px;margin:0 auto;background:#fffaf3;border:1px solid #ead7c8;padding:clamp(30px,7vw,80px) clamp(20px,5vw,60px);box-shadow:0 20px 55px #341a1a17}
.booking-confirmation-mark{display:grid;place-items:center;margin:0 auto 25px;width:72px;height:72px;border-radius:50%;background:var(--plum);color:#fff;font-size:38px}
.booking-confirmation-panel h1{font:400 clamp(2.5rem,7vw,4.5rem)/1.08 var(--display);margin:13px 0 17px}
.booking-confirmation-panel p{max-width:540px;margin:0 auto 22px;color:var(--muted);line-height:1.8}
.booking-confirmation-panel .btn{margin-top:20px}
.booking-confirmation-panel .gfb-warning-note{background:#fff4df;border-left:3px solid #c98b18;padding:13px 17px;text-align:left;color:#744e11;font-size:.9rem}
