:root{--ink:#182019;--olive:#314431;--olive2:#3b5038;--sand:#eee9df;--cream:#f8f6f0;--line:#d9d3c7;--gold:#b49359;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Inter,"Noto Sans","Segoe UI",Arial,sans-serif;line-height:1.65;-webkit-font-smoothing:antialiased}.wrap{width:min(1360px,92vw);margin:auto}img{max-width:100%;display:block}.site-header{position:fixed;z-index:50;top:0;left:0;right:0;height:88px;display:flex;align-items:center;gap:34px;padding:0 4vw;color:#fff;border-bottom:1px solid rgba(255,255,255,.14);transition:.35s ease}.site-header.scrolled{height:76px;background:rgba(20,25,20,.96);backdrop-filter:blur(16px);box-shadow:0 8px 30px rgba(0,0,0,.08)}.brand{margin-right:auto;color:#fff;text-decoration:none;font-size:21px;font-weight:650;letter-spacing:-.02em}.brand small{display:block;font-size:9px;letter-spacing:.18em;font-weight:500;opacity:.68;margin-top:1px}.custom-logo{max-height:54px;width:auto}.site-header ul{display:flex;gap:26px;list-style:none;margin:0;padding:0}.site-header a{color:inherit;text-decoration:none}.site-header nav a{font-size:12px;font-weight:600;position:relative}.site-header nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:1px;background:currentColor;transition:.25s}.site-header nav a:hover:after{right:0}.header-cta{background:var(--gold);padding:12px 20px;font-size:12px;font-weight:700}.menu-toggle{display:none;width:42px;height:42px;background:none;border:0;position:relative}.menu-toggle span{position:absolute;width:22px;height:1px;background:#fff;left:10px;top:17px}.menu-toggle span+span{top:24px}.editorial-hero{height:100vh;min-height:720px;position:relative;overflow:hidden;background:var(--ink);color:#fff}.hero-slide{position:absolute;inset:0;background-image:var(--hero);background-size:cover;background-position:center;display:flex;align-items:flex-end;opacity:0;visibility:hidden;transform:scale(1.025);transition:opacity 1.15s ease,visibility 1.15s ease,transform 8s ease}.hero-slide.active{opacity:1;visibility:visible;transform:scale(1)}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,14,10,.7),rgba(10,14,10,.18) 62%),linear-gradient(0deg,rgba(10,14,10,.42),transparent 45%)}.hero-content{position:relative;z-index:2;width:min(860px,84vw);margin-left:7vw;margin-bottom:11vh}.eyebrow{font-size:11px;letter-spacing:.14em;font-weight:750}.gold{color:var(--gold)}.hero h1,.intro-statement h2,.editorial-copy h2,.feature-copy h2,.arch-copy h2,.destination h2,.booking h2,.page-hero h1,.page-section-copy h2{font-weight:640;letter-spacing:-.052em;line-height:1.02}.hero h1{font-size:clamp(54px,7.2vw,104px);max-width:1000px;margin:17px 0 24px}.hero p{font-size:17px;max-width:620px;opacity:.9}.btn{display:inline-flex;align-items:center;justify-content:center;margin-top:22px;padding:15px 24px;text-decoration:none;font-size:12px;font-weight:750}.btn-gold{background:var(--gold);color:#fff}.btn-light{background:#fff;color:var(--ink)}.hero-index{position:absolute;z-index:3;right:4.5vw;bottom:8vh;display:flex;align-items:center;gap:12px;font-size:11px}.hero-index span{font-size:22px;font-weight:600}.hero-index i{display:block;width:58px;height:1px;background:rgba(255,255,255,.45)}.hero-index small{font-size:10px;letter-spacing:.1em}.hero-dots{position:absolute;z-index:4;left:7vw;bottom:5vh;display:flex;gap:8px}.hero-dots button{width:22px;height:2px;padding:0;border:0;background:rgba(255,255,255,.35);cursor:pointer}.hero-dots button.active{background:#fff}.hero-arrow{position:absolute;z-index:4;top:50%;width:48px;height:48px;border:1px solid rgba(255,255,255,.4);background:rgba(0,0,0,.08);color:#fff;font-size:18px;cursor:pointer}.hero-prev{right:84px}.hero-next{right:28px}.intro-statement{display:grid;grid-template-columns:.32fr 1fr;gap:6vw;padding:130px 0 115px}.statement-label{padding-top:12px}.intro-statement h2{font-size:clamp(48px,6vw,84px);margin:0 0 32px;max-width:980px}.large-copy{font-size:18px;max-width:760px;color:#555b53}.facts-band{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.facts-grid{display:grid;grid-template-columns:repeat(4,1fr)}.facts-grid>div{padding:34px 28px;border-right:1px solid var(--line)}.facts-grid>div:first-child{padding-left:0}.facts-grid>div:last-child{border:0}.facts-grid strong{display:block;font-size:19px;font-weight:650}.facts-grid span{font-size:12px;color:#72776e}.editorial-split{display:grid;grid-template-columns:1.12fr .88fr;gap:9vw;align-items:center;padding:125px 0}.editorial-image{margin:0}.editorial-image.tall{height:720px}.editorial-image img{width:100%;height:100%;object-fit:cover}.editorial-copy{max-width:560px}.editorial-copy h2{font-size:clamp(42px,5vw,70px);margin:14px 0 26px}.editorial-copy p{color:#565b55}.text-link{display:inline-flex;margin-top:20px;color:var(--ink);text-decoration:none;font-size:12px;font-weight:750;border-bottom:1px solid currentColor;padding-bottom:5px}.text-link span{margin-left:12px}.full-bleed-feature{min-height:78vh;background-image:var(--feature);background-size:cover;background-position:center;position:relative;color:#fff;display:flex;align-items:flex-end}.feature-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(12,16,12,.72),rgba(12,16,12,.08) 65%)}.feature-copy{position:relative;z-index:2;padding-bottom:9vh}.feature-copy h2{font-size:clamp(48px,6.5vw,92px);max-width:980px;margin:14px 0 24px}.feature-copy>div{max-width:700px}.architecture-grid{padding:135px 0;display:grid;grid-template-columns:.65fr 1.15fr .55fr;grid-template-rows:auto 290px;gap:38px 4vw;align-items:start}.arch-copy{padding-top:75px}.arch-copy h2{font-size:clamp(42px,4.8vw,66px);margin:14px 0 24px}.arch-copy p{color:#555b53}.arch-main{height:670px;margin:0;grid-row:1/3;grid-column:2}.arch-main img,.arch-small img{width:100%;height:100%;object-fit:cover}.arch-small{height:290px;margin:0;align-self:end}.amenity-strip{background:var(--olive);color:#fff}.amenity-grid{display:grid;grid-template-columns:repeat(4,1fr)}.amenity-grid>div{padding:42px 30px;border-right:1px solid rgba(255,255,255,.14)}.amenity-grid>div:first-child{padding-left:0}.amenity-grid>div:last-child{border:0}.amenity-grid span{display:block;color:var(--gold);font-size:11px;margin-bottom:18px}.amenity-grid b{display:block;font-size:18px;margin-bottom:5px}.amenity-grid small{opacity:.7}.destination{padding:130px 0}.destination>div:first-child{display:grid;grid-template-columns:.28fr 1fr;gap:6vw}.destination h2{font-size:clamp(46px,5.8vw,80px);margin:0;max-width:1000px}.destination-stats{display:grid;grid-template-columns:repeat(6,1fr);margin:70px 0 25px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.destination-stats div{padding:28px 20px;border-right:1px solid var(--line)}.destination-stats div:first-child{padding-left:0}.destination-stats div:last-child{border:0}.destination-stats strong{display:block;font-size:28px;color:var(--gold);font-weight:600}.destination-stats span{font-size:12px}.booking{background:#111611;color:#fff;padding:110px 7vw;display:flex;justify-content:space-between;gap:60px;align-items:flex-end}.booking-main{max-width:880px}.booking h2{font-size:clamp(48px,6vw,86px);margin:14px 0 24px}.booking-actions{display:flex;flex-direction:column;align-items:flex-start;gap:11px;min-width:240px}.booking-actions a{color:#fff}.site-footer{padding:44px 7vw;background:#0b0f0b;color:#fff;display:flex;justify-content:space-between;gap:60px;border-top:1px solid rgba(255,255,255,.1);font-size:13px}.footer-brand{max-width:480px}.footer-brand strong{display:block;font-size:18px;margin-bottom:5px}.footer-brand span{opacity:.65}.footer-meta{display:flex;gap:18px;flex-wrap:wrap;align-items:flex-start}.site-footer a{color:#fff}.page-hero{min-height:72vh;padding:180px 0 90px;position:relative;background:var(--olive);background-image:var(--page-hero);background-size:cover;background-position:center;color:#fff;display:flex;align-items:flex-end}.page-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,16,12,.72),rgba(12,16,12,.18)),linear-gradient(0deg,rgba(12,16,12,.3),transparent 55%)}.page-hero-content{position:relative;z-index:1}.page-hero h1{font-size:clamp(54px,7vw,96px);max-width:980px;margin:14px 0 25px}.page-lead{max-width:720px;font-size:18px}.page-section{padding:120px 0}.page-section-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:8vw;align-items:center}.page-section-grid.reverse figure{order:2}.page-section figure{margin:0;height:610px;overflow:hidden}.page-section img{width:100%;height:100%;object-fit:cover}.page-section-copy h2{font-size:clamp(42px,5vw,70px);margin:14px 0 25px}.page-section-copy p{max-width:680px}.bg-default{background:var(--cream)}.bg-sand{background:var(--sand)}.bg-olive{background:var(--olive);color:#fff}.bg-dark{background:#111611;color:#fff}.bg-olive .text-link,.bg-dark .text-link{color:#fff}.content{padding:140px 0 80px}
@media(max-width:1050px){.site-header nav,.header-cta{display:none}.menu-toggle{display:block}.site-header.menu-open nav{display:block;position:absolute;left:0;right:0;top:76px;background:rgba(20,25,20,.98);padding:24px 6vw}.site-header.menu-open nav ul{flex-direction:column;gap:16px}.hero-arrow{display:none}.intro-statement{grid-template-columns:1fr;gap:16px}.facts-grid{grid-template-columns:1fr 1fr}.facts-grid>div:nth-child(2){border-right:0}.facts-grid>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.editorial-split{grid-template-columns:1fr;gap:55px}.editorial-image.tall{height:620px}.architecture-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto}.arch-copy{padding-top:0}.arch-main{grid-column:2;grid-row:1/3;height:650px}.arch-small{height:260px}.amenity-grid{grid-template-columns:1fr 1fr}.amenity-grid>div:nth-child(2){border-right:0}.amenity-grid>div:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.14)}.destination>div:first-child{grid-template-columns:1fr;gap:18px}.destination-stats{grid-template-columns:repeat(3,1fr)}.destination-stats div:nth-child(3){border-right:0}.destination-stats div:nth-child(-n+3){border-bottom:1px solid var(--line)}.booking,.site-footer{flex-direction:column;align-items:flex-start}.page-section-grid{grid-template-columns:1fr}.page-section-grid.reverse figure{order:0}.page-section figure{height:500px}}
@media(max-width:620px){.site-header{height:74px}.editorial-hero{min-height:690px}.hero-content{margin-left:7vw;margin-bottom:13vh}.hero h1{font-size:47px}.hero p{font-size:15px}.hero-index{display:none}.hero-dots{left:7vw;bottom:5vh}.intro-statement{padding:85px 0 70px}.intro-statement h2{font-size:45px}.facts-grid{grid-template-columns:1fr}.facts-grid>div{border-right:0;border-bottom:1px solid var(--line);padding:23px 0}.editorial-split{padding:80px 0}.editorial-image.tall{height:470px}.full-bleed-feature{min-height:690px}.feature-copy{padding-bottom:8vh}.architecture-grid{padding:85px 0;display:flex;flex-direction:column}.arch-main{height:500px;width:100%}.arch-small{height:300px;width:78%;align-self:flex-end}.amenity-grid{grid-template-columns:1fr}.amenity-grid>div{padding:28px 0;border-right:0;border-bottom:1px solid rgba(255,255,255,.14)}.destination{padding:85px 0}.destination h2{font-size:45px}.destination-stats{grid-template-columns:1fr 1fr}.destination-stats div:nth-child(3){border-right:1px solid var(--line)}.destination-stats div:nth-child(even){border-right:0}.destination-stats div{border-bottom:1px solid var(--line);padding:20px 10px}.booking{padding:80px 7vw}.booking h2{font-size:48px}.page-hero{min-height:650px}.page-hero h1{font-size:50px}.page-section{padding:80px 0}.page-section figure{height:420px}.site-footer{padding:38px 7vw}}

