/* ZRA97 Global Stylesheet — single source of truth */
:root{--zra-black:#000;--zra-near-black:#1A1A1A;--zra-white:#fff;--zra-offwhite:#FAFAFA;--zra-light-grey:#F2F2F2;--zra-mid-grey:#888;--zra-border:#E5E5E5;--zra-available:#1A7A4C;--zra-rented:#999;--zra-serif:'Cormorant Garamond',Georgia,serif;--zra-sans:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;--zra-transition:.35s cubic-bezier(.22,1,.36,1)}
body{font-family:var(--zra-sans);color:var(--zra-near-black);-webkit-font-smoothing:antialiased}
.zra-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--zra-sans);font-weight:500;font-size:13px;letter-spacing:1.5px;text-transform:uppercase;padding:16px 36px;border:1px solid var(--zra-black);border-radius:0;cursor:pointer;text-decoration:none;transition:all var(--zra-transition);line-height:1}
.zra-btn--primary{background:var(--zra-black);color:var(--zra-white)}
.zra-btn--primary:hover{background:var(--zra-white);color:var(--zra-black)}
.zra-btn--outline{background:transparent;color:var(--zra-black)}
.zra-btn--outline:hover{background:var(--zra-black);color:var(--zra-white)}
.zra-btn--block{width:100%}
.zra-btn--lg{padding:20px 48px;font-size:14px}
.zra-btn:disabled,.zra-btn--disabled{background:var(--zra-light-grey);border-color:var(--zra-border);color:var(--zra-mid-grey);cursor:not-allowed;pointer-events:none}
.zra-badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--zra-sans);font-size:10px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;padding:6px 12px}
.zra-badge--available{background:var(--zra-black);color:var(--zra-white)}
.zra-badge--rented{background:var(--zra-light-grey);color:var(--zra-mid-grey)}
.zra-badge--prebook{background:transparent;color:var(--zra-black);border:1px solid var(--zra-black)}
.zra-badge--dot::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}
.zra-tier{display:inline-block;font-family:var(--zra-sans);font-size:10px;font-weight:600;letter-spacing:2px;text-transform:uppercase;padding:5px 14px;border:1px solid var(--zra-black);color:var(--zra-black)}
.zra-tier--bronze{background:#FAF6F0}.zra-tier--silver{background:#F5F5F5}.zra-tier--gold{background:#FBF8EE}
.zra-tier--platinum{background:var(--zra-black);color:var(--zra-white)}
.zra-tier--platinum-plus{background:var(--zra-black);color:var(--zra-white);border-color:var(--zra-mid-grey)}
.zra-card{position:relative;background:var(--zra-white);overflow:hidden;border:1px solid var(--zra-border);transition:transform var(--zra-transition),border-color var(--zra-transition),box-shadow var(--zra-transition)}
.zra-card:hover{border-color:var(--zra-near-black);box-shadow:0 18px 32px rgba(0,0,0,.08)}
.zra-card__media{position:relative;aspect-ratio:3/4;overflow:hidden;background:var(--zra-light-grey)}
.zra-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.22,1,.36,1)}
.zra-card:hover .zra-card__media img{transform:scale(1.05)}
.zra-card__badge{position:absolute;top:14px;left:14px;z-index:2}
.zra-card__tier{position:absolute;top:14px;right:14px;z-index:2}
.zra-card__body{padding:18px 4px;text-align:center}
.zra-card__brand{font-family:var(--zra-sans);font-size:11px;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(--zra-mid-grey);margin-bottom:6px}
.zra-card__title{font-family:var(--zra-serif);font-size:22px;font-weight:500;color:var(--zra-near-black);margin-bottom:10px;line-height:1.2}
.zra-card__price{font-family:var(--zra-sans);font-size:14px;color:var(--zra-near-black)}
.zra-card__price strong{font-weight:600}.zra-card__price span{color:var(--zra-mid-grey);font-size:12px}
.zra-section-head{text-align:center;margin-bottom:48px}
.zra-section-head__eyebrow{font-family:var(--zra-sans);font-size:12px;font-weight:500;letter-spacing:3px;text-transform:uppercase;color:var(--zra-mid-grey);margin-bottom:16px;display:block}
.zra-section-head__title{font-family:var(--zra-serif);font-size:clamp(32px,5vw,52px);font-weight:500;color:var(--zra-near-black);line-height:1.1;letter-spacing:.5px}
.zra-period{display:flex;gap:10px;margin:24px 0}
.zra-period__option{flex:1;border:1px solid var(--zra-border);padding:18px 12px;text-align:center;cursor:pointer;transition:all var(--zra-transition);background:var(--zra-white)}
.zra-period__option:hover{border-color:var(--zra-black)}
.zra-period__option.active{border-color:var(--zra-black);background:var(--zra-black);color:var(--zra-white)}
.zra-period__days{font-family:var(--zra-serif);font-size:24px;font-weight:600;display:block;line-height:1}
.zra-period__label{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;margin-top:6px;display:block}
.zra-period__price{font-size:14px;font-weight:600;margin-top:10px;display:block}
.zra-currency{display:inline-flex;border:1px solid var(--zra-border)}
.zra-currency a{padding:6px 12px;font-size:12px;font-weight:500;letter-spacing:1px;color:var(--zra-mid-grey);text-decoration:none;transition:all var(--zra-transition)}
.zra-currency a.active,.zra-currency a:hover{background:var(--zra-black);color:var(--zra-white)}
.zra-input{width:100%;padding:14px 16px;border:1px solid var(--zra-border);border-radius:0;font-family:var(--zra-sans);font-size:15px;transition:border-color var(--zra-transition);background:var(--zra-white)}
.zra-input:focus{outline:none;border-color:var(--zra-black)}
.zra-label{display:block;font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--zra-near-black);margin-bottom:8px}
.zra-container{max-width:1280px;margin:0 auto;padding:0 24px}
.zra-divider{height:1px;background:var(--zra-border);border:0;margin:0}
.zra-text-center{text-align:center}
@media(max-width:1024px){.zra-container{padding:0 20px}}
@media(max-width:900px){.zra-section-head{margin-bottom:36px}.zra-period__days{font-size:20px}}
@media(max-width:600px){.zra-btn{padding:14px 28px;font-size:12px}.zra-btn--lg{padding:16px 32px}.zra-period{flex-direction:column}.zra-card__title{font-size:19px}.zra-container{padding:0 16px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}}

