:root{
  --ink:#18191B;
  --gold:#d3bd98;
  --gold-deep:#7a6136;
  --gray:#f4f4f4;
  --border:#ececec;
  --text:#404040;
  --text-soft:#666;
  --link:#1a5fb4;
  --link-hover:#124d8c;
  --font-heading: Georgia, "Hiragino Mincho ProN", "Yu Mincho", serif;
  --font-body: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --site-header-h: 62px;
  --news-stick-h: 80px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;overflow-x:clip;}
body{margin:0;font-family:var(--font-body);font-weight:300;color:var(--text);font-size:17px;line-height:1.9;background:#fff;letter-spacing:.02em;overflow-x:hidden;overflow-x:clip;max-width:100%;}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
.container{max-width:1120px;margin:0 auto;padding:0 24px;}

/* Header / Nav */
.site-header{position:sticky;top:0;left:0;right:0;z-index:100;width:100%;background:var(--ink);border-bottom:1px solid #333;overflow:visible;}
.nav-bar{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 24px;min-height:var(--site-header-h);max-width:1120px;width:100%;margin:0 auto;box-sizing:border-box;overflow:visible;}
.nav-bar .logo{display:flex;align-items:center;}
.nav-bar .logo img{height:38px;width:auto;max-width:none;object-fit:contain;}
.nav-toggle{display:none;}
.nav-toggle-label{display:none;cursor:pointer;padding:10px;margin:-10px -10px -10px 0;}
.nav-toggle-label span:not(.sr-only),.nav-toggle-label span:not(.sr-only)::before,.nav-toggle-label span:not(.sr-only)::after{display:block;width:24px;height:2px;background:#fff;position:relative;transition:.2s;border-radius:1px;}
.nav-toggle-label span:not(.sr-only)::before,.nav-toggle-label span:not(.sr-only)::after{content:"";position:absolute;left:0;}
.nav-toggle-label span:not(.sr-only)::before{top:-8px;}
.nav-toggle-label span:not(.sr-only)::after{top:8px;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.main-nav{min-width:0;margin-left:auto;overflow:visible;}
.main-nav ul{list-style:none;margin:0;padding:0;}
.main-nav > ul{display:flex;gap:4px;justify-content:flex-end;}
.main-nav > ul > li{position:relative;flex-shrink:0;}
.main-nav .sub ul{display:block;}
.main-nav > ul > li:hover,.main-nav > ul > li:focus-within{z-index:120;}
.main-nav a{display:block;padding:20px 8px;text-decoration:none;color:#fff;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;transition:color .3s;}
.main-nav a:hover,.main-nav a:focus{color:var(--gold);}
.main-nav .sub{display:none;position:absolute;top:100%;left:0;right:auto;background:rgba(24,25,27,.97);min-width:220px;padding:12px 0 8px;z-index:110;}
.main-nav li:hover > .sub,.main-nav li:focus-within > .sub{display:block;}
.main-nav .sub a{padding:11px 18px;font-size:11.5px;letter-spacing:.1em;color:#ddd;text-transform:none;}
.main-nav .sub a:hover{background:#2a2b2d;color:var(--gold);}
.main-nav .sub .sub-group-label{padding:14px 18px 6px;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-deep);pointer-events:none;user-select:none;}
.main-nav .sub .sub-group-label:first-child{padding-top:8px;}
.main-nav .sub .sub-group-label + .sub-group-label{margin-top:4px;border-top:1px solid #3a3b3d;padding-top:14px;}
.main-nav .current > a,.main-nav li.current > .nav-top-link{color:var(--gold);}
.main-nav li.current > .nav-sub-label{color:var(--gold);}
.nav-has-sub > .nav-sub-check{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.nav-has-sub > .nav-sub-label,.nav-has-sub > .nav-top-link{display:none;}

@media (max-width:1140px){
  .nav-bar{padding:14px 20px;min-height:var(--site-header-h);}
  .nav-bar .logo img{height:42px;}
  .nav-toggle-label{display:block;flex-shrink:0;padding:12px;margin:-12px -8px -12px 0;}
  .nav-toggle-label span:not(.sr-only),.nav-toggle-label span:not(.sr-only)::before,.nav-toggle-label span:not(.sr-only)::after{width:26px;height:2px;}
  .nav-toggle-label span:not(.sr-only)::before{top:-9px;}
  .nav-toggle-label span:not(.sr-only)::after{top:9px;}
  .main-nav{display:none;position:absolute;top:100%;left:0;right:0;width:100%;background:var(--ink);border-bottom:1px solid #333;max-height:min(80vh,720px);overflow:auto;margin-left:0;-webkit-overflow-scrolling:touch;}
  .main-nav > ul{flex-direction:column;gap:0;padding:8px 20px 16px;justify-content:flex-start;width:100%;box-sizing:border-box;}
  .main-nav > ul > li{width:100%;border-bottom:1px solid #2a2b2d;}
  .main-nav > ul > li:last-child{border-bottom:none;}
  .main-nav > ul > li > a:not(.nav-top-link){padding:14px 0;font-size:13px;letter-spacing:.1em;white-space:normal;line-height:1.45;}
  .nav-has-sub > .nav-top-link{display:none;}
  .nav-has-sub > .nav-sub-label{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:14px 0;margin:0;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:#fff;cursor:pointer;box-sizing:border-box;}
  .nav-sub-chevron{flex-shrink:0;width:8px;height:8px;border-right:2px solid #bbb;border-bottom:2px solid #bbb;transform:rotate(45deg);transition:transform .2s ease,margin .2s ease;margin-top:-3px;}
  .nav-has-sub > .nav-sub-check:checked + .nav-sub-label{color:var(--gold);}
  .nav-has-sub > .nav-sub-check:checked + .nav-sub-label .nav-sub-chevron{transform:rotate(-135deg);margin-top:3px;}
  .main-nav li:hover > .sub,.main-nav li:focus-within > .sub{display:none;}
  .main-nav .sub{position:static;display:none;padding:10px 0 10px;margin:0;background:transparent;min-width:0;border-left:2px solid #3a3b3d;margin-left:4px;}
  .nav-has-sub > .nav-sub-check:checked ~ .sub.sub-grid{display:grid;}
  .nav-has-sub > .nav-sub-check:checked ~ .sub.sub-cols{display:flex;}
  .main-nav .sub.sub-grid{grid-template-columns:1fr 1fr;column-gap:10px;row-gap:2px;align-content:start;}
  .main-nav .sub.sub-grid > .sub-group-label{grid-column:1 / -1;}
  .main-nav .sub.sub-cols{flex-direction:row;align-items:flex-start;gap:10px 12px;padding:0 0 12px 6px;}
  .main-nav .sub.sub-cols > .sub-col{flex:1;min-width:0;list-style:none;}
  .main-nav .sub.sub-cols .sub-col-list{list-style:none;margin:0;padding:0;}
  .main-nav .sub a{padding:8px 8px 8px 12px;font-size:12px;letter-spacing:.02em;line-height:1.4;}
  .main-nav .sub .sub-group-label{padding:8px 8px 4px 12px;font-size:10px;}
  .main-nav .sub.sub-cols .sub-col-list .sub-group-label:first-child{padding-top:4px;}
  .nav-toggle:checked ~ .main-nav{display:block;}
}

@media (min-width:1141px){
  .nav-has-sub > .nav-sub-check,.nav-has-sub > .nav-sub-label{display:none!important;}
  .nav-has-sub > .nav-top-link{display:block;}
  .main-nav .sub.sub-cols > .sub-col{display:block;}
  .main-nav .sub.sub-cols > .sub-col + .sub-col{margin-top:4px;border-top:1px solid #3a3b3d;padding-top:4px;}
  .main-nav .sub.sub-cols .sub-col-list{display:block;margin:0;padding:0;}
}

/* Buttons */
.btn{display:inline-block;max-width:100%;padding:10px 30px;font-size:12px;line-height:1.6;letter-spacing:.12em;text-align:center;text-transform:uppercase;border:2px solid transparent;transition:opacity .3s ease;margin:6px 8px 0 0;white-space:normal;}
.btn:hover{opacity:.65;}
.btn-dark{background:var(--ink);border-color:var(--ink);color:#fff;}
.btn-gold{background:var(--gold);border-color:var(--gold);color:#18191B;}
.btn-outline{background:transparent;border-color:rgba(255,255,255,.8);color:#fff;}
.btn-outline-dark{background:transparent;border-color:var(--ink);color:var(--ink);}

/* Breadcrumb */
.breadcrumb{padding:14px 0;font-size:11.5px;letter-spacing:.05em;color:var(--text-soft);background:var(--gray);}
.breadcrumb a{color:var(--text-soft);}
.breadcrumb a:hover{color:var(--ink);}

/* Hero */
.hero{position:relative;padding:150px 0 110px;overflow:hidden;color:#fff;text-align:center;text-shadow:0 1px 3px rgba(0,0,0,.35);
  background-image:linear-gradient(rgba(0,0,0,.4),rgba(0,0,0,.4));
  background-size:cover;background-position:center;background-repeat:no-repeat;}
.hero-home{background-image:linear-gradient(rgba(0,0,0,.4),rgba(0,0,0,.4)),url("../img/villa-overview-private-pool-hero.webp");}
.hero-floating-breakfast{background-image:linear-gradient(rgba(0,0,0,.4),rgba(0,0,0,.4)),url("../img/vab-floating-breakfast.webp");}
.hero-official-benefits{background-image:linear-gradient(rgba(0,0,0,.4),rgba(0,0,0,.4)),url("../img/villa-exterior.webp");}
.hero-airport-transfer{background-image:linear-gradient(rgba(0,0,0,.4),rgba(0,0,0,.4)),url("../img/resort-lobby-hero.webp");background-position:center 42%;}
.hero-honeymoon{background-image:linear-gradient(rgba(0,0,0,.4),rgba(0,0,0,.4)),url("../img/honeymoon-hero.webp");background-position:center 42%;}
.hero-family{background-image:linear-gradient(rgba(0,0,0,.4),rgba(0,0,0,.4)),url("../img/family-stay-hero.webp");}
.hero-ranking{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/en-grand-pool-villa-01.webp");background-position:center 45%;}
.hero-luxury{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/family-four-bedroom-grand-pool.webp");}
.hero-seminyak{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/seminyak-private-pool-villa-hero.webp");}
.hero-villa-comparison{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/four-bedroom-grand-dining-night-exterior.webp");background-position:center 45%;}
.hero-villa-guide{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/villa-flower-bath-tea-service.webp");background-position:center 45%;}
.hero-breakfast{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/breakfast-american-villa.webp");}
.hero-candlelight-dinner{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/candlelight-dinner-hero.webp");background-position:center bottom;}
.hero-in-villa-dining{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/in-villa-dining-hero.webp");background-position:center 45%;}
.hero-dining{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/dining-restaurant-terrace-lounge.webp");}
.hero-villa{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/villa-page-hero.webp");background-position:center 45%;}
.hero-one-bedroom{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/one-bedroom-private-pool-hero.webp");}
.hero-two-bedroom{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/two-bedroom-private-pool-hero.webp");}
.hero-four-bedroom{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/four-bedroom-grand-pool-evening-hero.webp");background-position:center bottom;}
.hero-room-rate{background-image:linear-gradient(rgba(0,0,0,.46),rgba(0,0,0,.46)),url("../img/en-grand-pool-villa-04.webp");background-position:center 55%;}
.hero-facility-service{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/public-pool-deck-lounge.webp");background-position:center 42%;}
.hero-spa-air{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/spa-air-treatment.webp");background-position:center bottom;}
.hero-spa-stay{background-image:linear-gradient(rgba(0,0,0,.44),rgba(0,0,0,.44)),url("../img/spa-air-treatment-hero.webp");background-position:center 40%;}
.hero-repeat-guest{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/repeat-guest-benefits-hero.webp");background-position:center 40%;}
.hero-ltg-award{background-image:linear-gradient(135deg,rgba(6,18,55,.92),rgba(8,52,94,.75)),url("../img/ltg-award-hero.webp");background-position:center;text-align:left;}
.hero-ltg-award::after{content:"";position:absolute;inset:auto 0 0 0;height:120px;background:linear-gradient(to bottom,rgba(255,255,255,0),#fff);pointer-events:none;}
.hero-ltg-award > .container{position:relative;z-index:1;}
.hero-ltg-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:36px;align-items:center;text-align:left;}
.hero-ltg-grid .lead{margin:0;max-width:none;}
.hero-ltg-badge{display:flex;justify-content:center;align-items:center;}
.hero-ltg-badge img{max-width:360px;width:82%;height:auto;filter:drop-shadow(0 24px 40px rgba(0,0,0,.35));}
.hero-subtle{background-image:linear-gradient(rgba(0,0,0,.48),rgba(0,0,0,.48)),url("../img/villa-exterior.webp");}
.hero-event-wedding{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/event-wedding-hero.webp");background-position:center 42%;}
.hero-event-wedding-page{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/en-wedding-ceremony-01.webp");background-position:center 42%;}
.hero-wedding-package{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/wedding-package-hero.webp");background-position:center 45%;}
.hero-photo-gallery{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/four-bedroom-grand-entrance.webp");background-position:center 42%;}
.hero-photo-gallery-facility{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/resort-reception-night.webp");background-position:center 42%;}
.hero-about{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/resort-pavilion-night-1200.webp");background-position:center 42%;}
.hero-news{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/vab-floating-breakfast.webp");}
.hero-news-compact{background:linear-gradient(135deg,#1a2744,#2d4a6f);padding:72px 0 56px;}
.hero-news-compact .lead{max-width:560px;margin:0 auto;}
.hero-news-all{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/tropical-heliconia.webp");background-position:center 40%;}
.hero-news-resort{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/four-bedroom-grand-night-view.webp");background-position:center 45%;}
.hero-news-event{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/en-intimate-events-garden.webp");background-position:center 40%;}
.hero-news-dining{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/dining-restaurant.webp");background-position:center 40%;}
.hero-news-culture{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/facility-canang-sari-2018.webp");background-position:center 40%;}
.hero-news-spa{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/spa-welcome-frangipani-bowl.webp");background-position:center 40%;}
.hero-news-sustainability{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/seminyak-tropical-garden.webp");background-position:center 40%;}
.hero-news-wedding{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/event-wedding-garden.webp");background-position:center 40%;}
.hero-news-award{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/ltg-award-hero.webp");background-position:center 40%;}
html:has(.news-stick){scroll-padding-top:calc(var(--site-header-h) + var(--news-stick-h) + 12px);}
#news,#archive,#faq,
.spa-air-page #spa-air,
.spa-air-page #spa-popular,
.spa-air-page #spa-menu,
.spa-air-page #spa-benefit,
.spa-air-page #spa-room,
.spa-air-page #spa-booking,
.spa-air-page #faq,
.spa-air-page #spa-transfer{scroll-margin-top:calc(var(--site-header-h) + var(--news-stick-h) + 16px);}
.hero-anniversary-surprise{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/birthday-cake.webp");background-position:center 45%;}
.hero-balinese-dance-dinner{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/dining-balinese-dance.webp");background-position:center 40%;}
.hero-cooking-class{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/dining-cooking-class.webp");}
.hero-canang-sari{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/facility-canang-sari-2018.webp");background-position:center 40%;}
.hero-private-car-charter{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/facility-transfer-car.webp");}
.hero-afternoon-tea{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/one-bedroom-luxury-pool-villa-afternoon-tea.webp");}
.hero-villa-amenities{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/luxury-pool-villa-amenity.webp");background-position:center 45%;}
.hero-public-pool{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/villa-air-bali-mainpool.webp");background-position:center bottom;}
.hero-bike-rental{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/facility-bicycle.webp");background-position:center 40%;}
.hero-pool-net{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/two-bedroom-family-pool-net.webp");}
.hero-resort-gym{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/facility-gym.webp");}
.hero-resort-library{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/resort-library-153.webp");background-position:center 35%;}
/* news-new-article-heroes */
.hero-news-chse-2026{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/en-chse.webp");background-position:center 40%;}
.hero-news-garden-grove-2026{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/en-garden-grove-unleashed-an-evening-of-jazz-romance-and-giving-back-at-villa-air-bali.webp");background-position:center 40%;}
.hero-tabi-no-bigaku{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/tabi-no-bigaku/tabi-no-bigaku-hero.webp");background-position:center 40%;}
/* news-article-heroes */
.hero-earth-day-2026{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/news-earth-day-2026.webp");background-position:center 40%;}
.hero-culinary-delights{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/news-culinary-delights.webp");background-position:center 40%;}
.hero-cultural-immersion{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/news-cultural-immersion.webp");background-position:center 40%;}
.hero-celebrating-odalan{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/news-celebrating-odalan.webp");background-position:center 40%;}
.hero-intimate-events{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/news-intimate-events.webp");background-position:center 40%;}
.hero-nyepi-stay{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/news-nyepi-stay.webp");background-position:center 40%;}
.hero-neera-galerie{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/news-neera-galerie.webp");background-position:center 40%;}
.hero-ayurvedic-spa{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/news-ayurvedic-spa.webp");background-position:center 40%;}
.hero-independence-journey-2023{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/news-independence-journey-2023.webp");background-position:center 40%;}
.hero-eco-mobility{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/news-eco-mobility.webp");background-position:center 40%;}
.hero-weddings-six-reasons{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/news-weddings-six-reasons.webp");background-position:center 40%;}
.hero-tri-hita-karana{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/news-tri-hita-karana.webp");background-position:center 40%;}
.hero-discover-seminyak{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/news-discover-seminyak.webp");background-position:center 40%;}
.hero-hotelscombined-2018{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/news-hotelscombined-2018.webp");background-position:center 40%;}
.hero-independence-day{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/independence-day-cultural-festivities.webp");background-position:center 40%;}
.hero.hero-full{min-height:94vh;display:flex;align-items:center;justify-content:center;}
@media (max-width:768px){
  .hero-home{background-image:linear-gradient(rgba(0,0,0,.4),rgba(0,0,0,.4)),url("../img/villa-overview-private-pool-hero.webp");}
  .hero-floating-breakfast{background-image:linear-gradient(rgba(0,0,0,.4),rgba(0,0,0,.4)),url("../img/vab-floating-breakfast.webp");}
  .hero-official-benefits{background-image:linear-gradient(rgba(0,0,0,.4),rgba(0,0,0,.4)),url("../img/villa-exterior-mobile.webp");}
  .hero-villa{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/villa-page-hero-mobile.webp");}
  .hero-repeat-guest{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/repeat-guest-benefits-hero-mobile.webp");}
  .hero-event-wedding{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/event-wedding-hero-mobile.webp");background-position:center 40%;}
  .hero-event-wedding-page{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/en-wedding-ceremony-01.webp");background-position:center 40%;}
  .hero-wedding-package{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/wedding-package-hero-mobile.webp");background-position:center 40%;}
  .hero-ltg-award{background-image:linear-gradient(135deg,rgba(6,18,55,.92),rgba(8,52,94,.75)),url("../img/ltg-award-hero.webp");text-align:center;}
  .hero-ltg-grid{grid-template-columns:1fr;gap:28px;text-align:center;}
  .hero-ltg-grid .lead{margin-left:auto;margin-right:auto;}
  .hero-ltg-badge{margin-top:8px;}
  .hero-ltg-badge img{max-width:280px;}
  .hero-ltg-award .hero-btns--start{justify-content:center;}
  .hero-airport-transfer{background-image:linear-gradient(rgba(0,0,0,.4),rgba(0,0,0,.4)),url("../img/resort-lobby-hero-mobile.webp");background-position:center 40%;}
  .hero-about{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/resort-pavilion-night-mobile.webp");background-position:center 38%;}
  .hero-news-all{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/tropical-heliconia.webp");background-position:center 40%;}
  .hero-tabi-no-bigaku{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/tabi-no-bigaku/tabi-no-bigaku-hero-mobile.webp");background-position:center 40%;}
  .hero-one-bedroom{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/one-bedroom-private-pool-hero-mobile.webp");}
  .hero-two-bedroom{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/two-bedroom-private-pool-hero-mobile.webp");}
  .hero-four-bedroom{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/four-bedroom-grand-pool-evening-hero-mobile.webp");background-position:center bottom;}
  .four-bedroom-page .hero-four-bedroom{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/four-bedroom-grand-pool-villa-pool.webp");background-position:center 45%;}
  .four-bedroom-page .cta-band.hero-four-bedroom{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/four-bedroom-grand-pool-villa-pool.webp");}
  .hero-dining{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/dining-restaurant-terrace-lounge.webp");}
  .hero-in-villa-dining{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/in-villa-dining-hero-mobile.webp");background-position:center;}
  .hero-candlelight-dinner{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/candlelight-dinner-hero-mobile.webp");background-position:center bottom;}
}
.eyebrow{display:block;margin-bottom:18px;font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-deep);}
.hero .eyebrow,.fb-banner .eyebrow{color:var(--gold);}
.hero h1{margin:0 0 24px;font-family:var(--font-heading);font-weight:400;font-size:clamp(28px,4.6vw,48px);line-height:1.55;letter-spacing:.02em;}
.hero .lead{max-width:640px;margin:0 auto 30px;font-size:17px;line-height:1.9;color:rgba(255,255,255,.94);font-weight:300;}
.hero-features{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 22px;padding:0;margin:0 0 30px;font-size:13px;letter-spacing:.06em;}
.hero-features li{position:relative;padding-left:20px;}
.hero-features li::before{content:"—";position:absolute;left:0;color:var(--gold);}
.hero-btns{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;}
.hero-btns .btn{margin:0;}
/* Subpage hero band — same height as 宿泊プラン・空室料金 (not top / compact / full-bleed) */
main > header.hero:not(.hero-full):not(.hero-news-compact){
  box-sizing:border-box;
  width:100%;
  max-width:100%;
  height:75vh;
  min-height:75vh;
  max-height:75vh;
  padding:0 0 56px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  align-items:stretch;
  background-position:center bottom;
  background-size:cover;
}
main > header.hero:not(.hero-full):not(.hero-news-compact) > .container{width:100%;max-width:1120px;margin:0 auto;padding:0 24px;flex-shrink:0;}
main > header.hero:not(.hero-full):not(.hero-news-compact) h1{margin-bottom:18px;}
main > header.hero:not(.hero-full):not(.hero-news-compact) .lead{margin-bottom:22px;}
main > header.hero:not(.hero-full):not(.hero-news-compact) .hero-features{margin-bottom:20px;}
@media (max-width:768px){
  main > header.hero:not(.hero-full):not(.hero-news-compact){
    height:68vh;
    min-height:68vh;
    max-height:68vh;
    padding:0 0 44px;
  }
  main > header.hero:not(.hero-full):not(.hero-news-compact) h1{margin-bottom:14px;line-height:1.45;}
  main > header.hero:not(.hero-full):not(.hero-news-compact) .lead{margin-bottom:16px;font-size:15px;}
  main > header.hero:not(.hero-full):not(.hero-news-compact) .hero-features{margin-bottom:14px;font-size:12px;gap:6px 14px;}
}

/* Hero fade-up (load) + scroll reveal */
@keyframes fade-up{
  from{opacity:0;transform:translateY(20px);}
  to{opacity:1;transform:none;}
}
.hero .container > .eyebrow,
.hero .container > h1,
.hero .container > .lead,
.hero .container > .hero-features,
.hero .container > .hero-btns{
  opacity:0;
  animation:fade-up .7s var(--ease-out) forwards;
}
.hero .container > .eyebrow{animation-delay:.18s;}
.hero .container > h1{animation-delay:.32s;}
.hero .container > .lead{animation-delay:.44s;}
.hero .container > .hero-features{animation-delay:.52s;}
.hero .container > .hero-btns{animation-delay:.6s;}
.hero .hero-ltg-grid > div{
  opacity:0;
  animation:fade-up .7s var(--ease-out) forwards;
}
.hero .hero-ltg-grid > div:nth-child(1){animation-delay:.22s;}
.hero .hero-ltg-grid > div:nth-child(2){animation-delay:.4s;}

/* Scroll reveal — Omori 同型（.js-reveal + is-visible / js/reveal.js） */
.js-reveal{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .62s var(--ease-out) var(--delay,0s),transform .62s var(--ease-out) var(--delay,0s);
}
.js-reveal.is-visible{opacity:1;transform:none;}

/* Sections */
.section{padding:100px 0;}
.section-gray{background:var(--gray);}
.section-white{background:#fff;border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.section-head{margin-bottom:44px;}
.section-head .eyebrow{margin-bottom:12px;}
.section-head h2{margin:0;font-weight:300;font-size:28px;letter-spacing:.06em;color:var(--ink);}
.section-head p{margin:16px auto 0;max-width:720px;font-weight:300;}
.center{text-align:center;}
.narrow{max-width:880px;}
.award-badge{margin:0 auto 24px;}
.link-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:#fff;border:1px solid var(--border);margin-top:34px;}
.link-grid:has(> :nth-child(3)){grid-template-columns:repeat(3,1fr);}
.link-grid a{display:flex;align-items:center;justify-content:center;min-height:92px;background:#fff;padding:20px;text-align:center;font-size:13px;letter-spacing:.06em;color:var(--link);text-decoration:underline;text-underline-offset:3px;transition:color .3s,background .3s;}
.link-grid a:hover{color:var(--link-hover);background:#f7faff;}
@media (max-width:700px){.link-grid,.link-grid:has(> :nth-child(3)){grid-template-columns:1fr;}}
/* Utility heading style for two-col sections (matches section-head h2 but left-aligned, no eyebrow margin) */
.subhead{font-weight:300;font-size:24px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);margin:0 0 20px;}
.subhead-serif{font-family:var(--font-heading);font-weight:400;font-size:26px;letter-spacing:.02em;text-transform:none;color:var(--ink);margin:0 0 20px;line-height:1.6;}
.text-link{color:var(--link);text-decoration:underline;text-underline-offset:3px;}
.text-link:hover{color:var(--link-hover);}
p .text-link{font-size:inherit;letter-spacing:inherit;text-transform:none;}

.two-col{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center;}
.two-col img,.two-col .img-block img{aspect-ratio:3/2;object-fit:cover;width:100%;height:auto;}
@media (max-width:800px){.two-col{grid-template-columns:1fr;}}
.two-col.reverse{grid-template-columns:1fr 1.1fr;}
@media (max-width:800px){.two-col.reverse{grid-template-columns:1fr;}}
.two-col.reverse .img-block{order:-1;}
@media (max-width:800px){.two-col.reverse .img-block{order:0;}}

/* Villa selector cards */
.villa-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);margin-top:38px;}
@media (max-width:900px){.villa-grid{grid-template-columns:1fr;}}
.villa-card{background:#fff;display:flex;flex-direction:column;}
.villa-card img{width:100%;aspect-ratio:4/3;object-fit:cover;}
.villa-card-body{padding:30px;flex:1;display:flex;flex-direction:column;}
.villa-card .tag{display:inline-block;margin-bottom:12px;padding:3px 12px;border:1px solid var(--gold-deep);color:var(--gold-deep);font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;align-self:flex-start;}
.villa-card h3{margin:0 0 10px;color:var(--ink);font-size:16px;letter-spacing:.08em;font-weight:400;text-transform:uppercase;}
.villa-card p{margin:0 0 20px;font-size:14.5px;font-weight:300;flex:1;}
.villa-card a{margin-top:auto;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--ink);align-self:flex-start;padding-bottom:2px;}
.villa-card a:hover{color:var(--gold-deep);border-color:var(--gold-deep);}
.villa-photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);}
.villa-photo-pair img{width:100%;height:230px;object-fit:cover;display:block;}
.villa-photo-stack{display:grid;grid-template-columns:1fr;gap:1px;background:var(--border);}
.villa-photo-stack img{width:100%;object-fit:cover;display:block;}
.villa-detail-card .villa-card-body{min-height:360px;}
@media (max-width:700px){.villa-photo-pair{grid-template-columns:1fr;}.villa-photo-pair img{height:220px;}}
.villa-detail-grid{grid-template-columns:1fr;gap:24px;background:transparent;}
.villa-detail-grid .villa-detail-card{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);border:1px solid var(--border);}
.villa-detail-grid .villa-card-body{min-height:auto;padding:42px;}
.villa-detail-grid .villa-photo-pair img{height:330px;}
.villa-detail-grid .villa-detail-card>img{width:100%;height:330px;object-fit:cover;}
@media (max-width:900px){.villa-detail-grid .villa-detail-card{grid-template-columns:1fr;}.villa-detail-grid .villa-card-body{padding:30px;}.villa-detail-grid .villa-photo-pair img,.villa-detail-grid .villa-detail-card>img{height:240px;}}
.villa-detail-grid .villa-overview-card{grid-template-columns:1fr 1fr;align-items:stretch;background:#fff;}
.villa-detail-grid .villa-overview-card>img{width:100%;height:100%;object-fit:cover;}
.layout-detail-grid{margin-top:28px;}
.layout-detail-grid .layout-card{grid-template-columns:minmax(0,2fr) minmax(280px,1fr);}
.layout-image{display:flex;align-items:center;min-width:0;overflow:hidden;background:#fff;padding:10px;border-right:1px solid var(--border);}
.layout-image img{display:block;width:100%;max-width:100%;height:auto;object-fit:contain;}
.layout-detail-grid .layout-card .villa-card-body{padding:34px 36px;}
.villa-detail-grid .layout-card>img{object-fit:contain;background:#fff;padding:12px;}
@media (max-width:900px){.villa-detail-grid .villa-overview-card{grid-template-columns:1fr;}.villa-detail-grid .villa-overview-card>img{height:auto;aspect-ratio:3/2;}.layout-detail-grid .layout-card{grid-template-columns:1fr;}.villa-detail-grid .layout-card>img{aspect-ratio:auto;padding:16px;}.layout-image{padding:8px;border-right:0;border-bottom:1px solid var(--border);}.layout-detail-grid .layout-card .villa-card-body{padding:28px 24px;}}
.compare-grid + .section-head{margin-top:48px;}
.photo-gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:32px;}
.photo-gallery-grid img{width:100%;height:260px;object-fit:cover;display:block;}
.photo-gallery-grid.gallery-four{grid-template-columns:repeat(4,1fr);}
@media (max-width:900px){.photo-gallery-grid{grid-template-columns:1fr 1fr;}.photo-gallery-grid.gallery-four{grid-template-columns:repeat(2,1fr);}.photo-gallery-grid img{height:220px;}}
@media (max-width:560px){.photo-gallery-grid{grid-template-columns:1fr;}.villa-detail-page .photo-gallery-grid{grid-template-columns:repeat(2,1fr);}.villa-detail-page .photo-gallery-grid img{height:180px;}}
.wedding-report-page .photo-gallery-grid img.gallery-img--portrait{height:480px;}
.wedding-report-page .photo-gallery-grid.wedding-report-portrait-grid img{height:520px;}
@media (max-width:900px){.wedding-report-page .photo-gallery-grid img.gallery-img--portrait{height:400px;}.wedding-report-page .photo-gallery-grid.wedding-report-portrait-grid img{height:440px;}}
@media (max-width:560px){.wedding-report-page .photo-gallery-grid img.gallery-img--portrait,.wedding-report-page .photo-gallery-grid.wedding-report-portrait-grid img{height:auto;aspect-ratio:3/4;max-height:min(72vh,640px);}}
.villa-detail-page .villa-detail-grid{gap:0;margin-top:26px;}
.villa-detail-page .villa-detail-grid + .compare-grid{margin-top:0;}
.villa-detail-page .compare-grid + .layout-detail-grid{margin-top:0;}
.villa-detail-page .layout-detail-grid + .photo-gallery-grid{margin-top:0;}
.villa-detail-page .photo-gallery-grid{gap:1px;background:var(--border);}
.image-note{max-width:720px;margin:-20px auto 34px;text-align:center;font-size:13px;color:var(--text-soft);}

/* Lists */
.check-list{list-style:none;margin:26px 0 0;padding:0;}
.check-list li{position:relative;padding-left:24px;margin-bottom:10px;font-weight:300;}
.check-list li::before{content:"—";position:absolute;left:0;top:0;color:var(--gold-deep);}
.check-list-narrow{max-width:560px;margin:0 auto;}
.check-list-card{margin:0;}
.compare-card .check-list-card li{margin-bottom:10px;font-size:15px;font-weight:300;line-height:1.75;}
.compare-card .check-list-card li:last-child{margin-bottom:0;}
.transfer-info-list{list-style:none;margin:0;padding:0;}
.transfer-info-list li{position:relative;padding-left:24px;margin-bottom:8px;font-size:15px;font-weight:300;line-height:1.65;}
.transfer-info-list li::before{content:"—";position:absolute;left:0;top:0;color:var(--gold-deep);}
.transfer-info-list li:last-child{margin-bottom:0;}
.transfer-info-key{font-weight:400;color:var(--ink);}
.section-transfer-booking{padding:70px 0;}
.section-transfer-booking .section-head{margin-bottom:30px;}
.section-transfer-booking .section-head p{margin-top:12px;}
.section-transfer-booking .compare-grid{max-width:960px;margin-left:auto;margin-right:auto;gap:14px;background:transparent;}
.section-transfer-booking .compare-card{border:1px solid var(--border);}
.section-transfer-booking .info-box{margin-top:22px;padding:20px 24px;max-width:960px;margin-left:auto;margin-right:auto;}
.section-transfer-booking .hub-back-link{max-width:960px;margin:22px auto 0;}
.repeat-benefits-grid{max-width:1080px;margin-left:auto;margin-right:auto;}
.price{font-size:1.28rem;font-weight:500;color:var(--gold-deep);letter-spacing:.04em;}

.basic-benefits-cards{gap:14px;background:transparent;margin-top:0;}
.basic-benefits-cards .compare-card{border:1px solid var(--border);}
.basic-benefits-cards .compare-card h3{margin-bottom:0;}
.basic-benefits-cards .compare-card p{margin:10px 0 0;font-size:14px;}
.basic-benefits-cards .compare-card--media img{aspect-ratio:3/2;}
.basic-benefits-cards .compare-card--media .compare-card-inner{padding:22px 24px 26px;}
.basic-benefits-cards .compare-card--media .tag{margin-bottom:10px;}
.benefit-grid{list-style:none;margin:34px auto 0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:14px 32px;max-width:900px;text-align:left;}
@media (max-width:700px){.benefit-grid{grid-template-columns:1fr;}}
.benefit-grid li{position:relative;padding-left:24px;font-size:15px;font-weight:300;}
.benefit-grid li::before{content:"—";position:absolute;left:0;top:0;color:var(--gold-deep);}
.basic-benefits-panel{margin-top:56px;padding:42px 36px;background:#fff;border:1px solid var(--border);}
.basic-benefits-panel .benefit-grid{margin-top:24px;}
.room-rate-page .basic-benefits-floating{margin-bottom:42px;align-items:center;}
.room-rate-page .basic-benefits-panel{margin-top:34px;}
.room-rate-page .basic-benefits-panel .subhead-serif{margin:0 0 18px;font-size:22px;}
.room-rate-page .booking-details{max-width:820px;margin:38px auto 0;}
.room-rate-page .booking-details .subhead-serif{margin:28px 0 14px;font-size:20px;}
.room-rate-page .booking-details .subhead-serif:first-child{margin-top:0;}
.room-rate-page .booking-details p{font-weight:300;line-height:1.85;}
.room-rate-page .benefit-grid a{color:var(--link);text-decoration:underline;text-underline-offset:3px;}
.room-rate-page .benefit-grid a:hover{color:var(--link-hover);}
.basic-benefits-panel a{color:var(--gold-deep);text-decoration:underline;text-underline-offset:4px;}
.benefit-footnote{max-width:900px;margin:28px auto 0;font-size:13px;line-height:1.9;color:var(--text-soft);}
@media (max-width:700px){.basic-benefits-panel{padding:32px 22px;}}

.ol-list{counter-reset:num;list-style:none;margin:26px 0 0;padding:0;}
.ol-list li{position:relative;padding-left:34px;margin-bottom:16px;font-weight:300;}
.ol-list li::before{counter-increment:num;content:counter(num);position:absolute;left:0;top:-1px;width:22px;height:22px;border:1px solid var(--gold-deep);color:var(--gold-deep);font-size:12px;line-height:20px;text-align:center;}

.discount-badge{display:inline-block;margin-top:6px;padding:4px 14px;background:var(--gold);color:var(--ink);font-size:13px;font-weight:400;letter-spacing:.05em;}

/* Stay type / comparison cards */
.stay-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);margin-top:38px;}
.stay-grid.stay-grid-two{grid-template-columns:repeat(2,1fr);}
@media (max-width:900px){.stay-grid{grid-template-columns:1fr;}}
.stay-card{position:relative;overflow:hidden;min-height:320px;display:flex;align-items:flex-end;color:#fff;}
.stay-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.stay-card::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.85),rgba(0,0,0,.1));z-index:1;}
.stay-card-body{position:relative;z-index:2;padding:28px;}
.stay-card .tag{display:inline-block;margin-bottom:10px;padding:3px 12px;border:1px solid var(--gold);color:var(--gold);font-size:10px;letter-spacing:.15em;text-transform:uppercase;}
.stay-card h3{margin:0 0 8px;font-size:17px;font-weight:400;letter-spacing:.06em;text-transform:uppercase;}
.stay-card p{margin:0 0 14px;font-size:14px;font-weight:300;color:rgba(255,255,255,.9);}
.stay-card a{color:#fff;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.7);padding-bottom:2px;}
.stay-card .text-link{color:#fff;text-decoration:underline;text-underline-offset:3px;}
.villa-type-anchors{margin-top:54px;}
.villa-type-anchors .stay-card{text-decoration:none;}
.villa-type-anchors .stay-card h3{font-size:16px;text-transform:none;letter-spacing:.06em;}
.stay-card-meta{margin:0 0 6px!important;font-size:13px;font-weight:400;letter-spacing:.08em;color:var(--gold);}
.villa-summary-table{margin-top:36px;}
.villa-type-table{min-width:760px;table-layout:fixed;}
.villa-type-table .villa-type-item-col{width:120px;}
.villa-type-table th{white-space:nowrap;font-size:16px;font-weight:600;letter-spacing:.04em;text-transform:none;}
.villa-type-table th:not(:first-child){font-size:18px;font-weight:700;letter-spacing:.05em;line-height:1.45;}
.villa-type-table th:first-child{background:#fafafa;color:var(--ink);font-size:14px;font-weight:400;}
.villa-type-table td:first-child{background:#fafafa;color:var(--ink);font-size:14px;font-weight:400;}

/* One-bedroom page: sticky nav, section CTA, compact specs */
.villa-type-nav{position:sticky;top:var(--site-header-h);z-index:90;background:#fff;border-top:1px solid var(--border);border-bottom:1px solid var(--border);box-shadow:0 6px 18px rgba(0,0,0,.04);}
.villa-type-nav-inner{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px 20px;padding:24px 0 22px;scrollbar-width:thin;-webkit-overflow-scrolling:touch;}
.villa-type-nav-label{flex:0 0 auto;font-size:11px;letter-spacing:.14em;color:var(--gold-deep);padding-right:14px;border-right:1px solid var(--border);}
.villa-type-nav-link{flex:0 0 auto;padding:6px 4px;font-size:14px;font-weight:500;letter-spacing:.04em;color:var(--ink);text-decoration:none;border-bottom:1px solid transparent;white-space:nowrap;transition:color .3s,border-color .3s;}
.villa-type-nav-link:hover{color:var(--gold-deep);border-bottom-color:var(--gold-deep);}
@media (max-width:900px){
  .villa-type-nav .villa-type-nav-inner{
    justify-content:flex-start;
    flex-wrap:nowrap;
    overflow-x:scroll;
    overflow-y:hidden;
    max-width:none;
    margin:0;
    padding:22px 24px 16px;
    gap:14px;
    -webkit-overflow-scrolling:touch;
    scrollbar-gutter:stable;
    scrollbar-width:thin;
    scrollbar-color:#9b7a4a #e6e1d8;
  }
  .villa-type-nav .villa-type-nav-inner::-webkit-scrollbar{height:10px;}
  .villa-type-nav .villa-type-nav-inner::-webkit-scrollbar-track{background:#e6e1d8;}
  .villa-type-nav .villa-type-nav-inner::-webkit-scrollbar-thumb{background:#9b7a4a;border-radius:0;}
  .villa-type-nav-label{flex:0 0 auto;padding-right:10px;font-size:10px;}
  .villa-type-nav-link{padding:6px 10px;font-size:13px;}
}

.villa-section-cta{margin-top:40px;padding:34px 28px;text-align:center;background:#fff;border:1px solid var(--border);}
.section-gray .villa-section-cta{background:var(--gray);}
.villa-section-cta-lead{max-width:680px;margin:0 auto 18px;font-size:15px;font-weight:300;line-height:1.85;color:var(--text-soft);}
.villa-section-cta-btns{justify-content:center;gap:12px;}
.villa-section-cta-btns .btn{margin:0;}

.villa-detail-page .plan-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--border);margin-top:10px;max-width:960px;margin-left:auto;margin-right:auto;}
.room-rate-page .plan-grid,.home-page .plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);margin-top:10px;}
@media (max-width:700px){.villa-detail-page .plan-grid{grid-template-columns:1fr;max-width:none;}}
@media (max-width:900px){.room-rate-page .plan-grid,.home-page .plan-grid{grid-template-columns:1fr;}}
.villa-detail-page .plan-card,.room-rate-page .plan-card,.spa-stay-page .plan-card,.home-page .plan-card{background:#fff;display:flex;flex-direction:column;min-height:100%;}
.villa-detail-page .plan-card-image,.room-rate-page .plan-card-image,.spa-stay-page .plan-card-image,.home-page .plan-card-image{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;flex-shrink:0;}
.villa-detail-page .plan-card-body,.room-rate-page .plan-card-body,.spa-stay-page .plan-card-body,.home-page .plan-card-body{padding:28px 30px 32px;flex:1;display:flex;flex-direction:column;}
.villa-detail-page .plan-card .tag,.room-rate-page .plan-card .tag,.spa-stay-page .plan-card .tag,.home-page .plan-card .tag{display:inline-block;margin-bottom:12px;padding:3px 12px;border:1px solid var(--gold-deep);color:var(--gold-deep);font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;align-self:flex-start;}
.villa-detail-page .plan-card h3,.room-rate-page .plan-card h3,.spa-stay-page .plan-card h3,.home-page .plan-card h3{margin:0 0 8px;color:var(--ink);font-size:16px;line-height:1.45;letter-spacing:.06em;font-weight:400;text-transform:none;}
.villa-detail-page .plan-card-sub,.room-rate-page .plan-card-sub,.spa-stay-page .plan-card-sub,.home-page .plan-card-sub{margin:0 0 12px;font-size:13px;line-height:1.5;font-weight:400;color:var(--gold-deep);letter-spacing:.04em;}
.villa-detail-page .plan-card-lead,.room-rate-page .plan-card-lead,.spa-stay-page .plan-card-lead,.home-page .plan-card-lead{margin:0 0 14px;font-size:14.5px;line-height:1.75;font-weight:300;flex:1;}
.villa-detail-page .plan-card-rate,.room-rate-page .plan-card-rate,.spa-stay-page .plan-card-rate,.home-page .plan-card-rate{margin:0 0 20px;font-family:var(--font-heading);font-size:15px;line-height:1.65;color:var(--gold-deep);letter-spacing:.02em;font-weight:400;}
.villa-detail-page .plan-card a,.room-rate-page .plan-card a,.spa-stay-page .plan-card a,.home-page .plan-card a{margin-top:auto;font-size:12px;letter-spacing:.08em;text-transform:none;color:var(--ink);border-bottom:1px solid var(--ink);align-self:flex-start;padding-bottom:2px;}
.villa-detail-page .plan-card a:hover,.room-rate-page .plan-card a:hover,.spa-stay-page .plan-card a:hover,.home-page .plan-card a:hover{color:var(--gold-deep);border-color:var(--gold-deep);}
.villa-detail-page .plan-grid + .benefit-footnote,.room-rate-page .plan-grid + .benefit-footnote,.home-page .plan-grid + .benefit-footnote{margin-top:28px;}
.home-page .home-awards{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap;margin-top:28px;}
.home-page .home-awards a{display:flex;align-items:center;justify-content:center;width:110px;min-height:110px;padding:10px;border:1px solid var(--border);background:#fff;text-decoration:none;transition:border-color .3s,opacity .3s;}
.home-page .home-awards a:hover{border-color:var(--gold-deep);opacity:.85;}
.home-page .home-awards img{display:block;max-width:84px;height:auto;}
.home-page .home-awards a:first-child img{max-width:78px;}
.home-page .dining-experience-links{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:18px;}
.home-page .dining-experience-links a{font-size:13px;letter-spacing:.06em;color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:2px;}
.home-page .dining-experience-links a:hover{color:var(--gold-deep);border-color:var(--gold-deep);}
.benefit-footnote.center{text-align:center;}
.content-image{max-width:960px;width:100%;height:auto;display:block;margin:0 auto;}
.content-image-pair{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--border);max-width:960px;margin:34px auto 0;}
.content-image-pair img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;}
@media (max-width:700px){.content-image-pair{grid-template-columns:1fr;}}
.room-rate-page .two-col .villa-photo-pair img{height:280px;}
.room-rate-page .two-col .villa-photo-stack img{height:280px;}
@media (max-width:700px){.room-rate-page .two-col .villa-photo-pair img,.room-rate-page .two-col .villa-photo-stack img{height:220px;}}
.villa-detail-page #recommended-plans{scroll-margin-top:96px;}
.villa-detail-page .plan-notes{max-width:820px;margin:28px auto 0;padding:24px 28px;background:var(--gray);border-left:3px solid var(--gold);}
.villa-detail-page .plan-notes-list{list-style:none;margin:0;padding:0;}
.villa-detail-page .plan-notes-list li{position:relative;padding-left:20px;margin-bottom:10px;font-size:14px;line-height:1.85;color:var(--text-soft);font-weight:300;}
.villa-detail-page .plan-notes-list li::before{content:"—";position:absolute;left:0;color:var(--gold-deep);}
.villa-detail-page .plan-notes-list li:last-child{margin-bottom:0;}
.villa-detail-page .plan-notes-list a{color:var(--link);text-decoration:underline;text-underline-offset:3px;}
.villa-detail-page .plan-notes-list a:hover{color:var(--link-hover);}
.villa-detail-page .plan-notes-short-stay{margin:16px 0 0;padding-top:16px;border-top:1px solid var(--border);font-size:14px;line-height:1.85;color:var(--text);font-weight:300;}
.villa-detail-page .plan-notes-short-stay strong{font-weight:400;color:var(--ink);}
.villa-detail-page .plan-notes-short-stay a{margin-left:4px;font-size:13px;letter-spacing:.06em;color:var(--link);text-decoration:underline;text-underline-offset:3px;}
.villa-detail-page .plan-notes-short-stay a:hover{color:var(--link-hover);}
.villa-detail-page .compare-grid .compare-card p{margin-bottom:0;font-size:14.5px;line-height:1.75;}
.four-bedroom-page #grand-pool-villa-overview,
.four-bedroom-page #grand-pool-villa-1f,
.four-bedroom-page #grand-pool-villa-1f-bedroom,
.four-bedroom-page #grand-pool-villa-2f,
.four-bedroom-page #grand-pool-villa-dining,
.four-bedroom-page #grand-pool-villa-night,
.four-bedroom-page #check-availability,
.four-bedroom-page #recommended-plans,
.four-bedroom-page #faq{scroll-margin-top:96px;}
.four-bedroom-page .hero-four-bedroom{background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.42)),url("../img/four-bedroom-grand-pool-villa-pool.webp");background-position:center 45%;}
.four-bedroom-page .cta-band.hero-four-bedroom{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/four-bedroom-grand-pool-villa-pool.webp");}
.four-bedroom-page .hero-spec{font-size:17px;line-height:1.9;letter-spacing:.02em;margin:0 auto 30px;max-width:640px;font-weight:300;color:rgba(255,255,255,.94);}
.four-bedroom-page .intro-lead{max-width:760px;margin:18px 0 0;font-size:15px;line-height:1.85;color:var(--text-soft);font-weight:300;}
.four-bedroom-page .villa-stat-grid,.villa-page .villa-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border);margin-top:40px;}
.four-bedroom-page .villa-stat-item,.villa-page .villa-stat-item{background:#fff;padding:30px 18px;text-align:center;}
.four-bedroom-page .villa-stat-item strong,.villa-page .villa-stat-item strong{display:block;font-family:var(--font-heading);font-size:clamp(1.45rem,2.8vw,2rem);font-weight:400;color:var(--gold-deep);letter-spacing:.02em;margin-bottom:8px;}
.four-bedroom-page .villa-stat-item span,.villa-page .villa-stat-item span{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-soft);}
.four-bedroom-page .visual-trio,.villa-page .visual-trio{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);margin-top:40px;}
.four-bedroom-page .visual-trio img,.villa-page .visual-trio img{width:100%;height:340px;object-fit:cover;display:block;}
.villa-page .intro-lead{max-width:760px;margin:18px 0 0;font-size:15px;line-height:1.85;color:var(--text-soft);font-weight:300;}
.villa-page #one-bedroom,.villa-page #two-bedroom,.villa-page #four-bedroom{scroll-margin-top:96px;}
#repeat-guest,#anniversary-campaign{scroll-margin-top:96px;}
#spa-dining,#spa-package,#spa-plans,#spa-compare,#spa-guide,#spa-menu,#spa-popular,#spa-booking,#spa-benefit,#spa-room{scroll-margin-top:96px;}
.spa-air-page .spa-menu-category{margin-top:44px;}
.spa-air-page .spa-menu-category:first-of-type{margin-top:8px;}
.spa-air-page .spa-menu-category > .menu-title{margin:0 0 16px;line-height:1.45;text-align:center;}
.spa-air-page .spa-menu-category > .menu-title-en{display:block;font-size:14px;font-weight:300;letter-spacing:.1em;color:var(--text-soft);margin-bottom:4px;}
.spa-air-page .spa-menu-category > .menu-title-ja{display:block;font-size:17px;font-weight:400;letter-spacing:.08em;color:var(--ink);}
.spa-air-page .spa-menu-category > .note-soft{max-width:720px;margin:-8px auto 20px;text-align:center;line-height:1.85;}
.spa-air-page .compare-card .menu-title{margin:0 0 12px;line-height:1.45;}
.spa-air-page .compare-card .menu-title-en{display:block;font-size:12.5px;font-weight:300;letter-spacing:.08em;color:var(--text-soft);margin-bottom:4px;}
.spa-air-page .compare-card .menu-title-ja{display:block;font-size:16px;font-weight:400;letter-spacing:.06em;color:var(--ink);}
.spa-air-page #spa-menu .compare-grid{max-width:960px;margin-left:auto;margin-right:auto;}
.spa-air-page .spa-booking-box{max-width:720px;margin:28px auto 0;padding:34px;background:#fff;border:1px solid var(--border);text-align:center;}
.spa-air-page .spa-booking-box p{margin:0 0 18px;font-size:14.5px;font-weight:300;}
.spa-stay-page .plan-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--border);margin-top:10px;}
@media (max-width:700px){.spa-stay-page .plan-grid{grid-template-columns:1fr;}}
.spa-stay-page .plan-card-body{min-height:320px;}
.four-bedroom-page .visual-banner{margin-top:32px;background:var(--border);}
.four-bedroom-page .visual-banner img{width:100%;height:min(56vw,520px);object-fit:cover;display:block;}
.four-bedroom-page .photo-mosaic{display:grid;gap:1px;background:var(--border);margin-top:28px;}
.four-bedroom-page .photo-mosaic img{width:100%;object-fit:cover;display:block;}
.four-bedroom-page .photo-mosaic--pool{grid-template-columns:2fr 1fr;grid-template-rows:repeat(2,minmax(200px,1fr));}
.four-bedroom-page .photo-mosaic--pool .mosaic-main{grid-row:1 / span 2;}
.four-bedroom-page .photo-mosaic--pool .mosaic-main img{height:100%;min-height:420px;}
.four-bedroom-page .photo-mosaic--pool .mosaic-side img{height:210px;}
.four-bedroom-page .photo-mosaic--dining{grid-template-columns:1fr 1fr;}
.four-bedroom-page .photo-mosaic--dining .mosaic-hero{grid-column:1 / -1;}
.four-bedroom-page .photo-mosaic--dining .mosaic-hero img{height:360px;}
.four-bedroom-page .photo-mosaic--dining .mosaic-cell img{height:240px;}
.four-bedroom-page .photo-mosaic--bedroom{grid-template-columns:1.45fr 1fr;grid-template-rows:repeat(2,minmax(180px,1fr));}
.four-bedroom-page .photo-mosaic--bedroom .mosaic-main{grid-row:1 / span 2;}
.four-bedroom-page .photo-mosaic--bedroom .mosaic-main img{min-height:400px;height:100%;}
.four-bedroom-page .photo-mosaic--bedroom .mosaic-side img{height:200px;}
.four-bedroom-page .photo-mosaic--detail{grid-template-columns:repeat(4,1fr);margin-top:20px;}
.four-bedroom-page .photo-mosaic--detail img{height:170px;}
.four-bedroom-page .section-subblock{margin-top:48px;}
.four-bedroom-page .section-subblock:first-of-type{margin-top:0;}
.four-bedroom-page #grand-pool-villa-night .two-col{margin-top:40px;}
.four-bedroom-page .benefit-footnote--center{margin-top:24px;text-align:center;}
.four-bedroom-page .gallery-subhead{margin:34px 0 14px;text-align:center;}
.four-bedroom-page .gallery-subhead h3{margin:0;font-size:17px;font-weight:400;letter-spacing:.08em;color:var(--ink);}
@media (max-width:900px){
  .four-bedroom-page .villa-stat-grid,.villa-page .villa-stat-grid{grid-template-columns:repeat(2,1fr);}
  .four-bedroom-page .visual-trio,.villa-page .visual-trio{grid-template-columns:1fr;}
  .four-bedroom-page .visual-trio img,.villa-page .visual-trio img{height:260px;}
  .four-bedroom-page .photo-mosaic--pool{grid-template-columns:1fr;}
  .four-bedroom-page .photo-mosaic--pool .mosaic-main{grid-row:auto;}
  .four-bedroom-page .photo-mosaic--pool .mosaic-main img{min-height:260px;height:260px;}
  .four-bedroom-page .photo-mosaic--dining{grid-template-columns:1fr;}
  .four-bedroom-page .photo-mosaic--bedroom{grid-template-columns:1fr;}
  .four-bedroom-page .photo-mosaic--bedroom .mosaic-main{grid-row:auto;}
  .four-bedroom-page .photo-mosaic--detail{grid-template-columns:repeat(2,1fr);}
}

.compare-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--border);margin-top:10px;}
.section-white .compare-grid{gap:14px;background:transparent;}
.section-white .compare-card{border:1px solid var(--border);}
.compare-grid-three{grid-template-columns:repeat(3,1fr);}
.seminyak-spots-grid{margin-top:40px;gap:14px;background:transparent;}
@media (min-width:901px){
  .compare-grid.repeat-benefits-grid{grid-template-columns:repeat(6,minmax(0,1fr));}
  .compare-grid.repeat-benefits-grid .compare-card{grid-column:span 2;min-width:0;}
  .compare-grid.repeat-benefits-grid .compare-card:nth-child(4){grid-column:2 / span 2;}
  .compare-grid.repeat-benefits-grid .compare-card:nth-child(5){grid-column:4 / span 2;}
}
@media (max-width:900px){.compare-grid-three{grid-template-columns:1fr;}}
@media (max-width:700px){.compare-grid{grid-template-columns:1fr;}}
.compare-card{background:#fff;padding:34px;}
.compare-card--media{padding:0;overflow:hidden;}
.compare-card--media img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;}
.compare-card--media .compare-card-inner{padding:34px;}
.compare-card--media .compare-card-inner p:last-of-type{margin-bottom:0;}
.compare-card .tag{display:inline-block;margin-bottom:12px;padding:3px 12px;border:1px solid var(--gold-deep);color:var(--gold-deep);font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;}
.compare-card h3{margin:0 0 12px;color:var(--ink);font-size:16px;letter-spacing:.06em;font-weight:400;}
.compare-card p{margin:0 0 18px;font-size:15px;font-weight:300;}
.compare-card .rate-line{font-family:var(--font-heading);font-size:24px;line-height:1.4;color:var(--gold-deep);font-weight:400;letter-spacing:.02em;}
.spa-air-page .compare-card .rate-line,
#spa-air .compare-card .rate-line,
#spa-popular .compare-card .rate-line,
#spa-menu .compare-card .rate-line{font-size:12.5px;line-height:1.35;letter-spacing:.01em;white-space:nowrap;margin:0 0 12px;}
.spa-air-page #spa-menu .compare-card .rate-line{font-size:11.5px;}
.compare-card a:not(.btn){font-size:13px;letter-spacing:.06em;color:var(--link);text-decoration:underline;text-underline-offset:3px;padding-bottom:0;border-bottom:none;}
.compare-card a:not(.btn):hover{color:var(--link-hover);}
.compare-card .btn{text-decoration:none;border-bottom:none;padding-bottom:10px;margin:0;}
.compare-card-action{margin-top:16px;}

.comparison-table-wrap{overflow-x:scroll;overflow-y:hidden;background:#fff;border:1px solid var(--border);padding-bottom:10px;scrollbar-gutter:stable;}
.comparison-table-wrap::-webkit-scrollbar{height:10px;}
.comparison-table-wrap::-webkit-scrollbar-track{background:#e6e1d8;}
.comparison-table-wrap::-webkit-scrollbar-thumb{background:#9b7a4a;border-radius:0;}
.comparison-table{width:100%;border-collapse:collapse;min-width:760px;background:#fff;}
.comparison-table th,.comparison-table td{padding:20px 22px;border-bottom:1px solid var(--border);border-right:1px solid var(--border);text-align:left;vertical-align:top;font-size:14.5px;font-weight:300;}
.comparison-table th{color:var(--ink);font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:400;background:#fafafa;}
.comparison-table td:first-child{font-weight:400;color:var(--ink);}
.comparison-table td a{color:var(--link);text-decoration:underline;text-underline-offset:3px;}
.comparison-table td a:hover{color:var(--link-hover);}
.comparison-table tr:last-child td{border-bottom:0;}

.info-box{margin-top:32px;padding:24px 28px;background:var(--gray);border-left:3px solid var(--gold);font-size:14px;font-weight:300;line-height:1.85;}
.benefit-tier-list{list-style:none;margin:0 0 22px;padding:0;}
.benefit-tier-list li{padding:10px 0;border-bottom:1px solid rgba(0,0,0,.08);font-size:15px;line-height:1.65;}
.benefit-tier-list li:first-child{padding-top:0;}
.benefit-tier-list li:last-child{border-bottom:0;padding-bottom:0;}
.benefit-tier-list strong{font-weight:500;color:var(--ink);}
.info-box-detail{margin:18px 0 0;}
.info-box-detail:first-of-type{margin-top:0;}
.note-soft{font-size:13.5px;color:var(--text-soft);margin-top:20px;}
.note-soft--tight{margin-top:12px;}
.note-soft-center{max-width:720px;margin-left:auto;margin-right:auto;text-align:center;}
.center-spaced{margin-top:34px;}
.btn-spaced-top{margin-top:14px;}
.info-box-link{display:inline-block;margin-top:12px;}
.hero-btns--spaced{margin-top:32px;}
.hero-btns--start{justify-content:flex-start;}
.ol-list--centered{max-width:640px;margin-left:auto;margin-right:auto;}
.news-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;margin-top:36px;}
.news-card{display:grid;grid-template-columns:1fr 1fr;background:#fff;border:1px solid var(--border);overflow:hidden;}
.news-card img{width:100%;height:100%;min-height:220px;object-fit:cover;}
.news-card-body{padding:28px 30px;display:flex;flex-direction:column;justify-content:center;}
.news-card-body .eyebrow{margin-bottom:10px;}
.news-card-body h3{font-size:18px;margin-bottom:12px;line-height:1.45;}
.news-card-body p{font-size:14px;font-weight:300;line-height:1.85;margin-bottom:16px;}
.news-card-body .btn{font-size:11px;padding:12px 22px;align-self:flex-start;}
@media (max-width:900px){.news-grid{grid-template-columns:1fr;}.news-card{grid-template-columns:1fr;}.news-card img{min-height:200px;max-height:260px;}}
.gallery-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 20px;margin:28px 0 8px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;}
.gallery-nav a{color:var(--text-soft);border-bottom:1px solid transparent;padding-bottom:3px;transition:color .3s,border-color .3s;}
.gallery-nav a:hover,.gallery-nav a.active{color:var(--ink);border-color:var(--gold-deep);}
.gallery-nav u{text-decoration:none;color:var(--ink);border-bottom:1px solid var(--gold-deep);}
.gallery-section{margin-top:48px;}
.gallery-section h2{font-size:14px;letter-spacing:.18em;text-transform:uppercase;margin-bottom:20px;color:var(--text-soft);}
.gallery-section-intro{font-size:14.5px;font-weight:300;line-height:1.8;margin:-8px 0 20px;color:var(--text-soft);}
.gallery-sub-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 16px;margin:0 0 32px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;}
.gallery-sub-nav a{color:var(--text-soft);border-bottom:1px solid transparent;padding-bottom:2px;}
.gallery-sub-nav a:hover{color:var(--ink);border-color:var(--gold-deep);}
.news-stick.gallery-stick{top:83px;}
.news-stick.gallery-stick .news-page-contents ol{width:100%;justify-content:flex-start;justify-content:safe center;}
.gallery-stick ~ .section .gallery-section{scroll-margin-top:176px;}
@media (max-width:1140px){.news-stick.gallery-stick{top:70px;}}
.gallery-hub-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--border);margin-top:10px;}
.gallery-hub-card{position:relative;display:flex;align-items:flex-end;min-height:280px;overflow:hidden;color:#fff;text-decoration:none;}
.gallery-hub-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.gallery-hub-card::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.82),rgba(0,0,0,.15));z-index:1;}
.gallery-hub-card-body{position:relative;z-index:2;padding:28px;}
.gallery-hub-card .tag{display:inline-block;margin-bottom:8px;padding:3px 12px;border:1px solid var(--gold);color:var(--gold);font-size:10px;letter-spacing:.15em;text-transform:uppercase;}
.gallery-hub-card h3{margin:0 0 6px;font-size:17px;font-weight:400;letter-spacing:.06em;}
.gallery-hub-card p{margin:0;font-size:13px;font-weight:300;color:rgba(255,255,255,.88);}
.gallery-hub-note{max-width:640px;margin:0 auto 28px;font-size:14.5px;line-height:1.8;text-align:center;}
.gallery-page .gallery-villa-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);margin-top:10px;}
@media (max-width:900px){.gallery-page .gallery-villa-grid{grid-template-columns:1fr;}}
.gallery-villa-grid .gallery-villa-card{background:#fff;padding:28px 30px 32px;}
.gallery-villa-card{text-decoration:none;display:block;color:inherit;}
.gallery-villa-card:hover{color:inherit;}
.gallery-villa-card img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block;margin-bottom:18px;}
.gallery-villa-card .card-link{display:inline-block;margin-top:14px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid var(--gold-deep);padding-bottom:2px;color:var(--ink);}
.gallery-page .photo-gallery-grid{margin-top:0;}
.gallery-page .gallery-section + .gallery-section{margin-top:56px;padding-top:48px;border-top:1px solid var(--border);}
@media (max-width:700px){.gallery-hub-grid{grid-template-columns:1fr;}.gallery-hub-card{min-height:220px;}}
.resort-map-figure{margin:28px 0 0;}
.resort-map-figure img{width:100%;height:auto;display:block;border:1px solid var(--border);background:#fff;}
.resort-map-note{margin-top:18px;font-size:13px;font-weight:300;color:var(--text-soft);text-align:center;}
#location .location-distance-grid{margin-top:28px;}
#location .location-distance-grid + .location-distance-grid{margin-top:14px;}
#location .compare-card p{margin:0;font-size:14.5px;line-height:1.75;}
#location .info-box{margin-top:28px;}
#about-villa .about-villa-grid{margin-top:28px;}
#about-villa .about-villa-grid + .about-villa-grid{margin-top:14px;}
#about-villa .compare-card p{margin:0;font-size:14.5px;line-height:1.75;}
#about-villa .about-villa-actions{margin-top:28px;}
#about-villa .about-villa-photo{width:100%;max-width:880px;margin:42px auto 0;display:block;aspect-ratio:3/2;object-fit:cover;}
.about-facts{display:grid;grid-template-columns:repeat(2,1fr);gap:24px 40px;margin-top:32px;}
.about-facts dt{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-soft);margin-bottom:6px;}
.about-facts dd{font-size:15px;font-weight:300;line-height:1.7;margin:0;}
@media (max-width:700px){.about-facts{grid-template-columns:1fr;}}
.wedding-features{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:36px;}
.wedding-feature{display:flex;flex-direction:column;text-align:left;}
.wedding-feature img{width:100%;aspect-ratio:4/3;object-fit:cover;margin-bottom:16px;}
.wedding-feature h3{font-size:14px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:10px;}
.wedding-feature p{font-size:14px;font-weight:300;line-height:1.8;margin:0;flex:1;}
.wedding-feature-action{margin:14px 0 0;padding:0;}
.event-wedding-page .section-head{text-align:left;}
.event-wedding-page .section-head p{margin:16px 0 0;max-width:880px;}
.event-wedding-page #honeymoon .hero-btns,
.event-wedding-page #wedding-report .hero-btns{margin-top:24px;justify-content:flex-start;align-items:flex-start;}
@media (max-width:960px){
  .event-wedding-page #honeymoon .hero-btns{flex-direction:column;align-items:stretch;}
  .event-wedding-page #honeymoon .hero-btns .btn{align-self:flex-start;}
}
@media (max-width:900px){.wedding-features{grid-template-columns:1fr;}}

/* Honeymoon package */
.honeymoon-benefit-showcase{display:grid;grid-template-columns:1.05fr .95fr;gap:42px;align-items:center;margin-top:38px;}
.honeymoon-photo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
.honeymoon-photo-grid img{width:100%;aspect-ratio:4/3;height:auto;object-fit:cover;}
.honeymoon-photo-grid .honeymoon-photo-wide{grid-column:1/-1;aspect-ratio:1200/620;}
.honeymoon-photo-grid .image-note{grid-column:1/-1;margin:4px 0 0;text-align:left;}
.honeymoon-benefits{background:#fff;padding:38px;border-left:3px solid var(--gold);}
.honeymoon-benefits h3{margin:0 0 16px;font-family:var(--font-heading);font-size:25px;line-height:1.6;font-weight:400;color:var(--ink);}
.honeymoon-benefits p{margin:0 0 22px;font-size:15px;}
@media (max-width:900px){
  .honeymoon-benefit-showcase{grid-template-columns:1fr;}
}
@media (max-width:620px){
  .honeymoon-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
  .honeymoon-photo-grid .honeymoon-photo-wide,.honeymoon-photo-grid .image-note{grid-column:1/-1;}
  .honeymoon-benefits{padding:28px 24px;}
}

/* Home news grid — PC 3 cols / mobile 2 cols (compare-card style) */
.home-page .home-news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:38px;max-width:960px;margin-left:auto;margin-right:auto;}
.home-page .home-news-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);text-decoration:none;color:var(--ink);min-width:0;transition:opacity .3s;}
.home-page .home-news-card:hover{opacity:.82;}
.home-page .home-news-card-media{display:block;overflow:hidden;}
.home-page .home-news-card-media img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block;}
.home-page .home-news-card-body{padding:18px 20px 22px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;flex:1;}
.home-page .home-news-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;width:100%;}
.home-page .home-news-meta .news-date{font-size:12px;letter-spacing:.05em;color:var(--text-soft);}
.home-page .home-news-meta .news-tag{padding:3px 10px;border:1px solid var(--gold-deep);color:var(--gold-deep);font-size:10px;letter-spacing:.12em;text-transform:uppercase;}
.home-page .home-news-title{font-weight:400;font-size:14px;line-height:1.65;margin:0;}
@media (max-width:900px){
  .home-page .home-news-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
  .home-page .home-news-card-body{padding:14px 14px 18px;}
  .home-page .home-news-title{font-size:13px;line-height:1.6;}
}

.news-feed{max-width:920px;margin:0 auto;}
.news-feed article{display:grid;grid-template-columns:minmax(0,34%) minmax(0,1fr);gap:16px 32px;padding:28px 0 32px;border-bottom:1px solid var(--border);align-items:start;}
.news-feed article:first-child{padding-top:0;}
.news-feed .news-item-media img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;display:block;border-radius:2px;}
.news-feed .news-item-media a{display:block;transition:opacity .3s;}
.news-feed .news-item-media a:hover{opacity:.85;}
.news-feed .news-item-body{min-width:0;display:flex;flex-wrap:wrap;align-items:center;column-gap:12px;row-gap:10px;}
.news-feed .news-date{margin:0;font-size:13px;letter-spacing:.06em;color:var(--text-soft);white-space:nowrap;}
.news-feed .news-tag{display:inline-block;margin:0;padding:3px 12px;border:1px solid var(--gold-deep);color:var(--gold-deep);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;}
.news-feed h3{flex:1 1 100%;font-family:var(--font-serif);font-size:20px;font-weight:400;line-height:1.5;margin:0;}
.news-feed p{font-size:14px;font-weight:300;line-height:1.9;margin:0;color:var(--text);}
.news-feed .news-item-body > p:not(.news-date){flex:1 1 100%;}
.news-feed .news-more{white-space:nowrap;}
.news-feed p .text-link{font-size:inherit;letter-spacing:inherit;text-transform:none;margin-left:.35em;}
@media (max-width:768px){
  .news-feed article{grid-template-columns:1fr;gap:14px;}
}
.news-archive .section-head{margin-bottom:34px;}
.news-archive .panel{border:1px solid var(--border);border-radius:4px;overflow:hidden;margin-bottom:28px;background:#fff;}
.news-archive .list-group{margin:0;padding:0;list-style:none;}
.news-archive .list-group-item{padding:14px 18px;border-top:1px solid var(--border);font-size:14px;line-height:1.85;font-weight:300;}
.news-archive .list-group-item:first-child{border-top:0;background:#f8f6f2;font-size:13px;color:var(--text-soft);}
.news-archive .list-group-item strong{font-weight:500;}
.news-archive img{width:100%;height:auto;display:block;}
.news-archive .btn{margin-top:8px;}
.news-archive .row{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;}
.news-archive .col-md-12,.news-archive .col-md-6,.news-archive .col-md-4,.news-archive .col-sm-8,.news-archive .col-sm-12{width:100%;max-width:none;padding:0;float:none;}
.news-archive hr{grid-column:1/-1;border:0;border-top:1px solid var(--border);margin:8px 0 24px;}
.hub-back-link{margin-top:20px;}
/* News sticky sub-nav (Omori-style) — see style.css */
.news-article-nav .hub-back-link{margin-bottom:0;}
.news-pager{display:grid;grid-template-columns:1fr 1fr;gap:24px 32px;margin-top:28px;padding-top:8px;}
.news-pager a{display:block;padding-top:16px;border-top:1px solid var(--border);text-decoration:none;color:var(--ink);transition:opacity .25s;}
.news-pager a:hover{opacity:.75;}
.news-pager a.is-older{text-align:left;}
.news-pager a.is-newer{text-align:right;grid-column:2;}
.news-pager a.is-older:only-child{grid-column:1;}
.news-pager span{display:block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-soft);margin-bottom:6px;}
.news-pager strong{display:block;font-family:var(--font-serif);font-weight:400;font-size:15px;line-height:1.55;}
.related-news{margin-top:40px;}
.related-news h2{font-family:var(--font-serif);font-weight:400;font-size:22px;margin-bottom:18px;text-align:center;}
.related-news ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;list-style:none;margin:0;padding:0;align-items:stretch;}
.related-news li{display:flex;}
.related-news a{display:flex;flex-direction:column;width:100%;border:1px solid var(--border);border-radius:2px;overflow:hidden;text-decoration:none;color:var(--ink);background:#fff;transition:opacity .25s;}
.related-news a:hover{opacity:.82;}
.related-news img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block;}
.related-news span{display:block;padding:10px 14px 0;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-deep);}
.related-news strong{display:block;padding:8px 14px 14px;font-family:var(--font-serif);font-weight:400;font-size:14px;line-height:1.55;flex:1;}
.related-news .related-more{margin:22px 0 0;text-align:center;}
@media (max-width:768px){
  .news-pager,.related-news ul{grid-template-columns:1fr;}
  .news-pager a.is-newer{text-align:left;grid-column:1;}
}

/* News sticky sub-nav (Omori-style) — see style.css */
.news-article-nav .hub-back-link{margin-bottom:0;}
.news-pager{display:grid;grid-template-columns:1fr 1fr;gap:24px 32px;margin-top:28px;padding-top:8px;}
.news-pager a{display:block;padding-top:16px;border-top:1px solid var(--border);text-decoration:none;color:var(--ink);transition:opacity .25s;}
.news-pager a:hover{opacity:.75;}
.news-pager a.is-older{text-align:left;}
.news-pager a.is-newer{text-align:right;grid-column:2;}
.news-pager a.is-older:only-child{grid-column:1;}
.news-pager span{display:block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-soft);margin-bottom:6px;}
.news-pager strong{display:block;font-family:var(--font-serif);font-weight:400;font-size:15px;line-height:1.55;}
.related-news{margin-top:40px;}
.related-news h2{font-family:var(--font-serif);font-weight:400;font-size:22px;margin-bottom:18px;text-align:center;}
.related-news ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;list-style:none;margin:0;padding:0;align-items:stretch;}
.related-news li{display:flex;}
.related-news a{display:flex;flex-direction:column;width:100%;border:1px solid var(--border);border-radius:2px;overflow:hidden;text-decoration:none;color:var(--ink);background:#fff;transition:opacity .25s;}
.related-news a:hover{opacity:.82;}
.related-news img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block;}
.related-news span{display:block;padding:10px 14px 0;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-deep);}
.related-news strong{display:block;padding:8px 14px 14px;font-family:var(--font-serif);font-weight:400;font-size:14px;line-height:1.55;flex:1;}
.related-news .related-more{margin:22px 0 0;text-align:center;}
@media (max-width:768px){
  .news-pager,.related-news ul{grid-template-columns:1fr;}
  .news-pager a.is-newer{text-align:left;grid-column:1;}
}

/* News sticky sub-nav (Omori-style) — see style.css */
.news-article-nav .hub-back-link{margin-bottom:0;}
.news-pager{display:grid;grid-template-columns:1fr 1fr;gap:24px 32px;margin-top:28px;padding-top:8px;}
.news-pager a{display:block;padding-top:16px;border-top:1px solid var(--border);text-decoration:none;color:var(--ink);transition:opacity .25s;}
.news-pager a:hover{opacity:.75;}
.news-pager a.is-older{text-align:left;}
.news-pager a.is-newer{text-align:right;grid-column:2;}
.news-pager a.is-older:only-child{grid-column:1;}
.news-pager span{display:block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-soft);margin-bottom:6px;}
.news-pager strong{display:block;font-family:var(--font-serif);font-weight:400;font-size:15px;line-height:1.55;}
.related-news{margin-top:40px;}
.related-news h2{font-family:var(--font-serif);font-weight:400;font-size:22px;margin-bottom:18px;text-align:center;}
.related-news ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;list-style:none;margin:0;padding:0;align-items:stretch;}
.related-news li{display:flex;}
.related-news a{display:flex;flex-direction:column;width:100%;border:1px solid var(--border);border-radius:2px;overflow:hidden;text-decoration:none;color:var(--ink);background:#fff;transition:opacity .25s;}
.related-news a:hover{opacity:.82;}
.related-news img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block;}
.related-news span{display:block;padding:10px 14px 0;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-deep);}
.related-news strong{display:block;padding:8px 14px 14px;font-family:var(--font-serif);font-weight:400;font-size:14px;line-height:1.55;flex:1;}
.related-news .related-more{margin:22px 0 0;text-align:center;}
@media (max-width:768px){
  .news-pager,.related-news ul{grid-template-columns:1fr;}
  .news-pager a.is-newer{text-align:left;grid-column:1;}
}

/* News sticky sub-nav (Omori-style) */
.news-stick{position:sticky;top:var(--site-header-h);z-index:90;min-height:var(--news-stick-h);background:rgba(255,253,248,.98);backdrop-filter:blur(8px);box-shadow:0 1px 0 rgba(24,25,27,.1);}
.news-stick-inner{position:relative;padding:8px 24px 10px;}
.news-stick-cats{position:relative;padding:8px 0 6px;}
.news-stick-watermark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;font-family:var(--font-heading);font-size:clamp(1.8rem,3.8vw,2.8rem);font-weight:400;letter-spacing:.06em;color:rgba(24,25,27,.05);white-space:nowrap;pointer-events:none;user-select:none;z-index:0;}
.news-stick-cats .news-page-contents{position:relative;z-index:1;}
.news-page-contents ol{display:flex;flex-wrap:nowrap;align-items:center;justify-content:center;width:max-content;max-width:100%;margin:0 auto;padding:4px 0;list-style:none;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;font-size:13px;font-weight:400;letter-spacing:.06em;line-height:1.6;}
.news-page-contents ol::-webkit-scrollbar{display:none;}
.news-page-contents li{flex:none;}
.news-page-contents li:not(:last-child)::after{content:"｜";margin:0 12px;color:var(--text-soft);font-weight:300;}
.news-page-contents a{display:inline-block;padding:2px 0;text-decoration:none;color:var(--ink);white-space:nowrap;transition:opacity .25s;}
.news-page-contents a:hover{opacity:.7;}
.news-page-contents a[aria-current="true"]{text-decoration:underline;text-underline-offset:.35em;}
.news-page-subnav ol{padding:4px 0 6px;font-size:12.5px;}
.news-page-subnav li:not(:last-child)::after{margin:0 10px;}
@media (max-width:900px){
  :root{--site-header-h:70px;--news-stick-h:74px;}
  .news-stick-inner{padding:6px 16px 8px;}
  .news-page-contents ol{font-size:12px;justify-content:flex-start;}
  .news-page-contents li:not(:last-child)::after{margin:0 8px;}
}
.news-article-nav .hub-back-link{margin-bottom:0;}
.news-pager{display:grid;grid-template-columns:1fr 1fr;gap:24px 32px;margin-top:28px;padding-top:8px;}
.news-pager a{display:block;padding-top:16px;border-top:1px solid var(--border);text-decoration:none;color:var(--ink);transition:opacity .25s;}
.news-pager a:hover{opacity:.75;}
.news-pager a.is-older{text-align:left;}
.news-pager a.is-newer{text-align:right;grid-column:2;}
.news-pager a.is-older:only-child{grid-column:1;}
.news-pager span{display:block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-soft);margin-bottom:6px;}
.news-pager strong{display:block;font-family:var(--font-serif);font-weight:400;font-size:15px;line-height:1.55;}
.related-news{margin-top:40px;}
.related-news h2{font-family:var(--font-serif);font-weight:400;font-size:22px;margin-bottom:18px;text-align:center;}
.related-news ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;list-style:none;margin:0;padding:0;align-items:stretch;}
.related-news li{display:flex;}
.related-news a{display:flex;flex-direction:column;width:100%;border:1px solid var(--border);border-radius:2px;overflow:hidden;text-decoration:none;color:var(--ink);background:#fff;transition:opacity .25s;}
.related-news a:hover{opacity:.82;}
.related-news img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block;}
.related-news span{display:block;padding:10px 14px 0;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-deep);}
.related-news strong{display:block;padding:8px 14px 14px;font-family:var(--font-serif);font-weight:400;font-size:14px;line-height:1.55;flex:1;}
.related-news .related-more{margin:22px 0 0;text-align:center;}
@media (max-width:768px){
  .news-pager,.related-news ul{grid-template-columns:1fr;}
  .news-pager a.is-newer{text-align:left;grid-column:1;}
}


/* Floating breakfast promo banner (fixed image, reused as-is across pages) */
.fb-banner{position:relative;padding:110px 0;text-align:center;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.35);
  background:linear-gradient(rgba(0,0,0,.32),rgba(0,0,0,.32)),url("../img/vab-floating-breakfast.webp") center/cover no-repeat;}
.fb-banner h2{color:#fff;font-family:var(--font-heading);font-weight:400;font-size:32px;letter-spacing:.02em;text-transform:none;}
.fb-banner p{max-width:600px;margin:0 auto 26px;color:rgba(255,255,255,.95);font-size:16px;font-weight:300;}

/* FAQ */
.faq{max-width:820px;margin:0 auto;}
.faq-item{border-bottom:1px solid var(--border);padding:22px 0;}
.faq-item summary{cursor:pointer;list-style:none;font-size:15px;letter-spacing:.03em;color:var(--ink);font-weight:400;position:relative;padding-right:28px;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+";position:absolute;right:0;top:-2px;font-size:20px;color:var(--gold-deep);font-weight:300;}
.faq-item[open] summary::after{content:"−";}
.faq-item p{margin:14px 0 0;font-size:14.5px;font-weight:300;color:var(--text-soft);}
.faq-item .faq-cat-nav{margin-top:14px;}
.faq-item .faq-cat-nav ol{justify-content:flex-start;margin:0;padding:0;overflow-x:visible;flex-wrap:wrap;width:auto;max-width:none;}
.faq-item .faq-cat-nav li:not(:last-child)::after{margin:0 10px;}
.faq-item p a,
.benefit-footnote a,
.intro-lead a,
.section-head p a,
.two-col p a,
.info-box a:not(.btn):not(.btn-gold):not(.btn-outline):not(.btn-outline-dark),
.villa-card-body p a,
.compare-card p a{color:var(--link);text-decoration:underline;text-underline-offset:3px;transition:color .2s;}
.faq-item p a:hover,
.benefit-footnote a:hover,
.intro-lead a:hover,
.section-head p a:hover,
.two-col p a:hover,
.info-box a:not(.btn):not(.btn-gold):not(.btn-outline):not(.btn-outline-dark):hover,
.villa-card-body p a:hover,
.compare-card p a:hover{color:var(--link-hover);}

/* CTA band — footer直前：背景・文案を下端寄せ（サブページHEROと同型） */
.cta-band{
  box-sizing:border-box;
  min-height:50vh;
  padding:0 0 56px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  align-items:stretch;
  text-align:center;
  color:#fff;
  text-shadow:0 1px 3px rgba(0,0,0,.3);
  background-size:cover;
  background-position:center bottom;
  background-repeat:no-repeat;
}
.cta-band > .container{width:100%;max-width:1120px;margin:0 auto;padding:0 24px;flex-shrink:0;}
/* CTA: same photo as HERO (.cta-band + .hero-*). Generated by scripts/sync-cta-hero.py */
.cta-band.hero-about{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/resort-pavilion-night-1200.webp");}
.cta-band.hero-afternoon-tea{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/one-bedroom-luxury-pool-villa-afternoon-tea.webp");}
.cta-band.hero-airport-transfer{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/resort-lobby-hero.webp");}
.cta-band.hero-anniversary-surprise{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/birthday-cake.webp");}
.cta-band.hero-ayurvedic-spa{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/news-ayurvedic-spa.webp");}
.cta-band.hero-balinese-dance-dinner{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/dining-balinese-dance.webp");}
.cta-band.hero-bike-rental{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/facility-bicycle.webp");}
.cta-band.hero-breakfast{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/breakfast-american-villa.webp");}
.cta-band.hero-canang-sari{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/facility-canang-sari-2018.webp");}
.cta-band.hero-candlelight-dinner{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/candlelight-dinner-hero.webp");}
.cta-band.hero-celebrating-odalan{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/news-celebrating-odalan.webp");}
.cta-band.hero-cooking-class{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/dining-cooking-class.webp");}
.cta-band.hero-culinary-delights{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/news-culinary-delights.webp");}
.cta-band.hero-cultural-immersion{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/news-cultural-immersion.webp");}
.cta-band.hero-dining{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/dining-restaurant-terrace-lounge.webp");}
.cta-band.hero-discover-seminyak{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/news-discover-seminyak.webp");}
.cta-band.hero-earth-day-2026{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/news-earth-day-2026.webp");}
.cta-band.hero-eco-mobility{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/news-eco-mobility.webp");}
.cta-band.hero-event-wedding{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/event-wedding-hero.webp");}
.cta-band.hero-event-wedding-page{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/en-wedding-ceremony-01.webp");}
.cta-band.hero-facility-service{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/public-pool-deck-lounge.webp");}
.cta-band.hero-family{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/family-stay-hero.webp");}
.cta-band.hero-floating-breakfast{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/vab-floating-breakfast.webp");}
.cta-band.hero-four-bedroom{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/four-bedroom-grand-pool-evening-hero.webp");}
.cta-band.hero-home{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/villa-overview-private-pool-hero.webp");}
.cta-band.hero-honeymoon{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/honeymoon-hero.webp");}
.cta-band.hero-hotelscombined-2018{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/news-hotelscombined-2018.webp");}
.cta-band.hero-in-villa-dining{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/in-villa-dining-hero.webp");}
.cta-band.hero-independence-day{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/independence-day-cultural-festivities.webp");}
.cta-band.hero-independence-journey-2023{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/news-independence-journey-2023.webp");}
.cta-band.hero-intimate-events{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/news-intimate-events.webp");}
.cta-band.hero-ltg-award{background-image:linear-gradient(135deg,rgba(6,18,55,.92),rgba(8,52,94,.75)),url("../img/ltg-award-hero.webp");}
.cta-band.hero-luxury{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/family-four-bedroom-grand-pool.webp");}
.cta-band.hero-neera-galerie{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/news-neera-galerie.webp");}
.cta-band.hero-news{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/vab-floating-breakfast.webp");}
.cta-band.hero-news-all{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/tropical-heliconia.webp");}
.cta-band.hero-news-award{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/ltg-award-hero.webp");}
.cta-band.hero-news-chse-2026{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/en-chse.webp");}
.cta-band.hero-news-culture{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/facility-canang-sari-2018.webp");}
.cta-band.hero-news-dining{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/dining-restaurant.webp");}
.cta-band.hero-news-event{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/en-intimate-events-garden.webp");}
.cta-band.hero-news-garden-grove-2026{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/en-garden-grove-unleashed-an-evening-of-jazz-romance-and-giving-back-at-villa-air-bali.webp");}
.cta-band.hero-news-resort{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/four-bedroom-grand-night-view.webp");}
.cta-band.hero-news-spa{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/spa-welcome-frangipani-bowl.webp");}
.cta-band.hero-news-sustainability{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/seminyak-tropical-garden.webp");}
.cta-band.hero-news-wedding{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/event-wedding-garden.webp");}
.cta-band.hero-nyepi-stay{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/news-nyepi-stay.webp");}
.cta-band.hero-official-benefits{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/villa-exterior.webp");}
.cta-band.hero-one-bedroom{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/one-bedroom-private-pool-hero.webp");}
.cta-band.hero-photo-gallery{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/four-bedroom-grand-entrance.webp");}
.cta-band.hero-photo-gallery-facility{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/resort-reception-night.webp");}
.cta-band.hero-pool-net{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/two-bedroom-family-pool-net.webp");}
.cta-band.hero-private-car-charter{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/facility-transfer-car.webp");}
.cta-band.hero-public-pool{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/villa-air-bali-mainpool.webp");}
.cta-band.hero-ranking{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/en-grand-pool-villa-01.webp");}
.cta-band.hero-repeat-guest{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/repeat-guest-benefits-hero.webp");}
.cta-band.hero-resort-gym{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/facility-gym.webp");}
.cta-band.hero-resort-library{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/resort-library-153.webp");}
.cta-band.hero-room-rate{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/en-grand-pool-villa-04.webp");}
.cta-band.hero-seminyak{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/seminyak-private-pool-villa-hero.webp");}
.cta-band.hero-spa-air{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/spa-air-treatment.webp");}
.cta-band.hero-spa-stay{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/spa-air-treatment-hero.webp");}
.cta-band.hero-subtle{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/villa-exterior.webp");}
.cta-band.hero-tabi-no-bigaku{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/tabi-no-bigaku/tabi-no-bigaku-hero.webp");}
.cta-band.hero-tri-hita-karana{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/news-tri-hita-karana.webp");}
.cta-band.hero-two-bedroom{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/two-bedroom-private-pool-hero.webp");}
.cta-band.hero-villa{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/villa-page-hero.webp");}
.cta-band.hero-villa-amenities{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/luxury-pool-villa-amenity.webp");}
.cta-band.hero-villa-comparison{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/four-bedroom-grand-dining-night-exterior.webp");}
.cta-band.hero-villa-guide{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/villa-flower-bath-tea-service.webp");}
.cta-band.hero-wedding-package{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/wedding-package-hero.webp");}
.cta-band.hero-weddings-six-reasons{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/news-weddings-six-reasons.webp");}
@media (max-width:768px){
  .cta-band.hero-about{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/resort-pavilion-night-mobile.webp");}
  .cta-band.hero-airport-transfer{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/resort-lobby-hero-mobile.webp");}
  .cta-band.hero-candlelight-dinner{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/candlelight-dinner-hero-mobile.webp");}
  .cta-band.hero-dining{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/dining-restaurant-terrace-lounge.webp");}
  .cta-band.hero-event-wedding{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/event-wedding-hero-mobile.webp");}
  .cta-band.hero-event-wedding-page{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/en-wedding-ceremony-01.webp");}
  .cta-band.hero-floating-breakfast{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/vab-floating-breakfast.webp");}
  .cta-band.hero-one-bedroom{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/one-bedroom-private-pool-hero-mobile.webp");}
  .cta-band.hero-two-bedroom{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/two-bedroom-private-pool-hero-mobile.webp");}
  .cta-band.hero-four-bedroom{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/four-bedroom-grand-pool-evening-hero-mobile.webp");}
  .cta-band.hero-home{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/villa-overview-private-pool-hero.webp");}
  .cta-band.hero-in-villa-dining{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/in-villa-dining-hero-mobile.webp");}
  .cta-band.hero-ltg-award{background-image:linear-gradient(135deg,rgba(6,18,55,.92),rgba(8,52,94,.75)),url("../img/ltg-award-hero.webp");}
  .cta-band.hero-news-all{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/tropical-heliconia.webp");}
  .cta-band.hero-official-benefits{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/villa-exterior-mobile.webp");}
  .cta-band.hero-repeat-guest{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/repeat-guest-benefits-hero-mobile.webp");}
  .cta-band.hero-tabi-no-bigaku{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/tabi-no-bigaku/tabi-no-bigaku-hero-mobile.webp");}
  .cta-band.hero-villa{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/villa-page-hero-mobile.webp");}
  .cta-band.hero-wedding-package{background-image:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url("../img/wedding-package-hero-mobile.webp");}
}




@media (max-width:768px){
  .cta-band{min-height:44vh;padding:0 0 44px;}
}
.ltg-certificate{display:block;max-width:100%;margin:0 auto;border:1px solid var(--border);box-shadow:0 18px 45px rgba(0,0,0,.08);}
.activity-visual-grid{margin-top:38px;}
.section-gray .compare-grid + .villa-grid{margin-top:1px;}
.cta-band h2{color:#fff;font-weight:300;font-size:26px;letter-spacing:.14em;text-transform:uppercase;margin:0 0 18px;}
.cta-band p{max-width:680px;margin:0 auto 26px;font-weight:300;color:rgba(255,255,255,.9);}

/* Footer */
footer{background:#fff;border-top:1px solid var(--border);color:#444;padding:64px 0 26px;font-size:14px;font-weight:300;}
footer h2{color:var(--ink);font-size:18px;letter-spacing:.1em;text-transform:uppercase;font-weight:400;margin:0 0 16px;}
footer p{margin:0 0 12px;}
footer a{color:#333;text-decoration:underline;}
footer a:hover{color:var(--gold-deep);}
.footer-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:36px;align-items:start;}
.footer-info{min-width:0;}
.footer-right{display:flex;flex-direction:column;align-items:flex-end;gap:18px;}
footer .social{list-style:none;display:flex;gap:12px;padding:0;margin:18px 0 0;}
.footer-right .social{justify-content:flex-end;margin:0;}
footer .social a{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid #ddd;text-decoration:none;}
footer .social a:hover{border-color:var(--gold-deep);}
footer .social svg{width:15px;height:15px;fill:#555;}
.footer-awards{display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap;}
.footer-awards a{display:flex;align-items:center;justify-content:center;width:92px;min-height:92px;padding:8px;border:1px solid #e7e1d8;background:#fff;text-decoration:none;transition:border-color .3s,opacity .3s;}
.footer-awards a:hover{border-color:var(--gold-deep);opacity:.82;}
.footer-awards img{display:block;max-width:76px;height:auto;}
.footer-awards a:first-child img{max-width:70px;}
.footer-links{margin-top:26px;padding-top:22px;border-top:1px solid var(--border);text-align:center;color:var(--text-soft);font-size:11.5px;letter-spacing:.05em;}
@media (max-width:760px){
  .footer-grid{grid-template-columns:1fr;text-align:center;}
  .footer-right{align-items:center;}
  .footer-right .social,.footer-awards{justify-content:center;}
}

@media (prefers-reduced-motion:reduce){
  .hero .container > .eyebrow,
  .hero .container > h1,
  .hero .container > .lead,
  .hero .container > .hero-features,
  .hero .container > .hero-btns,
  .hero .hero-ltg-grid > div,
  .js-reveal{
    animation:none;
    opacity:1;
    transform:none;
    transition:none;
  }
}
