.isola-hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;color:#fff;background:#89938f;background-image:var(--hero-image,linear-gradient(135deg,#bcc5c1,#667570));background-size:cover;background-position:center}.isola-hero:before{content:"";position:absolute;inset:0;background:inherit;background-size:cover;background-position:center;transform:scale(1.015);animation:isolaHeroIn 1.6s cubic-bezier(.2,.65,.3,1) both}.isola-hero__shade{position:absolute;z-index:1;inset:0;background:linear-gradient(to top,rgba(15,25,22,.55) 0%,rgba(15,25,22,.16) 48%,rgba(15,25,22,.16) 100%)}.isola-hero__content{position:relative;z-index:2;width:min(1180px,calc(100% - 80px));margin:0 auto 10.5vh}.isola-hero__en{max-width:980px;margin:0 0 20px;font-family:var(--serif);font-size:clamp(50px,6.4vw,86px);font-weight:400;line-height:1.08;letter-spacing:.005em;text-wrap:balance}.isola-hero__ja{margin:0;font-size:14px;font-weight:400;line-height:1.8;letter-spacing:.15em}.isola-hero__scroll{position:absolute;right:35px;bottom:28px;z-index:2;display:flex;flex-direction:column;align-items:center;gap:12px;font-family:var(--sans);font-size:8px;letter-spacing:.24em;writing-mode:vertical-rl}.isola-hero__scroll i{display:block;width:1px;height:44px;background:rgba(255,255,255,.75)}@keyframes isolaHeroIn{from{opacity:.5;transform:scale(1.06)}to{opacity:1;transform:scale(1.015)}}.isola-story{background:var(--paper)}.isola-story__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.72fr);gap:9vw;align-items:center}.isola-story__visual{aspect-ratio:4/5;background:linear-gradient(150deg,#d5d0c5,#a4aba5);background-image:var(--story-image);background-size:cover;background-position:center}.isola-story__copy .isola-display{max-width:650px}.isola-destinations{background:#fff}.isola-destination-list{border-top:1px solid var(--line)}.isola-destination-list a{display:grid;grid-template-columns:70px 1fr minmax(170px,270px) 30px;align-items:center;gap:30px;min-height:132px;border-bottom:1px solid var(--line);transition:padding .25s,background .25s}.isola-destination-list a:hover{padding:0 18px;background:var(--paper)}.isola-destination-list span{font-family:var(--sans);font-size:9px;letter-spacing:.14em;color:var(--muted)}.isola-destination-list strong{font-family:var(--serif);font-size:34px;font-weight:400;letter-spacing:.05em}.isola-destination-list em{font-style:normal;font-size:13px}.isola-destination-list i{font-style:normal;text-align:right}.isola-stay{background:#f2f0ea}.isola-stay__grid{display:grid;gap:94px}.isola-stay-card{display:grid;grid-template-columns:minmax(0,1.38fr) minmax(330px,1fr);background:#fff;box-shadow:0 18px 60px rgba(38,45,42,.04)}.isola-stay-card--reverse{grid-template-columns:minmax(330px,1fr) minmax(0,1.38fr)}.isola-stay-card--reverse .isola-stay-card__visual{order:2}.isola-stay-card__visual{min-height:560px;background:linear-gradient(135deg,#bdc7c0,#798b84);background-image:var(--stay-image);background-size:cover;background-position:center}.isola-stay-card__visual--2{background-color:#b8ad9d}.isola-stay-card__body{display:flex;flex-direction:column;justify-content:center;padding:70px 64px}.isola-stay-card h3{margin:0 0 24px;font-size:42px;font-weight:400;line-height:1.2}.isola-stay-card h4{margin:0 0 22px;font-size:18px;font-weight:400;line-height:1.9}.isola-stay-card p{margin-top:0;font-size:14px;line-height:2}.isola-home-news{background:#fff}.isola-news-list{border-top:1px solid var(--line)}.isola-news-row{display:grid;grid-template-columns:96px 1fr 30px;align-items:center;gap:24px;min-height:108px;border-bottom:1px solid var(--line);transition:padding .25s,background .25s}.isola-news-row:hover{padding:0 12px;background:var(--paper)}.isola-news-row time{display:flex;align-items:baseline;gap:8px;font-family:var(--sans)}.isola-news-row time strong{font-size:17px;font-weight:400}.isola-news-row time span{font-size:9px;color:var(--muted)}.isola-news-row__title{font-size:15px}.isola-news-row__arrow{text-align:right}.isola-cta{position:relative;overflow:hidden;padding:150px 0;background:#d9d4ca}.isola-cta:before{content:"";position:absolute;inset:22px;border:1px solid rgba(45,48,47,.14);pointer-events:none}.isola-cta__inner{position:relative;text-align:center}.isola-cta h2{margin:0 0 24px;font-size:clamp(48px,7vw,86px);font-weight:400;line-height:1.08}.isola-cta a{display:inline-flex;gap:28px;margin-top:26px;padding:13px 0;border-bottom:1px solid;font-family:var(--sans);font-size:10px;letter-spacing:.16em}@media(prefers-reduced-motion:reduce){.isola-hero:before{animation:none}}@media(max-width:767px){.isola-hero{background-image:var(--hero-image-mobile,var(--hero-image,linear-gradient(160deg,#d6dad8,#8e9693)));background-position:center}.isola-hero:before{background-image:var(--hero-image-mobile,var(--hero-image,linear-gradient(160deg,#d6dad8,#8e9693)));background-position:center}.isola-hero__shade{background:linear-gradient(to top,rgba(15,25,22,.58) 0%,rgba(15,25,22,.10) 60%,rgba(15,25,22,.18) 100%)}.isola-hero__content{width:calc(100% - 40px);margin-bottom:10.5vh}.isola-hero__en{max-width:94%;margin-bottom:18px;font-size:clamp(40px,12vw,52px);line-height:1.13}.isola-hero__ja{max-width:90%;font-size:12.5px;line-height:1.9;letter-spacing:.11em}.isola-hero__scroll{right:16px;bottom:20px}.isola-story__grid{grid-template-columns:1fr;gap:50px}.isola-story__visual{aspect-ratio:4/3}.isola-destination-list a{grid-template-columns:32px 1fr 18px;gap:12px;min-height:100px}.isola-destination-list strong{font-size:27px}.isola-destination-list em{grid-column:2/3;font-size:11px;margin-top:-24px}.isola-destination-list i{grid-column:3;grid-row:1/3}.isola-stay__grid{gap:38px}.isola-stay-card,.isola-stay-card--reverse{grid-template-columns:1fr;box-shadow:none}.isola-stay-card--reverse .isola-stay-card__visual{order:0}.isola-stay-card__visual{min-height:0;aspect-ratio:4/3}.isola-stay-card__body{padding:34px 24px 40px}.isola-stay-card h3{font-size:31px}.isola-stay-card h4{font-size:16px}.isola-news-row{grid-template-columns:70px 1fr 18px;gap:12px;min-height:92px}.isola-news-row__title{font-size:13px;line-height:1.7}.isola-cta{padding:102px 0}.isola-cta:before{inset:12px}.isola-cta h2{font-size:44px}}