/* ============ Product Archive (Shop) ============ */
.zra-archive{padding:140px 0 100px}
.zra-archive__head{text-align:center;margin-bottom:40px}
.zra-archive__eyebrow{font-family:var(--zra-sans);font-size:12px;font-weight:500;letter-spacing:3px;text-transform:uppercase;color:var(--zra-mid-grey);margin-bottom:14px;display:block}
.zra-archive__title{font-family:var(--zra-serif);font-size:clamp(32px,5vw,52px);font-weight:500;color:var(--zra-near-black);line-height:1.1}
.zra-archive__count{font-family:var(--zra-sans);font-size:13px;color:var(--zra-mid-grey);margin-top:10px}
.zra-filterbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding:20px 0;margin-bottom:36px;border-top:1px solid var(--zra-border);border-bottom:1px solid var(--zra-border)}
.zra-filterbar__group{display:flex;flex-wrap:wrap;gap:10px}
.zra-filterbar select{appearance:none;-webkit-appearance:none;background:var(--zra-white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23000'/%3E%3C/svg%3E") no-repeat right 12px center;border:1px solid var(--zra-border);padding:10px 32px 10px 14px;font-family:var(--zra-sans);font-size:12px;letter-spacing:.5px;text-transform:uppercase;color:var(--zra-near-black);cursor:pointer;min-width:140px}
.zra-filterbar select:focus{outline:2px solid var(--zra-black);outline-offset:1px}
.zra-filterbar__clear{font-family:var(--zra-sans);font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--zra-mid-grey);text-decoration:underline;white-space:nowrap}
.zra-filterbar__clear:hover{color:var(--zra-black)}
.zra-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px 32px;list-style:none;margin:0;padding:0}
.zra-grid .zra-card a{display:block;color:inherit;text-decoration:none}
.zra-grid .zra-card a:focus-visible{outline:2px solid var(--zra-black);outline-offset:4px}
.zra-card__cta{margin-top:14px}
.zra-empty{text-align:center;padding:80px 20px;font-family:var(--zra-sans);color:var(--zra-mid-grey)}
.zra-empty a{color:var(--zra-black);text-decoration:underline}
.zra-pagination{display:flex;justify-content:center;gap:8px;margin-top:64px}
.zra-pagination a,.zra-pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;font-family:var(--zra-sans);font-size:13px;color:var(--zra-near-black);text-decoration:none;border:1px solid transparent}
.zra-pagination a:hover{border-color:var(--zra-black)}
.zra-pagination .current{border-color:var(--zra-black);font-weight:600}
.zra-skeleton{background:linear-gradient(90deg,var(--zra-light-grey) 25%,#ececec 37%,var(--zra-light-grey) 63%);background-size:400% 100%;animation:zra-shimmer 1.4s ease infinite}
@keyframes zra-shimmer{0%{background-position:100% 50%}100%{background-position:0 50%}}
@media(max-width:1024px){.zra-grid{grid-template-columns:repeat(2,1fr);gap:28px 20px}.zra-archive{padding:110px 0 80px}}
@media(max-width:900px){.zra-grid{grid-template-columns:repeat(2,1fr);gap:24px 16px}.zra-filterbar{justify-content:flex-start}}
@media(max-width:600px){.zra-grid{grid-template-columns:1fr;gap:22px}.zra-archive{padding:90px 0 60px}.zra-archive__title{font-size:28px}.zra-filterbar select{min-width:0;flex:1 1 45%;font-size:11px;padding:9px 28px 9px 12px}.zra-card__title{font-size:16px}.zra-card__body{padding:14px 2px}}

/* ============ Single Product ============ */
.zra-pdp{padding:140px 0 100px}
.zra-pdp__grid{display:grid;grid-template-columns:1.05fr 1fr;gap:64px;align-items:start}
.zra-pdp__gallery{position:sticky;top:110px}
.zra-gallery__main{position:relative;aspect-ratio:3/4;overflow:hidden;background:var(--zra-light-grey);border:1px solid var(--zra-border)}
.zra-gallery__main img{width:100%;height:100%;object-fit:cover;display:block}
.zra-gallery__thumbs{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.zra-gallery__thumb{width:76px;height:96px;flex:0 0 76px;overflow:hidden;border:1px solid var(--zra-border);cursor:pointer;background:var(--zra-light-grey);padding:0;transition:border-color var(--zra-transition)}
.zra-gallery__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.zra-gallery__thumb.active,.zra-gallery__thumb:hover{border-color:var(--zra-near-black)}
.zra-pdp__info{padding-top:4px}
.zra-pdp__breadcrumb{font-family:var(--zra-sans);font-size:12px;color:var(--zra-mid-grey);margin-bottom:18px}
.zra-pdp__breadcrumb a{color:var(--zra-mid-grey);text-decoration:none}
.zra-pdp__breadcrumb a:hover{color:var(--zra-black)}
.zra-pdp__badges{display:flex;gap:8px;align-items:center;margin-bottom:16px;flex-wrap:wrap}
.zra-pdp__brand{font-family:var(--zra-sans);font-size:12px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--zra-mid-grey);margin-bottom:8px}
.zra-pdp__title{font-family:var(--zra-serif);font-size:clamp(28px,3.4vw,40px);font-weight:500;color:var(--zra-near-black);line-height:1.15;margin-bottom:14px}
.zra-pdp__price{font-family:var(--zra-sans);font-size:15px;color:var(--zra-near-black);margin-bottom:28px}
.zra-pdp__price strong{font-size:22px;font-weight:600}
.zra-pdp__price span{color:var(--zra-mid-grey);font-size:13px}
.zra-pdp__section-label{font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--zra-near-black);margin-bottom:10px;display:block}
.zra-period{cursor:pointer}
.zra-period__option[aria-pressed="true"]{border-color:var(--zra-black);background:var(--zra-black);color:var(--zra-white)}
.zra-pdp__deposit{font-family:var(--zra-sans);font-size:12.5px;color:var(--zra-mid-grey);margin-top:10px;line-height:1.6}
.zra-pdp__cta{margin-top:24px}
.zra-trust-row{display:flex;gap:22px;flex-wrap:wrap;margin-top:32px;padding-top:28px;border-top:1px solid var(--zra-border)}
.zra-trust-row__item{display:flex;align-items:center;gap:8px;font-family:var(--zra-sans);font-size:12.5px;color:var(--zra-near-black)}
.zra-trust-row__item svg{flex:0 0 16px;width:16px;height:16px}
.zra-pdp__help{margin-top:28px;padding:18px 20px;border:1px solid var(--zra-border);font-family:var(--zra-sans);font-size:13px;color:var(--zra-near-black);line-height:1.7}
.zra-pdp__help a{color:var(--zra-near-black)}
.zra-notify{margin-top:22px;display:flex;gap:0;border:1px solid var(--zra-border)}
.zra-notify input{flex:1;border:0;padding:14px 16px;font-family:var(--zra-sans);font-size:14px;background:transparent}
.zra-notify input:focus{outline:none}
.zra-notify button{border:0;border-left:1px solid var(--zra-border);background:var(--zra-black);color:var(--zra-white);padding:0 24px;font-family:var(--zra-sans);font-size:12px;font-weight:600;letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:background var(--zra-transition)}
.zra-notify button:hover{background:var(--zra-near-black)}
.zra-notify__msg{font-family:var(--zra-sans);font-size:12.5px;margin-top:10px}
.zra-notify__msg--success{color:var(--zra-available)}
.zra-notify__msg--error{color:#B3261E}
.zra-pdp__description{margin-top:70px;padding-top:50px;border-top:1px solid var(--zra-border);max-width:760px}
.zra-pdp__description h2{font-family:var(--zra-serif);font-size:26px;font-weight:500;margin-bottom:18px;color:var(--zra-near-black)}
.zra-pdp__description p{font-family:var(--zra-sans);font-size:15px;line-height:1.8;color:#3A3A3A}
.zra-related{margin-top:90px}
@media(max-width:1024px){.zra-pdp{padding:110px 0 80px}.zra-pdp__grid{grid-template-columns:1fr;gap:36px}.zra-pdp__gallery{position:static}}
@media(max-width:600px){.zra-pdp{padding:90px 0 60px}.zra-gallery__thumb{width:60px;height:76px;flex-basis:60px}.zra-pdp__title{font-size:24px}.zra-notify{flex-direction:column}.zra-notify button{border-left:0;border-top:1px solid var(--zra-border);padding:12px}}

/* ============ Related products (compact) ============ */
.zra-grid--compact{grid-template-columns:repeat(4,1fr);gap:24px 20px}
.zra-grid--compact .zra-card__title{font-size:16px;margin-bottom:6px}
.zra-grid--compact .zra-card__brand{font-size:9.5px;margin-bottom:4px}
.zra-grid--compact .zra-card__price{font-size:12.5px}
.zra-grid--compact .zra-card__body{padding:14px 3px}
.zra-grid--compact .zra-badge,.zra-grid--compact .zra-tier{font-size:9px;padding:5px 9px}
@media(max-width:1024px){.zra-grid--compact{grid-template-columns:repeat(3,1fr);gap:20px 16px}}
@media(max-width:900px){.zra-grid--compact{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.zra-grid--compact{grid-template-columns:repeat(2,1fr);gap:16px 10px}.zra-grid--compact .zra-card__title{font-size:14px}}

/* ============ Booking Calendar ============ */
.zra-calendar{border:1px solid var(--zra-border);padding:20px;margin-top:20px}
.zra-calendar__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.zra-calendar__month{font-family:var(--zra-serif);font-weight:600;font-size:16px;color:var(--zra-near-black)}
.zra-calendar__nav{display:flex;gap:8px}
.zra-calendar__nav button{background:var(--zra-white);border:1px solid var(--zra-border);width:30px;height:30px;cursor:pointer;font-size:14px;line-height:1;transition:border-color var(--zra-transition)}
.zra-calendar__nav button:hover:not(:disabled){border-color:var(--zra-black)}
.zra-calendar__nav button:disabled{opacity:.3;cursor:not-allowed}
.zra-calendar__weekdays{display:grid;grid-template-columns:repeat(7,1fr);font-family:var(--zra-sans);font-size:10px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--zra-mid-grey);margin-bottom:8px;text-align:center}
.zra-calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.zra-calendar__day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-family:var(--zra-sans);font-size:12.5px;cursor:pointer;border:1px solid var(--zra-border);background:var(--zra-offwhite);color:var(--zra-near-black);transition:all var(--zra-transition)}
.zra-calendar__day--empty{visibility:hidden;cursor:default;border:0;background:transparent}
.zra-calendar__day--past,.zra-calendar__day--blocked{color:#C4C4C4;background:var(--zra-light-grey);text-decoration:line-through;cursor:not-allowed;border-color:var(--zra-light-grey)}
.zra-calendar__day--today{border-color:var(--zra-near-black);font-weight:700}
.zra-calendar__day--selected{background:var(--zra-black);color:#fff;border-color:var(--zra-black)}
.zra-calendar__day--in-range{background:rgba(13,13,13,.1);border-color:rgba(13,13,13,.1)}
.zra-calendar__day:not(.zra-calendar__day--blocked):not(.zra-calendar__day--past):not(.zra-calendar__day--empty):hover{border-color:var(--zra-black)}
.zra-calendar__legend{display:flex;gap:18px;margin-top:14px;font-family:var(--zra-sans);font-size:11px;color:var(--zra-mid-grey);flex-wrap:wrap}
.zra-calendar__legend span{display:inline-flex;align-items:center;gap:6px}
.zra-calendar__legend i{width:11px;height:11px;display:inline-block;border:1px solid var(--zra-border)}
.zra-calendar__legend .avail i{background:var(--zra-offwhite)}
.zra-calendar__legend .sel i{background:var(--zra-black);border-color:var(--zra-black)}
.zra-calendar__legend .block i{background:var(--zra-light-grey)}
.zra-calendar__summary{margin-top:16px;padding-top:16px;border-top:1px solid var(--zra-border);font-family:var(--zra-sans);font-size:13px;color:var(--zra-near-black);min-height:20px}
.zra-calendar__summary strong{font-weight:600}
.zra-calendar__loading,.zra-calendar__error{font-family:var(--zra-sans);font-size:12px;color:var(--zra-mid-grey);padding:24px 0;text-align:center}
.zra-calendar__error{color:#B3261E}
.zra-btn--buy{margin-top:12px;border-color:var(--zra-near-black)}