/* ==========================================================================
   ONE LIMASSOL — a superprime tower on the Limassol waterfront, Cyprus
   Original brand, original copy and original assets by 1Forge Digital.
   Design tokens (bronze #7c7262, paper #f0eeea, hairline rgba(124,114,98,.2),
   fluid viewport-scaled rem root, easeOutExpo).
   ========================================================================== */

/* ---- FLUID VIEWPORT-SCALED ROOT (continuous, no breakpoint drops) ---- */
:root{ --global-font-size:clamp(8px,calc(100vw/39),12px); }

/* ---- DESIGN TOKENS ---- */
:root{
  --bronze:#7c7262; --bronze-border:rgba(124,114,98,.2); --paper:#f0eeea;
  --white:#fff; --black:#000;
  --radius-btn:.3rem; --radius-input:.4rem; --radius-media:.6rem;
  --ease-expo:cubic-bezier(.19,1,.22,1); --ease-btn:cubic-bezier(.785,.135,.15,.86);
  --dur:1s; --dur-lines:.9s;
  --type-sans:'Neue Haas Grotesk Display Pro',Inter,-apple-system,'Helvetica Neue','Segoe UI',Arial,sans-serif;
  --type-serif:'Teodor','Playfair Display',Georgia,'Times New Roman',serif;
}

*{ box-sizing:border-box; margin:0; padding:0; }
html,body{ overflow-x:hidden; }
html{ font-size:var(--global-font-size); background:var(--white); color:var(--bronze);
  font-feature-settings:"liga" 1; -webkit-font-smoothing:antialiased; text-size-adjust:100%; scroll-behavior:smooth; }
body{ font-family:var(--type-sans); font-size:1.8rem; font-weight:400; line-height:1.4; color:var(--bronze); background:var(--white); }
@media(min-width:650px){ body{ font-size:1.5rem; } }
@media(min-width:1025px){ body{ font-size:1.8rem; } }
::selection{ background:var(--black); color:var(--white); }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
em{ font-style:normal; }
button,input,textarea{ font-family:inherit; font-size:inherit; color:inherit; }

/* ---- LAYOUT / GRID (4/12/24) ---- */
.site-max{ width:100%; margin-inline:auto; padding-left:2rem; padding-right:2rem; }
.site-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-column-gap:1.4rem; }
@media(min-width:650px){ .site-grid{ grid-template-columns:repeat(12,minmax(0,1fr)); grid-column-gap:2rem; } }
@media(min-width:1025px){ .site-grid{ grid-template-columns:repeat(24,minmax(0,1fr)); grid-column-gap:2rem; } }
.mc{ grid-column:1/-1; }
@media(min-width:650px){ .s-6{grid-column:span 6} .s-5{grid-column:span 5} .s-7{grid-column:span 7} .s-12{grid-column:span 12} .s-8{grid-column:span 8} .s-4{grid-column:span 4} }
@media(min-width:1025px){ .l-10{grid-column:span 10} .l-12{grid-column:span 12} .l-5{grid-column:span 5} .l-8{grid-column:span 8} .l-4{grid-column:span 4} .l-6{grid-column:span 6} .l-13{grid-column:span 13} }

/* ---- TYPE ---- */
.h1{ font-family:var(--type-serif); font-size:5rem; letter-spacing:-.025em; line-height:1; font-weight:400; max-width:100%; overflow-wrap:break-word; }
.h2{ font-family:var(--type-serif); font-size:4rem; letter-spacing:-.025em; line-height:1; font-weight:400; }
.h3{ font-family:var(--type-serif); font-size:3.2rem; letter-spacing:-.025em; line-height:1.1; font-weight:400; }
.h5{ font-family:var(--type-serif); font-size:2.6rem; letter-spacing:-.025em; line-height:1.3; font-weight:400; }
.label{ font-size:1.4rem; font-weight:500; line-height:1.25; text-transform:uppercase; letter-spacing:.02em; }
@media(max-width:649px){ .label{ font-size:1.15rem } .eyebrow{ font-size:1.2rem; letter-spacing:.04em } .h1{ font-size:4.2rem } .h2{ font-size:3.3rem } .h3{ font-size:2.8rem } }
@media(min-width:650px){ .h2{font-size:5rem} .h3{font-size:4.2rem} }
@media(min-width:1025px){ .h1{font-size:9rem} .h2{font-size:7rem} .h3{font-size:5rem} }
.txt{ margin:0; } .txt>:not(:last-child){ margin-bottom:2.4rem; }
.lead{ max-width:60ch; }
.eyebrow{ font-size:1.4rem; font-weight:500; text-transform:uppercase; letter-spacing:.06em; opacity:.8; margin-bottom:2.2rem; }
.feature-text{ font-family:var(--type-serif); font-size:2.4rem; line-height:1.3; letter-spacing:-.02em; max-width:28ch; }
@media(min-width:650px){ .feature-text{ font-size:3.4rem; } }