/* beta.4 polish */
@media(min-width:768px){.isola-story__visual,.isola-stay-card__visual{overflow:hidden}.isola-story__visual,.isola-stay-card__visual{transition:transform .65s cubic-bezier(.2,.65,.3,1)}.isola-stay-card:hover .isola-stay-card__visual{transform:scale(1.012)}}

/* ==========================================================
   beta.5 — FACILITIES / visual rhythm
========================================================== */
.isola-facilities{padding:0;background:#fff}.isola-facilities__grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(330px,.75fr);min-height:650px}.isola-facilities__visual{margin-left:calc((100vw - min(1180px,calc(100vw - 80px)))/-2);background:linear-gradient(140deg,#c8cec8,#8d9992);background-image:var(--facilities-image);background-size:cover;background-position:center}.isola-facilities__body{display:flex;flex-direction:column;justify-content:center;padding:90px 0 90px clamp(54px,7vw,110px)}.isola-facilities__body h2{margin:0 0 30px;font-size:clamp(34px,4vw,52px);font-weight:400;line-height:1.45;letter-spacing:.02em}.isola-facilities__body>p:not(.isola-eyebrow){margin:0;max-width:430px;font-size:14px;line-height:2.15}.isola-facilities__body .isola-text-link{align-self:flex-start}
@media(max-width:767px){.isola-facilities{padding-top:0}.isola-facilities__grid{width:100%;grid-template-columns:1fr;min-height:0}.isola-facilities__visual{margin-left:0;aspect-ratio:4/3}.isola-facilities__body{padding:64px 20px 76px}.isola-facilities__body h2{font-size:31px}.isola-facilities__body>p:not(.isola-eyebrow){font-size:13.5px}}

/* ==========================================================
   beta.6 — home editorial finish
========================================================== */
.isola-hero__content{padding-right:90px}
.isola-story__copy{padding:18px 0}
.isola-story__visual,.isola-stay-card__visual,.isola-facilities__visual{background-color:#aab2ad}
.isola-destinations .isola-section-head{max-width:1080px}
.isola-stay-card__body .isola-eyebrow{margin-bottom:18px}
.isola-facilities__body .isola-eyebrow{margin-bottom:18px}
.isola-news-row__title{padding-right:20px}
@media(max-width:767px){
  .isola-hero{min-height:92svh}
  .isola-hero__content{width:calc(100% - 36px);padding-right:28px;margin-bottom:9.5vh}
  .isola-hero__en{max-width:100%;font-size:clamp(38px,11.4vw,49px);line-height:1.1}
  .isola-hero__ja{max-width:95%;font-size:12px}
  .isola-hero__scroll{display:none}
  .isola-story__grid{gap:42px}
  .isola-story__visual{aspect-ratio:1/1.08}
  .isola-destination-list a{min-height:96px}
  .isola-stay-card__visual{aspect-ratio:1/1.02}
  .isola-stay-card__body{padding:32px 20px 38px}
  .isola-stay-card h3{font-size:30px;margin-bottom:20px}
  .isola-stay-card h4{font-size:15px;line-height:1.85}
  .isola-facilities__visual{aspect-ratio:1/1.02}
  .isola-facilities__body{padding:58px 20px 70px}
  .isola-home-news .isola-section-head .isola-display{font-size:34px}
  .isola-news-row{grid-template-columns:64px 1fr 14px;min-height:88px}
  .isola-news-row time{display:block}
  .isola-news-row time strong{display:block;font-size:15px}
  .isola-news-row time span{display:block;margin-top:2px}
}

/* ==========================================================
   beta.116 — HOME DESTINATIONS three-card restoration
========================================================== */
.isola-destination-cards{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}
.isola-destination-card{
  display:block;
  min-width:0;
}
.isola-destination-card__figure{
  position:relative;
  overflow:hidden;
  aspect-ratio:4/5;
  background:#dedbd3;
}
.isola-destination-card__image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.02);
  transition:transform 1.5s cubic-bezier(.22,.61,.36,1),filter .8s ease;
}
.isola-destination-card__overlay{
  position:absolute;
  inset:0;
  z-index:2;
  background:linear-gradient(180deg,rgba(15,24,25,.01),rgba(15,24,25,.11));
  pointer-events:none;
}
.isola-destination-card__number{
  position:absolute;
  top:22px;
  left:22px;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:center;
  width:54px;
  height:54px;
  border:1px solid rgba(255,255,255,.9);
  background:rgba(18,28,30,.14);
  color:#fff;
  font-family:var(--sans);
  font-size:10px;
  letter-spacing:.14em;
  text-indent:.14em;
}
.isola-destination-card__content{
  padding:30px 4px 34px 0;
  border-bottom:1px solid rgba(45,48,47,.16);
}
.isola-destination-card__area{
  margin:0 0 12px;
  color:var(--muted);
  font-family:var(--sans);
  font-size:10px;
  letter-spacing:.18em;
}
.isola-destination-card__name{
  margin:0;
  font-family:var(--serif);
  font-size:31px;
  font-weight:400;
  line-height:1.4;
  letter-spacing:.09em;
}
.isola-destination-card__view{
  display:inline-flex;
  align-items:center;
  gap:22px;
  margin-top:27px;
  font-family:var(--sans);
  font-size:10px;
  letter-spacing:.19em;
}
.isola-destination-card__view i{
  display:block;
  width:54px;
  height:1px;
  background:rgba(45,48,47,.58);
  transition:width .45s ease;
}
@media(hover:hover){
  .isola-destination-card:hover .isola-destination-card__image{transform:scale(1.065);filter:brightness(.92)}
  .isola-destination-card:hover .isola-destination-card__view i{width:72px}
}