/* 1.5.0 — darker oak palette, icon system and refined hero */
:root{--ink:#211a16;--olive:#3a2a20;--olive2:#4b372a;--sand:#eee5d8;--cream:#f8f4ed;--gold:#b89568}
.site-header.scrolled{background:rgba(33,26,22,.95)}
.hero-shade{background:linear-gradient(90deg,rgba(25,17,12,.76),rgba(25,17,12,.18) 64%),linear-gradient(0deg,rgba(25,17,12,.46),transparent 45%)}
.hero-content{width:min(1040px,86vw);margin-bottom:10.5vh}
.hero h1{font-size:clamp(68px,8.5vw,132px);line-height:.91;letter-spacing:-.06em;max-width:1180px;margin:18px 0 30px;text-wrap:balance}
.hero p{font-size:clamp(18px,1.45vw,23px);line-height:1.48;max-width:760px;opacity:.94;font-weight:430}
.hero .eyebrow{font-size:12px;letter-spacing:.16em}
.hero-arrow{top:auto;bottom:7.1vh;width:58px;height:58px;border-radius:50%;border:1px solid rgba(255,255,255,.44);background:rgba(255,255,255,.08);backdrop-filter:blur(12px);display:grid;place-items:center;transition:.25s ease}
.hero-arrow:hover{background:#fff;color:var(--ink);transform:translateY(-2px)}
.hero-arrow svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.hero-prev{right:106px}.hero-next{right:38px}
.hero-dots{left:auto;right:38px;bottom:calc(7.1vh + 74px);gap:7px;align-items:center}
.hero-dots button{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.4);transition:.3s ease}
.hero-dots button.active{width:30px;border-radius:10px;background:#fff}
.hero-index{right:auto;left:7vw;bottom:5vh}
.fact-item{display:flex;align-items:center;gap:18px}
.fact-icon{width:42px;height:42px;flex:0 0 42px;color:var(--gold);display:grid;place-items:center}
.fact-icon svg{width:38px;height:38px;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}
.fact-icon.custom-icon{object-fit:contain}
.facts-grid>div{display:flex;align-items:center}
.amenity-icon{width:44px;height:44px;color:var(--gold);display:block;margin-bottom:20px}
.amenity-icon svg{width:44px;height:44px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.amenity-icon.custom-icon{object-fit:contain}
.amenity-grid span{margin-bottom:10px;opacity:.72}
.amenity-strip{background:var(--olive)}
.booking{background:#241a14}.site-footer{background:#18110d}.page-hero{background-color:var(--olive)}
@media(max-width:1050px){.hero h1{font-size:clamp(62px,9vw,96px)}.hero-dots{right:7vw}.hero-arrow{display:none}.fact-item{gap:14px}}
@media(max-width:620px){.hero-content{margin-bottom:14vh}.hero h1{font-size:54px;line-height:.94;letter-spacing:-.055em;margin-bottom:22px}.hero p{font-size:17px;line-height:1.45}.hero-dots{left:7vw;right:auto;bottom:5vh}.fact-icon{width:38px;height:38px;flex-basis:38px}.fact-icon svg{width:34px;height:34px}}


/* Villa Istra 1.6.0 — editorial hero refinements */
.hero h1{
  font-size:clamp(72px,8vw,118px);
  line-height:.91;
  letter-spacing:-.055em;
  max-width:1100px;
  margin:18px 0 28px;
}
.hero p{
  font-size:clamp(19px,1.45vw,23px);
  line-height:1.42;
  max-width:760px;
  opacity:.94;
}
.hero-arrow,.hero-prev,.hero-next{display:none!important}
.hero-dots{
  left:7vw;
  right:7vw;
  bottom:4.8vh;
  display:grid;
  grid-template-columns:repeat(var(--hero-slide-count,3),minmax(32px,1fr));
  gap:12px;
  align-items:end;
  max-width:720px;
}
.hero-dots button{
  width:100%;
  height:1px;
  min-height:1px;
  padding:8px 0;
  border:0;
  border-radius:0;
  background:linear-gradient(to bottom,transparent 7px,rgba(255,255,255,.42) 7px,rgba(255,255,255,.42) 8px,transparent 8px);
  cursor:pointer;
  transition:opacity .3s ease;
}
.hero-dots button.active{
  width:100%;
  height:2px;
  border-radius:0;
  background:linear-gradient(to bottom,transparent 6px,#fff 6px,#fff 9px,transparent 9px);
}
.hero-dots button:hover{opacity:.8}
@media(max-width:1050px){
  .hero h1{font-size:clamp(64px,9vw,96px)}
  .hero-dots{left:7vw;right:7vw;max-width:620px}
}
@media(max-width:620px){
  .hero h1{font-size:clamp(44px,13vw,58px);line-height:.92}
  .hero p{font-size:18px;line-height:1.4}
  .hero-dots{left:7vw;right:7vw;bottom:4.5vh;gap:8px;max-width:none}
}

.vil-home-custom.layout-text-only .page-section-grid,
.page-section.layout-text-only .page-section-grid{grid-template-columns:1fr}
.vil-home-custom.layout-text-only .page-section-copy,
.page-section.layout-text-only .page-section-copy{max-width:860px}
.vil-home-custom.layout-full-image .page-section-grid,
.page-section.layout-full-image .page-section-grid{grid-template-columns:1fr}
.full-custom-image{width:100%;height:min(72vh,760px);margin:0}
.full-custom-image img{width:100%;height:100%;object-fit:cover}

/* Villa Istra 1.8.0 — definitive hero typography and right-side line navigation */
.editorial-hero .hero-content h1{
  font-size:clamp(76px,8.6vw,132px) !important;
  line-height:.90 !important;
  letter-spacing:-.06em;
  max-width:1180px;
  margin:18px 0 30px;
  text-wrap:balance;
}
.editorial-hero .hero-content p{
  font-size:clamp(20px,1.5vw,24px) !important;
  line-height:1.38;
  max-width:760px;
}
.editorial-hero .hero-dots{
  left:auto !important;
  right:4.5vw !important;
  bottom:5vh !important;
  width:min(34vw,520px) !important;
  max-width:520px !important;
  display:grid !important;
  grid-template-columns:repeat(var(--hero-slide-count,3),minmax(42px,1fr)) !important;
  gap:12px !important;
  align-items:end;
}
.editorial-hero .hero-dots button{
  width:100% !important;
  height:12px !important;
  min-height:12px;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:linear-gradient(to bottom,transparent 5px,rgba(255,255,255,.38) 5px,rgba(255,255,255,.38) 6px,transparent 6px) !important;
}
.editorial-hero .hero-dots button.active{
  width:100% !important;
  height:12px !important;
  border-radius:0 !important;
  background:linear-gradient(to bottom,transparent 4px,#fff 4px,#fff 7px,transparent 7px) !important;
}
@media(max-width:1050px){
  .editorial-hero .hero-content h1{font-size:clamp(64px,9.5vw,100px) !important}
  .editorial-hero .hero-dots{right:7vw !important;width:min(42vw,440px) !important}
}
@media(max-width:620px){
  .editorial-hero .hero-content h1{font-size:clamp(48px,14vw,64px) !important;line-height:.91 !important}
  .editorial-hero .hero-content p{font-size:18px !important;line-height:1.4}
  .editorial-hero .hero-dots{left:auto !important;right:7vw !important;width:46vw !important;bottom:4.5vh !important;gap:7px !important}
}


/* Villa Istra 1.11.0 — definitive hero typography */
body .editorial-hero .hero-slide .hero-content h1{
  font-size:80px !important;
  line-height:.94 !important;
  letter-spacing:-.045em;
  max-width:900px;
}
body .editorial-hero .hero-slide .hero-content .eyebrow{
  font-size:20px !important;
  line-height:1.25;
  letter-spacing:0 !important;
  font-weight:300 !important;
  text-transform:none !important;
}
@media (max-width:1050px){
  body .editorial-hero .hero-slide .hero-content h1{font-size:68px !important;}
  body .editorial-hero .hero-slide .hero-content .eyebrow{font-size:18px !important;}
}
@media (max-width:620px){
  body .editorial-hero .hero-slide .hero-content h1{font-size:46px !important;line-height:.96 !important;}
  body .editorial-hero .hero-slide .hero-content .eyebrow{font-size:17px !important;}
}

/* Villa Istra 1.12.0 — hero CTA aligned beside description */
body .editorial-hero .hero-slide .hero-content{
  display:grid;
  grid-template-columns:minmax(0,900px) auto;
  column-gap:clamp(36px,6vw,100px);
  align-items:end;
}
body .editorial-hero .hero-slide .hero-copy{
  min-width:0;
}
body .editorial-hero .hero-slide .hero-copy p{
  margin-bottom:0;
}
body .editorial-hero .hero-slide .hero-cta-side{
  display:flex;
  align-items:flex-end;
  justify-content:flex-end;
  padding-bottom:0;
  white-space:nowrap;
}
body .editorial-hero .hero-slide .hero-cta-side .btn{
  margin:0;
}
@media(max-width:900px){
  body .editorial-hero .hero-slide .hero-content{
    grid-template-columns:1fr;
    row-gap:24px;
  }
  body .editorial-hero .hero-slide .hero-cta-side{
    justify-content:flex-start;
  }
}


/* Villa Istra 1.14.0 — vertically centered hero content */
body .editorial-hero .hero-slide .hero-content{
  top:0 !important;
  right:7vw;
  bottom:0 !important;
  left:7vw;
  height:100%;
  transform:none !important;
  display:grid;
  grid-template-columns:minmax(0,900px) auto;
  column-gap:clamp(36px,6vw,100px);
  align-items:center;
  align-content:center;
  padding-top:90px;
  padding-bottom:90px;
  box-sizing:border-box;
}
body .editorial-hero .hero-slide .hero-copy{
  align-self:center;
}
body .editorial-hero .hero-slide .hero-cta-side{
  align-self:center;
  display:flex;
  justify-content:flex-end;
  /* Align CTA visually with the lower description area while keeping the
     complete hero group centered and inside the viewport. */
  padding-top:clamp(110px,13vw,190px);
}
body .editorial-hero .hero-slide .hero-cta-side .btn,
body .editorial-hero .hero-slide .hero-cta-side .btn.btn-gold{
  background:transparent !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.95) !important;
  box-shadow:none !important;
}
body .editorial-hero .hero-slide .hero-cta-side .btn:hover,
body .editorial-hero .hero-slide .hero-cta-side .btn.btn-gold:hover{
  background:#000 !important;
  border-color:#000 !important;
  color:#fff !important;
}
@media(max-width:900px){
  body .editorial-hero .hero-slide .hero-content{
    grid-template-columns:1fr;
    row-gap:24px;
    padding-top:110px;
    padding-bottom:110px;
    align-content:center;
  }
  body .editorial-hero .hero-slide .hero-cta-side{
    align-self:auto;
    justify-content:flex-start;
    padding-top:0;
  }
}
@media(max-width:620px){
  body .editorial-hero .hero-slide .hero-content{
    padding-top:90px;
    padding-bottom:100px;
  }
}

/* Villa Istra 1.15.0 — hero content slightly below center */
body .editorial-hero .hero-slide .hero-content{
  align-content:center;
  padding-top:clamp(150px,18vh,220px);
  padding-bottom:clamp(70px,9vh,120px);
}
@media(max-width:900px){
  body .editorial-hero .hero-slide .hero-content{
    padding-top:clamp(140px,17vh,190px);
    padding-bottom:90px;
  }
}
@media(max-width:620px){
  body .editorial-hero .hero-slide .hero-content{
    padding-top:125px;
    padding-bottom:80px;
  }
}

/* Villa Istra 1.16.0 — hero lower placement + rounded CTA */
body .editorial-hero .hero-slide .hero-content{
  padding-top:clamp(175px,21vh,255px);
  padding-bottom:clamp(55px,7vh,95px);
}
body .editorial-hero .hero-slide .hero-cta-side .btn,
body .editorial-hero .hero-slide .hero-cta-side .btn.btn-gold{
  border-radius:12px !important;
}
@media(max-width:900px){
  body .editorial-hero .hero-slide .hero-content{
    padding-top:clamp(160px,20vh,220px);
    padding-bottom:75px;
  }
}
@media(max-width:620px){
  body .editorial-hero .hero-slide .hero-content{
    padding-top:145px;
    padding-bottom:68px;
  }
}

/* Villa Istra 1.17.0 — refined hero CTA */
body .editorial-hero .hero-slide .hero-cta-side .btn,
body .editorial-hero .hero-slide .hero-cta-side .btn.btn-gold{
  min-height:54px;
  padding:15px 30px 15px 34px !important;
  gap:16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:16px !important;
  line-height:1;
  font-weight:500;
  letter-spacing:0;
  border-radius:12px !important;
}
body .editorial-hero .hero-slide .hero-cta-side .hero-cta-arrow{
  width:21px;
  height:21px;
  flex:0 0 21px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:transform .28s ease;
}
body .editorial-hero .hero-slide .hero-cta-side .btn:hover .hero-cta-arrow{
  transform:translateX(4px);
}
@media(max-width:620px){
  body .editorial-hero .hero-slide .hero-cta-side .btn,
  body .editorial-hero .hero-slide .hero-cta-side .btn.btn-gold{
    min-height:52px;
    padding:14px 26px 14px 28px !important;
    font-size:15px !important;
  }
}

/* Villa Istra 1.18.0 — hero kicker + contained header */
body .editorial-hero .hero-slide .hero-content .eyebrow{
  font-size:16px !important;
  line-height:1.25;
  font-weight:300 !important;
  letter-spacing:.035em !important;
  text-transform:uppercase !important;
}
body .site-header{
  left:0;
  right:0;
  width:100%;
  padding-left:0 !important;
  padding-right:0 !important;
}
body .site-header .site-header-inner{
  width:min(86%, 1480px);
  margin:0 auto;
  display:flex;
  align-items:center;
  gap:clamp(24px,3vw,52px);
}
body .site-header nav{
  margin-left:auto;
}
body .site-header nav a{
  font-size:15.5px;
  font-weight:500;
}
body .site-header .header-cta{
  font-size:15.5px;
}
@media(max-width:1050px){
  body .editorial-hero .hero-slide .hero-content .eyebrow{font-size:15px !important;}
  body .site-header .site-header-inner{width:86%;}
}
@media(max-width:620px){
  body .editorial-hero .hero-slide .hero-content .eyebrow{font-size:14px !important;}
  body .site-header .site-header-inner{width:86%;}
}

/* Villa Istra 1.19.0 — narrower header and contained divider */
body .site-header{
  border-bottom:0 !important;
}
body .site-header .site-header-inner{
  width:min(82%, 1360px);
  position:relative;
}
body .site-header .site-header-inner::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:1px;
  background:rgba(255,255,255,.22);
  pointer-events:none;
}
@media(max-width:1050px){
  body .site-header .site-header-inner{width:84%;}
}
@media(max-width:620px){
  body .site-header .site-header-inner{width:86%;}
}

/* Villa Istra 1.20.0 — header spacing + active navigation */
body .site-header .site-header-inner{
  padding-top:24px;
  padding-bottom:24px;
  box-sizing:border-box;
}
body .site-header nav a,
body .site-header nav a:visited{
  transition:color .22s ease, opacity .22s ease;
}
body .site-header nav a:hover,
body .site-header nav .current-menu-item > a,
body .site-header nav .current-menu-parent > a,
body .site-header nav .current-menu-ancestor > a,
body .site-header nav .current_page_item > a,
body .site-header nav .current_page_parent > a,
body .site-header nav .current_page_ancestor > a{
  color:var(--gold) !important;
  opacity:1 !important;
}
@media(max-width:1050px){
  body .site-header .site-header-inner{
    padding-top:21px;
    padding-bottom:21px;
  }
}
@media(max-width:620px){
  body .site-header .site-header-inner{
    padding-top:18px;
    padding-bottom:18px;
  }
}

/* Villa Istra 1.21.0 — static header + back to top */
body .site-header{
  position:absolute !important;
  top:0;
  transform:none !important;
}
.vil-back-to-top{
  position:fixed;
  right:28px;
  bottom:28px;
  z-index:120;
  width:54px;
  height:54px;
  padding:0;
  border:1px solid rgba(255,255,255,.28);
  border-radius:50%;
  background:rgba(58,42,32,.92);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  opacity:0;
  visibility:hidden;
  transform:translateY(14px);
  transition:opacity .28s ease,visibility .28s ease,transform .28s ease,background .25s ease,border-color .25s ease;
  box-shadow:0 12px 34px rgba(20,14,10,.18);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.vil-back-to-top.is-visible{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.vil-back-to-top svg{
  width:22px;
  height:22px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:transform .25s ease;
}
.vil-back-to-top:hover{
  background:#000;
  border-color:#000;
}
.vil-back-to-top:hover svg{
  transform:translateY(-3px);
}
@media(max-width:620px){
  .vil-back-to-top{
    width:48px;
    height:48px;
    right:18px;
    bottom:18px;
  }
  .vil-back-to-top svg{width:20px;height:20px}
}

/* Villa Istra 1.22.0 — back to top black / white hover */
.vil-back-to-top{
  background:#000 !important;
  color:#fff !important;
  border-color:#000 !important;
}
.vil-back-to-top:hover{
  background:#fff !important;
  color:#000 !important;
  border-color:#fff !important;
}

/* Villa Istra 1.23.0 — rounded actions and richer editorial sections */

/* Consistent rounded buttons across the site */
body .btn,
body .header-cta,
body button:not(.menu-toggle):not(.hero-dots button):not(.vil-back-to-top){
  border-radius:12px;
}
body .btn{
  padding-left:30px;
  padding-right:30px;
}
body .header-cta{
  border-radius:12px;
  padding:13px 24px;
}

/* Larger, cleaner section kickers — hero keeps its own dedicated styling */
body main .eyebrow{
  font-size:17px;
  line-height:1.3;
  letter-spacing:0;
  font-weight:400;
}
body .editorial-hero .hero-slide .hero-content .eyebrow{
  font-size:16px !important;
  letter-spacing:.035em !important;
  font-weight:300 !important;
}

/* Give image/text sections more depth without turning them into cards */
body .page-section-grid,
body .editorial-split{
  position:relative;
}
body .page-section figure,
body .editorial-image{
  position:relative;
  overflow:visible;
  isolation:isolate;
}
body .page-section figure::before,
body .editorial-image::before{
  content:"";
  position:absolute;
  z-index:-1;
  left:-18px;
  bottom:-18px;
  width:58%;
  height:56%;
  border-radius:18px;
  background:color-mix(in srgb, var(--gold) 20%, transparent);
}
body .page-section-grid.reverse figure::before{
  left:auto;
  right:-18px;
}
body .page-section figure img,
body .editorial-image img{
  display:block;
  position:relative;
  z-index:1;
  border-radius:18px;
  box-shadow:0 22px 58px rgba(33,26,22,.12);
}
body .page-section-copy,
body .editorial-copy{
  position:relative;
}
body .page-section-copy::before,
body .editorial-copy::before{
  content:"";
  display:block;
  width:42px;
  height:2px;
  margin-bottom:22px;
  background:var(--gold);
}
body .page-section-copy p,
body .editorial-copy p{
  font-size:17px;
  line-height:1.75;
}

/* A subtle vertical detail reinforces the architectural/editorial feel */
body .page-section-copy::after{
  content:"";
  position:absolute;
  left:-34px;
  top:4px;
  width:1px;
  height:72px;
  background:color-mix(in srgb, var(--gold) 42%, transparent);
}

/* Architecture imagery also gets a restrained premium treatment */
body .arch-main,
body .arch-small{
  position:relative;
  overflow:hidden;
  border-radius:18px;
  box-shadow:0 22px 58px rgba(33,26,22,.11);
}
body .arch-main img,
body .arch-small img{
  transition:transform .7s ease;
}
@media (hover:hover) and (pointer:fine){
  body .page-section figure:hover img,
  body .editorial-image:hover img,
  body .arch-main:hover img,
  body .arch-small:hover img{
    transform:scale(1.015);
  }
}

/* Text links remain editorial but receive a softer rounded hover target */
body .text-link{
  border-bottom:0;
  padding:10px 14px;
  margin-left:-14px;
  border-radius:10px;
  transition:background .22s ease,color .22s ease;
}
@media (hover:hover) and (pointer:fine){
  body .text-link:hover{
    background:rgba(184,149,104,.10);
  }
  body .bg-olive .text-link:hover,
  body .bg-dark .text-link:hover{
    background:rgba(255,255,255,.10);
  }
}

@media(max-width:1050px){
  body main .eyebrow{font-size:16px;}
  body .page-section-copy::after{display:none;}
  body .page-section figure::before,
  body .editorial-image::before{left:-12px;bottom:-12px;}
  body .page-section-grid.reverse figure::before{right:-12px;}
}
@media(max-width:620px){
  body main .eyebrow{font-size:15px;}
  body .page-section figure::before,
  body .editorial-image::before{
    left:-8px;
    bottom:-8px;
    width:50%;
    height:42%;
  }
  body .page-section-grid.reverse figure::before{right:-8px;}
  body .page-section-copy p,
  body .editorial-copy p{font-size:16px;line-height:1.7;}
}

/* Villa Istra 1.24.0 — unify content sections with the "O vili" editorial style */

/* All standard image + text content sections use the same generous split rhythm */
body .page-section .page-section-grid,
body .vil-home-custom .page-section-grid{
  grid-template-columns:1.12fr .88fr;
  gap:9vw;
  align-items:center;
}
body .page-section .page-section-grid.reverse,
body .vil-home-custom .page-section-grid.reverse{
  grid-template-columns:.88fr 1.12fr;
}
body .page-section figure,
body .vil-home-custom figure{
  height:720px;
}
body .page-section-copy,
body .vil-home-custom .page-section-copy{
  max-width:560px;
}
body .page-section-copy h2,
body .vil-home-custom .page-section-copy h2{
  font-size:clamp(42px,5vw,70px);
  margin:14px 0 26px;
}
body .page-section-copy p,
body .vil-home-custom .page-section-copy p{
  color:#565b55;
}
body .bg-olive .page-section-copy p,
body .bg-dark .page-section-copy p{
  color:rgba(255,255,255,.78);
}

/* Larger section CTA buttons, while retaining the rounded theme language */
body .page-section .text-link,
body .vil-home-custom .text-link{
  min-height:52px;
  padding:14px 27px;
  margin-top:26px;
  margin-left:0;
  border:1px solid currentColor;
  border-radius:12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  font-size:15px;
  line-height:1;
  font-weight:500;
  text-decoration:none;
}
body .page-section .text-link span,
body .vil-home-custom .text-link span{
  margin-left:4px;
  font-size:18px;
  line-height:1;
  transition:transform .25s ease;
}
@media (hover:hover) and (pointer:fine){
  body .page-section .text-link:hover,
  body .vil-home-custom .text-link:hover{
    background:var(--ink);
    border-color:var(--ink);
    color:#fff;
  }
  body .bg-dark .text-link:hover,
  body .bg-olive .text-link:hover{
    background:#fff;
    border-color:#fff;
    color:#000;
  }
  body .page-section .text-link:hover span,
  body .vil-home-custom .text-link:hover span{
    transform:translateX(3px);
  }
}

/* Preserve layouts selected in the page builder */
body .page-section.layout-text-only .page-section-grid,
body .vil-home-custom.layout-text-only .page-section-grid{
  grid-template-columns:1fr;
}
body .page-section.layout-text-only .page-section-copy,
body .vil-home-custom.layout-text-only .page-section-copy{
  max-width:860px;
}
body .page-section.layout-full-image .page-section-grid,
body .vil-home-custom.layout-full-image .page-section-grid{
  grid-template-columns:1fr;
}
body .page-section.layout-full-image figure,
body .vil-home-custom.layout-full-image figure{
  height:min(72vh,760px);
}

@media(max-width:1050px){
  body .page-section .page-section-grid,
  body .page-section .page-section-grid.reverse,
  body .vil-home-custom .page-section-grid,
  body .vil-home-custom .page-section-grid.reverse{
    grid-template-columns:1fr;
    gap:55px;
  }
  body .page-section .page-section-grid.reverse figure,
  body .vil-home-custom .page-section-grid.reverse figure{
    order:0;
  }
  body .page-section figure,
  body .vil-home-custom figure{
    height:620px;
  }
}
@media(max-width:620px){
  body .page-section figure,
  body .vil-home-custom figure{
    height:470px;
  }
  body .page-section .text-link,
  body .vil-home-custom .text-link{
    min-height:50px;
    padding:13px 24px;
    font-size:14px;
  }
}

/* Villa Istra 1.25.0 — larger editorial CTA typography */
body main a.btn,
body main a.text-link,
body .editorial-copy a.text-link,
body .intro-statement a.text-link,
body .page-section-copy a.text-link{
  font-size:17px !important;
  line-height:1.1 !important;
  font-weight:500 !important;
}
body .editorial-copy a.text-link,
body .intro-statement a.text-link{
  min-height:54px;
  padding:15px 30px !important;
  margin-top:24px;
  margin-left:0;
  border:1px solid currentColor;
  border-radius:12px;
  display:inline-flex;
  align-items:center;
  gap:15px;
}
body main a.text-link span{
  font-size:21px !important;
  line-height:1;
}
@media(max-width:620px){
  body main a.btn,
  body main a.text-link,
  body .editorial-copy a.text-link,
  body .intro-statement a.text-link,
  body .page-section-copy a.text-link{
    font-size:16px !important;
  }
}

/* Villa Istra 1.26.0 — "Otkrijte priču vile" as editorial text CTA */
body .editorial-split .editorial-copy > a.text-link{
  min-height:0 !important;
  padding:8px 0 !important;
  margin-top:22px !important;
  margin-left:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-size:17px !important;
  line-height:1.2 !important;
  font-weight:500 !important;
  color:inherit;
}
body .editorial-split .editorial-copy > a.text-link:hover{
  background:transparent !important;
  border:0 !important;
  color:var(--gold) !important;
}
body .editorial-split .editorial-copy > a.text-link span{
  font-size:20px !important;
  transition:transform .25s ease;
}
body .editorial-split .editorial-copy > a.text-link:hover span{
  transform:translate(3px,-2px);
}

/* Villa Istra 1.28.0 — keep uploaded raster icons crisp */
.fact-icon.custom-icon{
  width:32px !important;
  height:32px !important;
  flex:0 0 32px !important;
  object-fit:contain;
  image-rendering:auto;
}
.amenity-icon.custom-icon{
  width:32px !important;
  height:32px !important;
  object-fit:contain;
  image-rendering:auto;
}
@media(max-width:620px){
  .fact-icon.custom-icon,
  .amenity-icon.custom-icon{
    width:32px !important;
    height:32px !important;
  }
}

/* Villa Istra 1.29.0 — sharper custom PNG icons */
.fact-icon.custom-icon,
.amenity-icon.custom-icon{
  display:block;
  max-width:none;
  image-rendering:-webkit-optimize-contrast;
  transform:translateZ(0);
  backface-visibility:hidden;
}
.fact-icon.custom-icon-lowres,
.amenity-icon.custom-icon-lowres{
  width:24px !important;
  height:24px !important;
}
.fact-icon.custom-icon-retina,
.amenity-icon.custom-icon-retina{
  width:32px !important;
  height:32px !important;
}

/* Villa Istra 1.30.0 — fact item secondary text */
body .facts-grid .fact-item > div{
  display:flex;
  flex-direction:column;
}
body .facts-grid .fact-item strong{
  margin-bottom:3px;
}
body .facts-grid .fact-item span:not(.fact-icon){
  font-size:14px;
  line-height:1.3;
  margin-top:0;
  opacity:.78;
}
@media(max-width:620px){
  body .facts-grid .fact-item span:not(.fact-icon){
    font-size:13.5px;
  }
}

/* Villa Istra 1.31.0 — optional image inside "O vili" copy column */
body .editorial-copy .editorial-copy-image{
  margin:18px 0 28px;
  width:min(100%,360px);
  height:220px;
  overflow:hidden;
  border-radius:16px;
  box-shadow:0 18px 46px rgba(33,26,22,.10);
}
body .editorial-copy .editorial-copy-image::before{
  display:none !important;
}
body .editorial-copy .editorial-copy-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:16px;
  box-shadow:none;
}
@media(max-width:1050px){
  body .editorial-copy .editorial-copy-image{
    width:min(100%,420px);
    height:240px;
  }
}
@media(max-width:620px){
  body .editorial-copy .editorial-copy-image{
    width:100%;
    height:210px;
    margin:16px 0 24px;
  }
}

/* Villa Istra 1.32.0 — image under villa name in first section */
body .intro-statement .statement-label{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
body .intro-statement .statement-label-image{
  width:min(100%,240px);
  height:170px;
  margin:24px 0 0;
  overflow:hidden;
  border-radius:16px;
  box-shadow:0 16px 38px rgba(33,26,22,.10);
}
body .intro-statement .statement-label-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
body .editorial-copy .editorial-copy-image{
  display:none !important;
}
@media(max-width:1050px){
  body .intro-statement .statement-label-image{
    width:min(100%,300px);
    height:190px;
  }
}
@media(max-width:620px){
  body .intro-statement .statement-label-image{
    width:100%;
    max-width:320px;
    height:190px;
    margin-top:18px;
  }
}

/* Villa Istra 1.33.0 — decorative background artwork in first section */
body .intro-statement.has-intro-bg{
  position:relative;
  isolation:isolate;
  overflow:visible;
}
body .intro-statement.has-intro-bg::before{
  content:"";
  position:absolute;
  z-index:-1;
  left:clamp(-90px,-5vw,-35px);
  bottom:clamp(-38px,-3vw,-16px);
  width:clamp(310px,31vw,540px);
  height:clamp(220px,27vw,430px);
  background-image:var(--intro-bg);
  background-repeat:no-repeat;
  background-position:left bottom;
  background-size:contain;
  opacity:.12;
  pointer-events:none;
  filter:grayscale(1) contrast(1.08);
}
body .intro-statement.has-intro-bg .statement-label,
body .intro-statement.has-intro-bg > div:last-child{
  position:relative;
  z-index:1;
}

/* The previous inline image is no longer used. */
body .intro-statement .statement-label-image{
  display:none !important;
}

@media(max-width:1050px){
  body .intro-statement.has-intro-bg::before{
    left:-45px;
    width:380px;
    height:300px;
    opacity:.10;
  }
}
@media(max-width:620px){
  body .intro-statement.has-intro-bg::before{
    left:-70px;
    bottom:-18px;
    width:300px;
    height:230px;
    opacity:.075;
  }
}

/* Villa Istra 1.34.0 — first section as equal 50/50 image + content */
body .intro-statement.intro-split{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  gap:clamp(54px,6vw,96px) !important;
  align-items:center;
  padding-top:120px;
  padding-bottom:120px;
  position:relative;
}
body .intro-statement.intro-split::before{
  display:none !important;
  content:none !important;
}
body .intro-statement .intro-visual{
  min-width:0;
}
body .intro-statement .intro-main-image{
  width:100%;
  height:650px;
  margin:0;
  overflow:hidden;
  border-radius:18px;
  position:relative;
  box-shadow:0 22px 58px rgba(33,26,22,.12);
}
body .intro-statement .intro-main-image::before{
  content:"";
  position:absolute;
  z-index:-1;
  left:-16px;
  bottom:-16px;
  width:58%;
  height:54%;
  border-radius:18px;
  background:color-mix(in srgb, var(--gold) 20%, transparent);
}
body .intro-statement .intro-main-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  border-radius:18px;
}
body .intro-statement .intro-content{
  max-width:590px;
  position:relative;
}
body .intro-statement .intro-content::before{
  content:"";
  display:block;
  width:42px;
  height:2px;
  margin-bottom:22px;
  background:var(--gold);
}
body .intro-statement .intro-content h2{
  font-size:clamp(46px,5.4vw,76px);
  line-height:1.01;
  letter-spacing:-.052em;
  margin:14px 0 28px;
}
body .intro-statement .intro-content .large-copy{
  max-width:620px;
  font-size:18px;
  line-height:1.75;
}
body .intro-statement .intro-story-link{
  margin-top:24px;
  font-size:17px !important;
  font-weight:500 !important;
  padding:8px 0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
}
body .intro-statement .intro-story-link:hover{
  color:var(--gold) !important;
  background:transparent !important;
}
@media(max-width:1050px){
  body .intro-statement.intro-split{
    grid-template-columns:1fr !important;
    gap:52px !important;
    padding-top:90px;
    padding-bottom:90px;
  }
  body .intro-statement .intro-main-image{
    height:580px;
  }
  body .intro-statement .intro-content{
    max-width:760px;
  }
}
@media(max-width:620px){
  body .intro-statement.intro-split{
    gap:38px !important;
    padding-top:70px;
    padding-bottom:70px;
  }
  body .intro-statement .intro-main-image{
    height:420px;
    border-radius:16px;
  }
  body .intro-statement .intro-content h2{
    font-size:42px;
  }
  body .intro-statement .intro-content .large-copy{
    font-size:16px;
  }
}

/* Villa Istra 1.35.0 — first-section image overlay + hover animation */
body .intro-statement .intro-main-image{
  isolation:isolate;
}
body .intro-statement .intro-main-image img{
  transition:transform .75s cubic-bezier(.2,.65,.25,1), filter .45s ease;
  will-change:transform;
}
body .intro-statement .intro-main-image .intro-image-overlay{
  position:absolute;
  inset:0;
  z-index:2;
  border-radius:inherit;
  background:rgba(0,0,0,var(--intro-overlay,0));
  pointer-events:none;
  transition:background .35s ease;
}
@media (hover:hover) and (pointer:fine){
  body .intro-statement .intro-main-image:hover img{
    transform:scale(1.025);
  }
}
@media (prefers-reduced-motion:reduce){
  body .intro-statement .intro-main-image img{
    transition:none;
  }
  body .intro-statement .intro-main-image:hover img{
    transform:none;
  }
}

/* Villa Istra 1.36.0 — optional second interior image */
body .architecture-grid .arch-small:empty{
  display:none;
}
body .architecture-grid:has(.arch-small:empty){
  grid-template-columns:.72fr 1.28fr;
}
body .architecture-grid:has(.arch-small:empty) .arch-main{
  grid-column:2;
}

/* Villa Istra 1.37.0 — custom icons for "U blizini" */
.destination-stats .destination-stat-item{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
}
.destination-stat-icon{
  width:34px;
  height:34px;
  object-fit:contain;
  display:block;
  margin-bottom:14px;
}
@media(max-width:620px){
  .destination-stat-icon{
    width:32px;
    height:32px;
    margin-bottom:10px;
  }
}

/* Villa Istra 1.38.0 — exterior section visibility safeguard */
body .full-bleed-feature{
  min-height:720px;
  background-color:var(--olive);
}
@media(max-width:620px){
  body .full-bleed-feature{min-height:640px;}
}

/* Villa Istra 1.39.0 — visually separate amenities block */
body .amenity-strip{
  width:min(86%,1360px);
  margin:80px auto;
  border-radius:20px;
  overflow:hidden;
  background:var(--olive);
  box-shadow:0 18px 46px rgba(33,26,22,.08);
}
body .amenity-strip .wrap{
  width:100%;
  max-width:none;
  padding-left:0;
  padding-right:0;
}
body .amenity-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
}
body .amenity-grid>div{
  min-height:190px;
  padding:38px 34px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  border-right:1px solid rgba(255,255,255,.13);
}
body .amenity-grid>div:first-child{
  padding-left:34px;
}
body .amenity-grid>div:last-child{
  border-right:0;
}
body .amenity-grid b{
  font-size:20px;
  line-height:1.25;
  margin-bottom:7px;
}
body .amenity-grid small{
  font-size:14px;
  line-height:1.45;
  opacity:.74;
}
body .amenity-grid .amenity-icon{
  margin-bottom:14px;
}
@media(max-width:1050px){
  body .amenity-strip{
    width:84%;
    margin:64px auto;
  }
  body .amenity-grid{
    grid-template-columns:1fr 1fr;
  }
  body .amenity-grid>div:nth-child(2){
    border-right:0;
  }
  body .amenity-grid>div:nth-child(-n+2){
    border-bottom:1px solid rgba(255,255,255,.13);
  }
}
@media(max-width:620px){
  body .amenity-strip{
    width:86%;
    margin:48px auto;
    border-radius:16px;
  }
  body .amenity-grid{
    grid-template-columns:1fr;
  }
  body .amenity-grid>div{
    min-height:auto;
    padding:26px 24px !important;
    border-right:0;
    border-bottom:1px solid rgba(255,255,255,.13);
  }
  body .amenity-grid>div:last-child{
    border-bottom:0;
  }
}

/* Villa Istra 1.41.0 — section spacing + configurable section backgrounds */
body .amenity-strip{
  margin-top:44px;
}
body .architecture-grid + .amenity-strip{
  margin-top:18px;
}
@supports selector(.architecture-grid:has(+ .amenity-strip)){
  body .architecture-grid:has(+ .amenity-strip){
    padding-bottom:58px;
  }
}
body .intro-statement,
body .architecture-grid,
body .destination,
body .booking,
body .amenity-strip,
body .full-bleed-feature,
body .page-section{
  background-repeat:no-repeat;
  background-position:center;
}
@media(max-width:620px){
  body .amenity-strip{margin-top:34px;}
  body .architecture-grid + .amenity-strip{margin-top:12px;}
}

/* Villa Istra 1.42.0 — heading for highlighted amenities */
body .amenity-strip .amenity-heading{
  padding:58px 34px 38px;
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  column-gap:clamp(40px,7vw,110px);
  align-items:end;
}
body .amenity-strip .amenity-heading .eyebrow{
  grid-column:1/-1;
  margin-bottom:16px;
}
body .amenity-strip .amenity-heading h2{
  margin:0;
  max-width:720px;
  font-size:clamp(38px,4.4vw,64px);
  line-height:1.02;
  letter-spacing:-.045em;
}
body .amenity-strip .amenity-heading .amenity-intro{
  max-width:520px;
  font-size:16px;
  line-height:1.65;
  opacity:.78;
}
body .amenity-strip .amenity-heading .amenity-intro p{margin:0}
body .amenity-strip .amenity-heading + .amenity-grid{
  border-top:1px solid rgba(255,255,255,.13);
}
@media(max-width:820px){
  body .amenity-strip .amenity-heading{
    grid-template-columns:1fr;
    padding:42px 28px 30px;
  }
  body .amenity-strip .amenity-heading .amenity-intro{margin-top:18px}
}
@media(max-width:620px){
  body .amenity-strip .amenity-heading{
    padding:34px 24px 26px;
  }
  body .amenity-strip .amenity-heading h2{
    font-size:36px;
  }
}

/* Villa Istra 1.43.0 — full-width background shell for highlighted amenities */
body .amenities-outer{
  width:100%;
  padding-top:54px;
  padding-bottom:54px;
  background-color:var(--cream);
}
body .amenities-outer .amenity-strip{
  margin-top:0;
  margin-bottom:0;
}
body .architecture-grid + .amenities-outer{
  margin-top:0;
}
@media(max-width:1050px){
  body .amenities-outer{
    padding-top:46px;
    padding-bottom:46px;
  }
}
@media(max-width:620px){
  body .amenities-outer{
    padding-top:34px;
    padding-bottom:34px;
  }
}

/* Villa Istra 1.44.0 — compact Interior section height */
body .architecture-grid{
  grid-template-rows:auto !important;
  align-items:center !important;
  padding-top:110px !important;
  padding-bottom:64px !important;
  min-height:0;
}
body .architecture-grid .arch-main{
  grid-row:auto !important;
  align-self:center;
  height:620px;
}
body .architecture-grid .arch-small{
  grid-row:auto !important;
  align-self:end;
  height:260px;
}
body .architecture-grid .arch-copy{
  align-self:center;
  padding-top:0 !important;
}
body .architecture-grid + .amenities-outer{
  margin-top:0 !important;
}
@media(max-width:1050px){
  body .architecture-grid{
    padding-top:90px !important;
    padding-bottom:50px !important;
  }
  body .architecture-grid .arch-main{height:560px;}
  body .architecture-grid .arch-small{height:240px;}
}
@media(max-width:620px){
  body .architecture-grid{
    padding-top:70px !important;
    padding-bottom:38px !important;
  }
  body .architecture-grid .arch-main{height:460px;}
  body .architecture-grid .arch-small{height:240px;}
}

/* Villa Istra 1.45.0 — centered highlighted amenities with 128px source icons */
body .amenity-grid > div{
  align-items:center !important;
  text-align:center !important;
}
body .amenity-grid .amenity-icon,
body .amenity-grid .amenity-icon.custom-icon,
body .amenity-grid .amenity-icon.custom-icon-retina{
  width:64px !important;
  height:64px !important;
  flex:0 0 64px !important;
  margin:0 auto 18px !important;
  object-fit:contain;
}
body .amenity-grid > div > span,
body .amenity-grid > div > b,
body .amenity-grid > div > small{
  width:100%;
  text-align:center;
}
body .amenity-grid > div > b{
  margin-top:5px;
}
body .amenity-grid > div > small{
  max-width:240px;
  margin-left:auto;
  margin-right:auto;
}
@media(max-width:620px){
  body .amenity-grid .amenity-icon,
  body .amenity-grid .amenity-icon.custom-icon,
  body .amenity-grid .amenity-icon.custom-icon-retina{
    width:58px !important;
    height:58px !important;
    flex-basis:58px !important;
    margin-bottom:16px !important;
  }
}

/* Villa Istra 1.46.0 — dynamic highlighted amenities */
body .amenity-grid{
  grid-template-columns:repeat(var(--amenity-count,4),minmax(0,1fr)) !important;
}
body .amenity-grid .amenity-item{
  align-items:center !important;
  text-align:center !important;
}
@media(max-width:1050px){
  body .amenity-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
}
@media(max-width:620px){
  body .amenity-grid{grid-template-columns:1fr !important;}
}

/* Villa Istra 1.48.0 — highlighted amenities max 4 columns on desktop */
body .amenity-grid{
  grid-template-columns:repeat(min(var(--amenity-count,4),4),minmax(0,1fr)) !important;
}
@media(min-width:1051px){
  body .amenity-grid{
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  }
  body .amenity-grid .amenity-item{
    min-width:0;
  }
}
@media(max-width:1050px){
  body .amenity-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}
@media(max-width:620px){
  body .amenity-grid{
    grid-template-columns:1fr !important;
  }
}

/* Villa Istra 1.49.0 — parallax exterior & pool background */
body .full-bleed-feature{
  background-image:var(--feature);
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
  background-attachment:fixed;
}
@media(max-width:1050px), (hover:none), (pointer:coarse){
  body .full-bleed-feature{
    background-attachment:scroll;
    background-position:center center;
  }
}
@media(prefers-reduced-motion:reduce){
  body .full-bleed-feature{
    background-attachment:scroll;
  }
}

/* Villa Istra 1.50.0 — global editable Header & Footer */
body .site-header,
body .site-header a,
body .site-header .brand{
  color:var(--header-text,#fff);
}
body .site-header nav a:hover,
body .site-header nav .current-menu-item > a,
body .site-header nav .current-menu-parent > a,
body .site-header nav .current-menu-ancestor > a,
body .site-header nav .current_page_item > a,
body .site-header nav .current_page_parent > a,
body .site-header nav .current_page_ancestor > a{
  color:var(--header-active,#b89568) !important;
}
body .site-footer{
  background:var(--footer-bg,#18110d) !important;
  color:var(--footer-text,#fff) !important;
  display:grid;
  grid-template-columns:1.2fr 1fr auto;
  gap:34px 60px;
  align-items:start;
}
body .site-footer a{
  color:var(--footer-text,#fff);
}
body .site-footer a:hover{
  color:var(--footer-accent,#b89568);
}
body .footer-social{
  display:flex;
  flex-direction:column;
  gap:10px;
}
body .footer-copyright{
  grid-column:1/-1;
  padding-top:24px;
  margin-top:10px;
  border-top:1px solid rgba(255,255,255,.14);
  font-size:12px;
  opacity:.58;
}
@media(max-width:900px){
  body .site-footer{grid-template-columns:1fr 1fr;}
  body .footer-social{grid-column:1/-1;flex-direction:row;gap:20px;}
}
@media(max-width:620px){
  body .site-footer{grid-template-columns:1fr;gap:24px;}
  body .footer-social{grid-column:auto;}
}

/* Villa Istra 1.51.0 — Header logo uploader */
body .site-header .brand .vil-header-logo{
  display:block;
  width:auto;
  max-width:220px;
  height:auto;
  max-height:64px;
  object-fit:contain;
}
@media(max-width:620px){
  body .site-header .brand .vil-header-logo{
    max-width:170px;
    max-height:52px;
  }
}

/* Villa Istra 1.53.0 — U blizini: 128x128 source icons + centered content */
body .destination .destination-stats{
  align-items:stretch;
}
body .destination .destination-stat-item{
  display:flex !important;
  flex-direction:column;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  min-height:190px;
}
body .destination .destination-stat-icon{
  display:block;
  width:64px !important;
  height:64px !important;
  max-width:64px !important;
  max-height:64px !important;
  object-fit:contain;
  margin:0 auto 16px !important;
  flex:0 0 64px;
}
body .destination .destination-stat-item strong,
body .destination .destination-stat-item span{
  display:block;
  width:100%;
  text-align:center;
}
body .destination .destination-stat-item strong{
  margin:0 0 5px;
  line-height:1.15;
}
body .destination .destination-stat-item span{
  margin:0;
  line-height:1.35;
}
@media(max-width:620px){
  body .destination .destination-stat-item{min-height:170px;}
  body .destination .destination-stat-icon{
    width:58px !important;
    height:58px !important;
    max-width:58px !important;
    max-height:58px !important;
    flex-basis:58px;
    margin-bottom:14px !important;
  }
}

/* Villa Istra 1.54.0 — configurable overlay for parallax Exterior & Pool */
body .full-bleed-feature .feature-overlay{
  background:rgba(0,0,0,var(--exterior-overlay,.38)) !important;
}

/* Villa Istra 1.55.0 — stronger, reliable parallax overlay */
body .full-bleed-feature{
  position:relative;
  isolation:isolate;
}
body .full-bleed-feature::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:#000;
  opacity:var(--exterior-overlay,55%);
}
body .full-bleed-feature > .feature-overlay{
  display:none !important;
}
body .full-bleed-feature > .feature-copy{
  position:relative;
  z-index:1;
}

/* Villa Istra 1.56.0 — premium depth + subtle motion for 02B highlighted amenities */
body .amenities-outer{
  overflow:hidden;
}
body .amenities-outer .amenity-strip{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  box-shadow:
    0 26px 70px rgba(24,17,13,.18),
    0 8px 24px rgba(24,17,13,.10);
  transition:
    transform .65s cubic-bezier(.2,.7,.2,1),
    box-shadow .65s cubic-bezier(.2,.7,.2,1);
}
body .amenities-outer .amenity-strip::after{
  content:"";
  position:absolute;
  z-index:-1;
  width:42%;
  aspect-ratio:1;
  right:-12%;
  top:-34%;
  border-radius:50%;
  background:rgba(255,255,255,.12);
  filter:blur(70px);
  pointer-events:none;
  opacity:.72;
  animation:vilAmenityGlow 8s ease-in-out infinite alternate;
}
body .amenities-outer .amenity-strip:hover{
  transform:translateY(-5px);
  box-shadow:
    0 34px 88px rgba(24,17,13,.23),
    0 12px 32px rgba(24,17,13,.13);
}
body .amenity-grid .amenity-item{
  transition:transform .45s cubic-bezier(.2,.7,.2,1), opacity .45s ease;
}
body .amenity-grid .amenity-item:hover{
  transform:translateY(-7px);
}
body .amenity-grid .amenity-icon{
  transition:transform .5s cubic-bezier(.2,.7,.2,1), filter .5s ease;
}
body .amenity-grid .amenity-item:hover .amenity-icon{
  transform:translateY(-3px) scale(1.055);
  filter:drop-shadow(0 10px 14px rgba(0,0,0,.16));
}
@keyframes vilAmenityGlow{
  from{transform:translate3d(-2%,0,0) scale(.96);opacity:.52}
  to{transform:translate3d(5%,7%,0) scale(1.08);opacity:.82}
}
@media(max-width:1050px), (hover:none), (pointer:coarse){
  body .amenities-outer .amenity-strip:hover,
  body .amenity-grid .amenity-item:hover{
    transform:none;
  }
}
@media(prefers-reduced-motion:reduce){
  body .amenities-outer .amenity-strip,
  body .amenities-outer .amenity-strip::after,
  body .amenity-grid .amenity-item,
  body .amenity-grid .amenity-icon{
    animation:none !important;
    transition:none !important;
  }
}

/* Villa Istra 1.57.0 — light highlighted amenities variant */
body .amenities-outer .amenity-strip{
  color:#181512;
}
body .amenities-outer .amenity-strip .eyebrow,
body .amenities-outer .amenity-strip h2,
body .amenities-outer .amenity-strip .amenity-intro,
body .amenities-outer .amenity-strip .amenity-item,
body .amenities-outer .amenity-strip .amenity-item b,
body .amenities-outer .amenity-strip .amenity-item small{
  color:#181512 !important;
}
body .amenities-outer .amenity-strip .amenity-item small,
body .amenities-outer .amenity-strip .amenity-intro{
  opacity:.68;
}
body .amenities-outer .amenity-heading + .amenity-grid{
  border-top-color:rgba(24,21,18,.12);
}
body .amenities-outer .amenity-strip::after{
  background:rgba(184,149,104,.18);
}
body .amenities-outer .amenity-strip{
  box-shadow:
    0 26px 70px rgba(41,31,24,.12),
    0 8px 24px rgba(41,31,24,.07);
}
body .amenities-outer .amenity-strip:hover{
  box-shadow:
    0 34px 88px rgba(41,31,24,.16),
    0 12px 32px rgba(41,31,24,.09);
}

/* Villa Istra 1.58.0 — floating pill header */
body .site-header{
  top:22px !important;
  left:0 !important;
  right:0 !important;
  width:100% !important;
  background:transparent !important;
  border:0 !important;
  pointer-events:none;
}
body .site-header .site-header-inner{
  width:min(84%,1320px) !important;
  min-height:74px;
  margin:0 auto;
  padding:12px 18px 12px 22px !important;
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  background:rgba(18,16,14,.72);
  box-shadow:
    0 16px 42px rgba(0,0,0,.16),
    inset 0 1px 0 rgba(255,255,255,.07);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  pointer-events:auto;
}
body .site-header .site-header-inner::after{
  display:none !important;
}
body .site-header .brand{
  padding-right:4px;
}
body .site-header nav{
  margin-left:auto;
}
body .site-header nav ul{
  display:flex;
  align-items:center;
  margin:0;
  padding:0;
}
body .site-header nav li{
  position:relative;
  display:flex;
  align-items:center;
}
body .site-header nav li:not(:last-child)::after{
  content:"";
  width:1px;
  height:18px;
  margin:0 4px;
  background:rgba(255,255,255,.18);
}
body .site-header nav a{
  display:flex;
  align-items:center;
  min-height:42px;
  padding:0 14px;
  font-size:15.5px;
  line-height:1;
  border-radius:999px;
}
body .site-header nav a:hover,
body .site-header nav .current-menu-item > a,
body .site-header nav .current-menu-parent > a,
body .site-header nav .current-menu-ancestor > a,
body .site-header nav .current_page_item > a,
body .site-header nav .current_page_parent > a,
body .site-header nav .current_page_ancestor > a{
  background:rgba(255,255,255,.10);
}
body .site-header .header-cta{
  margin-left:12px;
  min-height:46px;
  padding:0 22px;
  border-radius:999px !important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.42);
  background:rgba(255,255,255,.06);
}
body .site-header .header-cta:hover{
  background:#fff;
  color:#000 !important;
  border-color:#fff;
}
@media(max-width:1180px){
  body .site-header .site-header-inner{
    width:90% !important;
  }
  body .site-header nav a{
    padding:0 10px;
    font-size:14.5px;
  }
  body .site-header nav li:not(:last-child)::after{
    margin:0 2px;
  }
}
@media(max-width:900px){
  body .site-header{
    top:14px !important;
  }
  body .site-header .site-header-inner{
    width:92% !important;
    min-height:66px;
    padding:10px 14px 10px 18px !important;
  }
  body .site-header nav li::after{
    display:none !important;
  }
  body .site-header .header-cta{
    display:none;
  }
}
@media(max-width:620px){
  body .site-header .site-header-inner{
    width:94% !important;
    min-height:62px;
  }
}

/* Villa Istra 1.59.0 — spacious light floating pill header */
body .site-header .site-header-inner{
  width:min(82%,1280px) !important;
  min-height:86px;
  padding:16px 26px 16px 30px !important;
  border:1px solid rgba(35,29,24,.10);
  background:rgba(250,248,244,.92);
  box-shadow:
    0 18px 48px rgba(35,29,24,.12),
    inset 0 1px 0 rgba(255,255,255,.9);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
}
body .site-header,
body .site-header a,
body .site-header .brand{
  color:#211a16 !important;
}
body .site-header nav li:not(:last-child)::after{
  height:20px;
  margin:0 7px;
  background:rgba(33,26,22,.16);
}
body .site-header nav a{
  min-height:46px;
  padding:0 16px;
  color:#211a16 !important;
}
body .site-header nav a:hover,
body .site-header nav .current-menu-item > a,
body .site-header nav .current-menu-parent > a,
body .site-header nav .current-menu-ancestor > a,
body .site-header nav .current_page_item > a,
body .site-header nav .current_page_parent > a,
body .site-header nav .current_page_ancestor > a{
  background:rgba(58,42,32,.08);
  color:#211a16 !important;
}
body .site-header .header-cta{
  margin-left:16px;
  min-height:50px;
  padding:0 26px;
  border-color:rgba(33,26,22,.24);
  background:#211a16;
  color:#fff !important;
}
body .site-header .header-cta:hover{
  background:#fff;
  color:#211a16 !important;
  border-color:#211a16;
}
@media(max-width:1180px){
  body .site-header .site-header-inner{
    width:88% !important;
    padding:14px 20px 14px 24px !important;
  }
}
@media(max-width:900px){
  body .site-header .site-header-inner{
    width:92% !important;
    min-height:72px;
    padding:12px 18px 12px 22px !important;
  }
}
@media(max-width:620px){
  body .site-header .site-header-inner{
    width:94% !important;
    min-height:68px;
    padding:11px 16px 11px 20px !important;
  }
}

/* Villa Istra 1.60.0 — optional hamburger + full-screen navigation */
body .site-header.header-mode-fullscreen .site-header-inner{
  width:min(82%,1280px) !important;
  min-height:76px;
  padding:14px 22px 14px 28px !important;
}
body .site-header.header-mode-fullscreen .desktop-main-nav,
body .site-header.header-mode-fullscreen .header-cta{
  display:none !important;
}
body .site-header.header-mode-fullscreen .menu-toggle-always{
  display:flex !important;
  margin-left:auto;
  width:52px;
  height:52px;
  border:1px solid rgba(33,26,22,.16);
  border-radius:50%;
  background:rgba(33,26,22,.04);
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:7px;
  cursor:pointer;
}
body .site-header.header-mode-fullscreen .menu-toggle-always span{
  display:block;
  width:21px;
  height:1.5px;
  background:#211a16;
  transition:transform .25s ease,width .25s ease;
}
body .site-header.header-mode-fullscreen .menu-toggle-always:hover span:first-child{
  width:26px;
}
body .site-header.header-mode-fullscreen .menu-toggle-always:hover span:last-child{
  width:16px;
}

body.vil-menu-open{
  overflow:hidden;
}
.vil-fullscreen-menu{
  position:fixed;
  inset:0;
  z-index:9999;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .42s ease,visibility .42s ease;
}
.vil-fullscreen-menu.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.vil-fullscreen-backdrop{
  position:absolute;
  inset:0;
  background:rgba(14,12,11,.88);
  backdrop-filter:blur(22px);
  -webkit-backdrop-filter:blur(22px);
}
.vil-fullscreen-shell{
  position:relative;
  z-index:1;
  width:min(88%,1480px);
  height:100%;
  margin:0 auto;
  display:flex;
  flex-direction:column;
  color:#fff;
}
.vil-fullscreen-top{
  min-height:110px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid rgba(255,255,255,.13);
}
.vil-fullscreen-brand{
  color:#fff;
  text-decoration:none;
  font-size:20px;
  font-weight:500;
}
.vil-fullscreen-brand img{
  display:block;
  width:auto;
  max-width:220px;
  max-height:62px;
  object-fit:contain;
  filter:brightness(0) invert(1);
}
.vil-menu-close{
  width:54px;
  height:54px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:50%;
  background:rgba(255,255,255,.04);
  position:relative;
  cursor:pointer;
}
.vil-menu-close span{
  position:absolute;
  left:50%;
  top:50%;
  width:22px;
  height:1.5px;
  background:#fff;
}
.vil-menu-close span:first-child{transform:translate(-50%,-50%) rotate(45deg);}
.vil-menu-close span:last-child{transform:translate(-50%,-50%) rotate(-45deg);}
.vil-menu-close:hover{background:#fff;}
.vil-menu-close:hover span{background:#000;}

.vil-fullscreen-content{
  flex:1;
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(280px,.55fr);
  gap:clamp(70px,10vw,180px);
  align-items:center;
  padding:70px 0 90px;
}
.vil-fullscreen-nav ul{
  list-style:none;
  margin:0;
  padding:0;
}
.vil-fullscreen-nav li{
  border-bottom:1px solid rgba(255,255,255,.10);
}
.vil-fullscreen-nav a{
  display:flex;
  align-items:center;
  min-height:86px;
  color:#fff;
  text-decoration:none;
  font-size:clamp(42px,5vw,76px);
  line-height:1;
  font-weight:400;
  letter-spacing:-.045em;
  transition:color .25s ease,transform .3s ease,padding-left .3s ease;
}
.vil-fullscreen-nav a:hover,
.vil-fullscreen-nav .current-menu-item > a,
.vil-fullscreen-nav .current_page_item > a{
  color:var(--gold,#b89568);
  padding-left:14px;
}
.vil-fullscreen-meta{
  align-self:end;
  padding-bottom:18px;
}
.vil-fullscreen-cta{
  display:inline-flex;
  align-items:center;
  gap:14px;
  min-height:56px;
  padding:0 28px;
  border:1px solid rgba(255,255,255,.46);
  border-radius:999px;
  color:#fff;
  text-decoration:none;
  font-size:16px;
  margin-bottom:34px;
  transition:background .25s ease,color .25s ease;
}
.vil-fullscreen-cta:hover{
  background:#fff;
  color:#000;
}
.vil-fullscreen-contact{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.vil-fullscreen-contact a{
  color:rgba(255,255,255,.72);
  text-decoration:none;
  font-size:14px;
}
.vil-fullscreen-contact a:hover{color:#fff;}

@media(max-width:900px){
  body .site-header.header-mode-fullscreen .site-header-inner{
    width:92% !important;
    min-height:68px;
  }
  .vil-fullscreen-shell{width:88%;}
  .vil-fullscreen-top{min-height:90px;}
  .vil-fullscreen-content{
    grid-template-columns:1fr;
    gap:42px;
    align-content:center;
    padding:40px 0 54px;
  }
  .vil-fullscreen-nav a{
    min-height:68px;
    font-size:clamp(34px,8vw,54px);
  }
  .vil-fullscreen-meta{
    align-self:auto;
  }
}
@media(max-width:620px){
  .vil-fullscreen-shell{width:90%;}
  .vil-fullscreen-brand img{max-width:165px;max-height:48px;}
  .vil-menu-close{width:48px;height:48px;}
  .vil-fullscreen-nav a{min-height:60px;font-size:36px;}
}
@media(prefers-reduced-motion:reduce){
  .vil-fullscreen-menu,
  .vil-fullscreen-nav a{
    transition:none !important;
  }
}

/* Villa Istra 1.61.0 — minimal fullscreen-header trigger */
body .site-header.header-mode-fullscreen{
  top:24px !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  pointer-events:none;
}
body .site-header.header-mode-fullscreen .site-header-inner{
  width:min(86%,1380px) !important;
  min-height:76px;
  margin:0 auto;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  pointer-events:auto;
}
body .site-header.header-mode-fullscreen .site-header-inner::after{
  display:none !important;
}
body .site-header.header-mode-fullscreen .brand{
  display:flex;
  align-items:center;
  min-height:76px;
  color:#fff !important;
}
body .site-header.header-mode-fullscreen .brand > span{
  display:flex;
  flex-direction:column;
  gap:2px;
  color:#fff !important;
}
body .site-header.header-mode-fullscreen .brand > span small{
  color:rgba(255,255,255,.72) !important;
}
body .site-header.header-mode-fullscreen .brand .vil-header-logo{
  max-height:68px;
  max-width:250px;
  filter:none;
}
body .site-header.header-mode-fullscreen .menu-toggle-always{
  display:flex !important;
  margin-left:auto;
  width:66px;
  height:66px;
  padding:0;
  border:1px solid rgba(255,255,255,.40);
  border-radius:50%;
  background:rgba(0,0,0,.20);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:9px;
  cursor:pointer;
  transition:background .25s ease,border-color .25s ease,transform .25s ease;
}
body .site-header.header-mode-fullscreen .menu-toggle-always span{
  display:block;
  width:27px;
  height:1.5px;
  background:#fff;
  transition:width .25s ease,transform .25s ease;
}
body .site-header.header-mode-fullscreen .menu-toggle-always span:last-child{
  width:20px;
}
body .site-header.header-mode-fullscreen .menu-toggle-always:hover{
  background:#fff;
  border-color:#fff;
  transform:scale(1.035);
}
body .site-header.header-mode-fullscreen .menu-toggle-always:hover span{
  background:#000;
}
body .site-header.header-mode-fullscreen .menu-toggle-always:hover span:first-child{
  width:30px;
}
body .site-header.header-mode-fullscreen .menu-toggle-always:hover span:last-child{
  width:24px;
}

@media(max-width:900px){
  body .site-header.header-mode-fullscreen{
    top:16px !important;
  }
  body .site-header.header-mode-fullscreen .site-header-inner{
    width:90% !important;
    min-height:68px;
  }
  body .site-header.header-mode-fullscreen .brand{
    min-height:68px;
  }
  body .site-header.header-mode-fullscreen .brand .vil-header-logo{
    max-height:56px;
    max-width:190px;
  }
  body .site-header.header-mode-fullscreen .menu-toggle-always{
    width:58px;
    height:58px;
  }
}
@media(max-width:620px){
  body .site-header.header-mode-fullscreen .site-header-inner{
    width:92% !important;
  }
  body .site-header.header-mode-fullscreen .brand .vil-header-logo{
    max-height:48px;
    max-width:165px;
  }
  body .site-header.header-mode-fullscreen .menu-toggle-always{
    width:54px;
    height:54px;
  }
}

/* Villa Istra 1.62.0 — clean three-line hamburger */
body .site-header.header-mode-fullscreen .menu-toggle-always{
  width:54px;
  height:54px;
  padding:0;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  gap:7px;
  transition:opacity .25s ease,transform .3s cubic-bezier(.2,.7,.2,1);
}
body .site-header.header-mode-fullscreen .menu-toggle-always span{
  width:32px !important;
  height:2px;
  margin:0;
  background:#fff !important;
  border-radius:999px;
  transform-origin:center;
  transition:transform .3s cubic-bezier(.2,.7,.2,1),width .3s ease,opacity .25s ease;
}
body .site-header.header-mode-fullscreen .menu-toggle-always span:nth-child(2){
  width:24px !important;
  align-self:flex-end;
  margin-right:11px;
}
body .site-header.header-mode-fullscreen .menu-toggle-always span:nth-child(3){
  width:32px !important;
}
body .site-header.header-mode-fullscreen .menu-toggle-always:hover{
  background:transparent !important;
  border:0 !important;
  transform:none;
  opacity:.72;
}
body .site-header.header-mode-fullscreen .menu-toggle-always:hover span:first-child{
  transform:translateX(3px);
}
body .site-header.header-mode-fullscreen .menu-toggle-always:hover span:nth-child(2){
  width:32px !important;
  margin-right:0;
}
body .site-header.header-mode-fullscreen .menu-toggle-always:hover span:nth-child(3){
  transform:translateX(-3px);
}
body .site-header.header-mode-fullscreen .menu-toggle-always:focus-visible{
  outline:1px solid rgba(255,255,255,.7);
  outline-offset:7px;
}
@media(max-width:620px){
  body .site-header.header-mode-fullscreen .menu-toggle-always{
    width:48px;
    height:48px;
    gap:6px;
  }
  body .site-header.header-mode-fullscreen .menu-toggle-always span{
    width:29px !important;
  }
  body .site-header.header-mode-fullscreen .menu-toggle-always span:nth-child(2){
    width:22px !important;
    margin-right:9px;
  }
}

/* Villa Istra 1.63.0 — larger three-line hamburger + discreet label */
body .site-header.header-mode-fullscreen .menu-toggle-always{
  width:92px;
  height:76px;
  display:flex !important;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:9px;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  overflow:visible;
}
body .site-header.header-mode-fullscreen .menu-toggle-always > span{
  display:none !important;
}
body .site-header.header-mode-fullscreen .menu-toggle-always .menu-bars{
  display:flex !important;
  width:42px !important;
  height:auto !important;
  flex-direction:column;
  align-items:center;
  gap:8px;
  background:transparent !important;
}
body .site-header.header-mode-fullscreen .menu-toggle-always .menu-bars i{
  display:block !important;
  width:42px;
  height:2px;
  margin:0;
  padding:0;
  border:0;
  border-radius:999px;
  background:#fff !important;
  opacity:1;
  transition:width .3s ease,transform .3s ease,opacity .25s ease;
}
body .site-header.header-mode-fullscreen .menu-toggle-always .menu-bars i:nth-child(2){
  width:32px;
  align-self:flex-end;
}
body .site-header.header-mode-fullscreen .menu-toggle-always small{
  display:block;
  color:rgba(255,255,255,.68);
  font-size:10px;
  line-height:1;
  font-weight:400;
  letter-spacing:.01em;
  text-transform:none;
  white-space:nowrap;
  transition:color .25s ease;
}
body .site-header.header-mode-fullscreen .menu-toggle-always:hover{
  opacity:1;
}
body .site-header.header-mode-fullscreen .menu-toggle-always:hover .menu-bars i:first-child{
  transform:translateX(3px);
}
body .site-header.header-mode-fullscreen .menu-toggle-always:hover .menu-bars i:nth-child(2){
  width:42px;
}
body .site-header.header-mode-fullscreen .menu-toggle-always:hover .menu-bars i:nth-child(3){
  transform:translateX(-3px);
}
body .site-header.header-mode-fullscreen .menu-toggle-always:hover small{
  color:#fff;
}
@media(max-width:620px){
  body .site-header.header-mode-fullscreen .menu-toggle-always{
    width:78px;
    height:68px;
    gap:8px;
  }
  body .site-header.header-mode-fullscreen .menu-toggle-always .menu-bars{
    width:36px !important;
    gap:7px;
  }
  body .site-header.header-mode-fullscreen .menu-toggle-always .menu-bars i{
    width:36px;
  }
  body .site-header.header-mode-fullscreen .menu-toggle-always .menu-bars i:nth-child(2){
    width:28px;
  }
  body .site-header.header-mode-fullscreen .menu-toggle-always small{
    font-size:9px;
  }
}

/* Villa Istra 1.64.0 — menu label left of hamburger */
body .site-header.header-mode-fullscreen .menu-toggle-always{
  width:auto !important;
  min-width:154px;
  height:68px;
  flex-direction:row !important;
  align-items:center;
  justify-content:flex-end;
  gap:15px !important;
  overflow:visible;
}
body .site-header.header-mode-fullscreen .menu-toggle-always small{
  order:1;
  display:block;
  margin:0;
  padding:0;
  color:rgba(255,255,255,.70);
  font-size:11px;
  line-height:1;
  font-weight:400;
  letter-spacing:0;
  white-space:nowrap;
}
body .site-header.header-mode-fullscreen .menu-toggle-always .menu-bars{
  order:2;
  flex:0 0 42px;
  width:42px !important;
  margin:0;
}
body .site-header.header-mode-fullscreen .menu-toggle-always:hover small{
  color:#fff;
}
@media(max-width:620px){
  body .site-header.header-mode-fullscreen .menu-toggle-always{
    min-width:136px;
    height:60px;
    gap:12px !important;
  }
  body .site-header.header-mode-fullscreen .menu-toggle-always small{
    font-size:10px;
  }
  body .site-header.header-mode-fullscreen .menu-toggle-always .menu-bars{
    flex-basis:36px;
    width:36px !important;
  }
}

/* Villa Istra 1.65.0 — mobile hero alignment + top readability gradient */

/* Top gradient on every hero slide for logo / hamburger readability */
body .editorial-hero .hero-slide::after{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:220px;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(
    to bottom,
    rgba(0,0,0,.46) 0%,
    rgba(0,0,0,.28) 42%,
    rgba(0,0,0,.10) 72%,
    rgba(0,0,0,0) 100%
  );
}
body .editorial-hero .hero-slide .hero-content,
body .editorial-hero .hero-slide .hero-index{
  z-index:2;
}

/* Mobile hero content closer to the left viewport edge */
@media(max-width:620px){
  body .editorial-hero .hero-slide .hero-content{
    left:5.5vw !important;
    right:5.5vw !important;
    width:auto !important;
    padding-left:0 !important;
    padding-right:0 !important;
  }
  body .editorial-hero .hero-slide .hero-copy{
    max-width:100%;
  }
  body .editorial-hero .hero-slide::after{
    height:205px;
    background:linear-gradient(
      to bottom,
      rgba(0,0,0,.50) 0%,
      rgba(0,0,0,.30) 44%,
      rgba(0,0,0,.11) 72%,
      rgba(0,0,0,0) 100%
    );
  }
}

/* Villa Istra 1.66.0 — slightly darker hero top gradient */
body .editorial-hero .hero-slide::after{
  height:230px;
  background:linear-gradient(
    to bottom,
    rgba(0,0,0,.60) 0%,
    rgba(0,0,0,.38) 42%,
    rgba(0,0,0,.15) 72%,
    rgba(0,0,0,0) 100%
  ) !important;
}
@media(max-width:620px){
  body .editorial-hero .hero-slide::after{
    height:215px;
    background:linear-gradient(
      to bottom,
      rgba(0,0,0,.64) 0%,
      rgba(0,0,0,.42) 43%,
      rgba(0,0,0,.17) 72%,
      rgba(0,0,0,0) 100%
    ) !important;
  }
}

/* Villa Istra 1.67.0 — corrected mobile hero horizontal alignment */
@media(max-width:620px){
  body .editorial-hero .hero-slide .hero-content{
    position:absolute;
    left:20px !important;
    right:20px !important;
    width:auto !important;
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
    transform:none !important;
  }
  body .editorial-hero .hero-slide .hero-copy{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    padding-left:0 !important;
    transform:none !important;
  }
  body .editorial-hero .hero-slide .hero-copy > *{
    margin-left:0;
  }
}
@media(max-width:390px){
  body .editorial-hero .hero-slide .hero-content{
    left:16px !important;
    right:16px !important;
  }
}

/* Villa Istra 1.69.0 — inner page Hero background image safeguard */
body .vil-page .page-hero{
  background-color:var(--olive);
  background-image:var(--page-hero,none) !important;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}

/* Villa Istra 1.70.0 — remove unintended vertical accent beside page kickers */
body .vil-page .page-section-copy::after{
  display:none !important;
  content:none !important;
}

/* Villa Istra 1.71.0 — consistent image hover motion on inner pages */
body .vil-page .page-section figure{
  overflow:hidden;
}
body .vil-page .page-section figure img{
  transition:
    transform .72s cubic-bezier(.2,.7,.2,1),
    filter .45s ease;
  will-change:transform;
}
@media (hover:hover) and (pointer:fine){
  body .vil-page .page-section figure:hover img{
    transform:scale(1.025);
  }
}
@media(prefers-reduced-motion:reduce){
  body .vil-page .page-section figure img{
    transition:none !important;
  }
  body .vil-page .page-section figure:hover img{
    transform:none !important;
  }
}

/* Configurable typography for final CTA sections on all inner pages */
body .vil-page .page-cta h2{
  font-size:var(--cta-title-size,clamp(42px,5vw,70px)) !important;
  color:var(--cta-title-color,inherit) !important;
}
body .vil-page .page-cta .page-cta-text,
body .vil-page .page-cta .page-cta-text p{
  font-size:var(--cta-text-size,17px) !important;
  color:var(--cta-text-color,inherit) !important;
}
body .vil-page .page-cta .btn{
  font-size:var(--cta-button-size,15px) !important;
  color:var(--cta-button-color,#fff) !important;
}

/* Villa Istra 1.72.0 — editable CTA kicker typography */
body .vil-page .page-cta .page-cta-kicker{
  font-size:var(--cta-kicker-size,16px) !important;
  color:var(--cta-kicker-color,var(--gold)) !important;
}

/* Villa Istra 1.73.0 — homepage Reservations CTA visibility/spacing */
body.home #rezervacije.booking{
  display:flex !important;
  position:relative;
  z-index:1;
}

/* Villa Istra 1.74.0 — robust homepage Reservations CTA rendering */
body #rezervacije.booking.booking-photo{
  display:flex !important;
  width:100%;
  min-height:360px;
  box-sizing:border-box;
  visibility:visible !important;
  opacity:1 !important;
  position:relative;
  z-index:2;
}
body #rezervacije.booking.booking-photo .booking-main,
body #rezervacije.booking.booking-photo .booking-actions{
  position:relative;
  z-index:1;
}
@media(max-width:900px){
  body #rezervacije.booking.booking-photo{
    min-height:320px;
  }
}

/* Villa Istra 1.75.0 — editable homepage Reservations copy, contacts and colors */
body #rezervacije.booking .booking-main .eyebrow{
  color:var(--booking-kicker-color,var(--gold)) !important;
  font-size:var(--booking-kicker-size,17px) !important;
}
body #rezervacije.booking .booking-main h2{
  color:var(--booking-title-color,#fff) !important;
  font-size:var(--booking-title-size,clamp(48px,6vw,86px)) !important;
}
body #rezervacije.booking .booking-text,
body #rezervacije.booking .booking-text p{
  color:var(--booking-text-color,rgba(255,255,255,.82)) !important;
  font-size:var(--booking-text-size,17px) !important;
}
body #rezervacije.booking .booking-actions > a:not(.btn){
  color:var(--booking-contact-color,#fff) !important;
  font-size:var(--booking-contact-size,14px) !important;
  display:flex;
  align-items:center;
  gap:10px;
}
body #rezervacije.booking .booking-actions > a:not(.btn) span{
  min-width:52px;
  font-size:.72em;
  opacity:.58;
}

/* Villa Istra 1.76.0 — premium right panel for homepage Reservations */
body #rezervacije.booking.booking-photo{
  align-items:center;
  gap:clamp(60px,8vw,130px);
}
body #rezervacije.booking.booking-photo .booking-main{
  flex:1 1 auto;
  max-width:820px;
}
body #rezervacije.booking.booking-photo .booking-actions{
  flex:0 0 clamp(360px,31vw,470px);
  min-width:360px;
  width:clamp(360px,31vw,470px);
  padding:24px;
  gap:10px;
  align-items:stretch;
  border:1px solid rgba(255,255,255,.14);
  border-radius:24px;
  background:rgba(255,255,255,.055);
  box-shadow:
    0 24px 64px rgba(0,0,0,.16),
    inset 0 1px 0 rgba(255,255,255,.06);
  backdrop-filter:blur(15px);
  -webkit-backdrop-filter:blur(15px);
}
body #rezervacije.booking .booking-actions .btn{
  width:100%;
  min-height:58px;
  margin:0 0 4px;
  padding:0 28px;
  border:1px solid rgba(255,255,255,.82);
  border-radius:999px !important;
  background:#fff;
  color:#211a16 !important;
  font-size:16px !important;
  font-weight:600;
  justify-content:space-between;
  position:relative;
  transition:background .25s ease,color .25s ease,transform .25s ease,border-color .25s ease;
}
body #rezervacije.booking .booking-actions .btn::after{
  content:"↗";
  font-size:19px;
  font-weight:400;
  line-height:1;
}
body #rezervacije.booking .booking-actions .btn:hover{
  background:transparent;
  color:#fff !important;
  border-color:rgba(255,255,255,.62);
  transform:translateY(-2px);
}
body #rezervacije.booking .booking-actions .booking-contact-row{
  min-height:72px;
  padding:12px 14px;
  display:grid !important;
  grid-template-columns:44px minmax(0,1fr) auto;
  gap:14px !important;
  align-items:center;
  text-decoration:none;
  border:1px solid rgba(255,255,255,.10);
  border-radius:16px;
  background:rgba(255,255,255,.035);
  transition:background .25s ease,border-color .25s ease,transform .25s ease;
}
body #rezervacije.booking .booking-actions .booking-contact-row:hover{
  background:rgba(255,255,255,.085);
  border-color:rgba(255,255,255,.20);
  transform:translateX(4px);
}
body #rezervacije.booking .booking-contact-icon{
  width:44px;
  height:44px;
  min-width:44px !important;
  margin:0 !important;
  display:grid !important;
  place-items:center;
  border-radius:50%;
  background:rgba(255,255,255,.09);
  opacity:1 !important;
}
body #rezervacije.booking .booking-contact-icon svg{
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.55;
  stroke-linecap:round;
  stroke-linejoin:round;
}
body #rezervacije.booking .booking-contact-copy{
  min-width:0;
  display:flex !important;
  flex-direction:column;
  gap:3px;
  margin:0 !important;
}
body #rezervacije.booking .booking-contact-copy small{
  font-size:11px;
  line-height:1.1;
  font-weight:400;
  opacity:.52;
}
body #rezervacije.booking .booking-contact-copy strong{
  font-size:var(--booking-contact-size,15px);
  line-height:1.2;
  font-weight:500;
  color:inherit;
  white-space:normal;
  overflow-wrap:anywhere;
}
body #rezervacije.booking .booking-contact-arrow{
  min-width:0 !important;
  margin:0 2px 0 0 !important;
  font-size:17px !important;
  opacity:.42 !important;
  transition:opacity .25s ease,transform .25s ease;
}
body #rezervacije.booking .booking-contact-row:hover .booking-contact-arrow{
  opacity:1 !important;
  transform:translate(2px,-2px);
}

