@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;0,700;1,500&display=swap');
:root{--bg:#f7f5f1;--surface:#fff;--text:#282725;--muted:#6c675f;--gold:#b68a2d;--gold2:#d7b45d;--line:#ded8cd;--ok:#327a4f;--pending:#ba8122;--booked:#9b3c3c;--shadow:0 12px 35px rgba(0,0,0,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text);line-height:1.55}a{color:inherit}.wrap{width:min(1180px,92%);margin:auto}.topbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.95);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.nav{min-height:72px;display:flex;align-items:center;gap:18px}.nav img{width:170px;max-height:58px;object-fit:contain}.nav-links{display:flex;gap:18px;align-items:center;margin-left:auto;flex-wrap:wrap}.nav-links a{text-decoration:none;font-size:.93rem}.switch-link{border-left:1px solid var(--line);padding-left:18px;color:var(--gold)}.hero{min-height:66vh;display:grid;place-items:center;text-align:center;padding:86px 0;background-image:linear-gradient(rgba(255,255,255,var(--hero-overlay,.78)),rgba(255,255,255,var(--hero-overlay,.78))),var(--hero-image,none),radial-gradient(circle at 20% 20%,#ead8aa,transparent 35%),radial-gradient(circle at 80% 10%,#ddd,transparent 30%);background-size:cover,var(--hero-zoom,100%) auto,auto,auto;background-position:var(--hero-x,50%) var(--hero-y,50%);background-repeat:no-repeat}.hero-logo{width:min(620px,80%);max-height:210px;object-fit:contain}.eyebrow{text-transform:uppercase;letter-spacing:.18em;color:var(--gold);font-size:.78rem;font-weight:700}.hero h1{font-size:clamp(2.2rem,6vw,5rem);margin:.2em 0}.hero p{max-width:740px;margin:0 auto 24px;font-size:1.12rem;color:var(--muted)}.buttons{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--gold);background:var(--gold);color:#fff;padding:12px 18px;text-decoration:none;border-radius:7px;cursor:pointer;font-weight:700}.btn.secondary{background:#fff;color:var(--text)}.quickbar{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);position:sticky;top:72px;z-index:15}.quickbar .wrap{display:flex;gap:22px;overflow:auto;padding:14px 0}.quickbar a{text-decoration:none;white-space:nowrap;font-weight:700;font-size:.9rem}.section{padding:72px 0}.section.alt{background:#fff}.section h2{font-size:clamp(1.8rem,4vw,3.2rem);margin:0 0 12px}.section-intro{color:var(--muted);max-width:760px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:28px}.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px;box-shadow:var(--shadow)}.card h3{margin-top:0}.badge{display:inline-block;padding:5px 9px;border-radius:999px;font-size:.75rem;font-weight:700;background:#eee}.badge.ok{background:#e4f2e9;color:var(--ok)}.badge.pending{background:#fff1d5;color:#885a13}.badge.booked{background:#f7e2e2;color:#843333}.price{font-size:1.4rem;font-weight:800;color:var(--gold)}.calendar-shell{display:grid;grid-template-columns:1.6fr 1fr;gap:24px;margin-top:26px}.calendar{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px}.calendar-head{display:flex;justify-content:space-between;align-items:center}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.calendar-grid .dow{font-size:.72rem;text-align:center;color:var(--muted);padding:5px}.day{min-height:72px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:7px;text-align:left;cursor:pointer;position:relative}.day:hover{border-color:var(--gold)}.day.muted{opacity:.35}.day .status-dot{position:absolute;right:7px;bottom:7px;width:8px;height:8px;border-radius:50%;background:var(--ok)}.day.pending .status-dot{background:var(--pending)}.day.booked .status-dot{background:var(--booked)}.day.limited .status-dot{background:#6a60a6}.legend{display:flex;gap:13px;flex-wrap:wrap;margin-top:12px;font-size:.82rem}.legend span:before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--ok);margin-right:5px}.legend .lp:before{background:var(--pending)}.legend .lb:before{background:var(--booked)}.legend .ll:before{background:#6a60a6}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px}.field{display:grid;gap:6px;margin-bottom:13px}.field label{font-weight:700;font-size:.88rem}.field input,.field select,.field textarea{width:100%;padding:11px;border:1px solid #bbb;border-radius:7px;font:inherit}.field textarea{min-height:100px}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.faq{max-width:900px;margin-top:25px}.faq-item{border-bottom:1px solid var(--line);background:#fff}.faq-q{width:100%;border:0;background:none;text-align:left;padding:18px;font-size:1rem;font-weight:800;display:flex;justify-content:space-between;cursor:pointer}.faq-a{display:none;padding:0 18px 18px;color:var(--muted)}.faq-item.open .faq-a{display:block}.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:25px}.photo{aspect-ratio:4/3;background:linear-gradient(135deg,#d8d2c8,#eee);display:grid;place-items:center;border-radius:9px;color:#777;overflow:hidden}.photo img{width:100%;height:100%;object-fit:cover}.footer{background:#222;color:#eee;padding:45px 0 25px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:25px}.footer a{color:#eee}.admin-link{font-size:.75rem;opacity:.55}.notice{padding:12px;border-radius:8px;background:#f3ead4;border:1px solid #dcc38a;margin:14px 0}.success{background:#e7f4eb;border-color:#9ccbad}.error{background:#fae6e6;border-color:#d99}.hidden{display:none!important}.admin-side a,.admin-side button{display:block;width:100%;text-align:left;padding:10px 8px;color:#fff;background:none;border:0;text-decoration:none;cursor:pointer;border-bottom:1px solid #3b3b3b}.editor-section{background:#fff;border:1px solid var(--line);padding:20px;margin:18px 0;border-radius:10px}.editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.array-list{display:grid;gap:12px}.array-item{border:1px solid var(--line);padding:14px;border-radius:8px;background:#fafafa}.small{font-size:.82rem;color:var(--muted)}.twinkle{position:relative}.twinkle:after{content:"✦";position:absolute;top:10%;left:20%;color:#fff7cb;text-shadow:0 0 8px #fff,0 0 18px var(--gold2);opacity:0;pointer-events:none}.twinkle.active:after{animation:glint .9s ease-out}@keyframes glint{0%{opacity:0;transform:scale(.3) rotate(0)}40%{opacity:1;transform:scale(1.35) rotate(45deg)}100%{opacity:0;transform:scale(.2) rotate(90deg)}}
@media(max-width:850px){.grid{grid-template-columns:1fr 1fr}.calendar-shell{grid-template-columns:1fr}.gallery{grid-template-columns:1fr 1fr}.nav-links{display:none}.quickbar{top:72px}.footer-grid{grid-template-columns:1fr}.editor-grid{grid-template-columns:1fr}}
@media(max-width:560px){.grid{grid-template-columns:1fr}.row{grid-template-columns:1fr}.hero{min-height:58vh}.calendar-grid{gap:3px}.day{min-height:54px;padding:5px}.section{padding:52px 0}.gallery{grid-template-columns:1fr}}

.hero-logo,.nav img{background:transparent!important}.modal{position:fixed;inset:0;background:rgba(0,0,0,.55);display:none;align-items:center;justify-content:center;padding:20px;z-index:1000}.modal.open{display:flex}.modal-panel{position:relative;background:#fff;max-width:850px;width:100%;max-height:92vh;overflow:auto;border-radius:18px;padding:28px}.modal-close{position:absolute;right:16px;top:10px;border:0;background:transparent;font-size:34px;cursor:pointer}.amenity-grid .card{min-height:190px}
/* v04: high-resolution logos, visible calendar times, partner cards, and phone-first refinements */
.nav-logo-link{display:flex;align-items:center;min-width:0}.nav-logo-link img{display:block}
.partner-card{padding:0;overflow:hidden;display:flex;flex-direction:column}.partner-card .card-body{padding:20px;display:flex;flex-direction:column;flex:1}.partner-card .partner-photo{border-radius:0;aspect-ratio:16/9}.partner-placeholder{background:linear-gradient(135deg,#f4ead0,#ddd2b9);color:#6c5522;text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;font-weight:800}.card-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:auto}.empty-card{grid-column:1/-1;max-width:480px}.calendar-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}.calendar-scroll .calendar-grid{min-width:760px}.calendar-times{display:grid;gap:3px;margin-top:7px;padding-right:10px}.calendar-time{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.59rem;line-height:1.15;padding:2px 3px;border-radius:3px;background:#f0f0f0;color:#444}.calendar-time.pending{background:#fff1d5;color:#79500f}.calendar-time.reserved{background:#f7e2e2;color:#7b2f2f}.day{min-height:96px}.calendar-mobile-note{display:none;color:var(--muted);font-size:.8rem;margin:0 0 8px}
@media(max-width:850px){.nav{align-items:flex-start;flex-direction:column;padding:10px 0;gap:8px}.nav img{width:min(260px,70vw);max-height:72px}.nav-links{display:flex;margin-left:0;width:100%;overflow-x:auto;flex-wrap:nowrap;gap:16px;padding:5px 0 8px;-webkit-overflow-scrolling:touch}.nav-links a{white-space:nowrap}.switch-link{margin-left:auto}.quickbar{top:125px}.hero{padding:54px 0;min-height:auto}.hero-logo{width:min(680px,94%);max-height:260px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-mobile-note{display:block}.calendar{padding:12px}.calendar-shell{gap:16px}.section{padding:58px 0}}
@media(max-width:560px){.wrap{width:min(94%,1180px)}.nav img{width:min(240px,78vw)}.quickbar{top:122px}.quickbar .wrap{gap:17px}.hero h1{font-size:clamp(2rem,13vw,3.3rem);line-height:1.05}.hero p{font-size:1rem}.buttons .btn{flex:1 1 150px}.section h2{font-size:clamp(1.8rem,10vw,2.55rem);line-height:1.1}.grid{grid-template-columns:1fr}.card{padding:18px}.partner-card{padding:0}.calendar-shell{margin-top:18px}.calendar-head .btn{padding:9px 12px}.calendar-head h3{font-size:1rem;text-align:center}.panel{padding:16px}.modal{padding:8px}.modal-panel{padding:22px 15px;border-radius:12px}.footer{padding-top:35px}.footer-grid{gap:12px}}
/* v05 admin and review enhancements */
.admin-brand{width:150px;max-width:100%;height:auto;object-fit:contain;margin:0 auto 8px;display:block}.item-head,.preview-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.item-head>div{display:flex;gap:6px;flex-wrap:wrap}.image-editor img,.thumb-row img{width:110px;height:82px;object-fit:cover;border-radius:10px;border:1px solid var(--line);background:#fff}.thumb-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.upload-label{display:inline-flex!important;align-items:center;gap:8px;margin-top:8px;padding:10px 12px;border:1px dashed var(--gold);border-radius:9px;cursor:pointer}.upload-label input{max-width:230px}.preview-frame{width:100%;height:72vh;border:1px solid var(--line);border-radius:12px;background:#fff}.review-card{text-align:center}.review-stars{font-size:2rem;letter-spacing:.25rem;color:var(--gold);margin-bottom:16px}.admin-side button{width:100%;text-align:left}.admin-side a{display:block;padding:9px 10px}.array-item small{display:block;margin-top:5px;color:var(--muted)}
@media(max-width:780px){.preview-frame{height:65vh}.item-head{align-items:flex-start}.item-head>div{width:100%}.item-head .btn{flex:1}.image-editor img,.thumb-row img{width:86px;height:68px}}

/* v07 complete CMS refinements */
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.stat-card{border:1px solid var(--line);border-radius:10px;padding:18px;background:#fafafa;display:grid;gap:4px}.stat-card strong{font-size:2rem;color:var(--gold)}.stat-card span{font-size:.82rem;color:var(--muted)}.single-thumb{position:relative;display:inline-block}.thumb-remove{position:absolute;right:3px;top:3px;border:0;border-radius:999px;background:rgba(0,0,0,.75);color:#fff;padding:4px 7px;font-size:.7rem;cursor:pointer}.apartment-card .photo{margin:-22px -22px 16px;border-radius:12px 12px 0 0}.admin-login{max-width:560px;margin:8vh auto}.admin-side{overflow:auto}.editor-section{scroll-margin-top:85px}
@media(max-width:900px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.stats-grid{grid-template-columns:1fr}.apartment-card .photo{margin:-18px -18px 14px}.admin-side{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none}.admin-side a,.admin-side button{font-size:.83rem}}

.stat-card{cursor:pointer;transition:transform .15s ease,border-color .15s ease}.stat-card:hover,.stat-card:focus{transform:translateY(-2px);border-color:var(--gold);outline:none}.hero-admin-preview{aspect-ratio:16/7;border-radius:10px;background-size:cover;background-position:center;border:1px solid var(--line);display:grid;place-items:center;overflow:hidden}.hero-admin-preview span{background:rgba(255,255,255,.9);padding:6px 10px;border-radius:6px}.range-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}.range-row output{min-width:3.5rem;font-weight:700}.admin-form-actions{justify-content:flex-start}.time-help{display:block;color:var(--muted);font-size:.78rem;margin-top:4px}

/* v09 — stabilized forms and polished visual system */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Playfair+Display:wght@500;600;700&display=swap');
:root{
  --bg:#f8f5ef;--surface:#fffdf9;--text:#262421;--muted:#6e675f;
  --gold:#b8841e;--gold2:#d7b466;--gold-dark:#8c6415;--line:#e3dbcf;
  --ok:#33754d;--pending:#b47718;--booked:#8e3b37;
  --shadow:0 18px 45px rgba(55,42,20,.08);--soft-shadow:0 8px 24px rgba(55,42,20,.06)
}
body{font-family:'Inter',Arial,sans-serif;background:var(--bg);color:var(--text);letter-spacing:-.01em}
body:not(.admin-page) h1,body:not(.admin-page) h2,body:not(.admin-page) h3{font-family:'Playfair Display',Georgia,serif;letter-spacing:-.025em}
.topbar{background:rgba(255,253,249,.93);box-shadow:0 4px 20px rgba(47,36,17,.04)}
.nav{min-height:82px}.nav-links a{font-weight:600;color:#3e3933}.nav-links a:hover{color:var(--gold-dark)}
.hero{min-height:72vh;padding:105px 0;background-position:center;isolation:isolate}.hero .wrap{position:relative;z-index:1}.hero-logo{filter:drop-shadow(0 10px 25px rgba(0,0,0,.08))}.hero h1{font-weight:600;line-height:1.02}.hero p{font-size:1.16rem;max-width:800px;color:#575149}
.eyebrow{color:var(--gold-dark);font-weight:800;letter-spacing:.22em}
.btn{border-radius:999px;padding:13px 22px;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.btn:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(184,132,30,.18)}.btn.secondary{background:rgba(255,255,255,.84)}
.quickbar{background:rgba(255,253,249,.96);box-shadow:0 8px 20px rgba(55,42,20,.04)}
.section{padding:88px 0}.section.alt{background:#fff}.section h2{font-weight:600}.section-intro{font-size:1.04rem}
.card,.panel,.calendar,.editor-section{border-color:var(--line);box-shadow:var(--soft-shadow)}
.card{border-radius:18px;padding:26px}.card:hover{box-shadow:var(--shadow)}
.photo{border-radius:14px}.gallery{gap:18px}
.faq-item{border:1px solid var(--line);border-radius:14px;margin-bottom:12px;overflow:hidden}.faq-q{padding:20px 22px}.faq-a{padding:0 22px 22px}
.footer{background:#25221e;color:#f5efe5}
.field input,.field select,.field textarea{background:#fff;border:1px solid #cfc6ba;border-radius:10px;padding:12px 13px;transition:border-color .15s ease,box-shadow .15s ease}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(184,132,30,.13)}

.editor-section{border-radius:16px;padding:24px}.array-item{background:#fffdfa;border-radius:14px;padding:18px}.stat-card{background:#fffdfa;border-radius:14px}.stat-card:hover{box-shadow:var(--soft-shadow)}
.calendar-entry{border-left:4px solid var(--gold)}
.calendar-entry .admin-form-actions{margin-top:8px}
.notice{border-radius:12px}
@media(max-width:560px){.hero{padding:68px 0;min-height:62vh}.section{padding:62px 0}.card{padding:20px}.editor-section{padding:16px}.array-item{padding:14px}.calendar-entry .admin-form-actions .btn{width:100%}}

/* v10: full-cell calendar status colors */
.day.available{background:#e7f4eb;border-color:#9ccbad;color:#214c31}
.day.pending{background:#fff1d5;border-color:#d9ac4c;color:#68460f}
.day.booked{background:#f7e2e2;border-color:#d49b9b;color:#6f2929}
.day.limited{background:#ece8fa;border-color:#aaa0d6;color:#443a78}
.day.available:hover,.day.pending:hover,.day.booked:hover,.day.limited:hover{filter:brightness(.97);box-shadow:0 0 0 2px rgba(191,139,31,.16)}
.day .status-dot{display:none}
.day.muted{opacity:.42}
.day.pending .calendar-time.pending{background:rgba(255,255,255,.62)}
.day.booked .calendar-time.reserved{background:rgba(255,255,255,.62)}
.day.limited .calendar-time{background:rgba(255,255,255,.68)}

/* v11: photo-backed content cards, detail galleries, and exact calendar key colors */
.image-copy-card,.image-overlay-card{position:relative;overflow:hidden;background:#fff;isolation:isolate}
.image-copy-card.has-card-image,.image-overlay-card.has-card-image{background-image:linear-gradient(rgba(20,16,10,.48),rgba(20,16,10,.58)),var(--card-image);background-size:cover;background-position:center;color:#fff}
.image-copy-card.has-card-image:before,.image-overlay-card.has-card-image:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.42));z-index:-1}
.card-overlay-copy{position:relative;z-index:1;min-height:100%;display:flex;flex-direction:column;align-items:flex-start}
.image-copy-card.has-card-image h3,.image-copy-card.has-card-image p,.image-copy-card.has-card-image strong,.image-overlay-card.has-card-image h3,.image-overlay-card.has-card-image p{color:#fff;text-shadow:0 1px 5px rgba(0,0,0,.72)}
.pricing-image-card,.amenity-image-card,.nearby-image-card{min-height:245px}
.partner-card{min-height:340px;padding:0}.partner-card .card-overlay-copy{padding:24px;justify-content:flex-end}.partner-card.has-card-image{background-image:linear-gradient(rgba(15,12,8,.22),rgba(15,12,8,.72)),var(--card-image);background-size:cover;background-position:center}
.gallery-card{padding:0;overflow:hidden;cursor:pointer}.gallery-card:focus{outline:3px solid rgba(184,132,30,.3);outline-offset:3px}.gallery-card .card-content{padding:22px}.card-hero-photo{border-radius:0;aspect-ratio:16/9}.gallery-card:hover .card-hero-photo img{transform:scale(1.025)}.card-hero-photo img{transition:transform .25s ease}
.expanded-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.expanded-gallery figure{margin:0}.expanded-gallery img{display:block;width:100%;max-height:520px;object-fit:contain;background:#eee;border-radius:12px}.expanded-gallery figcaption{font-size:.8rem;color:var(--muted);padding-top:5px}.gallery-modal-panel{max-width:1050px}
/* Calendar cell colors exactly match legend dots */
.day.available{background:#e7f4eb;border-color:var(--ok);color:#214c31}.legend span:before{background:var(--ok)}
.day.limited{background:#ece8fa;border-color:#6a60a6;color:#443a78}.legend .ll:before{background:#6a60a6}
.day.pending{background:#fff1d5;border-color:var(--pending);color:#68460f}.legend .lp:before{background:var(--pending)}
.day.booked{background:#f7e2e2;border-color:var(--booked);color:#6f2929}.legend .lb:before{background:var(--booked)}
@media(max-width:560px){.expanded-gallery{grid-template-columns:1fr}.pricing-image-card,.amenity-image-card,.nearby-image-card{min-height:220px}}

/* v12: exact calendar legend/status color matching and clearer uploads */
:root{--calendar-available:#3f8f5f;--calendar-limited:#6a60a6;--calendar-pending:#b47718;--calendar-reserved:#8e3b37}
.day.available{background:var(--calendar-available)!important;border-color:var(--calendar-available)!important;color:#fff!important}
.day.limited{background:var(--calendar-limited)!important;border-color:var(--calendar-limited)!important;color:#fff!important}
.day.pending{background:var(--calendar-pending)!important;border-color:var(--calendar-pending)!important;color:#fff!important}
.day.reserved,.day.booked{background:var(--calendar-reserved)!important;border-color:var(--calendar-reserved)!important;color:#fff!important}
.day.muted{opacity:.34}
.day .calendar-time{background:rgba(255,255,255,.92)!important;color:#282725!important}
.legend span:before{background:var(--calendar-available)!important}.legend .ll:before{background:var(--calendar-limited)!important}.legend .lp:before{background:var(--calendar-pending)!important}.legend .lb:before{background:var(--calendar-reserved)!important}
.image-editor{padding:12px;border:1px solid #d8c59d;border-radius:10px;background:#fffaf0;grid-column:1/-1}.image-editor>label:first-child{font-size:1rem}.upload-label{background:#fff;color:#282725;font-weight:700}.upload-label:before{content:'Upload: ';color:#8d6511}

/* v13: venue typography and editable image positioning */
body:has(.twinkle) .hero h1,body:has(.twinkle) .section h2,body:has(.twinkle) .card h3,body:has(.twinkle) .calendar-head h3,body:has(.twinkle) .faq-q{font-family:"Cormorant Garamond",Georgia,"Times New Roman",serif;font-weight:600;letter-spacing:-.015em}
body:has(.twinkle) .hero h1{font-size:clamp(3rem,7vw,6.2rem)}
body:has(.twinkle) .section h2{font-size:clamp(2.5rem,5vw,4.5rem)}
.image-copy-card.has-card-image,.image-overlay-card.has-card-image{background-position:var(--img-x,50%) var(--img-y,50%);background-size:var(--img-zoom,100%) auto}
.card-hero-photo img{object-fit:cover;transform-origin:center;will-change:transform}
.hero-admin-preview{background-repeat:no-repeat}

/* v14 live visual editors */
.live-editor-shell{display:grid;grid-template-columns:minmax(280px,420px) 1fr;gap:22px;align-items:start}.live-preview-wrap{position:sticky;top:82px}.live-preview-label{font-size:.78rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}.live-card-preview{position:relative;min-height:290px;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff;box-shadow:var(--shadow);touch-action:none;user-select:none}.live-card-preview.dragging{cursor:grabbing}.live-card-preview.has-bg{color:#fff;background:#333}.live-card-preview .live-bg{position:absolute;inset:0;background-repeat:no-repeat;background-position:50% 50%;background-size:100% auto;pointer-events:none}.live-card-preview .live-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.18),rgba(0,0,0,.72));pointer-events:none}.live-card-preview .live-card-body{position:relative;z-index:2;padding:24px;min-height:290px;display:flex;flex-direction:column;justify-content:flex-end}.live-card-preview .live-card-body.light{color:var(--text);justify-content:flex-start}.live-card-preview h3{margin:6px 0 10px;font-size:1.45rem}.live-card-preview p{margin:6px 0}.live-card-preview .preview-hero-top{height:155px;margin:-24px -24px 18px;background:#e5e0d8;overflow:hidden}.live-card-preview .preview-hero-top img{width:100%;height:100%;object-fit:cover;transform-origin:center;pointer-events:none}.live-image-tools{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.live-image-tools button{padding:7px 10px}.live-drag-help{font-size:.78rem;color:var(--muted);margin-top:8px}.live-card-preview.has-bg .live-drag-help{color:rgba(255,255,255,.8)}.live-editor-fields{min-width:0}.live-editor-fields .editor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-live-preview{aspect-ratio:16/7;min-height:300px;border-radius:18px;overflow:hidden;position:relative;background:#ddd;touch-action:none;user-select:none;border:1px solid var(--line);box-shadow:var(--shadow)}.hero-live-preview .hero-live-bg{position:absolute;inset:0;background-repeat:no-repeat;background-position:50% 50%;background-size:100% auto}.hero-live-preview .hero-live-overlay{position:absolute;inset:0;background:#fff;opacity:.75;pointer-events:none}.hero-live-preview .hero-live-content{position:relative;z-index:2;height:100%;display:grid;place-content:center;text-align:center;padding:30px}.hero-live-preview .hero-live-content h3{font-size:clamp(2rem,4vw,4rem);margin:0}.communication-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.test-card{border:1px solid var(--line);border-radius:14px;padding:16px;background:#fafafa}.test-card h3{margin-top:0}.test-links{display:flex;gap:8px;flex-wrap:wrap}.status-pill{display:inline-block;padding:4px 8px;border-radius:999px;background:#e5f3e9;color:#246b3b;font-size:.78rem;font-weight:800}
@media(max-width:980px){.live-editor-shell{grid-template-columns:1fr}.live-preview-wrap{position:static}.communication-grid{grid-template-columns:1fr}}
@media(max-width:650px){.live-editor-fields .editor-grid{grid-template-columns:1fr}.hero-live-preview{min-height:240px}.live-card-preview{min-height:260px}}

/* v15 interaction and crop fixes */
.card-hero-bg{width:100%;aspect-ratio:16/9;background-repeat:no-repeat;background-color:#e8e3da;border-radius:0;transition:filter .2s ease}
.gallery-card:hover .card-hero-bg{filter:brightness(1.04)}
.availability-line{color:#6f5512}
.site-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,24px);z-index:2200;max-width:min(92vw,680px);padding:14px 20px;border-radius:12px;background:#243126;color:#fff;font-weight:700;box-shadow:0 12px 35px rgba(0,0,0,.25);opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;text-align:center}
.site-toast.show{opacity:1;transform:translate(-50%,0)}
.site-toast.error{background:#842f2a}
@media(max-width:560px){.site-toast{bottom:12px;width:calc(100% - 24px)}}

/* v17 final admin organization, sorted records, image galleries, and phone-fit calendar */
.admin-menu-group{margin:0 0 18px}.admin-menu-group h3{margin:0 0 5px;padding:0 8px;color:var(--gold2);font-size:.72rem;letter-spacing:.13em;text-transform:uppercase}.admin-menu-group a,.admin-menu-group button{border-bottom:1px solid #363636}.admin-record-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.admin-record-card{height:100%;border-radius:14px;background:#fffdfa}.record-date{margin-top:3px;color:var(--muted);font-size:.82rem;font-weight:700}.gallery-image-open{display:block;border:0;padding:0;cursor:pointer;position:relative}.gallery-image-open:after{content:'View photos';position:absolute;right:10px;bottom:10px;background:rgba(0,0,0,.7);color:#fff;padding:5px 8px;border-radius:999px;font-size:.72rem;font-weight:700;opacity:.9}.gallery-image-open:hover:after,.gallery-image-open:focus:after{background:var(--gold)}.gallery-image-open:focus{outline:3px solid rgba(182,138,45,.35);outline-offset:-3px}.business-card,.apartment-card{padding:0;overflow:hidden}.business-card .card-content,.apartment-card .card-content{padding:22px}
@media(max-width:850px){.admin-record-grid{grid-template-columns:1fr}}
@media(max-width:650px){
 .calendar-scroll{overflow:visible;padding-bottom:0}.calendar-scroll .calendar-grid{min-width:0!important;width:100%;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}.calendar{padding:8px}.calendar-grid .dow{font-size:.58rem;padding:3px 0}.day{min-width:0;min-height:72px;padding:3px 2px;border-radius:5px;overflow:hidden}.day strong{font-size:.72rem}.calendar-times{padding-right:0;margin-top:3px;gap:2px}.calendar-time{font-size:.46rem;line-height:1.08;padding:2px 1px;white-space:normal;overflow-wrap:anywhere;text-align:center}.calendar-mobile-note{display:block}.legend{gap:8px;font-size:.72rem}.calendar-head .btn{padding:8px 10px}.calendar-head h3{font-size:1.35rem}
}
@media(max-width:400px){.day{min-height:66px}.calendar-time{font-size:.42rem}.calendar-grid .dow{font-size:.52rem}}


/* v18 shared light-theme image engine, readable overlays, gallery crop editor, and polish */
.image-copy-card.has-card-image,.image-overlay-card.has-card-image{position:relative;isolation:isolate;background-image:var(--card-image)!important;background-repeat:no-repeat;background-position:var(--img-x,50%) var(--img-y,50%);background-size:var(--img-zoom,100%) auto;color:var(--text)!important;overflow:hidden}
.image-copy-card.has-card-image::before,.image-overlay-card.has-card-image::before{content:"";position:absolute;inset:0;z-index:0;background:#fff;opacity:var(--image-overlay,.5);pointer-events:none}
.image-copy-card.has-card-image .card-overlay-copy,.image-overlay-card.has-card-image .card-overlay-copy{position:relative;z-index:1;color:var(--text)!important}
.image-copy-card.has-card-image h3,.image-copy-card.has-card-image p,.image-copy-card.has-card-image strong,.image-overlay-card.has-card-image h3,.image-overlay-card.has-card-image p,.image-overlay-card.has-card-image strong,.text-over-image{color:var(--text)!important;text-shadow:0 0 3px rgba(255,255,255,.98),0 0 8px rgba(255,255,255,.72),0 1px 1px rgba(0,0,0,.12)}
.partner-card.has-card-image{background-image:var(--card-image)!important;background-position:var(--img-x,50%) var(--img-y,50%)!important;background-size:var(--img-zoom,100%) auto!important}
.hero h1,.hero .eyebrow,.hero p,.hero-live-content h3,.hero-live-content .eyebrow,.hero-live-content p{position:relative;text-shadow:0 0 3px rgba(255,255,255,.98),0 0 10px rgba(255,255,255,.8),0 1px 1px rgba(0,0,0,.14)}
.live-card-preview.has-bg{color:var(--text);background:#eee}.live-card-preview .live-shade{background:#fff;opacity:.5}.live-card-preview.has-bg .live-card-body{color:var(--text);text-shadow:0 0 3px rgba(255,255,255,.98),0 0 8px rgba(255,255,255,.72)}
.live-card-preview.has-bg .live-drag-help{color:var(--muted)}
.photo{position:relative;border:0;background-color:#e6e0d7;background-repeat:no-repeat;cursor:pointer;background-position:50% 50%;background-size:100% auto}
.photo img{display:none}.photo-caption{position:absolute;left:10px;right:10px;bottom:10px;padding:7px 9px;border-radius:8px;background:rgba(255,255,255,.68);font-weight:700;text-align:left}
.gallery-preview-body{justify-content:flex-end!important}.gallery-preview-body .photo-caption{position:static;margin-top:auto}
.card-overlay-copy p,.card-content p,.faq-a,.section-intro{white-space:normal}
.btn{position:relative;overflow:hidden}.btn::after{content:"";position:absolute;inset:-50% auto -50% -65%;width:38%;transform:skewX(-22deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.58),transparent);transition:left .48s ease;pointer-events:none}.btn:hover::after,.btn:focus-visible::after{left:130%}
@media(prefers-reduced-motion:reduce){.twinkle.active:after{animation:none}.btn::after{display:none}}

/* v19 shared formatting, advertising, and footer */
.preserve-lines,.card p,.section-intro{white-space:pre-line}
.listing-cta{margin-top:28px;padding:22px;border:1px solid var(--line);border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:18px;box-shadow:var(--shadow)}
.listing-cta h3,.listing-cta p{margin:.15rem 0}
.advertising-grid .card{display:flex;flex-direction:column;gap:10px}.advertising-grid .btn{margin-top:auto}.stripe-plan+.advertise-open{margin-top:8px}
.shared-footer{text-align:center}.shared-footer p{margin:6px 0}.footer{padding:28px 0}.admin-link{opacity:.8}
.card-hero-bg,.live-bg,.hero-live-bg,.photo{background-repeat:no-repeat;background-color:#fff}
@media(max-width:650px){.listing-cta{align-items:stretch;flex-direction:column}.listing-cta .btn{width:100%}}

.admin-record-grid + #addBookingBtn{margin-top:14px;position:relative;z-index:2;touch-action:manipulation}
/* v21: inline listing inquiries and shared public/admin card renderer */
.listing-inquiry-row{display:flex;justify-content:center;margin-top:22px}.listing-inquiry-row .btn{min-width:min(100%,300px)}
.shared-public-preview{background:transparent!important;border:0!important;padding:0!important;min-height:0!important;overflow:visible!important}.shared-public-preview>.card{width:100%;margin:0}.shared-public-preview .amenity-image-card,.shared-public-preview .pricing-image-card,.shared-public-preview .nearby-image-card{min-height:290px}.shared-public-preview .partner-card{min-height:340px}
@media(max-width:560px){.listing-inquiry-row .btn{width:100%}}

/* v22 mobile admin containment, top control, and listing workflow */
html,body{max-width:100%;overflow-x:hidden}.admin-layout,.admin-main,.editor-section,.array-item,.live-editor-shell,.live-preview-wrap{min-width:0;max-width:100%}.hero-live-preview{width:100%;max-width:100%;min-height:0;aspect-ratio:16/7}.hero-live-bg{max-width:100%}.listing-card-fixed{height:390px;display:flex;flex-direction:column;overflow:hidden}.listing-card-fixed .card-overlay-copy{height:100%;display:flex;flex-direction:column}.listing-description-scroll{overflow-y:auto;min-height:0;max-height:118px;padding-right:5px}.listing-card-fixed .card-actions{margin-top:auto}.submission-photo{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:10px}.char-count{float:right;color:var(--muted);font-size:.8rem}.status-controls{display:flex;gap:8px;flex-wrap:wrap}.status-controls .btn{padding:8px 10px}.admin-toolbar #topBtn{white-space:nowrap}
@media(max-width:650px){.editor-section{margin-left:0;margin-right:0;padding:16px}.hero-live-preview{aspect-ratio:16/9}.hero-live-content{padding:14px!important}.hero-live-content h3{font-size:clamp(1.5rem,8vw,2.4rem)!important}.live-image-tools .btn{flex:1 1 auto}}

/* v24 authoritative navigation and responsive admin layout */
.quickbar{display:none!important}
.scroll-top-logo{cursor:pointer;text-decoration:none}
html,body{max-width:100%;overflow-x:hidden}

/* Public header and navigation: nav is a sibling of the header so fixed positioning is never clipped by backdrop-filter. */
.public-site{padding-top:76px}
.public-site .topbar{position:fixed;inset:0 0 auto 0;z-index:100;height:76px;background:rgba(255,255,255,.97);backdrop-filter:blur(10px)}
.public-site .topbar .nav{height:76px;min-height:76px;display:flex;flex-direction:row;align-items:center;padding:0;gap:12px}
.public-site .nav-logo-link{display:inline-flex;align-items:center}
.public-site .topbar .nav img{width:170px;max-height:60px;object-fit:contain}
.mobile-menu-btn,.mobile-menu-close,.nav-backdrop{display:none}
.public-site>.nav-links{margin:0}

@media(min-width:851px){
 .public-site{padding-left:230px}
 .public-site .topbar{left:230px}
 .public-site>.nav-links{position:fixed;left:0;top:0;bottom:0;width:230px;padding:92px 18px 24px;background:#24211d;color:#fff;display:flex;flex-direction:column;align-items:stretch;gap:0;overflow-y:auto;overflow-x:hidden;z-index:110;box-shadow:5px 0 20px rgba(0,0,0,.12)}
 .public-site>.nav-links a{display:block;color:#fff;padding:13px 10px;border-bottom:1px solid rgba(255,255,255,.14);font-weight:700;text-decoration:none;white-space:normal}
 .public-site>.nav-links .switch-link{border-left:0;padding-left:10px;margin:12px 0 0;color:var(--gold2)}
 .public-site>.nav-links .mobile-menu-close{display:none}
}

@media(max-width:850px){
 .public-site{padding:72px 0 0}
 .public-site .topbar{height:72px;left:0}
 .public-site .topbar .nav{height:72px;min-height:72px;padding:5px 0;gap:10px}
 .public-site .topbar .nav img{width:min(210px,58vw);max-height:60px}
 .mobile-menu-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--gold);border-radius:8px;background:#fff;font-size:1.5rem;flex:0 0 auto;cursor:pointer}
 .public-site>.nav-links{display:flex;position:fixed;left:0;top:0;bottom:0;width:min(84vw,330px);padding:58px 18px 24px;margin:0;background:#24211d;color:#fff;flex-direction:column;align-items:stretch;gap:0;overflow-y:auto;overflow-x:hidden;z-index:130;transform:translateX(-105%);visibility:hidden;transition:transform .24s ease,visibility 0s linear .24s;box-shadow:8px 0 30px rgba(0,0,0,.3)}
 .public-site.nav-open>.nav-links{transform:translateX(0);visibility:visible;transition-delay:0s}
 .public-site>.nav-links a{color:#fff;padding:14px 8px;border-bottom:1px solid rgba(255,255,255,.15);white-space:normal;text-decoration:none}
 .public-site>.nav-links .switch-link{border-left:0;padding-left:8px;margin:12px 0 0;color:var(--gold2)}
 .mobile-menu-close{display:block;position:absolute;right:12px;top:8px;background:none;border:0;color:#fff;font-size:2rem;cursor:pointer}
 .nav-backdrop{display:block;position:fixed;inset:0;border:0;background:rgba(0,0,0,.45);z-index:120;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s,visibility 0s linear .2s}
 .public-site.nav-open>.nav-backdrop{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}
 .public-site.nav-open{overflow:hidden}
}

/* Shared gallery preview. */
.gallery-admin-card{position:relative;height:290px;padding:0!important;overflow:hidden;border-radius:18px}
.gallery-admin-image{position:absolute;inset:0;background-image:var(--gallery-image);background-repeat:no-repeat;background-position:var(--img-x,50%) var(--img-y,50%);background-size:var(--img-zoom,100%) auto;background-color:#e7e2da}
.gallery-admin-caption{position:absolute;left:14px;right:14px;bottom:14px;padding:8px 10px;border-radius:8px;background:rgba(255,255,255,.75);z-index:2}
.gallery-admin-card:not(.has-gallery-image) .gallery-admin-image:after{content:"No image selected";position:absolute;inset:0;display:grid;place-items:center;color:var(--muted)}

/* Admin desktop/sidebar and toolbar. */
.admin-mobile-header,.admin-menu-backdrop,.admin-side .admin-menu-close{display:none}
.admin-logo-link{display:block}
.admin-layout{display:block;min-height:100vh}
.admin-side{position:fixed;left:0;top:0;bottom:0;width:250px;height:100vh;padding:24px;overflow-y:auto;overflow-x:hidden;background:#24211d;color:#fff;z-index:110}
.admin-main{margin-left:250px;padding:calc(var(--admin-toolbar-height,74px) + 28px) 28px 28px;min-width:0;background:#f7f3ec}
.admin-toolbar{position:fixed;left:250px;right:0;top:0;z-index:140;display:flex;gap:10px;flex-wrap:wrap;align-items:center;max-width:none;padding:14px 28px;background:rgba(247,243,236,.97);border-bottom:1px solid var(--line);backdrop-filter:blur(10px);box-shadow:0 4px 16px rgba(0,0,0,.06)}
.admin-toolbar .btn{flex:0 1 auto;white-space:nowrap}
.editor-section{scroll-margin-top:92px}

@media(max-width:780px){
 body:not(.public-site){padding-top:68px}
 .admin-mobile-header{display:flex;position:fixed;inset:0 0 auto 0;height:68px;background:#fff;border-bottom:1px solid var(--line);z-index:150;align-items:center;gap:14px;padding:7px 14px}
 .admin-mobile-header img{height:52px;width:auto;max-width:190px;object-fit:contain}
 .admin-mobile-header button{width:44px;height:44px;border:1px solid var(--gold);background:#fff;border-radius:8px;font-size:1.5rem;cursor:pointer}
 .admin-side{display:block;position:fixed;left:0;top:0;bottom:0;width:min(86vw,340px);height:100vh;max-height:none;z-index:170;transform:translateX(-105%);visibility:hidden;transition:transform .24s ease,visibility 0s linear .24s;padding:58px 20px 24px}
 .admin-menu-open .admin-side{transform:translateX(0);visibility:visible;transition-delay:0s}
 .admin-menu-backdrop{display:block;position:fixed;inset:0;border:0;background:rgba(0,0,0,.45);z-index:160;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s,visibility 0s linear .2s}
 .admin-menu-open .admin-menu-backdrop{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}
 .admin-menu-open{overflow:hidden}
 .admin-side .admin-menu-close{display:block;position:absolute;right:12px;top:6px;border:0!important;background:none!important;color:#fff!important;font-size:2rem!important;width:auto!important;cursor:pointer}
 .admin-main{margin:0;padding:calc(68px + var(--admin-toolbar-height,116px) + 12px) 12px 12px;min-width:0}
 .admin-toolbar{left:0;right:0;top:68px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:8px 12px}
 .admin-toolbar .btn{width:100%;min-width:0;padding:10px 8px;white-space:normal}
 .admin-side .admin-brand{max-width:180px}
 .editor-section{scroll-margin-top:148px}
}

@media(max-width:520px){.admin-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-mobile-header img{max-width:160px}}
.listing-status-stack{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}.listing-status-stack .badge{white-space:nowrap}@media(max-width:700px){.listing-status-stack{justify-content:flex-start;width:100%}.admin-record-card .item-head{align-items:flex-start;flex-direction:column}}


/* v29 listing action feedback */
.listing-action-notice{margin:.75rem 0 0;padding:.7rem .9rem;border-radius:12px;font-weight:700;line-height:1.35}
.listing-action-notice.pending{display:block;background:#fff7df;border:1px solid #c58b13;color:#5b430d}
.listing-action-notice.success{display:block;background:#eaf7ef;border:1px solid #4a9b68;color:#205b36}
.listing-action-notice.error{display:block;background:#fff0f0;border:1px solid #b94a48;color:#842624}
.status-controls button:disabled{opacity:.6;cursor:wait}


/* v32 shared card dimensions, readable pricing, and gallery ghosting */
.pricing-image-card,.amenity-image-card{height:310px!important;min-height:310px!important;max-height:310px!important;overflow:hidden}
.pricing-image-card .card-overlay-copy,.amenity-image-card .card-overlay-copy{height:100%;display:flex;flex-direction:column;min-height:0}
.pricing-image-card .fixed-card-scroll,.amenity-image-card .fixed-card-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding-right:4px}
.pricing-image-card .price{color:#111!important}
.shared-public-preview .pricing-image-card,.shared-public-preview .amenity-image-card{height:310px!important;min-height:310px!important;max-height:310px!important}
.gallery-photo-open,.gallery-admin-card{position:relative;isolation:isolate}
.gallery-photo-open:before,.gallery-admin-card:before{content:"";position:absolute;inset:0;background:#fff;opacity:var(--gallery-overlay,0);z-index:1;pointer-events:none}
.gallery-photo-open .photo-caption,.gallery-admin-caption{z-index:2}
.gallery-global-overlay-control{margin:0 0 18px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:#faf7f1}
@media(max-width:560px){.pricing-image-card,.amenity-image-card,.shared-public-preview .pricing-image-card,.shared-public-preview .amenity-image-card{height:280px!important;min-height:280px!important;max-height:280px!important}}