/* Match the dedicated DESTINATIONS page animation exactly. */
.isola-destinations.isola-destinations-js .isola-destination-card__figure{
  clip-path:inset(10% 0 0 0);
  opacity:.25;
  transition:clip-path 1.35s cubic-bezier(.16,1,.3,1),opacity .9s ease;
}
.isola-destinations.isola-destinations-js .isola-destination-card.is-visible .isola-destination-card__figure{
  clip-path:inset(0);
  opacity:1;
}
.isola-destinations.isola-destinations-js .isola-destination-card__image{transform:scale(1.09)}
.isola-destinations.isola-destinations-js .isola-destination-card.is-visible .isola-destination-card__image{
  transform:scale(1.02);
  transition:transform 2.1s cubic-bezier(.16,1,.3,1);
}
.isola-destinations.isola-destinations-js .isola-destination-card__number{
  opacity:0;
  transform:scale(.78);
  transition:opacity .7s ease,transform .9s cubic-bezier(.16,1,.3,1);
}
.isola-destinations.isola-destinations-js .isola-destination-card.is-visible .isola-destination-card__number{
  opacity:1;
  transform:scale(1);
  transition-delay:.32s;
}
.isola-destinations.isola-destinations-js .isola-destination-card__content>*{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .85s ease,transform 1s cubic-bezier(.16,1,.3,1);
}
.isola-destinations.isola-destinations-js .isola-destination-card.is-visible .isola-destination-card__content>*{
  opacity:1;
  transform:none;
}
.isola-destinations.isola-destinations-js .isola-destination-card.is-visible .isola-destination-card__area{transition-delay:.20s}
.isola-destinations.isola-destinations-js .isola-destination-card.is-visible .isola-destination-card__name{transition-delay:.30s}
.isola-destinations.isola-destinations-js .isola-destination-card.is-visible .isola-destination-card__view{transition-delay:.50s}
@media(max-width:767px){
  .isola-destination-cards{grid-template-columns:1fr;gap:52px}
  .isola-destination-card__figure{aspect-ratio:4/3}
  .isola-destination-card__content{padding-top:22px}
  .isola-destination-card__name{font-size:28px}
}
@media(prefers-reduced-motion:reduce){
  .isola-destination-card__figure,
  .isola-destination-card__number,
  .isola-destination-card__content>*{
    opacity:1!important;
    clip-path:none!important;
    transform:none!important;
    transition:none!important;
  }
}