@media(max-width:1050px){
  body #rezervacije.booking.booking-photo{
    gap:44px;
  }
  body #rezervacije.booking.booking-photo .booking-actions{
    flex-basis:390px;
    width:390px;
    min-width:340px;
  }
}
@media(max-width:820px){
  body #rezervacije.booking.booking-photo{
    flex-direction:column;
    align-items:stretch;
  }
  body #rezervacije.booking.booking-photo .booking-main{
    max-width:100%;
  }
  body #rezervacije.booking.booking-photo .booking-actions{
    width:100%;
    min-width:0;
    flex-basis:auto;
    padding:20px;
  }
}
@media(max-width:620px){
  body #rezervacije.booking.booking-photo .booking-actions{
    padding:16px;
    border-radius:20px;
  }
  body #rezervacije.booking .booking-actions .booking-contact-row{
    min-height:66px;
    grid-template-columns:40px minmax(0,1fr) auto;
    padding:10px 12px;
    gap:11px !important;
  }
  body #rezervacije.booking .booking-contact-icon{
    width:40px;
    height:40px;
    min-width:40px !important;
  }
}

/* Villa Istra 1.77.0 — Reservations CTA button hover contrast */
body #rezervacije.booking .booking-actions .btn:hover,
body #rezervacije.booking .booking-actions .btn:focus-visible{
  background:#211a16 !important;
  color:#fff !important;
  border-color:#211a16 !important;
}
body #rezervacije.booking .booking-actions .btn:hover::after,
body #rezervacije.booking .booking-actions .btn:focus-visible::after{
  color:#fff !important;
}