/* ---- underlines ---- */
.uline{ display:inline-flex; position:relative; white-space:nowrap; }
.uline::before{ background-color:currentColor; content:""; position:absolute; left:0; right:0; bottom:0; height:.05em; min-height:1px; transform:scaleX(0); transform-origin:right; transition:transform .75s var(--ease-expo); }
.uline:hover::before{ transform:scaleX(1); transform-origin:left; }

/* ---- HEADER ---- */
.site-header{ position:fixed; inset:0 auto auto 0; width:100%; z-index:99; color:#fff; transform:translateY(-100%); transition:transform var(--dur) var(--ease-expo); }
.site-header.is-active{ transform:translateY(0); }
.site-header.is-light{ color:var(--bronze); }
.site-inner{ display:flex; align-items:center; justify-content:space-between; padding:2rem 2rem; gap:2rem; }
.brand{ display:inline-flex; align-items:baseline; gap:1.2rem; font-family:var(--type-serif); letter-spacing:-.02em; font-size:2.2rem; line-height:1; }
.brand small{ font-family:var(--type-sans); font-size:1.2rem; letter-spacing:.1em; text-transform:uppercase; font-weight:500; }
.nav{ display:none; }
@media(min-width:1025px){ .nav{ display:flex; align-items:center; gap:3rem; } }
.nav a{ font-size:1.4rem; font-weight:500; text-transform:uppercase; letter-spacing:.04em; padding:.4rem 0; }
.nav a.active::before{ transform:scaleX(1); }
.header-cta{ display:none; }
@media(min-width:1025px){ .header-cta{ display:inline-flex; } }
.menu{ display:inline-flex; flex-direction:column; align-items:center; gap:1rem; cursor:pointer; background:none; border:0; color:inherit; }
@media(min-width:1025px){ .menu{ display:none; } }
.menu .lbl{ font-size:1.2rem; font-weight:500; text-transform:uppercase; letter-spacing:.08em; }
.mm-line{ width:5rem; height:.2rem; position:relative; }
.mm-line span{ position:absolute; left:0; top:0; width:100%; height:100%; background:currentColor; transition:transform 1s var(--ease-expo); }
.mm-line span:first-child{ transform:translateY(-.5rem); }
.mm-line span:last-child{ transform:translateY(.5rem); }
.menu.is-active .mm-line span:first-child{ transform:rotate(22.5deg) translateY(0); }
.menu.is-active .mm-line span:last-child{ transform:rotate(-22.5deg) translateY(0); }

/* ---- BUTTON (mask sweep) ---- */
.btn{ --fs:1rem; --h:4em; --pl:1.35em; --pr:1.35em; --gap:8em; position:relative; display:inline-flex; cursor:pointer; border-radius:var(--radius-btn); overflow:hidden; font-size:var(--fs); }
.btn::before{ content:""; position:absolute; inset:0; border:1px solid currentColor; border-radius:inherit; opacity:.4; }
.btn__content{ position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:0 var(--gap); height:var(--h); padding:0 var(--pr) 0 var(--pl); min-width:0; }
.btn__label{ font-weight:500; text-transform:uppercase; letter-spacing:.05em; line-height:1; font-size:1.4em; white-space:nowrap; }
.btn__mask{ position:absolute; inset:0; z-index:2; display:none; align-items:center; justify-content:space-between; padding:0 var(--pr) 0 var(--pl); color:#fff; background:var(--bronze); clip-path:inset(100% 0 0 0); transition:clip-path 1s var(--ease-btn); }
.btn--light{ color:#fff; }
.btn--light .btn__mask{ color:var(--bronze); background:#fff; }
.btn--link{ background:none; border:0; }
@media(hover:hover) and (pointer:fine){
  .btn__mask{ display:flex; }
  .btn:hover .btn__label{ opacity:0; }
  .btn:hover .btn__mask{ clip-path:inset(0 0 0 0); }
}

/* ---- HERO (media + gradient overlay + split title + scroll cue) ---- */
.hero{ position:relative; height:100svh; min-height:60rem; overflow:hidden; color:#fff; display:flex; align-items:flex-end; }
.hero__media{ position:absolute; inset:0; z-index:1; will-change:transform; }
.hero::after{ content:""; position:absolute; inset:0; z-index:2; pointer-events:none; background:linear-gradient(180deg, rgba(12,16,24,.46) 0%, rgba(12,16,24,.14) 22%, rgba(12,16,24,0) 48%, rgba(12,16,24,0) 66%, rgba(12,16,24,.30) 86%, rgba(12,16,24,.62) 100%); }
.hero__content{ transform:translateZ(0); }
.hero-home{ background-size:cover; background-position:center; background-repeat:no-repeat;
  background-image:url('img/hero-home.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
@media (max-width:649px){ .hero-home{ background-position:center 30%; } }
.hero-residences{ background-size:cover; background-position:center; background-repeat:no-repeat;
  background-image:url('img/hero-residences.jpg'), linear-gradient(160deg,#e7d3ad 0%, #c1905b 55%, #7a5b3a 100%); }
@media (max-width:649px){ .hero-residences{ background-position:center 25%; } }
.grad-azure::before{ background:radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.grad-sand::before{ background:linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.grad-sea::before{ background:linear-gradient(160deg,#a7c9d6,#3e7a95 55%,#1f3f57); }
.grad-olive::before{ background:linear-gradient(160deg,#cdd4ae,#8ea269 55%,#5d7143); }
.grad-terra::before{ background:linear-gradient(160deg,#e0b493,#b26a45 55%,#6e3f2d); }
.grad-stone::before{ background:linear-gradient(160deg,#d6cfc2,#a1957f 55%,#6c6151); }
.grad-gold::before{ background:linear-gradient(160deg,#e8d2a4,#c1963f 55%,#8a6a24); }
.grad-navy::before{ background:linear-gradient(160deg,#7d90ac,#3a4f6e 55%,#1b2b45); }
.grad-rose::before{ background:linear-gradient(160deg,#e2b6a8,#b26a5c 55%,#6e3a33); }
.hero__content{ position:relative; z-index:3; padding-bottom:8rem; padding-top:30rem; }
.hero__content::before{ content:none; }
.hero__label{ color:#fff; opacity:.9; text-shadow:0 1px 14px rgba(0,0,0,.55); }
.hero__scroll{ position:absolute; right:2rem; bottom:4rem; z-index:4; color:#fff; opacity:.9; }
@media(min-width:650px){ .hero__scroll{ right:50%; transform:translateX(50%); } }
.hero__scroll span{ display:block; font-size:1.2rem; text-transform:uppercase; letter-spacing:.1em; writing-mode:vertical-rl; }

/* split-line reveal */
.split{ display:block; overflow:hidden; }
.split .w{ display:inline-block; overflow:hidden; vertical-align:top; }
.split .w .i{ display:inline-block; transform:translateY(110%); transition:transform .9s var(--ease-expo); }
.split.is-in .w .i{ transform:translateY(0); }

/* ---- SECTION / SPACING ---- */
.section{ padding-top:10rem; }
.section--padtop{ padding-top:14rem; }
.time{ padding-top:18rem; }
@media(min-width:1025px){ .time{ padding-top:28rem; } }
.rule{ height:1px; width:100%; background:var(--bronze-border); margin:4rem 0; }

/* ---- CARDS / MEDIA ---- */
.card{ position:relative; overflow:hidden; border-radius:var(--radius-media); }
.card__aspect{ display:block; position:relative; width:100%; padding-top:75%; background:var(--paper); }
.card__aspect--lo{ padding-top:130%; }
.card__aspect--wide{ padding-top:56%; }
.card__media{ position:absolute; inset:0; overflow:hidden; }
.hidden{ display:none !important; }
.card__media::before{ content:""; position:absolute; inset:0; transform:scale(1.001); transition:transform 1s var(--ease-expo); }
.card:hover .card__media::before{ transform:scale(1.03); }
.card__line{ position:absolute; left:2rem; bottom:2rem; color:#fff; z-index:2; }
.card__label{ display:block; font-size:1.3rem; font-weight:500; text-transform:uppercase; letter-spacing:.08em; text-shadow:0 1px 10px rgba(0,0,0,.55); }
.card__title{ display:block; font-family:var(--type-serif); font-size:2.6rem; letter-spacing:-.02em; line-height:1.2; margin-top:.6rem; }

/* horizontal snap carousel */
.links-row{ display:flex; gap:2rem; overflow-x:auto; scroll-snap-type:x mandatory; padding:2rem 2rem 4rem; -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 1.2%,#000 98.8%,transparent 100%); mask-image:linear-gradient(90deg,transparent 0,#000 1.2%,#000 98.8%,transparent 100%); }
.links-row.is-scrollable{ cursor:grab; }
.links-row.is-dragging{ cursor:grabbing; user-select:none; }
.links-row.is-dragging .card{ transition:none; }
.links-row .card{ will-change:transform; }
.links-row>*{ scroll-snap-align:start; flex:0 0 82%; max-width:82%; }
@media(min-width:650px){ .links-row>*{ flex:0 0 44%; max-width:44%; } }
@media(min-width:1025px){ .links-row>*{ flex:0 0 31%; max-width:31%; } }
.links-row::-webkit-scrollbar{ display:none; }

/* ---- QUOTE ---- */
.quote{ font-family:var(--type-serif); font-size:2rem; line-height:1.4; letter-spacing:-.02em; max-width:28ch; }
@media(min-width:650px){ .quote{ font-size:2.6rem; } }
.quote__cite{ display:block; margin-top:2.4rem; font-family:var(--type-sans); font-size:1.3rem; font-weight:500; text-transform:uppercase; letter-spacing:.05em; }

/* ---- SPLIT (media+text) ---- */
.split-block{ display:grid; gap:3rem; align-items:end; }
@media(min-width:650px){ .split-block{ grid-template-columns:1fr 1fr; } .split-block--wide{ grid-template-columns:1fr; } }
.split-block .copy{ max-width:46ch; }

/* ---- LISTINGS / AVAILABILITY ---- */
.filters{ display:flex; flex-wrap:wrap; gap:1rem; margin-bottom:3rem; }
.filter{ font-size:1.3rem; font-weight:500; text-transform:uppercase; letter-spacing:.06em; padding:.6rem 1.4rem; border-radius:99rem; border:1px solid var(--bronze-border); cursor:pointer; background:transparent; transition:background .3s var(--ease-expo),color .3s var(--ease-expo); }
.filter.is-active{ background:var(--bronze); color:#fff; border-color:var(--bronze); }
.listing-grid{ display:grid; gap:3rem; grid-template-columns:1fr; }
@media(min-width:650px){ .listing-grid{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:1025px){ .listing-grid{ grid-template-columns:repeat(3,1fr); } }
.listing{ cursor:pointer; }
.listing .meta{ display:flex; justify-content:space-between; margin-top:1.6rem; font-size:1.3rem; }
.listing .meta .l{ font-weight:500; text-transform:uppercase; letter-spacing:.04em; }
.availability-note{ margin-top:4rem; font-size:1.3rem; opacity:.7; }

/* ---- CONTACT FORM ---- */
.form{ display:grid; gap:2.4rem; }
.form-row{ display:grid; gap:2rem; }
@media(min-width:650px){ .form-row{ grid-template-columns:1fr 1fr; } }
.field label{ display:block; font-size:1.3rem; font-weight:500; text-transform:uppercase; letter-spacing:.06em; margin-bottom:1rem; }
.field :where(input,textarea){ width:100%; height:6rem; padding:1rem 2rem; border:1px solid var(--bronze-border); border-radius:var(--radius-input); background:transparent; }
.field :where(input,textarea):focus{ outline:none; border-color:var(--bronze); }
.field textarea{ height:12rem; resize:vertical; }
.form-status{ font-size:1.4rem; }
.form-status.hidden{ display:none; }

/* ---- TEAM ---- */
.team-grid{ display:grid; grid-template-columns:1fr; gap:0; }
@media(min-width:650px){ .team-grid{ grid-template-columns:repeat(2,1fr); } }
@media(min-width:1025px){ .team-grid{ grid-template-columns:repeat(3,1fr); } }
.team-item{ padding:4rem 0; border-top:1px solid var(--bronze-border); }
.team-item:first-child{ border-top:0; }
.team-role{ font-size:1.3rem; font-weight:500; text-transform:uppercase; letter-spacing:.06em; opacity:.8; }
.team-name{ font-family:var(--type-serif); font-size:3rem; letter-spacing:-.02em; line-height:1.1; }
.team-desc{ margin-top:1.6rem; opacity:.85; max-width:46ch; }

/* ---- REVEAL ---- */
.reveal{ opacity:0; transform:translateY(3rem); transition:opacity .9s var(--ease-expo),transform .9s var(--ease-expo); }
.reveal.is-in{ opacity:1; transform:translateY(0); }
@media (prefers-reduced-motion: reduce){
  *{ transition:none !important; animation:none !important; }
  .reveal,.split .w .i{ opacity:1 !important; transform:none !important; }
}

/* ---- FOOTER ---- */
.footer{ margin-top:10rem; background:var(--paper); padding:8rem 0 5rem; color:var(--bronze); }
.footer__brand{ font-family:var(--type-serif); font-size:3rem; letter-spacing:-.02em; margin-bottom:3rem; }
.footer__row{ display:grid; gap:2.4rem; padding-top:4rem; border-top:1px solid var(--bronze-border); }
@media(min-width:650px){ .footer__row{ grid-template-columns:repeat(3,1fr); } }
.footer__col h4{ font-size:1.3rem; font-weight:500; text-transform:uppercase; letter-spacing:.06em; margin-bottom:1.6rem; }
.footer__col a{ display:block; font-size:1.5rem; padding:.5rem 0; opacity:.9; }
.footer__meta{ display:flex; flex-wrap:wrap; gap:1.5rem 2rem; margin-top:5rem; padding-top:2.5rem; border-top:1px solid var(--bronze-border); font-size:1.2rem; text-transform:uppercase; letter-spacing:.05em; opacity:.75; justify-content:space-between; }

/* ---- MOBILE MENU OVERLAY ---- */
.menu-overlay{ position:fixed; inset:0; z-index:98; background:rgba(255,255,255,.98); color:var(--bronze);
  display:flex; flex-direction:column; justify-content:flex-start; gap:1rem; padding:12rem 2rem 4rem;
  transform:translateY(-100%); opacity:0; transition:transform .8s var(--ease-expo),opacity .5s ease; }
.menu-overlay a{ font-family:var(--type-serif); font-size:4.4rem; letter-spacing:-.02em; line-height:1.1; padding:1rem 0; }
.menu-overlay a.active::before{ transform:scaleX(1); }
.menu-overlay .overlay-meta{ margin-top:auto; font-size:1.3rem; text-transform:uppercase; letter-spacing:.06em; opacity:.7; }

/* ---- MODAL ---- */
.modal{ position:fixed; inset:0; z-index:9999; background:rgba(0,0,0,.9); display:none; align-items:center; justify-content:center; padding:6rem 2rem; }
.modal.is-open{ display:flex; }
.modal__content{ position:relative; width:100%; max-width:100rem; aspect-ratio:16/9; max-height:92vh; }
.modal__pane{ position:absolute; inset:0; border-radius:var(--radius-media); overflow:hidden; background:linear-gradient(160deg,#44586b,#1d2a38); }
.modal__close{ position:absolute; top:-4rem; right:0; background:none; border:0; color:#fff; font-size:1.4rem; text-transform:uppercase; letter-spacing:.06em; cursor:pointer; }

/* ---- GENERATED IMAGE PLACEHOLDERS (hero element + card ::before) ---- */
.x-01{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-01{ background-image:url('img/ph-01.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-01::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-01.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-02{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-02{ background-image:url('img/ph-02.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-02::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-02.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-03{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-03{ background-image:url('img/ph-03.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-03::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-03.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-04{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-04{ background-image:url('img/ph-04.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-04::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-04.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-05{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-05{ background-image:url('img/ph-05.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-05::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-05.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-06{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-06{ background-image:url('img/ph-06.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-06::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-06.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-07{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-07{ background-image:url('img/ph-07.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-07::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-07.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-08{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-08{ background-image:url('img/ph-08.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-08::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-08.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-09{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-09{ background-image:url('img/ph-09.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-09::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-09.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-10{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-10{ background-image:url('img/ph-10.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-10::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-10.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-11{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-11{ background-image:url('img/ph-11.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-11::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-11.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-12{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-12{ background-image:url('img/ph-12.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-12::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-12.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-13{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-13{ background-image:url('img/ph-13.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-13::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-13.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-14{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-14{ background-image:url('img/ph-14.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-14::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-14.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-15{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-15{ background-image:url('img/ph-15.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-15::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-15.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-16{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-16{ background-image:url('img/ph-16.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-16::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-16.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-17{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-17{ background-image:url('img/ph-17.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-17::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-17.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-18{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-18{ background-image:url('img/ph-18.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-18::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-18.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-19{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-19{ background-image:url('img/ph-19.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-19::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-19.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-20{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-20{ background-image:url('img/ph-20.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-20::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-20.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-21{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-21{ background-image:url('img/ph-21.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-21::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-21.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-22{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-22{ background-image:url('img/ph-22.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-22::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-22.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-23{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-23{ background-image:url('img/ph-23.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-23::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-23.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-24{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-24{ background-image:url('img/ph-24.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-24::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-24.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-25{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-25{ background-image:url('img/ph-25.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-25::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-25.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-26{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-26{ background-image:url('img/ph-26.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-26::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-26.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-27{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-27{ background-image:url('img/ph-27.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-27::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-27.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-28{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-28{ background-image:url('img/ph-28.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-28::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-28.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-29{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-29{ background-image:url('img/ph-29.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-29::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-29.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-30{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-30{ background-image:url('img/ph-30.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-30::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-30.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-31{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-31{ background-image:url('img/ph-31.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-31::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-31.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-32{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-32{ background-image:url('img/ph-32.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-32::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-32.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-33{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-33{ background-image:url('img/ph-33.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-33::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-33.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-34{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-34{ background-image:url('img/ph-34.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-34::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-34.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-35{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-35{ background-image:url('img/ph-35.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-35::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-35.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-36{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-36{ background-image:url('img/ph-36.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-36::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-36.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }
.x-37{ background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero__media.x-37{ background-image:url('img/ph-37.jpg'), radial-gradient(120% 90% at 30% 20%, #7fb0d6 0%, #4a7aa8 34%, #d8b789 72%, #6d5b3f 100%); }
.card__media.x-37::before{ background-size:cover; background-position:center; background-repeat:no-repeat; background-image:url('img/ph-37.jpg'), linear-gradient(160deg,#e7d3ad,#c1905b 55%,#7a5b3a); }

/* ==========================================================================
   REACTIVE UPGRADES — buttons, hero media, form validation, detail gallery
   ========================================================================== */

/* ---- Buttons: lift / press / shine / ripple ---- */
.btn{ transition:transform .35s var(--ease-expo), box-shadow .35s var(--ease-expo); }
.btn::before{ transition:opacity .35s var(--ease-expo); }
.btn:hover::before{ opacity:.9; }
.btn:hover{ box-shadow:0 12px 32px -14px rgba(124,114,98,.55); }
.btn:active{ transform:scale(.96); }
.btn--light:hover{ box-shadow:0 12px 32px -14px rgba(124,114,98,.7); }
.btn:not(.btn--link)::after{ content:""; position:absolute; top:0; left:-70%; width:45%; height:100%; z-index:3;
  background:linear-gradient(105deg, transparent, rgba(255,255,255,.5), transparent);
  transform:skewX(-20deg); opacity:0; pointer-events:none; }
.btn:not(.btn--link):hover::after{ animation:btnShine .75s var(--ease-btn); }
@keyframes btnShine{ 0%{left:-70%;opacity:0} 18%{opacity:1} 100%{left:135%;opacity:0} }
.btn--link{ background:none; border:0; transition:opacity .3s ease; }
.btn--link:hover{ opacity:.65; }
.btn[disabled]{ pointer-events:none; opacity:.6; }

/* filter pills reactive */
.filter{ position:relative; overflow:hidden; transition:background .4s var(--ease-expo), color .4s var(--ease-expo), transform .3s var(--ease-expo), box-shadow .3s var(--ease-expo); }
.filter:hover{ transform:translateY(-2px); box-shadow:0 10px 24px -12px rgba(124,114,98,.55); }
.filter:active{ transform:translateY(0) scale(.95); }
.filter.is-active{ transform:none; box-shadow:0 6px 18px -10px rgba(124,114,98,.7); }
.nav a:active, .footer__col a:active, .menu:active{ opacity:.55; }

/* ripple */
.ripple{ position:absolute; border-radius:50%; transform:scale(0); animation:ripple .6s ease-out forwards; pointer-events:none; z-index:4; }
@keyframes ripple{ to{ transform:scale(3); opacity:0; } }

/* ---- Contact form states ---- */
.field{ position:relative; }
.field :where(input,textarea){ transition:border-color .3s var(--ease-expo), box-shadow .3s var(--ease-expo), background .3s var(--ease-expo); }
.field :where(input,textarea):focus{ box-shadow:0 0 0 3px rgba(124,114,98,.14); }
.field.invalid :where(input,textarea){ border-color:#a84f3f; background:rgba(168,79,63,.05); }
.form__error{ display:block; font-size:1.2rem; color:#a84f3f; margin-top:.8rem; opacity:0; transform:translateY(-4px); height:0; overflow:hidden;
  transition:opacity .3s var(--ease-expo), transform .3s var(--ease-expo), height .3s var(--ease-expo); }
.field.invalid .form__error{ opacity:1; transform:none; height:auto; }
.form-status.success{ color:#4c7a55; }
.form-status.error{ color:#a84f3f; }

/* ---- Detail gallery / lightbox ---- */
.gallery{ position:absolute; inset:0; display:flex; flex-direction:column; height:100%; }
.gallery__media{ position:relative; flex:1 1 auto; min-height:0; overflow:hidden;
  border-radius:var(--radius-media) var(--radius-media) 0 0; background:#22303d; }
.gallery__media.anim{ animation:gMediaIn .55s var(--ease-expo); }
@keyframes gMediaIn{ from{ opacity:.3; } to{ opacity:1; } }
.gallery__img{ position:absolute; inset:0; transform-origin:center; animation:gZoom 11s ease-in-out infinite alternate; }
@keyframes gZoom{ from{ transform:scale(1.02); } to{ transform:scale(1.11); } }
.gallery__img::before{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,.28) 0%, transparent 26%, transparent 60%, rgba(0,0,0,.52) 100%); }
.gallery__index{ position:absolute; top:2rem; right:2rem; z-index:3; font-size:1.2rem; letter-spacing:.1em; color:#fff; text-transform:uppercase;
  background:rgba(8,12,16,.45); backdrop-filter:blur(6px); padding:.6rem 1.4rem; border-radius:99rem; border:1px solid rgba(255,255,255,.22); }
.gallery__arrow{ position:absolute; top:50%; transform:translateY(-50%); z-index:3; width:5.4rem; height:5.4rem; border-radius:50%;
  background:rgba(8,12,16,.4); color:#fff; border:1px solid rgba(255,255,255,.3); cursor:pointer; font-size:2rem;
  display:flex; align-items:center; justify-content:center; transition:background .3s var(--ease-expo), transform .3s var(--ease-expo), border-color .3s; backdrop-filter:blur(6px); }
.gallery__arrow:hover{ background:var(--bronze); border-color:var(--bronze); transform:translateY(-50%) scale(1.1); }
.gallery__arrow:active{ transform:translateY(-50%) scale(.92); }
.gallery__arrow.prev{ left:2.2rem; }
.gallery__arrow.next{ right:2.2rem; }
.gallery__bar{ flex:0 0 auto; display:flex; align-items:center; justify-content:space-between; gap:2.4rem; padding:1.8rem 2.4rem; color:#fff;
  background:linear-gradient(180deg, rgba(10,14,20,.55), rgba(10,14,20,.82)); backdrop-filter:blur(12px);
  border-radius:0 0 var(--radius-media) var(--radius-media); }
.gallery__meta{ display:flex; flex-direction:column; gap:.4rem; min-width:0; }
.gallery__label{ font-size:1.2rem; letter-spacing:.1em; text-transform:uppercase; opacity:.62; }
.gallery__title{ font-family:var(--type-serif); font-size:2.8rem; letter-spacing:-.02em; line-height:1.05; }
.gallery__specs{ font-size:1.25rem; opacity:.82; }
.gallery__thumbs{ display:flex; gap:.9rem; flex:0 1 auto; min-width:0; max-width:55%; overflow-x:auto; }
.g-thumb{ position:relative; flex:0 0 auto; width:6.6rem; height:4.8rem; border-radius:.5rem; overflow:hidden; cursor:pointer;
  border:2px solid rgba(255,255,255,.22); background-size:cover; background-position:center;
  transition:transform .3s var(--ease-expo), border-color .3s, opacity .3s, box-shadow .3s; opacity:.78; }
.g-thumb::before{ content:""; position:absolute; inset:0; background:rgba(0,0,0,.15); transition:background .3s; }
.g-thumb:hover{ transform:translateY(-3px); opacity:1; box-shadow:0 10px 22px -10px rgba(0,0,0,.6); }
.g-thumb.is-active{ border-color:#fff; opacity:1; transform:translateY(-2px); box-shadow:0 0 0 1px #fff, 0 12px 24px -12px rgba(0,0,0,.7); }
.g-thumb.is-active::before{ background:rgba(0,0,0,0); }
@media(max-width:649px){
  .modal{ padding:3.2rem 1.4rem 2.4rem; align-items:center; }
  .modal__content{ max-width:100%; aspect-ratio:auto; }
  .modal__pane{ position:relative; height:auto; }
  .gallery{ position:relative; height:auto; }
  .gallery__media{ height:52vh; min-height:22rem; }
  .gallery__bar{ flex-wrap:wrap; padding:1.4rem 1.6rem; }
  .gallery__thumbs{ max-width:100%; width:100%; }
  .gallery__title{ font-size:2rem; }
  .gallery__arrow{ width:4.4rem; height:4.4rem; font-size:1.7rem; }
  .modal__close{ top:-3rem; }
}

/* ==========================================================================
   MOBILE / TOUCH REFINEMENTS
   ========================================================================== */
@media(max-width:1024px){
  /* comfortable tap targets */
  .filter{ padding:.9rem 1.8rem; min-height:4.4rem; display:inline-flex; align-items:center; }
  .footer__col a{ padding:1rem 0; }
  .btn{ --h:4.6em; }
  .menu{ padding:.4rem 0; }
  .footer__meta{ gap:1rem 2rem; }
}
@media(max-width:649px){
  .site-max{ padding-left:1.8rem; padding-right:1.8rem; }
  .section{ padding-top:7rem; }
  .time{ padding-top:10rem; }
  .footer{ padding:6rem 0 4rem; }
  .h1{ letter-spacing:-.02em; }
  .hero__content{ padding-top:24rem; padding-bottom:6rem; }
  .hero__scroll{ right:1.5rem; bottom:3rem; }
  .links-row{ padding:1.5rem 1.5rem 3rem; gap:1.4rem; }
  .quote{ font-size:1.9rem; }
  .split-block{ gap:2.4rem; }
  .menu-overlay a{ font-size:3.4rem; }
}