/* ISOLA β7 luxury spacing */
.isola-section{position:relative}
.isola-stay-card,.isola-facility-card{transition:transform .5s ease}
.isola-stay-card:hover,.isola-facility-card:hover{transform:translateY(-4px)}
@media(max-width:899px){
.isola-hero__content{width:calc(100% - 48px);margin-bottom:12vh}
.isola-hero__en{font-size:clamp(42px,10vw,58px);line-height:1.12}
}


/* ==========================================================
   beta.13 — destinations imagery / reservation CTA
========================================================== */
.isola-destination-list a{position:relative;overflow:hidden}
.isola-destination-list__image{
  width:180px;height:92px;margin:0;
  background-size:cover;background-position:center;
  opacity:.88;transition:transform .55s ease,opacity .35s ease;
}
.isola-destination-list a:hover .isola-destination-list__image{transform:scale(1.035);opacity:1}

.isola-cta{
  background-image:var(--cta-image);
  background-size:cover;background-position:center;
}
.isola-cta.has-image{color:#fff;min-height:620px;display:flex;align-items:center}
.isola-cta__overlay{position:absolute;inset:0;background:rgba(18,29,26,0)}
.isola-cta.has-image .isola-cta__overlay{background:linear-gradient(180deg,rgba(18,29,26,.18),rgba(18,29,26,.48))}
.isola-cta.has-image:before{border-color:rgba(255,255,255,.38)}
.isola-cta.has-image .isola-eyebrow{color:rgba(255,255,255,.78)}
.isola-cta.has-image a{color:#fff}

@media(min-width:768px){
  .isola-destination-list a{
    grid-template-columns:70px 1fr minmax(170px,250px) 180px 30px;
  }
}
@media(max-width:767px){
  .isola-destination-list__image{display:none}
  .isola-cta.has-image{min-height:520px}
}


/* ==========================================================
   beta.14 — hero label / reservation button refinement
========================================================== */
.isola-hero__label{
  margin:0 0 26px;
  font-family:var(--sans);
  font-size:10px;
  line-height:1.5;
  letter-spacing:.34em;
  text-transform:uppercase;
  color:rgba(255,255,255,.84);
}
.isola-hero__reserve{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  width:min(640px,100%);
  margin-top:42px;
  padding:22px 34px;
  border:1px solid rgba(255,255,255,.72);
  color:#fff;
  font-family:var(--sans);
  font-size:11px;
  line-height:1.4;
  letter-spacing:.24em;
  text-transform:uppercase;
  background:rgba(8,14,12,.12);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
  transition:background .25s ease,border-color .25s ease,transform .25s ease;
}
.isola-hero__reserve:hover{
  background:rgba(8,14,12,.22);
  border-color:#fff;
  transform:translateY(-1px);
}
.isola-hero__reserve span{font-size:16px;line-height:1;letter-spacing:0}
@media(max-width:767px){
  .isola-hero__label{margin-bottom:16px;font-size:9px;letter-spacing:.28em}
  .isola-hero__reserve{width:100%;margin-top:30px;padding:18px 20px;font-size:10px;letter-spacing:.2em}
  .isola-hero__reserve span{font-size:14px}
}


/* ==========================================================
   beta.15 — FV final positioning
   Reference: transparent header over hero image, strong vertical rhythm.
========================================================== */
body.home:not(.isola-home-no-hero-image) .isola-hero{
  min-height:100svh;
}
body.home:not(.isola-home-no-hero-image) .isola-hero__content{
  margin-bottom:7.2vh;
}
body.home:not(.isola-home-no-hero-image) .isola-hero__shade{
  background:
    linear-gradient(to top,
      rgba(13,22,20,.62) 0%,
      rgba(13,22,20,.34) 34%,
      rgba(13,22,20,.10) 68%,
      rgba(13,22,20,.10) 100%);
}
@media(max-width:767px){
  body.home:not(.isola-home-no-hero-image) .isola-hero{
    min-height:100svh;
    background-position:center center;
  }
  body.home:not(.isola-home-no-hero-image) .isola-hero:before{
    background-position:center center;
  }
  body.home:not(.isola-home-no-hero-image) .isola-hero__content{
    width:calc(100% - 36px);
    padding-right:0;
    margin-bottom:7vh;
  }
  body.home:not(.isola-home-no-hero-image) .isola-hero__label{
    margin-bottom:17px;
  }
  body.home:not(.isola-home-no-hero-image) .isola-hero__en{
    max-width:100%;
    margin-bottom:20px;
    font-size:clamp(43px,12.4vw,58px);
    line-height:1.08;
    letter-spacing:-.012em;
  }
  body.home:not(.isola-home-no-hero-image) .isola-hero__ja{
    max-width:100%;
    font-size:12.5px;
    line-height:2;
    letter-spacing:.10em;
  }
  body.home:not(.isola-home-no-hero-image) .isola-hero__reserve{
    margin-top:28px;
    min-height:74px;
    padding:18px 22px;
    background:rgba(8,14,12,.10);
  }
}


/* ==========================================================
   beta.19 — image focal position / NEWS editorial cards
========================================================== */
.isola-hero,
.isola-hero:before{
  background-position:var(--hero-position-pc, center center);
}
@media(max-width:767px){
  .isola-hero,
  .isola-hero:before{
    background-position:var(--hero-position-sp, center center) !important;
  }
}

.isola-news-row__content{
  display:flex;
  min-width:0;
  flex-direction:column;
  justify-content:center;
}
.isola-news-row__excerpt{
  display:block;
  margin-top:7px;
  overflow:hidden;
  color:var(--muted);
  font-size:11.5px;
  line-height:1.7;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.isola-news-row.has-thumb{
  grid-template-columns:96px minmax(0,1fr) 126px 30px;
}
.isola-news-row__thumb{
  display:block;
  width:126px;
  aspect-ratio:4/3;
  background-position:center;
  background-size:cover;
  filter:saturate(.88);
  transition:transform .45s ease,filter .3s ease;
}
.isola-news-row:hover .isola-news-row__thumb{
  transform:scale(1.025);
  filter:saturate(1);
}
@media(max-width:767px){
  .isola-news-row.has-thumb{
    grid-template-columns:58px minmax(0,1fr) 74px 14px;
    gap:10px;
  }
  .isola-news-row__thumb{
    width:74px;
    aspect-ratio:1/1;
  }
  .isola-news-row__excerpt{
    display:none;
  }
}


/* ==========================================================
   beta.20 — restore DESTINATIONS photography on mobile
========================================================== */
@media(max-width:767px){
  .isola-destination-list{
    border-top:0;
    display:grid;
    gap:42px;
  }
  .isola-destination-list a,
  .isola-destination-list a:hover{
    display:grid;
    grid-template-columns:28px minmax(0,1fr) 18px;
    gap:8px 12px;
    min-height:0;
    padding:0 0 28px;
    background:transparent;
    border-bottom:1px solid var(--line);
  }
  .isola-destination-list__image{
    display:block !important;
    grid-column:1/-1;
    grid-row:1;
    width:100%;
    height:auto;
    aspect-ratio:16/10;
    margin:0 0 16px;
    background-size:cover;
    background-position:center;
    opacity:1;
  }
  .isola-destination-list span{
    grid-column:1;
    grid-row:2;
    align-self:center;
  }
  .isola-destination-list strong{
    grid-column:2;
    grid-row:2;
    font-size:29px;
    line-height:1.15;
  }
  .isola-destination-list em{
    grid-column:2;
    grid-row:3;
    margin:0;
    font-size:11px;
  }
  .isola-destination-list i{
    grid-column:3;
    grid-row:2/4;
    align-self:center;
  }
}


/* ==========================================================
   beta.21 — restore isola terrace in STAY
========================================================== */
.isola-stay-card__visual--3{
  background-color:#a9b4b0;
}


/* ==========================================================
   beta.22 — adjust STAY image size on mobile
========================================================== */
@media(max-width:767px){
  .isola-stay-card__visual,
  .isola-stay-card__visual--2,
  .isola-stay-card__visual--3{
    aspect-ratio:16/9 !important;
    min-height:0 !important;
    background-position:center center;
  }
  .isola-stay__grid{
    gap:32px;
  }
  .isola-stay-card__body{
    padding:28px 22px 34px;
  }
}


/* ==========================================================
   beta.23 — replace facilities block with luxury gallery
========================================================== */
.isola-gallery{background:#fff}
.isola-gallery__head{max-width:920px}
.isola-gallery__lead{max-width:720px;margin:0;font-size:14px;line-height:2;color:var(--muted)}
.isola-gallery__grid{display:grid;grid-template-columns:minmax(0,1.28fr) minmax(260px,.72fr);grid-template-rows:1fr 1fr;gap:22px;margin-top:52px}
.isola-gallery__item{position:relative;margin:0;overflow:hidden;background:linear-gradient(140deg,#c8cec8,#8d9992);background-image:var(--gallery-image);background-size:cover;background-position:center}
.isola-gallery__item:after{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.22);pointer-events:none}
.isola-gallery__item--large{grid-row:1 / span 2;min-height:720px}
.isola-gallery__item--top{min-height:348px}
.isola-gallery__item--bottom{min-height:348px}
.isola-gallery__footer{margin-top:30px;display:flex;justify-content:flex-start}
@media(min-width:768px){.isola-gallery__item{transition:transform .6s cubic-bezier(.2,.65,.3,1),filter .35s ease}.isola-gallery__item:hover{transform:scale(1.015);filter:saturate(1.03)}}
@media(max-width:767px){.isola-gallery__head{max-width:none}.isola-gallery__lead{font-size:13px;line-height:1.9}.isola-gallery__grid{grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:14px;margin-top:34px}.isola-gallery__item--large{grid-column:1 / -1;grid-row:auto;min-height:0;aspect-ratio:4 / 3}.isola-gallery__item--top,.isola-gallery__item--bottom{min-height:0;aspect-ratio:1 / 1.08}.isola-gallery__footer{margin-top:20px}}


/* ==========================================================
   beta.24 — restore random-size gallery with white captions
========================================================== */
.isola-gallery{background:#fff}
.isola-gallery__head{max-width:920px}
.isola-gallery__lead{max-width:720px;margin:0;font-size:14px;line-height:2;color:var(--muted)}
.isola-gallery__grid{display:grid;grid-template-columns:1.05fr .95fr;grid-template-rows:250px 210px 280px;gap:18px;margin-top:52px}
.isola-gallery__item{position:relative;margin:0;overflow:hidden;min-height:220px;background:linear-gradient(140deg,#c8cec8,#8d9992);background-image:var(--gallery-image);background-size:cover;background-position:center;border-radius:2px}
.isola-gallery__item:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,16,18,.08) 0%,rgba(8,16,18,.16) 35%,rgba(8,16,18,.4) 100%)}
.isola-gallery__item:after{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.18);pointer-events:none}
.isola-gallery__item--morning{grid-column:1;grid-row:1 / span 2;min-height:478px}
.isola-gallery__item--meal{grid-column:2;grid-row:1;min-height:250px}
.isola-gallery__item--stay{grid-column:1 / span 2;grid-row:3;min-height:280px}
.isola-gallery__caption{position:absolute;left:24px;bottom:22px;z-index:2;display:flex;flex-direction:column;gap:6px;color:#fff}
.isola-gallery__caption-en{font-size:11px;letter-spacing:.22em;line-height:1;text-transform:uppercase;opacity:.94}
.isola-gallery__caption-ja{font-family:var(--font-serif);font-size:24px;font-weight:400;line-height:1.25;letter-spacing:.06em}
@media(min-width:768px){.isola-gallery__item{transition:transform .6s cubic-bezier(.2,.65,.3,1),filter .35s ease}.isola-gallery__item:hover{transform:translateY(-4px);filter:saturate(1.04)}}
@media(max-width:767px){.isola-gallery__lead{font-size:13px;line-height:1.9}.isola-gallery__grid{grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto;gap:12px;margin-top:34px}.isola-gallery__item{min-height:0}.isola-gallery__item--morning{grid-column:1 / -1;grid-row:1;aspect-ratio:4 / 5}.isola-gallery__item--meal{grid-column:1;grid-row:2;aspect-ratio:1 / 1.18}.isola-gallery__item--stay{grid-column:2;grid-row:2;aspect-ratio:1 / 1.18}.isola-gallery__caption{left:16px;bottom:16px;gap:5px}.isola-gallery__caption-en{font-size:10px;letter-spacing:.18em}.isola-gallery__caption-ja{font-size:18px}}


/* ==========================================================
   beta.25 — 4-image editorial gallery
   PC / Tablet / Mobile stable layout
========================================================== */
.isola-gallery {
  background: #fff;
}

.isola-gallery__head {
  max-width: 920px;
}

.isola-gallery__grid {
  display: grid;
  grid-template-columns: 1.08fr 0.92fr;
  grid-template-rows: 250px 250px 250px;
  gap: 18px;
  margin-top: 52px;
}

.isola-gallery__item {
  position: relative;
  overflow: hidden;
  margin: 0;
  min-height: 220px;
  border-radius: 2px;
  background: linear-gradient(140deg, #c8cec8, #8d9992);
  background-image: var(--gallery-image);
  background-size: cover;
  background-position: center;
}

.isola-gallery__item::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(8, 16, 18, 0.06) 0%,
    rgba(8, 16, 18, 0.14) 42%,
    rgba(8, 16, 18, 0.42) 100%
  );
}

.isola-gallery__item::after {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid rgba(255, 255, 255, 0.16);
  pointer-events: none;
}

/* PC */
.isola-gallery__item--morning {
  grid-column: 1;
  grid-row: 1 / span 2;
}

.isola-gallery__item--meal {
  grid-column: 2;
  grid-row: 1;
}

.isola-gallery__item--stay {
  grid-column: 2;
  grid-row: 2;
}

.isola-gallery__item--sunset {
  grid-column: 1 / span 2;
  grid-row: 3;
}

.isola-gallery__caption {
  position: absolute;
  left: 24px;
  bottom: 22px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 6px;
  color: #fff;
}

.isola-gallery__caption-en {
  font-family: var(--sans);
  font-size: 11px;
  line-height: 1;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  opacity: 0.95;
}

.isola-gallery__caption-ja {
  font-family: var(--serif);
  font-size: 24px;
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: 0.06em;
}

@media (min-width: 768px) {
  .isola-gallery__item {
    transition:
      transform .6s cubic-bezier(.2,.65,.3,1),
      filter .35s ease;
  }

  .isola-gallery__item:hover {
    transform: translateY(-4px);
    filter: saturate(1.04);
  }
}

/* Tablet */
@media (max-width: 1024px) and (min-width: 768px) {
  .isola-gallery__grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 220px 220px 220px;
    gap: 16px;
  }

  .isola-gallery__caption-ja {
    font-size: 20px;
  }
}

/* Mobile */
@media (max-width: 767px) {
  .isola-gallery__grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto auto;
    gap: 12px;
    margin-top: 34px;
  }

  .isola-gallery__item {
    min-height: 0;
  }

  .isola-gallery__item--morning {
    grid-column: 1 / -1;
    grid-row: 1;
    aspect-ratio: 4 / 5;
  }

  .isola-gallery__item--meal {
    grid-column: 1;
    grid-row: 2;
    aspect-ratio: 1 / 1.15;
  }

  .isola-gallery__item--stay {
    grid-column: 2;
    grid-row: 2;
    aspect-ratio: 1 / 1.15;
  }

  .isola-gallery__item--sunset {
    grid-column: 1 / -1;
    grid-row: 3;
    aspect-ratio: 16 / 9;
  }

  .isola-gallery__caption {
    left: 16px;
    bottom: 16px;
    gap: 4px;
  }

  .isola-gallery__caption-en {
    font-size: 10px;
    letter-spacing: 0.18em;
  }

  .isola-gallery__caption-ja {
    font-size: 18px;
  }
}


/* ==========================================================
   beta.28 — remove NEWS bottom CTA and tighten footer join
========================================================== */
.isola-news__more,
.isola-news__footer,
.isola-home-news__more {
  display: none !important;
}

.isola-news {
  padding-bottom: 48px !important;
  margin-bottom: 0 !important;
}

.isola-footer {
  margin-top: 0 !important;
}

@media (max-width: 767px) {
  .isola-news {
    padding-bottom: 28px !important;
  }
}


/* ==========================================================
   beta.31 — hero / gallery / cards premium motion
========================================================== */
@keyframes isolaHeroCopyIn{
  from{opacity:0;transform:translateY(24px)}
  to{opacity:1;transform:none}
}
@keyframes isolaHeroImageDrift{
  from{transform:scale(1.045)}
  to{transform:scale(1.012)}
}

.isola-hero:before{
  animation:isolaHeroImageDrift 3.2s var(--isola-ease-lux) both;
}
.isola-hero__label,
.isola-hero__en,
.isola-hero__ja,
.isola-hero__reserve{
  opacity:0;
  animation:isolaHeroCopyIn 1.15s var(--isola-ease-lux) forwards;
}
.isola-hero__label{animation-delay:.18s}
.isola-hero__en{animation-delay:.29s}
.isola-hero__ja{animation-delay:.42s}
.isola-hero__reserve{animation-delay:.56s}

/* Gallery: captions appear after the image */
.isola-gallery__item .isola-gallery__caption{
  opacity:0;
  transform:translateY(10px);
}
.isola-gallery__item.is-inview .isola-gallery__caption{
  opacity:1;
  transform:none;
  transition-delay:.32s;
}

/* quiet hover, not zoom-heavy */
@media(hover:hover) and (pointer:fine){
  .isola-gallery__item{
    transition:
      transform .75s var(--isola-ease-lux),
      filter .6s ease;
  }
  .isola-gallery__item:hover{
    transform:translateY(-3px);
    filter:saturate(1.03) brightness(1.01);
  }
  .isola-stay-card{
    transition:
      transform .75s var(--isola-ease-lux),
      box-shadow .75s var(--isola-ease-lux);
  }
  .isola-stay-card:hover{
    transform:translateY(-5px);
    box-shadow:0 24px 70px rgba(38,45,42,.07);
  }
}

/* elegant empty NEWS state */
.isola-news-empty{
  padding:42px 0 46px;
  border-bottom:1px solid var(--line);
}
.isola-news-empty span{
  display:block;
  margin-bottom:10px;
  font-family:var(--sans);
  font-size:9px;
  letter-spacing:.24em;
  color:var(--muted);
}
.isola-news-empty p{
  margin:0;
  font-size:14px;
  line-height:1.9;
}

@media(prefers-reduced-motion:reduce){
  .isola-hero:before,
  .isola-hero__label,
  .isola-hero__en,
  .isola-hero__ja,
  .isola-hero__reserve{
    animation:none!important;
    opacity:1!important;
    transform:none!important;
  }
}


/* ==========================================================
   beta.35 carry-forward — tablet / landscape FV overlap fix
========================================================== */
@media (min-width:768px) and (max-width:1180px) and (max-height:820px) {
  .isola-hero__content {
    width:calc(100% - 64px);
    margin-bottom:4.5vh !important;
    padding-right:64px;
  }
  .isola-hero__en{
    max-width:760px;
    font-size:clamp(48px,6.1vw,68px);
    line-height:1.03;
  }
  .isola-hero__reserve{
    width:min(760px,82%);
    margin-top:24px;
    padding:17px 28px;
  }
}


/* ==========================================================
   beta.55 — HOME FV label / header collision fix
   Keep the small ISOLA RESORT label on normal portrait/desktop,
   but hide it on short landscape/tablet views where it collides
   visually with the transparent header logo.
========================================================== */
@media (min-width:768px) and (max-height:820px){
  body.home .isola-hero__label{
    display:none !important;
  }

  body.home .isola-hero__en{
    margin-top:0 !important;
  }
}

/* Preserve the intended small label on phones and taller screens. */
@media (max-width:767px), (min-height:821px){
  body.home .isola-hero__label{
    display:block;
  }
}