/* Villa Istra 1.78.0 — preserve rounded corners during image hover zoom */
body .vil-page .page-section figure{
  border-radius:18px;
  overflow:hidden !important;
}
body .vil-page .page-section figure img{
  border-radius:inherit !important;
  transform-origin:center center;
}
body .vil-page .page-section figure::before{
  border-radius:18px;
}
@media (hover:hover) and (pointer:fine){
  body .vil-page .page-section figure:hover img{
    border-radius:inherit !important;
  }
}

/* Villa Istra 1.79.0 — modern facilities list on Sadržaji page */
body .facilities-section{
  background:var(--fac-bg,#f8f4ed);
  color:var(--fac-text,#211a16);
  padding:110px 0 120px;
}
body .facilities-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,.62fr);
  gap:clamp(40px,7vw,110px);
  align-items:end;
  margin-bottom:52px;
}
body .facilities-head .eyebrow{
  grid-column:1/-1;
  color:var(--fac-accent,#b89568) !important;
}
body .facilities-head h2{
  margin:0;
  max-width:760px;
  font-size:clamp(42px,5vw,72px);
  line-height:1.02;
  letter-spacing:-.05em;
}
body .facilities-intro{
  max-width:520px;
  font-size:17px;
  line-height:1.7;
  opacity:.70;
}
body .facilities-intro p{margin:0}
body .facilities-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid color-mix(in srgb,var(--fac-text,#211a16) 13%,transparent);
  border-left:1px solid color-mix(in srgb,var(--fac-text,#211a16) 13%,transparent);
}
body .facility-item{
  min-height:112px;
  display:flex;
  align-items:center;
  gap:18px;
  padding:24px 26px;
  border-right:1px solid color-mix(in srgb,var(--fac-text,#211a16) 13%,transparent);
  border-bottom:1px solid color-mix(in srgb,var(--fac-text,#211a16) 13%,transparent);
  font-size:16px;
  line-height:1.45;
  transition:background .28s ease,transform .28s ease;
}
body .facility-check{
  flex:0 0 38px;
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  color:var(--fac-accent,#b89568);
}
body .facility-check svg{
  width:36px;
  height:36px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.5;
  stroke-linecap:round;
  stroke-linejoin:round;
}
@media(hover:hover) and (pointer:fine){
  body .facility-item:hover{
    background:color-mix(in srgb,var(--fac-accent,#b89568) 8%,transparent);
    transform:translateY(-2px);
  }
}
@media(max-width:980px){
  body .facilities-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  body .facilities-head{grid-template-columns:1fr;}
}
@media(max-width:620px){
  body .facilities-section{padding:78px 0 84px;}
  body .facilities-head{margin-bottom:36px;}
  body .facilities-grid{grid-template-columns:1fr;}
  body .facility-item{min-height:88px;padding:20px 18px;}
  body .facility-check{flex-basis:34px;width:34px;height:34px;}
}

/* Villa Istra 1.80.0 — premium facilities cards + global reservations on inner pages */
body .facilities-grid{
  border:0 !important;
  gap:14px;
}
body .facility-item{
  min-height:104px;
  padding:18px 20px;
  border:1px solid color-mix(in srgb,var(--fac-text,#211a16) 10%,transparent) !important;
  border-radius:18px;
  background:color-mix(in srgb,#fff 72%,var(--fac-bg,#f8f4ed));
  box-shadow:0 14px 36px rgba(33,26,22,.055),inset 0 1px 0 rgba(255,255,255,.72);
}
body .facility-check{
  width:46px;
  height:46px;
  flex-basis:46px;
  border-radius:50%;
  background:color-mix(in srgb,var(--fac-accent,#b89568) 10%,transparent);
}
body .facility-check svg{width:30px;height:30px}
@media(hover:hover) and (pointer:fine){
  body .facility-item:hover{
    background:color-mix(in srgb,var(--fac-accent,#b89568) 8%,#fff);
    border-color:color-mix(in srgb,var(--fac-accent,#b89568) 22%,transparent) !important;
    transform:translateY(-4px);
    box-shadow:0 18px 42px rgba(33,26,22,.08);
  }
}
body .global-page-reservations{
  align-items:center;
  gap:clamp(60px,8vw,130px);
}
body .global-page-reservations .booking-main{flex:1 1 auto;max-width:820px}
body .global-page-reservations .booking-actions{
  flex:0 0 clamp(360px,31vw,470px);
  min-width:360px;
  width:clamp(360px,31vw,470px);
  padding:24px;
  gap:10px;
  align-items:stretch;
  border:1px solid rgba(255,255,255,.14);
  border-radius:24px;
  background:rgba(255,255,255,.055);
  box-shadow:0 24px 64px rgba(0,0,0,.16),inset 0 1px 0 rgba(255,255,255,.06);
  backdrop-filter:blur(15px);
  -webkit-backdrop-filter:blur(15px);
}
body .global-page-reservations .booking-actions .btn{
  width:100%;min-height:58px;margin:0 0 4px;padding:0 28px;border:1px solid rgba(255,255,255,.82);
  border-radius:999px !important;background:#fff;color:#211a16 !important;font-size:16px !important;font-weight:600;justify-content:space-between;
}
body .global-page-reservations .booking-actions .btn::after{content:"";width:14px;height:14px;flex:0 0 14px;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M7 17 17 7M9 7h8v8'/%3E%3C/svg%3E") center/contain no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M7 17 17 7M9 7h8v8'/%3E%3C/svg%3E") center/contain no-repeat}
body .global-page-reservations .booking-contact-row{
  min-height:72px;padding:12px 14px;display:grid !important;grid-template-columns:44px minmax(0,1fr) auto;gap:14px !important;align-items:center;
  text-decoration:none;border:1px solid rgba(255,255,255,.10);border-radius:16px;background:rgba(255,255,255,.035);
}
body .global-page-reservations .booking-contact-icon{
  width:44px;height:44px;display:grid !important;place-items:center;border-radius:50%;background:rgba(255,255,255,.09);
}
body .global-page-reservations .booking-contact-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}
body .global-page-reservations .booking-contact-copy{display:flex !important;flex-direction:column;gap:3px}
body .global-page-reservations .booking-contact-copy small{font-size:11px;opacity:.52}
body .global-page-reservations .booking-contact-copy strong{font-size:var(--booking-contact-size,15px);font-weight:500}
body .global-page-reservations .booking-contact-arrow{opacity:.42}
@media(max-width:820px){
  body .global-page-reservations{flex-direction:column;align-items:stretch}
  body .global-page-reservations .booking-actions{width:100%;min-width:0;flex-basis:auto}
}

/* Villa Istra 1.81.0 — tighter heading hierarchy in Facilities section */
body .facilities-head{
  row-gap:14px;
}
body .facilities-head .eyebrow{
  margin-bottom:0 !important;
  align-self:end;
}
body .facilities-head h2{
  margin-top:0 !important;
}
@media(max-width:980px){
  body .facilities-head{
    gap:12px;
  }
  body .facilities-head .eyebrow{
    margin-bottom:2px !important;
  }
}

/* Villa Istra 1.82.0 — apply Reservations typography settings on all inner pages */
body .global-page-reservations .booking-main .eyebrow{
  color:var(--booking-kicker-color,var(--gold)) !important;
  font-size:var(--booking-kicker-size,17px) !important;
}
body .global-page-reservations .booking-main h2{
  color:var(--booking-title-color,#211a16) !important;
  font-size:var(--booking-title-size,clamp(48px,6vw,86px)) !important;
}
body .global-page-reservations .booking-text,
body .global-page-reservations .booking-text p{
  color:var(--booking-text-color,#211a16) !important;
  font-size:var(--booking-text-size,17px) !important;
}
body .global-page-reservations .booking-actions > a:not(.btn),
body .global-page-reservations .booking-contact-copy strong,
body .global-page-reservations .booking-contact-copy small,
body .global-page-reservations .booking-contact-arrow,
body .global-page-reservations .booking-contact-icon{
  color:var(--booking-contact-color,#211a16) !important;
}
body .global-page-reservations .booking-actions > a:not(.btn){
  font-size:var(--booking-contact-size,14px) !important;
}

/* Light inner-page treatment so the reused Reservations block stays readable */
body .vil-page .global-page-reservations{
  color:#211a16;
}
body .vil-page .global-page-reservations .booking-actions{
  border-color:rgba(33,26,22,.10);
  background:rgba(255,255,255,.58);
  box-shadow:
    0 24px 64px rgba(33,26,22,.10),
    inset 0 1px 0 rgba(255,255,255,.75);
}
body .vil-page .global-page-reservations .booking-contact-row{
  border-color:rgba(33,26,22,.09);
  background:rgba(255,255,255,.52);
}
body .vil-page .global-page-reservations .booking-contact-icon{
  background:rgba(33,26,22,.06);
}
body .vil-page .global-page-reservations .booking-actions .btn{
  background:#211a16;
  border-color:#211a16;
  color:#fff !important;
}
body .vil-page .global-page-reservations .booking-actions .btn:hover,
body .vil-page .global-page-reservations .booking-actions .btn:focus-visible{
  background:#fff !important;
  color:#211a16 !important;
  border-color:#211a16 !important;
}

/* Villa Istra 1.83.0 — restore subtle motion for Reservations on inner pages */
body .vil-page .global-page-reservations{
  position:relative;
  overflow:hidden;
}
body .vil-page .global-page-reservations::after{
  content:"";
  position:absolute;
  z-index:0;
  width:38%;
  aspect-ratio:1;
  right:-10%;
  top:-28%;
  border-radius:50%;
  background:rgba(184,149,104,.12);
  filter:blur(72px);
  pointer-events:none;
  opacity:.62;
  animation:vilPageBookingGlow 8s ease-in-out infinite alternate;
}
body .vil-page .global-page-reservations .booking-main,
body .vil-page .global-page-reservations .booking-actions{
  position:relative;
  z-index:1;
}
body .vil-page .global-page-reservations .booking-actions{
  transition:
    transform .55s cubic-bezier(.2,.7,.2,1),
    box-shadow .55s cubic-bezier(.2,.7,.2,1);
}
@media(hover:hover) and (pointer:fine){
  body .vil-page .global-page-reservations .booking-actions:hover{
    transform:translateY(-5px);
    box-shadow:
      0 30px 76px rgba(33,26,22,.14),
      inset 0 1px 0 rgba(255,255,255,.82);
  }
  body .vil-page .global-page-reservations .booking-contact-row{
    transition:
      background .25s ease,
      border-color .25s ease,
      transform .28s cubic-bezier(.2,.7,.2,1);
  }
  body .vil-page .global-page-reservations .booking-contact-row:hover{
    transform:translateX(4px);
    background:rgba(255,255,255,.74);
    border-color:rgba(33,26,22,.15);
  }
  body .vil-page .global-page-reservations .booking-contact-row:hover .booking-contact-arrow{
    transform:translate(2px,-2px);
    opacity:1 !important;
  }
}
@keyframes vilPageBookingGlow{
  from{transform:translate3d(-2%,0,0) scale(.96);opacity:.42}
  to{transform:translate3d(5%,7%,0) scale(1.08);opacity:.72}
}
@media(prefers-reduced-motion:reduce){
  body .vil-page .global-page-reservations::after,
  body .vil-page .global-page-reservations .booking-actions,
  body .vil-page .global-page-reservations .booking-contact-row{
    animation:none !important;
    transition:none !important;
  }
}

/* Villa Istra 1.84.0 — clean outline icons in Facilities section */
body .facilities-section .facility-check{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}

/* Villa Istra 1.85.0 — Facilities in four columns on desktop */
@media(min-width:981px){
  body .facilities-section .facilities-grid{
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  }
}

/* Villa Istra 1.86.0 — Sadržaji editorial 30/70 grid */
body .content-editorial-grid{
  background:var(--ceg-bg,#f3eee6);
  color:var(--ceg-text,#211a16);
  padding:110px 0 120px;
}
body .content-editorial-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,.62fr);
  gap:14px clamp(40px,7vw,110px);
  align-items:end;
  margin-bottom:50px;
}
body .content-editorial-head .eyebrow{
  grid-column:1/-1;
  margin:0 !important;
  color:var(--ceg-accent,#b89568) !important;
}
body .content-editorial-head h2{
  margin:0;
  max-width:780px;
  font-size:clamp(42px,5vw,72px);
  line-height:1.02;
  letter-spacing:-.05em;
}
body .content-editorial-intro{
  max-width:520px;
  font-size:17px;
  line-height:1.7;
  opacity:.7;
}
body .content-editorial-intro p{margin:0}

body .content-editorial-layout{
  display:grid;
  grid-template-columns:minmax(280px,30%) minmax(0,1fr);
  grid-template-rows:repeat(3,minmax(190px,1fr));
  gap:16px;
}
body .content-editorial-card{
  position:relative;
  overflow:hidden;
  border-radius:22px;
  min-height:210px;
  isolation:isolate;
  color:#fff;
  background:#2b211b;
  box-shadow:0 18px 46px rgba(33,26,22,.10);
}
body .content-editorial-featured{
  grid-row:1 / span 3;
  min-height:650px;
}
body .content-editorial-small{
  min-height:210px;
}
body .content-editorial-image{
  position:absolute;
  inset:0;
  overflow:hidden;
}
body .content-editorial-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transform:scale(1.001);
  transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .45s ease;
}
body .content-editorial-shade{
  position:absolute;
  inset:0;
  background:
    linear-gradient(0deg,rgba(0,0,0,calc(var(--card-overlay,.22) + .20)),rgba(0,0,0,0) 62%),
    rgba(0,0,0,var(--card-overlay,.22));
}
body .content-editorial-copy{
  position:relative;
  z-index:2;
  min-height:100%;
  padding:28px 30px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
}
body .content-editorial-featured .content-editorial-copy{
  padding:34px 34px 38px;
}
body .content-editorial-copy .eyebrow{
  color:rgba(255,255,255,.78) !important;
  font-size:13px;
  margin-bottom:8px !important;
}
body .content-editorial-copy h3{
  margin:0 0 10px;
  max-width:700px;
  color:#fff;
  font-size:clamp(26px,2.4vw,40px);
  line-height:1.04;
  letter-spacing:-.035em;
}
body .content-editorial-featured .content-editorial-copy h3{
  font-size:clamp(34px,3.2vw,54px);
}
body .content-editorial-text{
  max-width:650px;
  font-size:15px;
  line-height:1.55;
  color:rgba(255,255,255,.82);
}
body .content-editorial-text p{margin:0}
body .content-editorial-link{
  align-self:flex-start;
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin-top:18px;
  color:#fff;
  text-decoration:none;
  font-size:14px;
  border-bottom:1px solid rgba(255,255,255,.34);
  padding-bottom:4px;
}
@media(hover:hover) and (pointer:fine){
  body .content-editorial-card:hover .content-editorial-image img{
    transform:scale(1.035);
  }
  body .content-editorial-card{
    transition:transform .35s ease,box-shadow .35s ease;
  }
  body .content-editorial-card:hover{
    transform:translateY(-3px);
    box-shadow:0 24px 58px rgba(33,26,22,.15);
  }
}
@media(max-width:980px){
  body .content-editorial-head{grid-template-columns:1fr}
  body .content-editorial-layout{
    grid-template-columns:1fr;
    grid-template-rows:auto;
  }
  body .content-editorial-featured{
    grid-row:auto;
    min-height:520px;
  }
  body .content-editorial-small{
    min-height:300px;
  }
}
@media(max-width:620px){
  body .content-editorial-grid{padding:78px 0 84px}
  body .content-editorial-head{margin-bottom:34px}
  body .content-editorial-featured{min-height:460px}
  body .content-editorial-small{min-height:280px}
  body .content-editorial-copy,
  body .content-editorial-featured .content-editorial-copy{padding:24px}
}
@media(prefers-reduced-motion:reduce){
  body .content-editorial-card,
  body .content-editorial-image img{transition:none !important}
  body .content-editorial-card:hover,
  body .content-editorial-card:hover .content-editorial-image img{transform:none !important}
}

/* Villa Istra 1.87.0 — Editorial grid: 30% featured + 70% two-column right side */
@media(min-width:981px){
  body .content-editorial-layout{
    grid-template-columns:minmax(300px,30%) repeat(2,minmax(0,1fr)) !important;
    grid-template-rows:repeat(2,minmax(310px,1fr)) !important;
    gap:16px;
  }

  body .content-editorial-featured{
    grid-column:1;
    grid-row:1 / span 2;
    min-height:636px;
  }

  body .content-editorial-small{
    min-height:310px;
  }

  /* First two right cards sit side by side */
  body .content-editorial-layout > .content-editorial-small:nth-child(2){
    grid-column:2;
    grid-row:1;
  }
  body .content-editorial-layout > .content-editorial-small:nth-child(3){
    grid-column:3;
    grid-row:1;
  }

  /* Third right card spans the full 70% width */
  body .content-editorial-layout > .content-editorial-small:nth-child(4){
    grid-column:2 / span 2;
    grid-row:2;
  }

  body .content-editorial-small .content-editorial-copy{
    padding:26px 28px;
  }

  body .content-editorial-small .content-editorial-copy h3{
    font-size:clamp(24px,2vw,34px);
  }
}

/* Villa Istra 1.89.0 — alternating editorial content with overlapping imagery */
body .editorial-double-section{
  padding:110px 0;
  background:var(--cream,#f8f4ed);
  color:var(--ink,#211a16);
  overflow:hidden;
}
body .editorial-double-grid{
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:clamp(64px,9vw,150px);
  align-items:center;
}
body .editorial-double-section.is-reverse .editorial-double-grid{
  grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr);
}
body .editorial-double-section.is-reverse .editorial-double-copy{
  order:2;
}
body .editorial-double-section.is-reverse .editorial-double-media{
  order:1;
}

body .editorial-double-copy{
  position:relative;
  z-index:2;
}
body .editorial-double-copy::before{
  content:"";
  display:block;
  width:44px;
  height:2px;
  margin-bottom:20px;
  background:var(--gold,#b89568);
}
body .editorial-double-copy .eyebrow{
  display:block;
  margin-bottom:10px !important;
}
body .editorial-double-copy h2{
  margin:0 0 24px;
  max-width:700px;
  font-size:clamp(42px,5vw,70px);
  line-height:1.02;
  letter-spacing:-.05em;
}
body .editorial-double-text{
  max-width:650px;
  font-size:17px;
  line-height:1.72;
  opacity:.78;
}
body .editorial-double-text p:first-child{margin-top:0}
body .editorial-double-text p:last-child{margin-bottom:0}

body .editorial-double-media{
  position:relative;
  min-height:610px;
}
body .editorial-double-main,
body .editorial-double-small{
  position:absolute;
  margin:0;
  overflow:hidden;
  border-radius:22px;
  box-shadow:0 24px 64px rgba(33,26,22,.13);
}
body .editorial-double-main{
  inset:0 8% 7% 0;
}
body .editorial-double-small{
  width:42%;
  height:42%;
  right:0;
  bottom:0;
  z-index:2;
  border:8px solid color-mix(in srgb,var(--cream,#f8f4ed) 88%,transparent);
}
body .editorial-double-section.is-reverse .editorial-double-main{
  inset:0 0 7% 8%;
}
body .editorial-double-section.is-reverse .editorial-double-small{
  right:auto;
  left:0;
}
body .editorial-double-main img,
body .editorial-double-small img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .8s cubic-bezier(.2,.7,.2,1);
}
@media(hover:hover) and (pointer:fine){
  body .editorial-double-main:hover img{
    transform:scale(1.025);
  }
  body .editorial-double-small:hover img{
    transform:scale(1.045);
  }
}
@media(max-width:980px){
  body .editorial-double-section,
  body .editorial-double-section.is-reverse{
    padding:84px 0;
  }
  body .editorial-double-grid,
  body .editorial-double-section.is-reverse .editorial-double-grid{
    grid-template-columns:1fr;
    gap:48px;
  }
  body .editorial-double-section.is-reverse .editorial-double-copy,
  body .editorial-double-section.is-reverse .editorial-double-media{
    order:initial;
  }
  body .editorial-double-media{
    min-height:520px;
  }
}
@media(max-width:620px){
  body .editorial-double-section{padding:72px 0}
  body .editorial-double-media{min-height:410px}
  body .editorial-double-main,
  body .editorial-double-section.is-reverse .editorial-double-main{
    inset:0 4% 8% 0;
  }
  body .editorial-double-small{
    width:46%;
    height:38%;
    border-width:6px;
  }
  body .editorial-double-copy h2{
    font-size:42px;
  }
}
@media(prefers-reduced-motion:reduce){
  body .editorial-double-main img,
  body .editorial-double-small img{
    transition:none !important;
  }
  body .editorial-double-main:hover img,
  body .editorial-double-small:hover img{
    transform:none !important;
  }
}

/* Villa Istra 1.90.0 — subtle 1px frame on overlapping editorial image */
body .editorial-double-small{
  border-width:1px !important;
}

/* Villa Istra 1.91.0 — refined editorial headings + page Hero matched to home slider */
body .editorial-double-copy h2{
  font-size:clamp(38px,4.35vw,62px) !important;
}
body .page-hero h1{
  font-size:80px !important;
  line-height:.94 !important;
  letter-spacing:-.045em !important;
  max-width:900px;
}
@media(max-width:1050px){
  body .page-hero h1{
    font-size:68px !important;
  }
}
@media(max-width:620px){
  body .editorial-double-copy h2{
    font-size:38px !important;
  }
  body .page-hero h1{
    font-size:46px !important;
    line-height:.96 !important;
  }
}

/* Villa Istra 1.92.0 — refined Exterior CTA + configurable colored overlay */
body .full-bleed-feature::before{
  background:var(--exterior-overlay-color,#000000) !important;
}
body .full-bleed-feature .feature-copy .btn.btn-light{
  min-height:54px;
  padding:0 25px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  border:1px solid rgba(255,255,255,.72);
  border-radius:999px;
  background:rgba(255,255,255,.10);
  color:#fff !important;
  font-size:14px;
  font-weight:600;
  letter-spacing:.01em;
  text-decoration:none;
  box-shadow:0 12px 34px rgba(0,0,0,.12);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  transition:background .3s ease,color .3s ease,border-color .3s ease,transform .3s ease,box-shadow .3s ease;
}
body .full-bleed-feature .feature-copy .btn.btn-light::after{
  content:"↗";
  font-size:17px;
  line-height:1;
  transition:transform .3s ease;
}
@media(hover:hover) and (pointer:fine){
  body .full-bleed-feature .feature-copy .btn.btn-light:hover{
    background:#fff;
    color:#211a16 !important;
    border-color:#fff;
    transform:translateY(-2px);
    box-shadow:0 16px 40px rgba(0,0,0,.17);
  }
  body .full-bleed-feature .feature-copy .btn.btn-light:hover::after{
    transform:translate(2px,-2px);
  }
}

/* Villa Istra 1.93.0 — Exterior CTA: outline only, black hover */
body .full-bleed-feature .feature-copy .btn.btn-light{
  background:transparent !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.88) !important;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
@media(hover:hover) and (pointer:fine){
  body .full-bleed-feature .feature-copy .btn.btn-light:hover{
    background:#000 !important;
    color:#fff !important;
    border-color:#000 !important;
    box-shadow:0 14px 34px rgba(0,0,0,.18);
  }
}

/* Villa Istra 1.94.0 — Exterior parallax overlay with true 0–100% opacity */
body .full-bleed-feature::before{
  background:var(--exterior-overlay-color,#000000) !important;
  opacity:calc(var(--exterior-overlay,55%) / 100%) !important;
}

body .full-bleed-feature::before{
  background-color:var(--exterior-overlay-color,#000000) !important;
  background-image:none !important;
  opacity:var(--exterior-overlay-opacity,.55) !important;
}

/* Villa Istra 1.95.0 — definitive parallax overlay rendered inside background image */
body .full-bleed-feature{
  background-image:var(--feature) !important;
}
body .full-bleed-feature::before{
  display:none !important;
  content:none !important;
}
body .full-bleed-feature > .feature-overlay{
  display:none !important;
}

/* Villa Istra 1.96.0 — Lokacija & Istra editorial imagery refinement */
body.page .editorial-double-section .editorial-double-main img,
body.page .editorial-double-section .editorial-double-small img{
  object-position:center center;
}

/* Villa Istra 1.97.0 — availability calendar section */
body .villa-availability-section{
  padding:110px 0 120px;
  background:#f8f4ed;
  color:#211a16;
}
body .villa-availability-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(280px,.62fr);
  gap:14px clamp(40px,7vw,110px);
  align-items:end;
  margin-bottom:48px;
}
body .villa-availability-head .eyebrow{
  grid-column:1/-1;
  margin:0 !important;
}
body .villa-availability-head h2{
  margin:0;
  max-width:760px;
  font-size:clamp(40px,4.6vw,66px);
  line-height:1.02;
  letter-spacing:-.05em;
}
body .villa-availability-intro{
  max-width:520px;
  font-size:17px;
  line-height:1.7;
  opacity:.72;
}
body .villa-availability-intro p{margin:0}
@media(max-width:900px){
  body .villa-availability-head{grid-template-columns:1fr}
}
@media(max-width:620px){
  body .villa-availability-section{padding:78px 0 84px}
  body .villa-availability-head{margin-bottom:34px}
}

/* Villa Istra 1.98.0 — refined availability section heading balance */
body .villa-availability-head{
  align-items:start !important;
}
body .villa-availability-head h2{
  font-size:clamp(36px,4vw,58px) !important;
  line-height:1.04;
}
body .villa-availability-intro{
  align-self:start;
  padding-top:2px;
}

/* Villa Istra 1.99.0 — modern U blizini split layout */
body .destination.destination-modern{
  width:100%;
  max-width:none;
  padding:110px 0 120px;
}
body .destination-modern-grid{
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:clamp(60px,8vw,130px);
  align-items:center;
}
body .destination-modern-media{
  min-width:0;
}
body .destination-modern-image{
  margin:0;
  width:100%;
  height:clamp(500px,50vw,690px);
  overflow:hidden;
  border-radius:22px;
  box-shadow:0 22px 58px rgba(33,26,22,.10);
}
body .destination-modern-image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:inherit;
  transform:scale(1.001);
  transition:transform .8s cubic-bezier(.2,.7,.2,1);
}
body .destination-modern-content{
  min-width:0;
}
body .destination-modern-heading{
  margin-bottom:38px;
}
body .destination-modern-heading .eyebrow{
  display:block;
  margin:0 0 10px !important;
}
body .destination-modern-heading h2{
  margin:0;
  max-width:780px;
  font-size:clamp(40px,4.5vw,64px);
  line-height:1.02;
  letter-spacing:-.05em;
}
body .destination-modern .destination-stats{
  margin-top:0;
}
@media(hover:hover) and (pointer:fine){
  body .destination-modern-image:hover img{
    transform:scale(1.028);
  }
}
@media(max-width:980px){
  body .destination.destination-modern{
    padding:84px 0 92px;
  }
  body .destination-modern-grid{
    grid-template-columns:1fr;
    gap:46px;
  }
  body .destination-modern-image{
    height:520px;
  }
}
@media(max-width:620px){
  body .destination.destination-modern{
    padding:72px 0 80px;
  }
  body .destination-modern-grid{
    gap:34px;
  }
  body .destination-modern-image{
    height:420px;
    border-radius:18px;
  }
  body .destination-modern-heading{
    margin-bottom:30px;
  }
  body .destination-modern-heading h2{
    font-size:38px;
  }
}
@media(prefers-reduced-motion:reduce){
  body .destination-modern-image img{
    transition:none !important;
  }
  body .destination-modern-image:hover img{
    transform:none !important;
  }
}

/* Villa Istra 2.00.0 — header logo width setting controls the image itself */
body .site-header .brand{
  flex:0 0 auto;
}
body .site-header .brand .vil-header-logo{
  width:var(--vil-logo-width,auto) !important;
  max-width:none !important;
  height:auto !important;
  max-height:none !important;
  object-fit:contain;
}
body .site-header.header-mode-fullscreen .brand .vil-header-logo{
  width:var(--vil-logo-width,auto) !important;
  max-width:none !important;
  max-height:none !important;
}
@media(max-width:900px){
  body .site-header .brand .vil-header-logo,
  body .site-header.header-mode-fullscreen .brand .vil-header-logo{
    width:min(var(--vil-logo-width,190px),190px) !important;
    height:auto !important;
  }
}
@media(max-width:620px){
  body .site-header .brand .vil-header-logo,
  body .site-header.header-mode-fullscreen .brand .vil-header-logo{
    width:min(var(--vil-logo-width,165px),165px) !important;
    height:auto !important;
  }
}

/* Villa Istra 2.00.1 — menu close + consistent NE arrows */
body .vil-menu-close{
  width:54px;
  height:54px;
  border:1px solid rgba(255,255,255,.42) !important;
  border-radius:50%;
  background:transparent !important;
  transition:background .25s ease,border-color .25s ease,transform .25s ease;
}
body .vil-menu-close:hover,
body .vil-menu-close:focus-visible{
  background:#fff !important;
  border-color:#fff !important;
}
body .vil-menu-close:hover span,
body .vil-menu-close:focus-visible span{
  background:#000;
}

/* Draw the north-east arrow with CSS instead of a Unicode glyph,
   so mobile browsers cannot substitute it with an emoji/icon font. */
.vil-arrow-ne{
  position:relative;
  display:inline-block;
  width:13px;
  height:13px;
  flex:0 0 13px;
  margin-left:12px;
  vertical-align:middle;
}
.vil-arrow-ne::before{
  content:"";
  position:absolute;
  left:1px;
  bottom:2px;
  width:13px;
  height:1.5px;
  background:currentColor;
  transform:rotate(-45deg);
  transform-origin:left center;
}
.vil-arrow-ne::after{
  content:"";
  position:absolute;
  right:0;
  top:0;
  width:6px;
  height:6px;
  border-top:1.5px solid currentColor;
  border-right:1.5px solid currentColor;
}
.text-link .vil-arrow-ne,
.vil-fullscreen-cta .vil-arrow-ne{
  margin-left:12px;
}

/* Booking buttons also use a CSS arrow, never a Unicode character. */
body #rezervacije.booking .booking-actions .btn::after{
  content:"" !important;
  width:14px;
  height:14px;
  flex:0 0 14px;
  margin-left:12px;
  background-color:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 17 17 7M9 7h8v8' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 17 17 7M9 7h8v8' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
}
@media(max-width:767px){
  .vil-arrow-ne{
    width:12px;
    height:12px;
    flex-basis:12px;
  }
}

/* Villa Istra 2.00.2 — remove remaining Unicode NE arrows on mobile-sensitive buttons */
body .booking-contact-arrow.vil-arrow-ne{
  margin-left:0;
  justify-self:end;
}
body .global-page-reservations .booking-actions .btn::after,
body .full-bleed-feature .feature-copy .btn.btn-light::after{
  content:"" !important;
  width:14px;
  height:14px;
  flex:0 0 14px;
  margin-left:12px;
  background-color:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 17 17 7M9 7h8v8' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 17 17 7M9 7h8v8' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  font-size:0 !important;
  line-height:1;
}

/* Villa Istra 2.00.3 — button borders + subtle premium motion */
body .btn,
body .header-cta,
body .vil-fullscreen-cta,
body .text-link{
  transition:
    transform .28s ease,
    background-color .28s ease,
    color .28s ease,
    border-color .28s ease,
    box-shadow .28s ease,
    opacity .28s ease;
}

body .btn,
body .header-cta,
body .vil-fullscreen-cta{
  border:1px solid currentColor;
}

body .btn-gold{
  border-color:rgba(255,255,255,.18);
}

body .btn-light{
  border-color:rgba(33,26,22,.18);
}

body .header-cta{
  border-color:currentColor;
}

body .vil-fullscreen-cta{
  border-color:rgba(255,255,255,.38);
}

@media(hover:hover) and (pointer:fine){
  body .btn:hover,
  body .header-cta:hover,
  body .vil-fullscreen-cta:hover,
  body .text-link:hover{
    transform:translateY(-2px);
  }

  body .btn:hover,
  body .header-cta:hover,
  body .vil-fullscreen-cta:hover{
    box-shadow:0 10px 24px rgba(0,0,0,.10);
  }

  body .btn .vil-arrow-ne,
  body .header-cta .vil-arrow-ne,
  body .vil-fullscreen-cta .vil-arrow-ne,
  body .text-link .vil-arrow-ne{
    transition:transform .28s ease;
  }

  body .btn:hover .vil-arrow-ne,
  body .header-cta:hover .vil-arrow-ne,
  body .vil-fullscreen-cta:hover .vil-arrow-ne,
  body .text-link:hover .vil-arrow-ne{
    transform:translate(2px,-2px);
  }
}

body .btn:active,
body .header-cta:active,
body .vil-fullscreen-cta:active{
  transform:translateY(0) scale(.985);
}

@media(prefers-reduced-motion:reduce){
  body .btn,
  body .header-cta,
  body .vil-fullscreen-cta,
  body .text-link,
  body .vil-arrow-ne{
    transition:none !important;
  }
}

/* Villa Istra 2.00.4 — apply bordered button treatment to homepage text-link CTAs */
body .intro-story-link,
body .destination .text-link,
body .editorial-copy .text-link,
body .arch-copy .text-link,
body .page-section-copy .text-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:0;
  margin-top:24px;
  padding:13px 18px;
  border:1px solid rgba(33,26,22,.28) !important;
  border-radius:999px;
  background:transparent;
  color:var(--ink);
  text-decoration:none;
  font-size:12px;
  font-weight:750;
  line-height:1.2;
  box-shadow:none;
  transition:
    transform .28s ease,
    background-color .28s ease,
    color .28s ease,
    border-color .28s ease,
    box-shadow .28s ease;
}

body .intro-story-link .vil-arrow-ne,
body .destination .text-link .vil-arrow-ne,
body .editorial-copy .text-link .vil-arrow-ne,
body .arch-copy .text-link .vil-arrow-ne,
body .page-section-copy .text-link .vil-arrow-ne{
  margin-left:12px;
  transition:transform .28s ease;
}

@media(hover:hover) and (pointer:fine){
  body .intro-story-link:hover,
  body .destination .text-link:hover,
  body .editorial-copy .text-link:hover,
  body .arch-copy .text-link:hover,
  body .page-section-copy .text-link:hover{
    transform:translateY(-2px);
    background:#211a16;
    color:#fff;
    border-color:#211a16 !important;
    box-shadow:0 10px 24px rgba(33,26,22,.10);
  }

  body .intro-story-link:hover .vil-arrow-ne,
  body .destination .text-link:hover .vil-arrow-ne,
  body .editorial-copy .text-link:hover .vil-arrow-ne,
  body .arch-copy .text-link:hover .vil-arrow-ne,
  body .page-section-copy .text-link:hover .vil-arrow-ne{
    transform:translate(2px,-2px);
  }
}

body .intro-story-link:active,
body .destination .text-link:active,
body .editorial-copy .text-link:active,
body .arch-copy .text-link:active,
body .page-section-copy .text-link:active{
  transform:translateY(0) scale(.985);
}

@media(prefers-reduced-motion:reduce){
  body .intro-story-link,
  body .destination .text-link,
  body .editorial-copy .text-link,
  body .arch-copy .text-link,
  body .page-section-copy .text-link,
  body .intro-story-link .vil-arrow-ne,
  body .destination .text-link .vil-arrow-ne,
  body .editorial-copy .text-link .vil-arrow-ne,
  body .arch-copy .text-link .vil-arrow-ne,
  body .page-section-copy .text-link .vil-arrow-ne{
    transition:none !important;
  }
}

/* Villa Istra 2.00.5 — definitive homepage outline CTA state */
body.home a.text-link.intro-story-link,
body.home .destination a.text-link,
body.home .editorial-copy a.text-link,
body.home .arch-copy a.text-link,
body.home .page-section-copy a.text-link{
  display:inline-flex !important;
  align-items:center !important;
  width:auto !important;
  min-height:44px;
  padding:0 19px !important;
  border:1px solid rgba(33,26,22,.42) !important;
  border-bottom:1px solid rgba(33,26,22,.42) !important;
  border-radius:999px !important;
  background:transparent !important;
  background-color:transparent !important;
  color:#211a16 !important;
  text-decoration:none !important;
  box-shadow:none !important;
}

@media(hover:hover) and (pointer:fine){
  body.home a.text-link.intro-story-link:hover,
  body.home .destination a.text-link:hover,
  body.home .editorial-copy a.text-link:hover,
  body.home .arch-copy a.text-link:hover,
  body.home .page-section-copy a.text-link:hover{
    border-color:#211a16 !important;
    background:#211a16 !important;
    background-color:#211a16 !important;
    color:#fff !important;
    box-shadow:0 10px 24px rgba(33,26,22,.10) !important;
    transform:translateY(-2px);
  }
}

body.home a.text-link.intro-story-link:focus-visible,
body.home .destination a.text-link:focus-visible,
body.home .editorial-copy a.text-link:focus-visible,
body.home .arch-copy a.text-link:focus-visible,
body.home .page-section-copy a.text-link:focus-visible{
  outline:2px solid rgba(33,26,22,.30);
  outline-offset:3px;
}

/* Villa Istra 2.00.6 — Sadržaji mobile imagery + equipment hover */
@media(max-width:620px){
  body.page-slug-sadrzaji .editorial-double-small,
  body .page-id-sadrzaji .editorial-double-small,
  body .editorial-double-section .editorial-double-small{
    display:none !important;
  }

  body .editorial-double-media{
    min-height:380px;
  }

  body .editorial-double-main,
  body .editorial-double-section.is-reverse .editorial-double-main{
    inset:0 !important;
  }
}

@media(hover:hover) and (pointer:fine){
  body .facilities-section .facility-item:hover{
    background:#111 !important;
    border-color:#111 !important;
    color:#fff !important;
    transform:translateY(-4px);
    box-shadow:0 18px 42px rgba(0,0,0,.14);
  }

  body .facilities-section .facility-item:hover .facility-check{
    color:#fff !important;
    background:rgba(255,255,255,.10) !important;
  }
}

/* Villa Istra 2.00.7 — move floating header slightly lower */
body .site-header{
  top:18px !important;
}
@media(max-width:900px){
  body .site-header{
    top:14px !important;
  }
}

/* Villa Istra 2.00.8 — Interijer overlapping image composition */
body .architecture-grid-overlap{
  position:relative;
}

body .architecture-grid-overlap .arch-main,
body .architecture-grid-overlap .arch-small{
  overflow:hidden;
  border-radius:22px;
}

body .architecture-grid-overlap .arch-main{
  position:relative;
  z-index:1;
}

body .architecture-grid-overlap .arch-small{
  position:relative;
  z-index:3;
  margin-left:-28%;
  margin-top:42%;
  border:1px solid rgba(255,255,255,.78);
  box-shadow:0 24px 64px rgba(33,26,22,.13);
}

body .architecture-grid-overlap .arch-main img,
body .architecture-grid-overlap .arch-small img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .8s cubic-bezier(.2,.7,.2,1);
}

@media(hover:hover) and (pointer:fine){
  body .architecture-grid-overlap .arch-main:hover img{
    transform:scale(1.025);
  }
  body .architecture-grid-overlap .arch-small:hover img{
    transform:scale(1.045);
  }
}

@media(max-width:980px){
  body .architecture-grid-overlap .arch-small{
    margin-left:-18%;
    margin-top:34%;
  }
}

@media(max-width:620px){
  body .architecture-grid-overlap .arch-small{
    display:none !important;
  }
  body .architecture-grid-overlap .arch-main{
    width:100%;
  }
}

/* Villa Istra 2.00.9 — Interijer overlap refined to match Sadržaji composition */
body .architecture-grid-overlap .arch-main{
  position:relative;
  z-index:1;
  border-radius:22px !important;
  overflow:hidden !important;
}

body .architecture-grid-overlap .arch-small{
  position:relative;
  z-index:4;
  margin-left:-42% !important;
  margin-top:48% !important;
  width:142% !important;
  max-width:none !important;
  border:1px solid rgba(255,255,255,.82) !important;
  border-radius:22px !important;
  overflow:hidden !important;
  box-shadow:0 24px 64px rgba(33,26,22,.13) !important;
}

@media(max-width:980px) and (min-width:621px){
  body .architecture-grid-overlap .arch-small{
    margin-left:-30% !important;
    margin-top:40% !important;
    width:130% !important;
  }
}

@media(max-width:620px){
  body .architecture-grid-overlap .arch-small{
    display:none !important;
  }
}

/* Villa Istra 2.01.0 — raise overlapping Interijer detail image */
body .architecture-grid-overlap .arch-small{
  margin-top:25% !important;
}

@media(max-width:980px) and (min-width:621px){
  body .architecture-grid-overlap .arch-small{
    margin-top:23% !important;
  }
}

/* Villa Istra 2.01.1 — definitive Interijer image overlap positioning */
body .architecture-grid-overlap{
  position:relative !important;
}

body .architecture-grid-overlap .arch-main{
  position:relative !important;
  z-index:1 !important;
}

body .architecture-grid-overlap .arch-small{
  position:absolute !important;
  z-index:5 !important;
  width:28% !important;
  height:38% !important;
  right:4% !important;
  top:38% !important;
  left:auto !important;
  bottom:auto !important;
  margin:0 !important;
  max-width:none !important;
  border:1px solid rgba(255,255,255,.82) !important;
  border-radius:22px !important;
  overflow:hidden !important;
  box-shadow:0 24px 64px rgba(33,26,22,.16) !important;
}

body .architecture-grid-overlap .arch-small img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
}

@media(max-width:980px) and (min-width:621px){
  body .architecture-grid-overlap .arch-small{
    width:34% !important;
    height:34% !important;
    right:3% !important;
    top:42% !important;
  }
}

@media(max-width:620px){
  body .architecture-grid-overlap .arch-small{
    display:none !important;
  }
}

/* Villa Istra 2.01.2 — remove decorative gradient from 02B Istaknuti sadržaji */
body .amenities-outer,
body .amenity-strip{
  background-image:none !important;
}

body .amenities-outer::before,
body .amenities-outer::after,
body .amenity-strip::before,
body .amenity-strip::after{
  background-image:none !important;
  background:none !important;
  box-shadow:none !important;
}

/* Villa Istra 2.01.3 — Doživite Istru / stylized map */
body .istria-explore{padding:112px 0 124px;background:#f3eee6;color:#211a16}
body .istria-explore-head{margin-bottom:42px}
body .istria-explore-head>.eyebrow{display:block;margin-bottom:16px}
body .istria-explore-heading-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.65fr);gap:clamp(40px,7vw,110px);align-items:end}
body .istria-explore h2{margin:0;font-size:clamp(40px,4.6vw,66px);line-height:1.02;letter-spacing:-.05em;max-width:820px}
body .istria-explore-intro{font-size:16px;line-height:1.75;opacity:.72;max-width:560px}
body .istria-explore-intro p{margin:0}
body .istria-filters{display:flex;gap:8px;flex-wrap:wrap;margin-top:32px}
body .istria-filters button{appearance:none;border:1px solid rgba(33,26,22,.22);border-radius:999px;background:transparent;color:#211a16;padding:11px 17px;font:inherit;font-size:12px;font-weight:700;cursor:pointer;transition:.25s}
body .istria-filters button:hover,body .istria-filters button.is-active{background:#211a16;color:#fff;border-color:#211a16;transform:translateY(-1px)}
body .istria-explore-layout{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);gap:28px;align-items:start}
body .istria-map{position:sticky;top:110px;min-height:690px;border-radius:26px;overflow:hidden;background:#e7dfd3;box-shadow:0 20px 60px rgba(33,26,22,.08);isolation:isolate}
body .istria-map:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.5),transparent 52%);z-index:-1}
body .istria-map-shape{position:absolute;inset:7% 9% 10%;width:82%;height:83%;overflow:visible}
body .istria-map-points{position:absolute;inset:7% 9% 10%;width:82%;height:83%;z-index:4;pointer-events:none}
body .istria-map-points .istria-map-marker{pointer-events:auto}
body .istria-map-shape>path:first-child{fill:#d6c8b6;stroke:#b6a48d;stroke-width:.55}
body .istria-map-shape .istria-map-line{fill:none;stroke:rgba(33,26,22,.18);stroke-width:.38;stroke-dasharray:1.4 1.2}
body .istria-villa-marker{position:absolute;z-index:6;transform:translate(-50%,-50%);display:flex;align-items:center;gap:8px;white-space:nowrap}
body .istria-villa-marker span{width:18px;height:18px;border-radius:50%;background:#211a16;border:4px solid #f3eee6;box-shadow:0 4px 14px rgba(0,0,0,.18)}
body .istria-villa-marker strong{font-size:11px;background:#211a16;color:#fff;border-radius:999px;padding:7px 10px;box-shadow:0 5px 18px rgba(0,0,0,.12)}
body .istria-map-marker{position:absolute;z-index:5;transform:translate(-50%,-50%);width:31px;height:31px;padding:0;border:0;border-radius:50%;display:grid;place-items:center;cursor:pointer;box-shadow:0 6px 16px rgba(33,26,22,.16);transition:transform .22s ease,box-shadow .22s ease,opacity .22s ease}
body .istria-map-marker span{font-size:10px;font-weight:800;color:#fff}
body .istria-map-marker.cat-wineries{background:#745348}
body .istria-map-marker.cat-restaurants{background:#a7794f}
body .istria-map-marker.cat-activities{background:#5e6254}
body .istria-map-marker:hover,body .istria-map-marker.is-active{transform:translate(-50%,-50%) scale(1.18);box-shadow:0 9px 24px rgba(33,26,22,.24);z-index:8}
body .istria-map-marker.is-hidden{opacity:.12;pointer-events:none}
body .istria-map-legend{position:absolute;left:22px;bottom:20px;display:flex;gap:14px;flex-wrap:wrap;padding:10px 13px;border-radius:999px;background:rgba(248,244,237,.88);backdrop-filter:blur(12px);font-size:10px;font-weight:700}
body .istria-map-legend span{display:flex;align-items:center;gap:6px}
body .istria-map-legend i{width:8px;height:8px;border-radius:50%;display:block}
body .istria-map-legend .w{background:#745348}.istria-map-legend .r{background:#a7794f}.istria-map-legend .a{background:#5e6254}
body .istria-places{display:grid;gap:12px;max-height:690px;overflow:auto;padding-right:5px;scrollbar-width:thin}
body .istria-place-card{padding:22px 23px;border:1px solid rgba(33,26,22,.10);border-radius:20px;background:rgba(255,255,255,.55);transition:background .25s ease,color .25s ease,transform .25s ease,border-color .25s ease;cursor:default}
body .istria-place-card.is-hidden{display:none}
body .istria-place-card:hover,body .istria-place-card.is-active{background:#211a16;color:#fff;border-color:#211a16;transform:translateY(-2px)}
body .istria-place-meta{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:10px;font-size:10px;text-transform:uppercase;letter-spacing:.09em;font-weight:750;opacity:.62}
body .istria-place-card h3{font-size:23px;line-height:1.08;letter-spacing:-.03em;margin:0 0 7px}
body .istria-place-group{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;opacity:.55;margin-bottom:10px}
body .istria-place-text{font-size:13px;line-height:1.58;opacity:.70}
body .istria-place-text p{margin:0}
body .istria-place-card>a{display:inline-flex;align-items:center;margin-top:14px;color:inherit;text-decoration:none;font-size:11px;font-weight:750}
body .istria-place-card>a .vil-arrow-ne{margin-left:8px}
@media(max-width:980px){
 body .istria-explore-heading-grid{grid-template-columns:1fr;gap:22px}
 body .istria-explore-layout{grid-template-columns:1fr}
 body .istria-map{position:relative;top:auto;min-height:560px}
 body .istria-places{max-height:none;overflow:visible;grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
 body .istria-explore{padding:76px 0 84px}
 body .istria-explore h2{font-size:40px}
 body .istria-map{min-height:430px;border-radius:20px}
 body .istria-map-marker{width:26px;height:26px}
 body .istria-map-legend{left:12px;right:12px;bottom:12px;border-radius:16px;justify-content:center}
 body .istria-places{grid-template-columns:1fr}
 body .istria-place-card{padding:20px}
}

/* Villa Istra 2.01.5 — recognizable Istria peninsula map */
body .istria-map-shape{position:absolute;inset:4% 8% 8%;width:84%;height:88%;overflow:visible}
body .istria-map-shape .istria-map-island{fill:#d7c9b7;stroke:#aa987f;stroke-width:.8;filter:drop-shadow(0 10px 18px rgba(33,26,22,.08))}
body .istria-map-shape .istria-map-coast{fill:none;stroke:rgba(33,26,22,.15);stroke-width:.42;stroke-dasharray:1.6 1.4}
body .istria-map-shape .istria-map-town{fill:#8e775f;opacity:.75}
body .istria-map-shape .istria-map-label{fill:rgba(33,26,22,.56);font-size:3.2px;font-weight:700;letter-spacing:.02em}
body .istria-map:after{
  content:"JADRANSKO MORE";
  position:absolute;
  left:5%;
  bottom:17%;
  font-size:9px;
  letter-spacing:.16em;
  font-weight:700;
  color:rgba(33,26,22,.24);
  transform:rotate(-73deg);
  transform-origin:left center;
  pointer-events:none;
}
@media(max-width:620px){
  body .istria-map-shape .istria-map-label{font-size:3.6px}
  body .istria-map:after{font-size:8px;left:4%}
}

/* Villa Istra 2.01.6 — clean Istria outline map based on supplied reference */
body .istria-map-shape{
  position:absolute;
  inset:4% 12% 7%;
  width:76%;
  height:89%;
  overflow:visible;
}
body .istria-map-shape .istria-map-island,
body .istria-map-shape .istria-map-coast,
body .istria-map-shape .istria-map-line{display:none!important}
body .istria-map-shape .istria-outline{
  fill:rgba(255,255,255,.16);
  stroke:#8f7458;
  stroke-width:.72;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
  filter:drop-shadow(0 10px 20px rgba(33,26,22,.045));
}
body .istria-map-shape .istria-west-inlet,
body .istria-map-shape .istria-south-coast{
  fill:none;
  stroke:#8f7458;
  stroke-width:.62;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
}
body .istria-map-shape .istria-map-town{fill:#8f7458;opacity:.72}
body .istria-map-shape .istria-map-label{fill:rgba(33,26,22,.54);font-size:3.15px;font-weight:700;letter-spacing:.015em}
body .istria-map:after{left:5.5%;bottom:18%;opacity:.8}
@media(max-width:620px){
  body .istria-map-shape{inset:5% 8% 9%;width:84%;height:86%}
  body .istria-map-shape .istria-map-label{font-size:3.45px}
}

/* Villa Istra 2.01.7 — accurate Istria silhouette traced from supplied outline reference */
body .istria-map-shape{
  position:absolute;
  inset:3% 10% 6%;
  width:80%;
  height:91%;
  overflow:visible;
}
body .istria-map-shape .istria-outline{
  fill:rgba(255,255,255,.06);
  stroke:#80684f;
  stroke-width:1.05;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
  filter:drop-shadow(0 8px 18px rgba(33,26,22,.045));
}
body .istria-map-shape .istria-map-town{fill:#80684f;opacity:.72}
body .istria-map-shape .istria-map-label{fill:rgba(33,26,22,.58);font-size:3.1px;font-weight:700;letter-spacing:.012em}
@media(max-width:620px){
  body .istria-map-shape{inset:4% 6% 8%;width:88%;height:88%}
  body .istria-map-shape .istria-outline{stroke-width:1.15}
}

/* Villa Istra 2.01.8 — refined, smoother and more precise Istria coastline */
body .istria-map-shape .istria-outline{
  fill:rgba(255,255,255,.045);
  stroke:#80684f;
  stroke-width:.92;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
  filter:drop-shadow(0 7px 16px rgba(33,26,22,.04));
}

/* Villa Istra 2.01.9 — precise outline, stronger marker focus and map zoom */
body .istria-map-column{display:grid;gap:14px;min-width:0}
body .istria-map-stage{
  position:absolute;
  inset:0;
  transform:scale(var(--istria-map-zoom,1));
  transform-origin:50% 50%;
  transition:transform .35s cubic-bezier(.2,.7,.2,1);
  will-change:transform;
}
body .istria-map-shape{
  inset:2.5% 9% 5%;
  width:82%;
  height:92.5%;
}
body .istria-map-shape .istria-outline{
  fill:rgba(255,255,255,.035);
  stroke:#7d664f;
  stroke-width:.82;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
  filter:drop-shadow(0 6px 14px rgba(33,26,22,.035));
}
body .istria-map-legend{
  position:static!important;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:24px;
  flex-wrap:wrap;
  padding:14px 18px;
  border:1px solid rgba(33,26,22,.10);
  border-radius:18px;
  background:rgba(255,255,255,.52);
  backdrop-filter:blur(10px);
  font-size:13px!important;
  font-weight:750;
  letter-spacing:.01em;
}
body .istria-map-legend span{display:flex;align-items:center;gap:9px}
body .istria-map-legend i{width:11px!important;height:11px!important;border-radius:50%;display:block}
body .istria-map-zoom{
  position:absolute;
  z-index:20;
  right:16px;
  top:16px;
  display:flex;
  gap:5px;
  padding:5px;
  border:1px solid rgba(33,26,22,.12);
  border-radius:999px;
  background:rgba(248,244,237,.88);
  backdrop-filter:blur(12px);
  box-shadow:0 8px 22px rgba(33,26,22,.08);
}
body .istria-map-zoom button{
  width:34px;height:34px;padding:0;
  border:0;border-radius:50%;
  background:transparent;color:#211a16;
  font:700 15px/1 inherit;
  cursor:pointer;
  transition:.2s ease;
}
body .istria-map-zoom button:hover{background:#211a16;color:#fff}
body .istria-map-marker{
  border:2px solid rgba(255,255,255,.78);
  box-shadow:0 7px 18px rgba(33,26,22,.19);
}
body .istria-map-marker:hover,
body .istria-map-marker.is-active{
  transform:translate(-50%,-50%) scale(1.5)!important;
  background:#211a16!important;
  border-color:#d8b37d!important;
  box-shadow:0 0 0 6px rgba(216,179,125,.22),0 12px 28px rgba(33,26,22,.34)!important;
  z-index:30!important;
}
body .istria-place-card:hover ~ *{}
body .istria-map-marker.is-active span{color:#fff}
@media(max-width:980px){
  body .istria-map-column{grid-column:1/-1}
}
@media(max-width:620px){
  body .istria-map-legend{gap:14px;padding:12px 14px;font-size:12px!important}
  body .istria-map-zoom{right:10px;top:10px}
  body .istria-map-zoom button{width:32px;height:32px}
}

/* Villa Istra 2.02.0 — remove map zoom; restore original legend placement/style, keep larger type */
body .istria-map-column{display:contents!important}
body .istria-map-stage{display:contents!important;transform:none!important}
body .istria-map-zoom{display:none!important}
body .istria-map-legend{
  position:absolute!important;
  left:22px!important;
  right:auto!important;
  bottom:20px!important;
  z-index:18;
  display:flex!important;
  align-items:center;
  justify-content:flex-start!important;
  gap:16px!important;
  flex-wrap:wrap;
  padding:11px 15px!important;
  border:0!important;
  border-radius:999px!important;
  background:rgba(248,244,237,.88)!important;
  backdrop-filter:blur(12px);
  box-shadow:none!important;
  font-size:12px!important;
  font-weight:700!important;
  letter-spacing:0!important;
}
body .istria-map-legend span{display:flex;align-items:center;gap:7px!important}
body .istria-map-legend i{width:10px!important;height:10px!important;border-radius:50%;display:block}
@media(max-width:620px){
  body .istria-map-legend{
    left:12px!important;
    right:12px!important;
    bottom:12px!important;
    justify-content:center!important;
    gap:13px!important;
    padding:11px 12px!important;
    border-radius:16px!important;
    font-size:11px!important;
  }
}

/* Villa Istra 2.02.1 — emphasize distances in Istria location cards */
body .istria-place-meta strong{
  display:inline-flex;
  align-items:center;
  min-height:27px;
  padding:5px 10px;
  border-radius:999px;
  background:rgba(33,26,22,.08);
  color:#6f5945;
  font-size:13px!important;
  line-height:1;
  font-weight:800!important;
  letter-spacing:.01em;
  white-space:nowrap;
}
body .istria-place-card:hover .istria-place-meta strong,
body .istria-place-card.is-active .istria-place-meta strong{
  background:rgba(255,255,255,.14);
  color:#fff;
}

/* Villa Istra 2.02.2 — compact Žudetići / Gradići / Vino & masline section */
body .location-story{padding:82px 0 90px;background:#f8f4ed;color:#211a16}
body .location-story-layout{
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(360px,.88fr);
  gap:clamp(42px,6vw,88px);
  align-items:center;
}
body .location-story-image{
  margin:0;
  min-height:610px;
  height:min(68vw,720px);
  max-height:720px;
  border-radius:26px;
  overflow:hidden;
  box-shadow:0 22px 58px rgba(33,26,22,.10);
}
body .location-story-image img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .8s cubic-bezier(.2,.7,.2,1);
}
@media(hover:hover) and (pointer:fine){
  body .location-story-image:hover img{transform:scale(1.025)}
}
body .location-story-content{display:grid}
body .location-story-item{padding:27px 0 30px;border-bottom:1px solid rgba(33,26,22,.12)}
body .location-story-item:first-child{padding-top:0}
body .location-story-item:last-child{border-bottom:0;padding-bottom:0}
body .location-story-item .eyebrow{
  display:block;
  margin-bottom:10px;
  font-size:10px!important;
  line-height:1.25;
  letter-spacing:.16em;
}
body .location-story-item h2{
  margin:0 0 11px;
  max-width:540px;
  font-size:clamp(27px,2.35vw,38px)!important;
  line-height:1.08;
  letter-spacing:-.035em;
}
body .location-story-text{
  max-width:560px;
  font-size:15px;
  line-height:1.72;
  opacity:.72;
}
body .location-story-text p{margin:0}
@media(max-width:900px){
  body .location-story{padding:68px 0 76px}
  body .location-story-layout{grid-template-columns:1fr;gap:36px}
  body .location-story-image{min-height:0;height:58vw;max-height:540px}
  body .location-story-content{grid-template-columns:repeat(3,1fr);gap:22px}
  body .location-story-item{padding:0;border:0}
  body .location-story-item h2{font-size:clamp(24px,3.5vw,32px)!important}
}
@media(max-width:620px){
  body .location-story{padding:54px 0 60px}
  body .location-story-layout{gap:28px}
  body .location-story-image{height:72vw;min-height:310px;border-radius:20px}
  body .location-story-content{grid-template-columns:1fr;gap:0}
  body .location-story-item{padding:22px 0;border-bottom:1px solid rgba(33,26,22,.12)}
  body .location-story-item:first-child{padding-top:0}
  body .location-story-item:last-child{border-bottom:0;padding-bottom:0}
  body .location-story-item h2{font-size:27px!important}
  body .location-story-text{font-size:14px;line-height:1.68}
}

/* Villa Istra 2.02.3 — two overlapping images in compact location story */
body .location-story-media{
  position:relative;
  min-height:650px;
}
body .location-story-media .location-story-image{
  margin:0;
  overflow:hidden;
  box-shadow:0 22px 58px rgba(33,26,22,.11);
}
body .location-story-media .location-story-image-main{
  position:absolute;
  inset:0 11% 0 0;
  height:auto;
  min-height:0;
  max-height:none;
  border-radius:26px;
}
body .location-story-media .location-story-image-small{
  position:absolute;
  z-index:3;
  width:39%;
  height:39%;
  right:0;
  bottom:8%;
  min-height:0;
  max-height:none;
  border:5px solid #f8f4ed;
  border-radius:22px;
  box-shadow:0 22px 52px rgba(33,26,22,.18);
}
body .location-story-media .location-story-image img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .8s cubic-bezier(.2,.7,.2,1);
}
@media(hover:hover) and (pointer:fine){
  body .location-story-media .location-story-image:hover img{transform:scale(1.025)}
}
@media(max-width:900px){
  body .location-story-media{min-height:540px}
  body .location-story-media .location-story-image-main{inset:0 9% 0 0}
  body .location-story-media .location-story-image-small{width:36%;height:38%;bottom:7%}
}
@media(max-width:620px){
  body .location-story-media{min-height:390px}
  body .location-story-media .location-story-image-main{inset:0 7% 0 0;border-radius:20px}
  body .location-story-media .location-story-image-small{
    width:39%;height:35%;right:0;bottom:7%;
    border-width:4px;border-radius:16px;
  }
}

/* Villa Istra 2.02.4 — four-photo grid for compact location story */
body .location-story-gallery{
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:1fr 1fr;
  gap:12px;
  height:650px;
  min-width:0;
}
body .location-story-gallery-item{
  position:relative;
  margin:0;
  min-width:0;
  min-height:0;
  overflow:hidden;
  border-radius:20px;
  box-shadow:0 14px 36px rgba(33,26,22,.08);
}
body .location-story-gallery-item img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .7s cubic-bezier(.2,.7,.2,1);
}
@media(hover:hover) and (pointer:fine){
  body .location-story-gallery-item:hover img{transform:scale(1.035)}
}
body .location-story-gallery-item-1{border-radius:26px 20px 20px 20px}
body .location-story-gallery-item-2{border-radius:20px 26px 20px 20px}
body .location-story-gallery-item-3{border-radius:20px 20px 20px 26px}
body .location-story-gallery-item-4{border-radius:20px 20px 26px 20px}
@media(max-width:900px){
  body .location-story-gallery{height:560px;gap:10px}
}
@media(max-width:620px){
  body .location-story-gallery{height:430px;gap:8px}
  body .location-story-gallery-item{border-radius:14px!important}
}

/* Villa Istra 2.02.5 — O vili editorial story */
body .villa-story{padding:82px 0 92px;background:#f8f4ed;color:#211a16}
body .villa-story-layout{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);
  gap:clamp(44px,6vw,88px);
  align-items:center;
}
body .villa-story-gallery{
  display:grid;
  grid-template-columns:1.08fr .92fr;
  grid-template-rows:1.15fr .85fr;
  gap:12px;
  height:650px;
}
body .villa-story-gallery-item{
  margin:0;min-width:0;min-height:0;overflow:hidden;
  border-radius:20px;
  box-shadow:0 14px 36px rgba(33,26,22,.08);
}
body .villa-story-gallery-item-1{border-radius:26px 20px 20px 20px}
body .villa-story-gallery-item-2{border-radius:20px 26px 20px 20px}
body .villa-story-gallery-item-3{border-radius:20px 20px 20px 26px}
body .villa-story-gallery-item-4{border-radius:20px 20px 26px 20px}
body .villa-story-gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .75s cubic-bezier(.2,.7,.2,1)}
@media(hover:hover) and (pointer:fine){body .villa-story-gallery-item:hover img{transform:scale(1.035)}}
body .villa-story-content{display:grid}
body .villa-story-item{padding:27px 0 30px;border-bottom:1px solid rgba(33,26,22,.12)}
body .villa-story-item:first-child{padding-top:0}
body .villa-story-item:last-child{padding-bottom:0;border-bottom:0}
body .villa-story-item .eyebrow{display:block;margin-bottom:10px;font-size:10px!important;line-height:1.25;letter-spacing:.16em}
body .villa-story-item h2{margin:0 0 11px;max-width:550px;font-size:clamp(27px,2.35vw,38px)!important;line-height:1.08;letter-spacing:-.035em}
body .villa-story-text{max-width:570px;font-size:15px;line-height:1.72;opacity:.72}
body .villa-story-text p{margin:0}
@media(max-width:900px){
  body .villa-story{padding:68px 0 76px}
  body .villa-story-layout{grid-template-columns:1fr;gap:38px}
  body .villa-story-gallery{height:560px}
  body .villa-story-content{grid-template-columns:repeat(3,1fr);gap:22px}
  body .villa-story-item{padding:0;border:0}
  body .villa-story-item h2{font-size:clamp(24px,3.5vw,32px)!important}
}
@media(max-width:620px){
  body .villa-story{padding:54px 0 62px}
  body .villa-story-layout{gap:30px}
  body .villa-story-gallery{height:430px;gap:8px;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}
  body .villa-story-gallery-item{border-radius:14px!important}
  body .villa-story-content{grid-template-columns:1fr;gap:0}
  body .villa-story-item{padding:22px 0;border-bottom:1px solid rgba(33,26,22,.12)}
  body .villa-story-item:first-child{padding-top:0}
  body .villa-story-item:last-child{padding-bottom:0;border-bottom:0}
  body .villa-story-item h2{font-size:27px!important}
  body .villa-story-text{font-size:14px;line-height:1.68}
}

/* Villa Istra 2.02.6 — O vili hero eyebrow */
body.page-slug-o-vili .page-hero .eyebrow,
body.page-slug-o-vili .page-hero .eyebrow *,
body.page-id-o-vili .page-hero .eyebrow,
body.page-id-o-vili .page-hero .eyebrow *{
  color:#fff!important;
}

/* Villa Istra 2.02.7 — editable backgrounds */
body .location-story{background:var(--location-story-bg,#f8f4ed)!important}
body .villa-story{background:var(--villa-story-bg,#f8f4ed)!important}

/* Villa Istra 2.02.8 — Sadržaji editorial story */
body .contents-story{padding:82px 0 92px;background:var(--contents-story-bg,#f8f4ed)!important;color:#211a16}
body .contents-story-layout{
  display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);
  gap:clamp(44px,6vw,88px);align-items:center;
}
body .contents-story-gallery{
  display:grid;grid-template-columns:1.08fr .92fr;grid-template-rows:.9fr 1.1fr;
  gap:12px;height:650px;
}
body .contents-story-gallery-item{
  margin:0;min-width:0;min-height:0;overflow:hidden;border-radius:20px;
  box-shadow:0 14px 36px rgba(33,26,22,.08);
}
body .contents-story-gallery-item-1{border-radius:26px 20px 20px 20px}
body .contents-story-gallery-item-2{border-radius:20px 26px 20px 20px}
body .contents-story-gallery-item-3{border-radius:20px 20px 20px 26px}
body .contents-story-gallery-item-4{border-radius:20px 20px 26px 20px}
body .contents-story-gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .75s cubic-bezier(.2,.7,.2,1)}
@media(hover:hover) and (pointer:fine){body .contents-story-gallery-item:hover img{transform:scale(1.035)}}
body .contents-story-content{display:grid}
body .contents-story-item{padding:27px 0 30px;border-bottom:1px solid rgba(33,26,22,.12)}
body .contents-story-item:first-child{padding-top:0}
body .contents-story-item:last-child{padding-bottom:0;border-bottom:0}
body .contents-story-item .eyebrow{display:block;margin-bottom:10px;font-size:10px!important;line-height:1.25;letter-spacing:.16em}
body .contents-story-item h2{margin:0 0 11px;max-width:550px;font-size:clamp(27px,2.35vw,38px)!important;line-height:1.08;letter-spacing:-.035em}
body .contents-story-text{max-width:570px;font-size:15px;line-height:1.72;opacity:.72}
body .contents-story-text p{margin:0}
@media(max-width:900px){
  body .contents-story{padding:68px 0 76px}
  body .contents-story-layout{grid-template-columns:1fr;gap:38px}
  body .contents-story-gallery{height:560px}
  body .contents-story-content{grid-template-columns:repeat(3,1fr);gap:22px}
  body .contents-story-item{padding:0;border:0}
  body .contents-story-item h2{font-size:clamp(24px,3.5vw,32px)!important}
}
@media(max-width:620px){
  body .contents-story{padding:54px 0 62px}
  body .contents-story-layout{gap:30px}
  body .contents-story-gallery{height:430px;gap:8px;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}
  body .contents-story-gallery-item{border-radius:14px!important}
  body .contents-story-content{grid-template-columns:1fr;gap:0}
  body .contents-story-item{padding:22px 0;border-bottom:1px solid rgba(33,26,22,.12)}
  body .contents-story-item:first-child{padding-top:0}
  body .contents-story-item:last-child{padding-bottom:0;border-bottom:0}
  body .contents-story-item h2{font-size:27px!important}
  body .contents-story-text{font-size:14px;line-height:1.68}
}

/* Villa Istra 2.02.9 — modern Rezervacije page */
body .booking-intro{
  padding:76px 0 82px;
  background:var(--booking-intro-bg,#f8f4ed)!important;
  color:#211a16;
}
body .booking-intro-wrap{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(300px,.72fr);
  gap:clamp(42px,6vw,86px);
  align-items:center;
}
body .booking-intro-copy{max-width:760px}
body .booking-intro-copy>.eyebrow{
  display:block;margin-bottom:12px;font-size:10px!important;letter-spacing:.16em
}
body .booking-intro-copy h2{
  margin:0 0 18px;
  max-width:720px;
  font-size:clamp(34px,4vw,56px)!important;
  line-height:1.03;
  letter-spacing:-.045em;
}
body .booking-intro-text{
  max-width:690px;
  font-size:16px;
  line-height:1.72;
  opacity:.72;
}
body .booking-intro-text p{margin:0}
body .booking-intro-facts{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-top:34px;
}
body .booking-intro-fact{
  min-height:92px;
  padding:17px 16px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:10px;
  border:1px solid rgba(33,26,22,.10);
  border-radius:16px;
  background:rgba(255,255,255,.38);
}
body .booking-intro-fact span{
  font-size:10px;
  line-height:1.25;
  letter-spacing:.12em;
  text-transform:uppercase;
  opacity:.52;
}
body .booking-intro-fact strong{
  font-size:16px;
  line-height:1.25;
  font-weight:650;
}
body .booking-intro-image{
  margin:0;
  height:420px;
  overflow:hidden;
  border-radius:24px;
  box-shadow:0 18px 48px rgba(33,26,22,.10);
}
body .booking-intro-image img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .8s cubic-bezier(.2,.7,.2,1);
}
@media(hover:hover) and (pointer:fine){
  body .booking-intro-image:hover img{transform:scale(1.025)}
}

/* Give the calendar more visual priority on the booking page. */
body.page-slug-rezervacije .availability-section,
body.page-slug-rezervacije .home-availability{
  padding-top:88px!important;
  padding-bottom:96px!important;
}
body.page-slug-rezervacije .availability-section .wrap,
body.page-slug-rezervacije .home-availability .wrap{
  max-width:1320px;
}

/* Booking contact block follows the calendar as a calm, premium final step. */
body.page-slug-rezervacije .global-page-reservations{
  margin-top:0;
}

@media(max-width:980px){
  body .booking-intro-wrap{grid-template-columns:1fr;gap:34px}
  body .booking-intro-image{height:420px}
  body .booking-intro-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  body .booking-intro{padding:54px 0 60px}
  body .booking-intro-wrap{gap:28px}
  body .booking-intro-copy h2{font-size:34px!important}
  body .booking-intro-text{font-size:14px;line-height:1.68}
  body .booking-intro-facts{grid-template-columns:1fr 1fr;gap:8px;margin-top:26px}
  body .booking-intro-fact{min-height:82px;padding:14px}
  body .booking-intro-fact strong{font-size:14px}
  body .booking-intro-image{height:300px;border-radius:18px}
}


/* Villa Istra 2.03.0 — Kontakt page */
body .contact-section{
  padding:82px 0 94px;
  background:var(--contact-section-bg,#f8f4ed)!important;
  color:#211a16;
}
body .contact-section-head{
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(320px,.78fr);
  gap:clamp(44px,7vw,110px);
  align-items:end;
  margin-bottom:48px;
}
body .contact-section-head .eyebrow{
  display:block;
  margin-bottom:12px;
  font-size:10px!important;
  line-height:1.25;
  letter-spacing:.16em;
}
body .contact-section-head h2{
  margin:0;
  max-width:720px;
  font-size:clamp(36px,4.5vw,62px)!important;
  line-height:1.02;
  letter-spacing:-.045em;
}
body .contact-section-intro{
  max-width:590px;
  font-size:16px;
  line-height:1.72;
  opacity:.72;
}
body .contact-section-intro p{margin:0}

body .contact-section-layout{
  display:grid;
  grid-template-columns:minmax(0,.88fr) minmax(420px,1.12fr);
  gap:clamp(32px,5vw,72px);
  align-items:start;
}
body .contact-detail-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
body .contact-detail-card{
  min-height:130px;
  padding:22px;
  display:flex;
  align-items:flex-start;
  gap:15px;
  border:1px solid rgba(33,26,22,.10);
  border-radius:18px;
  background:rgba(255,255,255,.42);
  color:inherit;
  text-decoration:none;
  transition:transform .25s ease,background .25s ease,border-color .25s ease,box-shadow .25s ease;
}
body .contact-detail-icon{
  width:42px;
  height:42px;
  flex:0 0 42px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#211a16;
  color:#fff;
}
body .contact-detail-icon svg{
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.55;
  stroke-linecap:round;
  stroke-linejoin:round;
}
body .contact-detail-card small{
  display:block;
  margin:2px 0 8px;
  font-size:10px;
  line-height:1.2;
  letter-spacing:.12em;
  text-transform:uppercase;
  opacity:.50;
}
body .contact-detail-card strong{
  display:block;
  font-size:15px;
  line-height:1.45;
  font-weight:650;
}
@media(hover:hover) and (pointer:fine){
  body a.contact-detail-card:hover{
    transform:translateY(-3px);
    background:#fff;
    border-color:rgba(33,26,22,.16);
    box-shadow:0 16px 34px rgba(33,26,22,.07);
  }
}
body .contact-section-image{
  margin:12px 0 0;
  height:250px;
  overflow:hidden;
  border-radius:20px;
  box-shadow:0 16px 40px rgba(33,26,22,.08);
}
body .contact-section-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .75s cubic-bezier(.2,.7,.2,1);
}
@media(hover:hover) and (pointer:fine){
  body .contact-section-image:hover img{transform:scale(1.025)}
}

body .contact-form-card{
  padding:clamp(28px,4vw,48px);
  border-radius:26px;
  background:#211a16;
  color:#fff;
  box-shadow:0 24px 64px rgba(33,26,22,.14);
}
body .contact-form-card>.eyebrow{
  display:block;
  margin-bottom:10px;
  color:#d8b37d!important;
  font-size:10px!important;
  letter-spacing:.16em;
}
body .contact-form-card h3{
  margin:0 0 10px;
  color:#fff;
  font-size:clamp(30px,3vw,44px);
  line-height:1.04;
  letter-spacing:-.035em;
}
body .contact-form-intro{
  max-width:590px;
  margin-bottom:28px;
  color:rgba(255,255,255,.68);
  font-size:14px;
  line-height:1.65;
}
body .contact-form-intro p{margin:0}

body .villa-contact-form{
  display:grid;
  gap:18px;
}
body .contact-field{
  display:grid;
  gap:8px;
}
body .contact-field>span:first-child{
  font-size:11px;
  font-weight:600;
  letter-spacing:.04em;
  color:rgba(255,255,255,.78);
}
body .contact-input-wrap{
  position:relative;
  display:block;
}
body .contact-input-wrap>i{
  position:absolute;
  left:16px;
  top:50%;
  z-index:2;
  width:20px;
  height:20px;
  transform:translateY(-50%);
  color:rgba(255,255,255,.46);
  pointer-events:none;
}
body .contact-input-wrap>i svg{
  width:100%;
  height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:1.55;
  stroke-linecap:round;
  stroke-linejoin:round;
}
body .contact-input-wrap input,
body .contact-input-wrap textarea{
  width:100%;
  box-sizing:border-box;
  border:1px solid rgba(255,255,255,.14);
  border-radius:14px;
  outline:0;
  background:rgba(255,255,255,.065);
  color:#fff;
  font:inherit;
  transition:border-color .2s ease,background .2s ease,box-shadow .2s ease;
}
body .contact-input-wrap input{
  height:56px;
  padding:0 18px 0 50px;
}
body .contact-input-wrap textarea{
  min-height:150px;
  padding:17px 18px 17px 50px;
  resize:vertical;
  line-height:1.6;
}
body .contact-textarea-wrap>i{
  top:18px;
  transform:none;
}
body .contact-input-wrap input::placeholder,
body .contact-input-wrap textarea::placeholder{
  color:rgba(255,255,255,.38);
}
body .contact-input-wrap input:focus,
body .contact-input-wrap textarea:focus{
  border-color:rgba(216,179,125,.72);
  background:rgba(255,255,255,.09);
  box-shadow:0 0 0 3px rgba(216,179,125,.09);
}
body .contact-submit{
  min-height:58px;
  padding:0 22px 0 26px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  border:0;
  border-radius:999px;
  background:#fff;
  color:#211a16;
  font-size:15px;
  font-weight:700;
  cursor:pointer;
  transition:transform .2s ease,background .2s ease;
}
body .contact-submit i{
  width:20px;
  height:20px;
}
body .contact-submit i svg{
  width:100%;
  height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
@media(hover:hover) and (pointer:fine){
  body .contact-submit:hover{
    transform:translateY(-2px);
    background:#d8b37d;
  }
}
body .contact-form-message{
  margin:0 0 22px;
  padding:14px 16px;
  border-radius:12px;
  font-size:13px;
  line-height:1.5;
}
body .contact-form-message.is-success{
  background:rgba(84,173,111,.14);
  border:1px solid rgba(112,211,143,.24);
  color:#d9f5e2;
}
body .contact-form-message.is-error{
  background:rgba(190,70,70,.14);
  border:1px solid rgba(230,112,112,.24);
  color:#ffdede;
}
body .contact-hp{
  position:absolute!important;
  left:-9999px!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
}

@media(max-width:980px){
  body .contact-section-head{grid-template-columns:1fr;gap:20px;margin-bottom:38px}
  body .contact-section-layout{grid-template-columns:1fr;gap:28px}
  body .contact-detail-grid{grid-template-columns:repeat(4,1fr)}
  body .contact-detail-card{min-height:150px;flex-direction:column}
  body .contact-section-image{height:320px}
}
@media(max-width:760px){
  body .contact-detail-grid{grid-template-columns:1fr 1fr}
  body .contact-detail-card{min-height:120px}
}
@media(max-width:620px){
  body .contact-section{padding:54px 0 62px}
  body .contact-section-head h2{font-size:36px!important}
  body .contact-section-intro{font-size:14px;line-height:1.68}
  body .contact-detail-grid{grid-template-columns:1fr}
  body .contact-detail-card{min-height:0;flex-direction:row;padding:18px}
  body .contact-section-image{height:230px;border-radius:16px}
  body .contact-form-card{padding:26px 20px;border-radius:20px}
  body .contact-form-card h3{font-size:31px}
}

/* Villa Istra 2.03.1 — light contact form */
body .contact-form-card{
  background:#fafafa!important;
  color:#211a16!important;
  border:1px solid rgba(33,26,22,.08);
  box-shadow:0 20px 54px rgba(33,26,22,.08);
}
body .contact-form-card>.eyebrow{color:#9b7447!important}
body .contact-form-card h3{color:#211a16!important}
body .contact-form-intro{color:rgba(33,26,22,.66)!important}
body .contact-field>span:first-child{color:rgba(33,26,22,.72)!important}
body .contact-input-wrap>i{color:rgba(33,26,22,.42)!important}
body .contact-input-wrap input,
body .contact-input-wrap textarea{
  border-color:rgba(33,26,22,.12)!important;
  background:#fff!important;
  color:#211a16!important;
}
body .contact-input-wrap input::placeholder,
body .contact-input-wrap textarea::placeholder{color:rgba(33,26,22,.38)!important}
body .contact-input-wrap input:focus,
body .contact-input-wrap textarea:focus{
  border-color:rgba(155,116,71,.55)!important;
  background:#fff!important;
  box-shadow:0 0 0 3px rgba(155,116,71,.08)!important;
}
body .contact-submit{
  background:#211a16!important;
  color:#fff!important;
}
@media(hover:hover) and (pointer:fine){
  body .contact-submit:hover{background:#9b7447!important;color:#fff!important}
}
body .contact-form-message.is-success{
  background:#eef7f0!important;border-color:#d3e8d8!important;color:#285d36!important
}
body .contact-form-message.is-error{
  background:#fff0f0!important;border-color:#f0d0d0!important;color:#8b3030!important
}

/* Villa Istra 2.03.2 — Kontakt alignment + image height */
body .contact-section-head{
  align-items:start!important;
}
body .contact-section-intro{
  align-self:start;
  padding-top:0!important;
  margin-top:0!important;
}
body .contact-section-intro p:first-child{
  margin-top:0!important;
}

/* Stretch both contact columns equally so the image reaches the form bottom edge. */
body .contact-section-layout{
  align-items:stretch!important;
}
body .contact-details-column{
  display:flex;
  flex-direction:column;
  min-height:100%;
}
body .contact-detail-grid{
  flex:0 0 auto;
}
body .contact-section-image{
  flex:1 1 auto;
  min-height:300px;
  height:auto!important;
  margin-top:12px!important;
}
body .contact-form-card{
  height:100%;
  box-sizing:border-box;
}
@media(max-width:980px){
  body .contact-section-image{
    flex:none;
    height:320px!important;
    min-height:0;
  }
  body .contact-form-card{
    height:auto;
  }
}
@media(max-width:620px){
  body .contact-section-image{
    height:230px!important;
  }
}

/* Villa Istra 2.03.3 — contact submit hover */
@media(hover:hover) and (pointer:fine){
  body .contact-submit:hover{
    background:#000!important;
    color:#fff!important;
  }
}

/* Villa Istra 2.03.4 — precise Kontakt intro alignment */
body .contact-section-head{
  align-items:start!important;
}
body .contact-section-head > div:first-child,
body .contact-section-intro{
  align-self:start!important;
}
body .contact-section-intro{
  padding-top:30px!important; /* aligns intro copy with the top edge of the H2, below the eyebrow */
}
body .contact-section-intro p:first-child{
  margin-top:0!important;
}
@media(max-width:980px){
  body .contact-section-intro{
    padding-top:0!important;
  }
}

/* Villa Istra 2.03.5 — editorial gallery */
body .villa-gallery-section{padding:82px 0 96px;background:var(--gallery-bg,#f8f4ed)!important;color:#211a16}
body .villa-gallery-head{display:grid;grid-template-columns:minmax(0,.95fr) minmax(320px,.75fr);gap:clamp(44px,7vw,110px);align-items:start;margin-bottom:38px}
body .villa-gallery-head .eyebrow{display:block;margin-bottom:12px;font-size:10px!important;letter-spacing:.16em}
body .villa-gallery-head h2{margin:0;max-width:720px;font-size:clamp(38px,4.5vw,62px)!important;line-height:1.02;letter-spacing:-.045em}
body .villa-gallery-intro{padding-top:30px;max-width:580px;font-size:15px;line-height:1.72;opacity:.7}
body .villa-gallery-intro p{margin:0}
body .villa-gallery-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}
body .villa-gallery-filter{min-height:38px;padding:0 16px;border:1px solid rgba(33,26,22,.14);border-radius:999px;background:transparent;color:#211a16;font-size:12px;font-weight:650;cursor:pointer;transition:.2s ease}
body .villa-gallery-filter.is-active{background:#211a16;color:#fff;border-color:#211a16}
@media(hover:hover) and (pointer:fine){body .villa-gallery-filter:hover{border-color:#211a16}}
body .villa-gallery-grid{columns:3;column-gap:14px}
body .villa-gallery-item{break-inside:avoid;margin:0 0 14px;transition:opacity .25s ease,transform .25s ease}
body .villa-gallery-item.is-hidden{display:none}
body .villa-gallery-open{position:relative;display:block;width:100%;padding:0;border:0;border-radius:18px;overflow:hidden;background:#e9e3da;cursor:zoom-in}
body .villa-gallery-open img{display:block;width:100%;height:auto;min-height:220px;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
body .villa-gallery-zoom{position:absolute;right:14px;top:14px;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:rgba(248,244,237,.86);color:#211a16;opacity:0;transform:translateY(5px);transition:.25s ease;backdrop-filter:blur(8px)}
body .villa-gallery-zoom svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
@media(hover:hover) and (pointer:fine){body .villa-gallery-open:hover img{transform:scale(1.025)}body .villa-gallery-open:hover .villa-gallery-zoom{opacity:1;transform:none}}
body .villa-gallery-item figcaption{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:9px 4px 4px}
body .villa-gallery-item figcaption small{font-size:9px;letter-spacing:.12em;text-transform:uppercase;opacity:.48}
body .villa-gallery-item figcaption strong{font-size:12px;font-weight:600;text-align:right}
body.villa-lightbox-open{overflow:hidden}
body .villa-lightbox{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:54px 90px;background:rgba(18,15,13,.94);opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease;backdrop-filter:blur(9px)}
body .villa-lightbox.is-open{opacity:1;visibility:visible}
body .villa-lightbox-stage{max-width:min(1240px,86vw);max-height:88vh;display:flex;flex-direction:column;align-items:center}
body .villa-lightbox-stage img{display:block;max-width:100%;max-height:78vh;width:auto;height:auto;border-radius:12px;box-shadow:0 24px 70px rgba(0,0,0,.25)}
body .villa-lightbox-meta{width:100%;padding-top:13px;display:flex;justify-content:space-between;gap:24px;color:#fff}
body .villa-lightbox-meta>div{display:flex;gap:12px;align-items:baseline}
body .villa-lightbox-meta strong{font-size:13px}.villa-lightbox-meta span{font-size:12px;opacity:.6}.villa-lightbox-count{font-size:11px;opacity:.55;white-space:nowrap}
body .villa-lightbox-close{position:absolute;right:28px;top:26px;width:46px;height:46px;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:transparent;cursor:pointer}
body .villa-lightbox-close:before,body .villa-lightbox-close:after{content:"";position:absolute;left:13px;right:13px;top:22px;height:1px;background:#fff;transform:rotate(45deg)}
body .villa-lightbox-close:after{transform:rotate(-45deg)}
body .villa-lightbox-nav{position:absolute;top:50%;width:50px;height:50px;margin-top:-25px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.24);border-radius:50%;background:rgba(255,255,255,.04);color:#fff;cursor:pointer}
body .villa-lightbox-prev{left:26px}body .villa-lightbox-next{right:26px}
body .villa-lightbox-nav svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
@media(hover:hover) and (pointer:fine){body .villa-lightbox-nav:hover,body .villa-lightbox-close:hover{background:#fff;color:#211a16;border-color:#fff}body .villa-lightbox-close:hover:before,body .villa-lightbox-close:hover:after{background:#211a16}}
@media(max-width:900px){body .villa-gallery-grid{columns:2}body .villa-gallery-head{grid-template-columns:1fr;gap:16px}body .villa-gallery-intro{padding-top:0}body .villa-lightbox{padding:60px 60px}}
@media(max-width:620px){body .villa-gallery-section{padding:54px 0 64px}body .villa-gallery-head h2{font-size:36px!important}body .villa-gallery-grid{columns:1;column-gap:0}body .villa-gallery-filters{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.villa-gallery-filter{flex:0 0 auto}body .villa-lightbox{padding:68px 14px 46px}body .villa-lightbox-nav{width:42px;height:42px;top:auto;bottom:18px}body .villa-lightbox-prev{left:16px}body .villa-lightbox-next{right:16px}body .villa-lightbox-close{right:14px;top:14px}body .villa-lightbox-stage{max-width:100%;max-height:82vh}body .villa-lightbox-stage img{max-height:68vh;border-radius:8px}body .villa-lightbox-meta{padding:10px 4px 0}.villa-lightbox-meta span{display:none}}


/* Villa Istra 2.03.7 — all hero slider/page hero eyebrows default to white */
body .hero .eyebrow,
body .hero .eyebrow *,
body .hero-slider .eyebrow,
body .hero-slider .eyebrow *,
body .hero-slide .eyebrow,
body .hero-slide .eyebrow *,
body .page-hero .eyebrow,
body .page-hero .eyebrow *{
  color:#fff!important;
}

/* Villa Istra 2.03.8 — editable Doživite Istru section background */
body .istria-explore{
  background:var(--istria-explore-bg,#f8f4ed)!important;
}

/* Villa Istra 2.03.11 — premium terms page */
body .villa-terms-section{
  padding:82px 0 100px;
  background:var(--terms-bg,#f8f4ed)!important;
  color:#211a16;
}
body .villa-terms-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);
  gap:clamp(42px,7vw,108px);
  align-items:start;
  margin-bottom:36px;
}
body .villa-terms-head .eyebrow{display:block;margin-bottom:12px}
body .villa-terms-head h2{
  margin:0;
  max-width:760px;
  font-size:clamp(40px,4.6vw,64px)!important;
  line-height:1.02;
  letter-spacing:-.045em;
}
body .villa-terms-intro{
  padding-top:30px;
  max-width:600px;
  font-size:15px;
  line-height:1.75;
  color:rgba(33,26,22,.68);
}
body .villa-terms-intro p{margin:0}
body .villa-terms-summary{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
  margin-bottom:42px;
}
body .villa-terms-summary>div{
  min-height:94px;
  padding:18px 20px;
  border:1px solid rgba(33,26,22,.09);
  border-radius:16px;
  background:rgba(255,255,255,.6);
}
body .villa-terms-summary span{
  display:block;
  margin-bottom:9px;
  font-size:10px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:rgba(33,26,22,.48);
}
body .villa-terms-summary strong{
  display:block;
  font-size:15px;
  font-weight:650;
  color:#211a16;
}
body .villa-terms-layout{
  display:grid;
  grid-template-columns:minmax(240px,.34fr) minmax(0,1fr);
  gap:clamp(34px,6vw,86px);
  align-items:start;
}
body .villa-terms-aside{position:sticky;top:110px}
body .villa-terms-contact{
  padding:26px;
  border:1px solid rgba(33,26,22,.09);
  border-radius:20px;
  background:#fafafa;
}
body .villa-terms-contact h3{
  margin:10px 0 12px;
  font-size:24px!important;
  line-height:1.12;
}
body .villa-terms-contact p{
  margin:0 0 20px;
  font-size:13px;
  line-height:1.65;
  color:rgba(33,26,22,.64);
}
body .villa-terms-contact a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 0;
  border-top:1px solid rgba(33,26,22,.09);
  color:#211a16;
  text-decoration:none;
  font-size:13px;
  font-weight:600;
}
body .villa-terms-contact a small{
  font-size:9px;
  letter-spacing:.1em;
  opacity:.48;
}
body .villa-terms-content{
  border-top:1px solid rgba(33,26,22,.13);
}
body .villa-term-block{
  display:grid;
  grid-template-columns:56px minmax(0,1fr);
  gap:22px;
  padding:30px 0 34px;
  border-bottom:1px solid rgba(33,26,22,.13);
}
body .villa-term-number{
  width:40px;height:40px;
  display:grid;place-items:center;
  border:1px solid rgba(33,26,22,.18);
  border-radius:50%;
  font-size:10px;
  font-weight:700;
  letter-spacing:.08em;
}
body .villa-term-block h3{
  margin:3px 0 13px;
  font-size:clamp(22px,2.3vw,30px)!important;
  line-height:1.12;
  letter-spacing:-.025em;
}
body .villa-term-copy{
  max-width:820px;
  font-size:14px;
  line-height:1.78;
  color:rgba(33,26,22,.72);
}
body .villa-term-copy p{margin:0 0 12px}
body .villa-term-copy p:last-child{margin-bottom:0}
@media(max-width:980px){
  body .villa-terms-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
  body .villa-terms-layout{grid-template-columns:1fr}
  body .villa-terms-aside{position:static}
}
@media(max-width:760px){
  body .villa-terms-section{padding:56px 0 68px}
  body .villa-terms-head{grid-template-columns:1fr;gap:18px}
  body .villa-terms-intro{padding-top:0}
  body .villa-terms-head h2{font-size:38px!important}
  body .villa-terms-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  body .villa-terms-summary>div{min-height:84px;padding:15px}
  body .villa-term-block{grid-template-columns:42px minmax(0,1fr);gap:14px;padding:24px 0 28px}
  body .villa-term-number{width:36px;height:36px}
}

/* Villa Istra 2.03.12 — terms contact icons and stronger summary labels */
body .villa-terms-contact a{
  font-size:15px!important;
  font-weight:600;
}
body .villa-terms-contact-link{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
body .villa-terms-contact-link svg{
  width:18px;
  height:18px;
  flex:0 0 18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.65;
  stroke-linecap:round;
  stroke-linejoin:round;
}
body .villa-terms-summary span{
  color:#000!important;
  font-weight:600!important;
}

/* Villa Istra 2.03.13 — dark terms summary cards */
body .villa-terms-summary>div{
  background:#000!important;
  border-color:#000!important;
}
body .villa-terms-summary span,
body .villa-terms-summary strong{
  color:#fff!important;
}
body .villa-terms-summary span{
  font-weight:600!important;
  opacity:.82;
}

/* Villa Istra 2.03.14 — highlighted important terms intro */
body .villa-terms-intro{
  position:relative;
  padding:24px 26px!important;
  border:1px solid rgba(255,255,255,.62);
  border-radius:20px;
  background:rgba(255,255,255,.62);
  -webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px);
  box-shadow:0 16px 44px rgba(35,27,21,.10), inset 0 1px 0 rgba(255,255,255,.72);
  color:#211a16!important;
  font-size:15px;
  line-height:1.75;
}
body .villa-terms-intro:before{
  content:"";
  position:absolute;
  left:0;
  top:22px;
  bottom:22px;
  width:3px;
  border-radius:0 3px 3px 0;
  background:#9b7b55;
}
body .villa-terms-intro p{font-weight:500}
@media(max-width:760px){
  body .villa-terms-intro{padding:20px 21px!important}
}

/* Villa Istra 2.03.15 — terms intro horizontal black accent */
body .villa-terms-intro:before{
  left:26px!important;
  right:26px!important;
  top:0!important;
  bottom:auto!important;
  width:auto!important;
  height:3px!important;
  border-radius:0 0 3px 3px!important;
  background:#000!important;
}
@media(max-width:760px){
  body .villa-terms-intro:before{
    left:21px!important;
    right:21px!important;
  }
}

/* Villa Istra 2.03.17 — dark booking intro fact cards */
body .booking-intro-fact,
body .booking-intro-facts > div{
  background:#000!important;
  border-color:#000!important;
  color:#fff!important;
}
body .booking-intro-fact *,
body .booking-intro-facts > div *{
  color:#fff!important;
}

/* Villa Istra 2.03.18 — booking fact card labels */
body .booking-intro-fact,
body .booking-intro-facts > div{
  text-align:center!important;
}
body .booking-intro-fact span,
body .booking-intro-facts > div span,
body .booking-intro-fact small,
body .booking-intro-facts > div small{
  color:#fff!important;
  text-align:center!important;
}

/* Villa Istra 2.03.19 — force booking fact labels white over legacy gold rules */
body .booking-intro .booking-intro-facts .booking-intro-fact > span{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  opacity:1!important;
  font-weight:600!important;
  text-align:center!important;
}

/* Villa Istra 2.03.20 — calmer terms intro box */
body .villa-terms-intro{
  background:#f2f2f2!important;
  border-color:#e7e7e7!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}
body .villa-terms-intro:before{
  display:none!important;
  content:none!important;
}

/* Villa Istra 2.03.28 — GTranslate header integration */
body .site-header .site-header-inner{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
}
body .site-header .header-actions{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:13px !important;
  width:auto !important;
  min-width:max-content !important;
  margin-left:auto !important;
  padding:0 !important;
  flex:0 0 auto !important;
  white-space:nowrap !important;
}
body .site-header .vil-gtranslate{
  order:1 !important;
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:0 !important;
  width:auto !important;
  min-width:max-content !important;
  height:32px !important;
  margin:0 !important;
  padding:0 !important;
  flex:0 0 auto !important;
  position:relative !important;
  z-index:100 !important;
  white-space:nowrap !important;
}
body .site-header .vil-gtranslate .vil-lang-link{
  position:relative !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:auto !important;
  min-width:30px !important;
  height:32px !important;
  margin:0 !important;
  padding:0 !important;
  flex:0 0 auto !important;
}
body .site-header .vil-gtranslate .vil-lang-link + .vil-lang-link::before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:1px;
  height:10px;
  transform:translateY(-50%);
  background:rgba(255,255,255,.32);
}
body .site-header .vil-gtranslate .vil-lang-link a,
body .site-header .vil-gtranslate .vil-lang-link a:link,
body .site-header .vil-gtranslate .vil-lang-link a:visited,
body .site-header .vil-gtranslate a.glink,
body .site-header .vil-gtranslate a.glink:link,
body .site-header .vil-gtranslate a.glink:visited{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:auto !important;
  min-width:0 !important;
  height:32px !important;
  margin:0 !important;
  padding:0 8px !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  font-family:Inter,"Noto Sans","Segoe UI",Arial,sans-serif !important;
  font-size:12px !important;
  font-weight:650 !important;
  line-height:32px !important;
  letter-spacing:.09em !important;
  text-transform:uppercase !important;
  text-decoration:none !important;
  opacity:.72 !important;
  white-space:nowrap !important;
}
body .site-header .vil-gtranslate .vil-lang-link a:hover,
body .site-header .vil-gtranslate a.glink:hover{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  opacity:1 !important;
}
body .site-header .vil-gtranslate .vil-lang-link a.gt-current-lang,
body .site-header .vil-gtranslate a.glink.gt-current-lang,
body .site-header .vil-gtranslate a[style*="font-weight: bold"],
body .site-header .vil-gtranslate a[style*="font-weight:bold"]{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  opacity:1 !important;
  font-weight:750 !important;
}
body .site-header .vil-gtranslate img,
body .site-header .vil-gtranslate svg{
  display:none !important;
}
body .site-header .header-actions .menu-toggle,
body .site-header.header-mode-fullscreen .header-actions .menu-toggle-always{
  order:2 !important;
  margin:0 !important;
  flex:0 0 auto !important;
}

/* Fullscreen header: keep language codes and hamburger on exactly one row. */
body .site-header.header-mode-fullscreen .header-actions{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  margin-left:auto !important;
}
body .site-header.header-mode-fullscreen .vil-gtranslate,
body .site-header.header-mode-fullscreen .vil-gtranslate *{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
}

/* Mobile: compact but still inline before hamburger. */
@media(max-width:620px){
  body .site-header .header-actions{
    gap:6px !important;
    min-width:0 !important;
  }
  body .site-header .vil-gtranslate{
    height:28px !important;
    min-width:0 !important;
  }
  body .site-header .vil-gtranslate .vil-lang-link{
    min-width:23px !important;
    height:28px !important;
  }
  body .site-header .vil-gtranslate .vil-lang-link a,
  body .site-header .vil-gtranslate a.glink{
    height:28px !important;
    padding:0 4px !important;
    font-size:10px !important;
    line-height:28px !important;
    letter-spacing:.055em !important;
  }
}


/* Villa Istra 2.03.31 — prevent horizontal mobile layout drift while scrolling */
@media(max-width:900px){
  html,
  body{
    width:100%;
    max-width:100%;
    overflow-x:hidden !important;
    overscroll-behavior-x:none;
  }

  body .site-header,
  body .site-header .site-header-inner,
  body .vil-page,
  body main,
  body .site-main{
    max-width:100% !important;
  }

  body .site-header{
    left:0 !important;
    right:0 !important;
    width:auto !important;
  }

  body .site-header .site-header-inner{
    min-width:0 !important;
  }

  body .site-header .brand{
    min-width:0 !important;
    flex:1 1 auto !important;
  }

  body .site-header .brand .vil-header-logo,
  body .site-header .brand img{
    max-width:100% !important;
  }

  body .site-header .header-actions{
    max-width:calc(100vw - 120px) !important;
    flex:0 1 auto !important;
  }

  body .site-header .vil-gtranslate{
    max-width:100% !important;
  }

  body .amenities-outer,
  body .global-page-reservations,
  body .architecture-grid-overlap,
  body .villa-gallery-section,
  body .location-map,
  body .istria-map{
    overflow-x:clip;
  }
}

@supports (overflow:clip){
  @media(max-width:900px){
    html,
    body{
      overflow-x:clip !important;
    }
  }
}

/* Villa Istra 2.03.32 — mobile header: language selector + compact logo/hamburger */
@media(max-width:620px){
  body .site-header .site-header-inner{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    gap:8px !important;
  }
  body .site-header .brand{
    min-width:0 !important;
    flex:1 1 auto !important;
    margin-right:0 !important;
    overflow:visible !important;
  }
  body .site-header .brand .vil-header-logo,
  body .site-header.header-mode-fullscreen .brand .vil-header-logo{
    width:min(var(--vil-logo-width,128px),128px) !important;
    max-width:128px !important;
    height:auto !important;
  }
  body .site-header .header-actions,
  body .site-header.header-mode-fullscreen .header-actions{
    display:flex !important;
    flex:0 0 auto !important;
    min-width:0 !important;
    width:auto !important;
    gap:5px !important;
    margin-left:auto !important;
    overflow:visible !important;
  }
  body .site-header .vil-gtranslate,
  body .site-header.header-mode-fullscreen .vil-gtranslate{
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
    flex:0 0 auto !important;
    min-width:0 !important;
    width:auto !important;
    overflow:visible !important;
  }
  body .site-header .vil-gtranslate .vil-lang-link{
    display:inline-flex !important;
    min-width:22px !important;
    height:28px !important;
  }
  body .site-header .vil-gtranslate .vil-lang-link a,
  body .site-header .vil-gtranslate a.glink{
    display:inline-flex !important;
    visibility:visible !important;
    opacity:.78 !important;
    padding:0 3px !important;
    font-size:10px !important;
    line-height:28px !important;
  }
  body .site-header.header-mode-fullscreen .menu-toggle-always{
    width:38px !important;
    min-width:38px !important;
    height:44px !important;
    padding:0 !important;
    gap:0 !important;
    justify-content:center !important;
    flex:0 0 38px !important;
  }
  body .site-header.header-mode-fullscreen .menu-toggle-always small{
    display:none !important;
  }
  body .site-header.header-mode-fullscreen .menu-toggle-always .menu-bars{
    flex:0 0 34px !important;
    width:34px !important;
    margin:0 !important;
  }
}

/* Villa Istra 2.03.33 — Rezervacije: light booking fact cards */
body .booking-intro .booking-intro-facts .booking-intro-fact{
  background:rgba(244,244,244,.88)!important;
  border:1px solid rgba(20,20,20,.07)!important;
  color:#111!important;
  text-align:left!important;
  -webkit-backdrop-filter:blur(14px)!important;
  backdrop-filter:blur(14px)!important;
  box-shadow:0 12px 30px rgba(15,15,15,.08)!important;
}
body .booking-intro .booking-intro-facts .booking-intro-fact > span,
body .booking-intro .booking-intro-facts .booking-intro-fact > strong,
body .booking-intro .booking-intro-facts .booking-intro-fact > small,
body .booking-intro .booking-intro-facts .booking-intro-fact *{
  color:#111!important;
  -webkit-text-fill-color:#111!important;
  text-align:left!important;
}
body .booking-intro .booking-intro-facts .booking-intro-fact > span{
  opacity:.62!important;
  font-weight:600!important;
}
body .booking-intro .booking-intro-facts .booking-intro-fact > strong{
  opacity:1!important;
}


/* Villa Istra 2.03.34 — flat outline SVG icons for booking facts */
body .booking-intro .booking-intro-facts .booking-intro-fact{
  display:grid!important;
  grid-template-columns:42px minmax(0,1fr)!important;
  align-items:center!important;
  column-gap:14px!important;
}
body .booking-intro .booking-intro-fact-icon{
  width:42px!important;
  height:42px!important;
  border-radius:12px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:rgba(255,255,255,.72)!important;
  border:1px solid rgba(17,17,17,.08)!important;
  color:#111!important;
  flex:0 0 42px!important;
}
body .booking-intro .booking-intro-fact-icon svg{
  width:21px!important;
  height:21px!important;
  display:block!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.75!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}
body .booking-intro .booking-intro-fact-content{
  min-width:0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  gap:4px!important;
}
body .booking-intro .booking-intro-fact-content .booking-intro-fact-label{
  display:block!important;
  color:#111!important;
  opacity:.62!important;
  font-weight:600!important;
  line-height:1.2!important;
}
body .booking-intro .booking-intro-fact-content strong{
  display:block!important;
  color:#111!important;
  opacity:1!important;
  line-height:1.2!important;
}
@media (max-width:640px){
  body .booking-intro .booking-intro-facts .booking-intro-fact{
    grid-template-columns:36px minmax(0,1fr)!important;
    column-gap:11px!important;
  }
  body .booking-intro .booking-intro-fact-icon{width:36px!important;height:36px!important;border-radius:10px!important;flex-basis:36px!important;}
  body .booking-intro .booking-intro-fact-icon svg{width:18px!important;height:18px!important;}
}

/* Villa Istra 2.03.35 — Rezervacije: white cards + subtle hover */
body .booking-intro .booking-intro-facts .booking-intro-fact{
  background:#fff!important;
  border:1px solid rgba(17,17,17,.07)!important;
  color:#111!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
  box-shadow:0 10px 26px rgba(15,15,15,.07)!important;
  transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease!important;
  will-change:transform;
}
body .booking-intro .booking-intro-facts .booking-intro-fact,
body .booking-intro .booking-intro-facts .booking-intro-fact *,
body .booking-intro .booking-intro-fact-content .booking-intro-fact-label,
body .booking-intro .booking-intro-fact-content strong{
  color:#111!important;
  -webkit-text-fill-color:#111!important;
}
body .booking-intro .booking-intro-fact-icon{
  background:#f6f6f6!important;
  color:#111!important;
}
@media (hover:hover) and (pointer:fine){
  body .booking-intro .booking-intro-facts .booking-intro-fact:hover{
    transform:translateY(-3px)!important;
    box-shadow:0 16px 34px rgba(15,15,15,.11)!important;
    border-color:rgba(17,17,17,.11)!important;
  }
}

/* Villa Istra 2.03.36 — Uvjeti rezervacije: white summary cards + SVG icons + hover */
body .villa-terms-summary > .villa-terms-summary-card{
  display:grid!important;
  grid-template-columns:42px minmax(0,1fr)!important;
  align-items:center!important;
  column-gap:14px!important;
  min-height:104px!important;
  padding:18px 18px!important;
  background:#fff!important;
  border:1px solid rgba(17,17,17,.07)!important;
  border-radius:16px!important;
  color:#111!important;
  text-align:left!important;
  box-shadow:0 10px 26px rgba(15,15,15,.07)!important;
  transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease!important;
  will-change:transform;
}
body .villa-terms-summary .villa-terms-summary-icon{
  width:42px!important;
  height:42px!important;
  margin:0!important;
  border-radius:12px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:#f6f6f6!important;
  border:1px solid rgba(17,17,17,.08)!important;
  color:#111!important;
  opacity:1!important;
}
body .villa-terms-summary .villa-terms-summary-icon svg{
  width:21px!important;
  height:21px!important;
  display:block!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.7!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}
body .villa-terms-summary .villa-terms-summary-content{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  gap:5px!important;
  min-width:0!important;
  margin:0!important;
  color:#111!important;
  opacity:1!important;
}
body .villa-terms-summary .villa-terms-summary-label{
  display:block!important;
  margin:0!important;
  font-size:10px!important;
  line-height:1.2!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
  color:#111!important;
  -webkit-text-fill-color:#111!important;
  font-weight:650!important;
  opacity:.62!important;
  text-align:left!important;
}
body .villa-terms-summary .villa-terms-summary-content strong{
  display:block!important;
  margin:0!important;
  font-size:15px!important;
  line-height:1.2!important;
  color:#111!important;
  -webkit-text-fill-color:#111!important;
  font-weight:700!important;
  text-align:left!important;
}
@media (hover:hover) and (pointer:fine){
  body .villa-terms-summary > .villa-terms-summary-card:hover{
    transform:translateY(-3px)!important;
    box-shadow:0 16px 34px rgba(15,15,15,.11)!important;
    border-color:rgba(17,17,17,.11)!important;
  }
}
@media (max-width:760px){
  body .villa-terms-summary > .villa-terms-summary-card{
    grid-template-columns:36px minmax(0,1fr)!important;
    column-gap:11px!important;
    min-height:92px!important;
    padding:15px!important;
  }
  body .villa-terms-summary .villa-terms-summary-icon{
    width:36px!important;
    height:36px!important;
    border-radius:10px!important;
  }
  body .villa-terms-summary .villa-terms-summary-icon svg{
    width:18px!important;
    height:18px!important;
  }
}


/* Villa Istra 2.03.37 — homepage Interior gallery CTA */
body .architecture-grid .arch-copy .interior-gallery-btn{margin-top:26px;}
@media(max-width:760px){body .architecture-grid .arch-copy .interior-gallery-btn{margin-top:22px;}}


/* Villa Istra 2.03.38 — Interior CTA matches homepage outline button language */
body .architecture-grid .arch-copy .interior-gallery-btn{
  margin-top:26px;
  min-height:54px;
  padding:0 25px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  border:1px solid #111 !important;
  border-radius:999px;
  background:#fff !important;
  color:#111 !important;
  font-size:14px;
  font-weight:600;
  letter-spacing:.01em;
  text-decoration:none;
  box-shadow:none;
  transition:background .3s ease,color .3s ease,border-color .3s ease,transform .3s ease,box-shadow .3s ease;
}
body .architecture-grid .arch-copy .interior-gallery-btn::after{
  content:"";
  width:16px;
  height:16px;
  flex:0 0 16px;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M7 17 17 7M9 7h8v8'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M7 17 17 7M9 7h8v8'/%3E%3C/svg%3E") center/contain no-repeat;
  transition:transform .3s ease;
}
@media(hover:hover) and (pointer:fine){
  body .architecture-grid .arch-copy .interior-gallery-btn:hover,
  body .architecture-grid .arch-copy .interior-gallery-btn:focus-visible{
    background:#000 !important;
    color:#fff !important;
    border-color:#000 !important;
    transform:translateY(-2px);
    box-shadow:0 14px 34px rgba(0,0,0,.14);
  }
  body .architecture-grid .arch-copy .interior-gallery-btn:hover::after,
  body .architecture-grid .arch-copy .interior-gallery-btn:focus-visible::after{
    transform:translate(2px,-2px);
  }
}
@media(max-width:760px){
  body .architecture-grid .arch-copy .interior-gallery-btn{margin-top:22px;}
}
\n\n/* Villa Istra 2.03.39 — Interior editorial 2+1 photo grid */
body .architecture-grid-overlap{
  grid-template-columns:.72fr 1.28fr !important;
  grid-template-rows:auto !important;
  gap:clamp(36px,5vw,76px) !important;
  align-items:center !important;
}
body .architecture-grid-overlap .arch-copy{grid-column:1 !important;}
body .architecture-grid-overlap .interior-photo-grid{
  grid-column:2 !important;
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  grid-template-rows:250px 360px !important;
  gap:18px !important;
  min-width:0 !important;
}
body .architecture-grid-overlap .interior-photo-grid figure{
  position:relative !important;
  inset:auto !important;
  width:auto !important;
  height:auto !important;
  min-width:0 !important;
  max-width:none !important;
  margin:0 !important;
  border:0 !important;
  border-radius:22px !important;
  overflow:hidden !important;
  box-shadow:0 18px 45px rgba(25,25,25,.09) !important;
}
body .architecture-grid-overlap .interior-photo-grid .arch-main{grid-column:1 !important;grid-row:1 !important;}
body .architecture-grid-overlap .interior-photo-grid .arch-small{grid-column:2 !important;grid-row:1 !important;display:block !important;}
body .architecture-grid-overlap .interior-photo-grid .arch-wide{grid-column:1 / -1 !important;grid-row:2 !important;}
body .architecture-grid-overlap .interior-photo-grid img{
  display:block !important;width:100% !important;height:100% !important;object-fit:cover !important;
  transition:transform .75s cubic-bezier(.2,.7,.2,1) !important;
}
@media(hover:hover) and (pointer:fine){
 body .architecture-grid-overlap .interior-photo-grid figure:hover img{transform:scale(1.025) !important;}
}
@media(max-width:980px){
 body .architecture-grid-overlap{grid-template-columns:1fr !important;}
 body .architecture-grid-overlap .arch-copy,body .architecture-grid-overlap .interior-photo-grid{grid-column:1 !important;}
 body .architecture-grid-overlap .interior-photo-grid{grid-template-rows:220px 320px !important;}
}
@media(max-width:620px){
 body .architecture-grid-overlap .interior-photo-grid{grid-template-columns:1fr 1fr !important;grid-template-rows:150px 250px !important;gap:10px !important;width:100% !important;}
 body .architecture-grid-overlap .interior-photo-grid .arch-small{display:block !important;}
 body .architecture-grid-overlap .interior-photo-grid figure{border-radius:16px !important;}
}

/* Villa Istra 2.03.40 — wider Interior photo composition */
body .architecture-grid-overlap.wrap{
  width:min(1480px,96vw) !important;
}
body .architecture-grid-overlap{
  grid-template-columns:minmax(300px,.58fr) minmax(0,1.42fr) !important;
  column-gap:clamp(28px,3.2vw,52px) !important;
}
body .architecture-grid-overlap .interior-photo-grid{
  width:100% !important;
  max-width:none !important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  grid-template-rows:270px 370px !important;
  align-items:stretch !important;
}
body .architecture-grid-overlap .interior-photo-grid .arch-main,
body .architecture-grid-overlap .interior-photo-grid .arch-small{
  height:270px !important;
  min-height:270px !important;
  align-self:stretch !important;
}
body .architecture-grid-overlap .interior-photo-grid .arch-wide{
  height:370px !important;
  min-height:370px !important;
}
@media(max-width:1100px){
  body .architecture-grid-overlap.wrap{width:min(1360px,92vw) !important;}
  body .architecture-grid-overlap{grid-template-columns:1fr !important;}
  body .architecture-grid-overlap .interior-photo-grid{grid-template-rows:220px 320px !important;}
  body .architecture-grid-overlap .interior-photo-grid .arch-main,
  body .architecture-grid-overlap .interior-photo-grid .arch-small{height:220px !important;min-height:220px !important;}
  body .architecture-grid-overlap .interior-photo-grid .arch-wide{height:320px !important;min-height:320px !important;}
}
@media(max-width:620px){
  body .architecture-grid-overlap .interior-photo-grid{grid-template-rows:150px 250px !important;}
  body .architecture-grid-overlap .interior-photo-grid .arch-main,
  body .architecture-grid-overlap .interior-photo-grid .arch-small{height:150px !important;min-height:150px !important;}
  body .architecture-grid-overlap .interior-photo-grid .arch-wide{height:250px !important;min-height:250px !important;}
}


/* Villa Istra 2.03.41 — Interior width aligned with homepage + CTA safeguard */
body .architecture-grid-overlap.wrap{
  width:min(1360px,92vw) !important;
}
body .architecture-grid-overlap{
  grid-template-columns:minmax(300px,.68fr) minmax(0,1.32fr) !important;
  column-gap:clamp(30px,3vw,46px) !important;
}
body .architecture-grid-overlap .interior-photo-grid{
  width:100% !important;
  max-width:none !important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  grid-template-rows:260px 360px !important;
  align-items:stretch !important;
}
body .architecture-grid-overlap .interior-photo-grid .arch-main,
body .architecture-grid-overlap .interior-photo-grid .arch-small{
  height:260px !important;
  min-height:260px !important;
  align-self:stretch !important;
}
body .architecture-grid-overlap .interior-photo-grid .arch-wide{
  height:360px !important;
  min-height:360px !important;
}
@media(max-width:1100px){
  body .architecture-grid-overlap.wrap{width:min(1360px,92vw) !important;}
  body .architecture-grid-overlap{grid-template-columns:1fr !important;}
  body .architecture-grid-overlap .interior-photo-grid{grid-template-rows:220px 320px !important;}
  body .architecture-grid-overlap .interior-photo-grid .arch-main,
  body .architecture-grid-overlap .interior-photo-grid .arch-small{height:220px !important;min-height:220px !important;}
  body .architecture-grid-overlap .interior-photo-grid .arch-wide{height:320px !important;min-height:320px !important;}
}
@media(max-width:620px){
  body .architecture-grid-overlap .interior-photo-grid{grid-template-rows:150px 250px !important;}
  body .architecture-grid-overlap .interior-photo-grid .arch-main,
  body .architecture-grid-overlap .interior-photo-grid .arch-small{height:150px !important;min-height:150px !important;}
  body .architecture-grid-overlap .interior-photo-grid .arch-wide{height:250px !important;min-height:250px !important;}
}

/* Villa Istra 2.03.44 — cleaner map + orientation note */
body .istria-map-legend small{display:block;flex-basis:100%;font-size:9px;font-weight:500;line-height:1.35;color:rgba(33,26,22,.58);text-align:left;margin-top:-2px}
@media(max-width:620px){body .istria-map-legend small{text-align:center;font-size:9px}}

/* 2.03.45 — Istria map orientation note alignment */
body .istria-map-legend small{
  font-size:10.5px;
  line-height:1.4;
  margin-top:0;
  margin-left:17px;
}
@media(max-width:620px){
  body .istria-map-legend small{
    font-size:10px;
    text-align:left;
    margin-left:17px;
  }
}

/* Villa Istra 2.03.46 — legend spacing and softer corners */
body .istria-map-legend{
  padding:11px 18px 11px 20px!important;
  border-radius:18px!important;
  align-items:center!important;
}
body .istria-map-legend span{
  align-items:center!important;
  line-height:1.2;
  transform:translateX(3px);
}
body .istria-map-legend small{
  margin-left:20px;
  display:flex;
  align-items:center;
  min-height:16px;
}
@media(max-width:620px){
  body .istria-map-legend{
    padding:11px 15px 11px 17px!important;
    border-radius:14px!important;
  }
  body .istria-map-legend span{transform:translateX(2px);}
  body .istria-map-legend small{margin-left:19px;}
}

/* Villa Istra 2.03.47 — more vertical breathing room for Istria map */
body .istria-map{min-height:750px;}
@media(max-width:980px){body .istria-map{min-height:620px;}}
@media(max-width:620px){body .istria-map{min-height:480px;}}

/* Villa Istra 2.03.51 — mobile legend note aligned with first legend title */
@media(max-width:620px){
  body .istria-map-legend{
    justify-content:flex-start!important;
  }
  body .istria-map-legend small{
    flex-basis:calc(100% - 19px)!important;
    margin-left:19px!important;
    margin-right:0!important;
    text-align:left!important;
  }
}

/* Villa Istra 2.03.52 — Footer site credit */
body .footer-bottom{
  grid-column:1/-1;
  padding-top:24px;
  margin-top:10px;
  border-top:1px solid rgba(255,255,255,.14);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  font-size:12px;
  opacity:.58;
}
body .footer-bottom .footer-copyright{
  grid-column:auto;
  padding-top:0;
  margin-top:0;
  border-top:0;
  font-size:inherit;
  opacity:1;
}
body .footer-credit{margin-left:auto;white-space:nowrap;}
body .footer-credit a{font-weight:600;text-decoration:none;}
@media(max-width:620px){
  body .footer-bottom{align-items:flex-start;flex-direction:column;gap:8px;}
  body .footer-credit{margin-left:0;}
}


/* Villa Istra 2.03.53 — right aligned footer contact */
body .footer-meta{
  justify-self:end;
  justify-content:flex-end;
  text-align:right;
}
body .footer-bottom{
  text-align:right;
}
@media(max-width:900px){
  body .footer-meta{
    justify-self:end;
    justify-content:flex-end;
    text-align:right;
  }
}
@media(max-width:620px){
  body .footer-meta{
    justify-self:start;
    justify-content:flex-start;
    text-align:left;
  }
  body .footer-bottom{text-align:left;}
}

/* 2.03.54 — Facilities: subtle light hover + optional custom 128x128 icons */
body .facilities-section .facility-item{
  transition:background-color .25s ease,border-color .25s ease,transform .25s ease,box-shadow .25s ease;
}
body .facilities-section .facility-check.facility-custom-icon{
  overflow:hidden;
  background:transparent;
  border-radius:14px;
}
body .facilities-section .facility-check.facility-custom-icon img{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
}
@media(hover:hover) and (pointer:fine){
  body .facilities-section .facility-item:hover{
    background:#f3f3f3 !important;
    border-color:rgba(33,26,22,.12) !important;
    transform:translateY(-2px);
    box-shadow:0 16px 38px rgba(33,26,22,.07);
  }
}

/* 2.03.55 — Facilities: black semibold text on light hover */
@media(hover:hover) and (pointer:fine){
  body .facilities-section .facility-item:hover{
    color:#111 !important;
  }
  body .facilities-section .facility-item:hover > span:last-child{
    color:#111 !important;
    font-weight:600;
  }
}

/* 2.03.56 — Facilities: white hover, black semibold text, subtle motion */
@media(hover:hover) and (pointer:fine){
  body .facilities-section .facility-item:hover{
    background:#fff !important;
    color:#111 !important;
    border-color:rgba(33,26,22,.12) !important;
    transform:translateY(-2px);
    box-shadow:0 16px 38px rgba(33,26,22,.07);
  }
  body .facilities-section .facility-item:hover > span:last-child{
    color:#111 !important;
    font-weight:600;
  }
}

/* 404 — Villa Istra */
.vil-404{background:var(--cream)}
.vil-404-hero{position:relative;min-height:82vh;overflow:hidden;display:flex;align-items:center;padding:170px 0 110px;background:linear-gradient(135deg,#211a16 0%,#314431 100%);color:#fff}
.vil-404-hero:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 76% 38%,rgba(180,147,89,.16),transparent 32%),linear-gradient(90deg,rgba(0,0,0,.08),transparent 55%);pointer-events:none}
.vil-404-inner{position:relative;z-index:2}
.vil-404-code{margin:26px 0 4px;font-size:clamp(86px,13vw,190px);line-height:.8;font-weight:650;letter-spacing:-.075em;color:rgba(255,255,255,.12)}
.vil-404 h1{max-width:900px;margin:26px 0 25px;font-size:clamp(48px,6.2vw,86px);font-weight:640;letter-spacing:-.052em;line-height:1.02}
.vil-404-lead{max-width:660px;margin:0;color:rgba(255,255,255,.76);font-size:17px;line-height:1.75}
.vil-404-actions{display:flex;align-items:center;gap:30px;flex-wrap:wrap;margin-top:12px}
.vil-404-link{display:inline-flex;align-items:center;gap:12px;margin-top:22px;padding:14px 0;color:#fff;text-decoration:none;font-size:12px;font-weight:750;border-bottom:1px solid rgba(255,255,255,.45);transition:border-color .25s ease,opacity .25s ease}
.vil-404-link:hover{border-color:#fff;opacity:.82}
.vil-404-orb{position:absolute;z-index:1;right:-2vw;top:50%;transform:translateY(-50%);font-size:clamp(260px,36vw,620px);font-weight:700;line-height:.75;letter-spacing:-.09em;color:rgba(255,255,255,.025);user-select:none;pointer-events:none}
@media(max-width:620px){.vil-404-hero{min-height:78vh;padding:135px 0 85px}.vil-404-code{margin-top:22px}.vil-404 h1{font-size:48px}.vil-404-lead{font-size:15px}.vil-404-actions{align-items:flex-start;flex-direction:column;gap:0}.vil-404-orb{right:-18vw;font-size:300px}}


/* 2.03.61 — 404 primary button: white outline, flat arrow, black hover */
body .vil-error-page .vil-404-home-btn{
  background:transparent!important;
  color:#fff!important;
  border:1px solid #fff!important;
  gap:18px;
  transition:background-color .24s ease,color .24s ease,border-color .24s ease,transform .24s ease;
}
body .vil-error-page .vil-404-home-btn .vil-404-home-arrow{
  display:inline-block;
  font-size:16px;
  line-height:1;
  font-weight:400;
  transition:transform .24s ease;
}
@media(hover:hover) and (pointer:fine){
  body .vil-error-page .vil-404-home-btn:hover{
    background:#000!important;
    color:#fff!important;
    border-color:#000!important;
  }
  body .vil-error-page .vil-404-home-btn:hover .vil-404-home-arrow{
    transform:translateX(4px);
  }
}


/* 2.03.63 — 404 viewport fit + editable desktop spacing (fixed) */
body.error404{
  min-height:100vh;
  display:flex;
  flex-direction:column;
  background:#18110d;
}
body.error404 .site-main{
  width:100%;
  flex:1 0 auto;
}
body.error404 .site-footer{
  width:100%;
  flex:0 0 auto;
}
@media (min-width:621px){
  body.error404 .vil-error-hero{
    min-height:var(--vil404-min-height,78vh)!important;
    padding-top:var(--vil404-padding-top,180px)!important;
    padding-bottom:var(--vil404-padding-bottom,90px)!important;
  }
}
@media (max-width:620px){
  body.error404 .vil-error-hero{
    min-height:650px!important;
    padding-top:140px!important;
    padding-bottom:80px!important;
  }
}
