/*
 * Design "Heritage": a classic grand hotel, light throughout.
 *
 * Ivory paper, navy ink, brass detail; navy buttons. Cormorant Garamond for display,
 * Lato for text. Everything centred and symmetrical. Signatures: photographs as ARCHED
 * WINDOWS (tall portraits with a round top, wide pictures under a dome) and ORNAMENTS -
 * a short double rule with a diamond - under titles; bands framed by double rules.
 *
 * Its own layouts (not Classic's with new colours):
 *   header   ivory, the name centred on its own row, the menu centred beneath it, a
 *            double brass rule along the foot (computers)
 *   footer   centred: the name under an ornament, centred link columns, the sister
 *            hotels as small arched portraits
 *   pages    inner pages put the title first, centred, then the photograph under a dome
 *   home     GroupHome.astro / HotelHome.astro in this folder
 *
 * Every rule is scoped to html[data-design="heritage"].
 *
 * Contrast (WCAG AA, checked): navy #1F2A44 on #FBF8F1 13.6:1, on #F3EDE0 12.6:1;
 * body #3B4252 9.6:1; muted #5E6472 5.9:1 (5.4:1 on #F3EDE0); brass #8C6420 on ivory
 * 5.1:1 (4.7:1 on #F3EDE0); ivory on navy 13.6:1.
 */

/* ---------- tokens ---------- */
html[data-design="heritage"]{
  --he-navy:#1F2A44;
  --he-navy-deep:#141C30;
  --he-brass:#8C6420;
  --he-brass-line:#C8A86B;
  --he-ivory:#FBF8F1;

  --paper:var(--he-ivory);
  --paper-2:#F3EDE0;
  --white:#FFFFFF;
  --ink:var(--he-navy);
  --ink-soft:#2C3756;
  --text:#3B4252;
  --muted:#5E6472;
  --line:#E2D9C6;
  --sand:var(--he-navy);
  --sand-deep:var(--he-navy-deep);
  --sand-text:var(--he-brass);
  --sand-tint:#EFE6D3;

  --f-display:"Cormorant Garamond", "Times New Roman", serif;
  --f-body:"Lato", system-ui, -apple-system, "Segoe UI", sans-serif;

  --radius:2px;
  --radius-lg:2px;
  --radius-btn:2px;
  --shadow:0 20px 40px -28px rgba(31,42,68,.4);
  --shadow-soft:0 12px 28px -22px rgba(31,42,68,.32);
}
html[data-design="heritage"] body,
html[data-design="heritage"] body[class]{
  --accent:var(--he-navy);
  --accent-strong:var(--he-navy);
  --accent-text:var(--he-brass);
  --on-accent:var(--he-ivory);
  --accent-tint:rgba(140,100,32,.10);
  background:var(--paper);
  color:var(--text);
}

/* ---------- type ---------- */
html[data-design="heritage"] :is(h1,h2,h3){font-family:var(--f-display);font-weight:500;letter-spacing:0;color:var(--ink)}
html[data-design="heritage"] h1{line-height:1.02}
html[data-design="heritage"] h2{line-height:1.08}
html[data-design="heritage"] :is(.hero__inner,.p-hero__inner) :is(h1,h2,h3){color:#fff}
html[data-design="heritage"] .eyebrow{justify-content:center;font-family:var(--f-body);font-size:.75rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--he-brass)}
html[data-design="heritage"] .eyebrow::before{display:none}
html[data-design="heritage"] :focus-visible{outline:2px solid var(--he-brass);outline-offset:3px}
html[data-design="heritage"] .he-link{display:inline-flex;align-items:center;min-height:44px;font-size:.78rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--he-brass-line)}
html[data-design="heritage"] .he-link:hover{color:var(--he-brass);border-bottom-color:var(--he-brass)}
html[data-design="heritage"] .he-more{margin-top:2.2rem;text-align:center}
/* The ornament: a short double rule with a diamond. */
html[data-design="heritage"] .he-orn,
html[data-design="heritage"] .section__head h2::after{content:"";position:relative;display:block;width:132px;height:12px;margin:1rem auto;
  background:linear-gradient(var(--he-brass-line),var(--he-brass-line)) left 3px/50px 1px no-repeat,linear-gradient(var(--he-brass-line),var(--he-brass-line)) left 8px/50px 1px no-repeat,
             linear-gradient(var(--he-brass-line),var(--he-brass-line)) right 3px/50px 1px no-repeat,linear-gradient(var(--he-brass-line),var(--he-brass-line)) right 8px/50px 1px no-repeat}
/* The section-title ornament is a pseudo-element, so its diamond is a character. */
html[data-design="heritage"] .section__head h2::after{content:"\25C6";font-size:9px;line-height:12px;text-align:center;color:var(--he-brass);font-style:normal}
html[data-design="heritage"] .he-orn::before{content:"";position:absolute;left:50%;top:50%;width:8px;height:8px;margin:-4px 0 0 -4px;background:var(--he-brass);transform:rotate(45deg)}
html[data-design="heritage"] .he-orn--sm{width:90px;margin:.6rem auto;background-size:30px 1px}
/* A centred line of items divided by small diamonds. */
html[data-design="heritage"] .he-line{display:flex;flex-wrap:wrap;justify-content:center;gap:.3rem 0;margin:.8rem 0 0}
html[data-design="heritage"] .he-line span{display:inline-flex;align-items:center}
html[data-design="heritage"] .he-line span + span::before{content:"";display:inline-block;width:5px;height:5px;margin:0 .9rem;background:var(--he-brass);transform:rotate(45deg)}
html[data-design="heritage"] .he-line--dark{color:var(--ink);font-weight:700;font-size:.92rem}

/* ---------- shape and buttons ---------- */
html[data-design="heritage"] body *{border-radius:2px}
html[data-design="heritage"] body :is(.fact__ic,.perk__ic,.facility__ic,.aw-ring,.rail-arrow,.edge-arrow,.hero__dot,.thing-pin__dot,.photo-pin,.photo-pin__img,.leaflet-marker-icon,.cal__day,.stepper button,.drawer-close,.he-ring){border-radius:50%}
html[data-design="heritage"] .btn{font-family:var(--f-body);font-weight:700;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase}
html[data-design="heritage"] :is(.btn--primary,.btn--accent){background:var(--he-navy);border-color:var(--he-navy);color:var(--he-ivory)}
html[data-design="heritage"] :is(.btn--primary,.btn--accent):hover{background:var(--he-navy-deep);border-color:var(--he-navy-deep);color:var(--he-ivory);filter:none}
html[data-design="heritage"] :is(.btn--outline,.btn--accent-outline,.btn--light){background:transparent;color:var(--ink);border:1px solid var(--he-brass)}
html[data-design="heritage"] :is(.btn--outline,.btn--accent-outline,.btn--light):hover{background:var(--paper-2);color:var(--ink)}
html[data-design="heritage"] .btn--dark{background:var(--he-navy);border-color:var(--he-navy);color:var(--he-ivory)}
html[data-design="heritage"] body :is(.card__tag,.offer__badge,.offer-badge,.rtile__tag,.dine__badge,.compare__badge,.chip[aria-pressed="true"],.faq-filter button[aria-pressed="true"],.cal__done,.offer-cta,.rc-badge){background:var(--he-navy);border-color:var(--he-navy);color:var(--he-ivory)}
html[data-design="heritage"] body :is(.offer-row,.rcard){--rc:var(--he-brass)!important}

/* ---------- light bands framed by double rules ---------- */
html[data-design="heritage"] :is(.he-band,.section--ink,.cta,.faq-band,.aw-band,.g-cta,.p-facts,.p-topbar){background:var(--paper-2);color:var(--text)}
html[data-design="heritage"] :is(.he-band,.section--ink,.faq-band){border-top:3px double var(--he-brass-line);border-bottom:3px double var(--he-brass-line)}
html[data-design="heritage"] :is(.section--ink,.cta,.aw-band,.g-cta,.he-band) :is(h1,h2,h3){color:var(--ink)}
html[data-design="heritage"] :is(.section--ink,.cta,.aw-band,.g-cta) :is(p,li){color:var(--text)}
html[data-design="heritage"] :is(.section--ink,.cta,.aw-band) .eyebrow{color:var(--he-brass)}
html[data-design="heritage"] .section--tint{background:var(--paper)}
html[data-design="heritage"] .hero__overlay{background:linear-gradient(180deg,rgba(20,28,48,.32) 0%,rgba(20,28,48,.08) 40%,rgba(20,28,48,.3) 100%)}

/* =====================================================================
   HEADER: ivory; the name centred on its own row, the menu centred below,
   a double brass rule along the foot (computers).
   ===================================================================== */
html[data-design="heritage"] body #siteHeader,
html[data-design="heritage"] body #siteHeader.is-transparent{background:var(--paper)!important;backdrop-filter:none!important;border-bottom:3px double var(--he-brass-line)!important;box-shadow:none}
html[data-design="heritage"] body #siteHeader::before{display:none!important}
html[data-design="heritage"] body #siteHeader :is(.p-mainnav,.p-topbar){background:transparent!important;backdrop-filter:none!important}
html[data-design="heritage"] body #siteHeader .p-topbar{background:var(--paper-2)!important;border-bottom:1px solid var(--line)}
html[data-design="heritage"] body #siteHeader :is(.nav-links>li>a,.nav-links>li>button,.nav-toggle,.brand,.p-mainmenu>li>a,.p-burger,.p-mainnav__brand,.p-sub-toggle,.p-topbar a,.p-topbar button,.logo-text){color:var(--ink)!important;text-shadow:none}
html[data-design="heritage"] body #siteHeader .lang-menu__btn{background:transparent!important;border-color:var(--he-brass-line)!important;color:var(--ink)!important}
html[data-design="heritage"] body #siteHeader :is(.p-mainnav__logo,.brand__logo){filter:invert(1)!important}
html[data-design="heritage"] body #siteHeader .logo-text{font-family:var(--f-display);font-weight:600;letter-spacing:.06em}
html[data-design="heritage"] body #siteHeader :is(.p-mainmenu>li>a,.nav-links>li>a,.nav-links>li>button){font-size:.75rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase}
html[data-design="heritage"] body #siteHeader :is(.p-mainmenu>li>a,.nav-links>li>a)::after{background:var(--he-brass);height:1px}
@media (min-width:1121px){
  html[data-design="heritage"] body[data-resort] .p-mainnav__inner{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:70px 46px;height:auto;gap:0}
  html[data-design="heritage"] body[data-resort] .p-mainnav__brand{grid-column:1;grid-row:1;justify-self:center;align-self:center}
  html[data-design="heritage"] body[data-resort] .p-mainnav__logo-text{font-size:clamp(1.8rem,2.4vw,2.2rem)}
  html[data-design="heritage"] body[data-resort] .p-mainnav__right{display:contents}
  html[data-design="heritage"] body[data-resort] .p-mainnav__nav{grid-column:1;grid-row:2;justify-self:center;border-top:1px solid var(--line);width:100%;display:flex;justify-content:center}
  html[data-design="heritage"] body[data-resort] .p-mainmenu{gap:.6rem}
  html[data-design="heritage"] body[data-resort] .p-mainnav__cta{grid-column:1;grid-row:1;justify-self:end;align-self:center}
  html[data-design="heritage"] body[data-resort].no-hero-header #main{padding-top:156px}
}
@media (min-width:1001px){
  html[data-design="heritage"] body:not([data-resort]) .site-header .nav{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:70px 46px;height:auto;gap:0}
  html[data-design="heritage"] body:not([data-resort]) .site-header .brand{grid-column:1;grid-row:1;justify-self:center;align-self:center}
  html[data-design="heritage"] body:not([data-resort]) .site-header .logo-text{font-size:clamp(1.8rem,2.4vw,2.2rem)}
  html[data-design="heritage"] body:not([data-resort]) .site-header .nav-inline{grid-column:1;grid-row:2;display:flex;justify-content:center;border-top:1px solid var(--line)}
  html[data-design="heritage"] body:not([data-resort]) .site-header .nav-cta{grid-column:1;grid-row:1;justify-self:end;align-self:center}
  html[data-design="heritage"] body[data-corp].no-hero-header #main{padding-top:122px}
}

/* =====================================================================
   FOOTER: centred - the name under an ornament, centred columns, the sister
   hotels as small arched portraits.
   ===================================================================== */
html[data-design="heritage"] .site-footer{background:var(--paper-2);color:var(--text);border-top:3px double var(--he-brass-line);padding-block:clamp(64px,8vw,110px) 1.6rem;text-align:center}
html[data-design="heritage"] .site-footer a{color:var(--ink)}
html[data-design="heritage"] .site-footer a:hover{color:var(--he-brass)}
html[data-design="heritage"] .site-footer :is(p,.footer__note){color:var(--text)}
html[data-design="heritage"] .site-footer .footer__logo{filter:invert(1);margin-inline:auto}
html[data-design="heritage"] body .site-footer .footer__grid{justify-items:center}
html[data-design="heritage"] body .site-footer .footer__grid > div:first-child{grid-column:1 / -1;max-width:44rem;margin-inline:auto}
html[data-design="heritage"] body .site-footer .footer__grid > div:first-child::after{content:"";display:block;width:132px;height:12px;margin:1.2rem auto 0;background:linear-gradient(var(--he-brass-line),var(--he-brass-line)) left 3px/50px 1px no-repeat,linear-gradient(var(--he-brass-line),var(--he-brass-line)) left 8px/50px 1px no-repeat,linear-gradient(var(--he-brass-line),var(--he-brass-line)) right 3px/50px 1px no-repeat,linear-gradient(var(--he-brass-line),var(--he-brass-line)) right 8px/50px 1px no-repeat}
html[data-design="heritage"] body .site-footer .footer__logo-text{font-family:var(--f-display);font-weight:600;font-size:clamp(2rem,3.4vw,3rem);letter-spacing:.05em;color:var(--ink)}
html[data-design="heritage"] body .site-footer .footer__h{font-family:var(--f-body);font-size:.75rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--he-brass)}
html[data-design="heritage"] body .site-footer .footer__grid li a{display:inline-flex;align-items:center;min-height:36px}
html[data-design="heritage"] body .site-footer :is(.footer__legal-row,.footer__bottom,.footer__social){justify-content:center;text-align:center;flex-wrap:wrap;border-color:var(--line)}
html[data-design="heritage"] body .site-footer .footer__legal a{display:inline-flex;align-items:center;min-height:44px;color:var(--text)}
html[data-design="heritage"] body .site-footer :is(.footer__bottom,.footer__bottom a){color:var(--muted)}
html[data-design="heritage"] body .site-footer .footer__note{margin-inline:auto}
@media (min-width:721px){
  html[data-design="heritage"] body .site-footer .footer__grid{grid-template-columns:repeat(auto-fit,minmax(180px,250px));justify-content:center;gap:2rem 3rem}
}
/* Sister hotels as arched portraits. */
html[data-design="heritage"] body .site-footer .footsib{display:flex;flex-wrap:wrap;justify-content:center;gap:1.6rem clamp(1.4rem,3vw,2.6rem);border-top:1px solid var(--line);margin-top:2.6rem;padding-top:2.2rem}
html[data-design="heritage"] body .site-footer .footsib__lbl{flex:1 1 100%;text-align:center;font-size:.75rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--he-brass)}
html[data-design="heritage"] body .site-footer .footsib__row{display:flex;flex-direction:column;align-items:center;gap:.6rem;width:clamp(130px,14vw,170px);padding:0;border:0;text-align:center;color:var(--ink)}
html[data-design="heritage"] body .site-footer .footsib__thumb{width:100%;height:auto;aspect-ratio:3/4;margin:0;border-radius:999px 999px 0 0;overflow:hidden;border:1px solid var(--he-brass-line);padding:5px;background:var(--paper)}
html[data-design="heritage"] body .site-footer .footsib__thumb img{width:100%;height:100%;object-fit:cover;border-radius:999px 999px 0 0}
html[data-design="heritage"] body .site-footer .footsib__name{font-family:var(--f-display);font-weight:600;font-size:1.2rem;color:var(--ink)}
html[data-design="heritage"] body .site-footer .footsib__desc{margin:0;text-align:center;font-size:.85rem;color:var(--muted)}
html[data-design="heritage"] body .site-footer .footsib__arw{display:none}
/* The strip above the group footer: arched portraits. */
html[data-design="heritage"] .footstrip{display:flex;flex-wrap:wrap;justify-content:center;gap:1.6rem clamp(1.4rem,3vw,2.6rem);padding:clamp(2.4rem,4vw,3.4rem) var(--gutter) 0;background:var(--paper-2);border-top:3px double var(--he-brass-line)}
html[data-design="heritage"] .footstrip + .site-footer{border-top:0}
html[data-design="heritage"] .footstrip a{display:flex;flex-direction:column;align-items:center;gap:.6rem;width:clamp(130px,14vw,170px);aspect-ratio:auto;overflow:visible}
html[data-design="heritage"] .footstrip a::after{display:none}
html[data-design="heritage"] .footstrip img{aspect-ratio:3/4;height:auto;border-radius:999px 999px 0 0;border:1px solid var(--he-brass-line);padding:5px;background:var(--paper)}
html[data-design="heritage"] .footstrip a:hover img{transform:none}
html[data-design="heritage"] .footstrip span{position:static;color:var(--ink);text-shadow:none;font-family:var(--f-display);font-size:1.15rem;font-weight:600;letter-spacing:0;text-align:center}

/* =====================================================================
   INNER PAGE HERO: the title first, centred, then the photograph under a dome.
   ===================================================================== */
html[data-design="heritage"] body .p-pagehead{display:flex;flex-direction:column;background:var(--paper);color:var(--text);overflow:visible;padding-top:96px}
html[data-design="heritage"] body[data-resort] .p-pagehead{padding-top:124px}
html[data-design="heritage"] body .p-pagehead__inner,
html[data-design="heritage"] body[data-resort] .p-pagehead__inner{order:-1;padding:clamp(2rem,4vw,3rem) var(--gutter) clamp(1.6rem,3vw,2.4rem);text-align:center}
html[data-design="heritage"] body .p-pagehead h1{color:var(--ink);font-size:clamp(2.4rem,5.4vw,4.4rem);text-shadow:none}
html[data-design="heritage"] body .p-pagehead h1::after{content:"";display:block;width:132px;height:12px;margin:1rem auto 0;background:linear-gradient(var(--he-brass-line),var(--he-brass-line)) left 3px/50px 1px no-repeat,linear-gradient(var(--he-brass-line),var(--he-brass-line)) left 8px/50px 1px no-repeat,linear-gradient(var(--he-brass-line),var(--he-brass-line)) right 3px/50px 1px no-repeat,linear-gradient(var(--he-brass-line),var(--he-brass-line)) right 8px/50px 1px no-repeat}
html[data-design="heritage"] body .p-pagehead .eyebrow{color:var(--he-brass)}
html[data-design="heritage"] body .p-pagehead__inner > p:not(.eyebrow){color:var(--text);font-family:var(--f-display);font-style:italic;font-size:clamp(1.15rem,1.7vw,1.4rem);max-width:46ch;margin-inline:auto}
html[data-design="heritage"] body .p-pagehead__img{position:static;display:block;width:calc(100% - 2 * var(--gutter));max-width:calc(var(--maxw) - 2 * var(--gutter));height:clamp(240px,38vw,500px);margin:0 auto;opacity:1;object-fit:cover;border-radius:50% 50% 0 0 / 32% 32% 0 0}
@media (min-width:1121px){
  html[data-design="heritage"] body[data-resort] .p-pagehead{padding-top:156px}
}
@media (min-width:1001px){
  html[data-design="heritage"] body:not([data-resort]) .p-pagehead{padding-top:122px}
}
@media (max-width:720px){
  html[data-design="heritage"] body .p-pagehead,
  html[data-design="heritage"] body[data-resort] .p-pagehead{padding-top:64px}
  html[data-design="heritage"] body .p-pagehead__img{height:230px;border-radius:50% 50% 0 0 / 22% 22% 0 0}
}

/* =====================================================================
   SHARED SECTION PIECES: centred, ornamented, arched.
   ===================================================================== */
html[data-design="heritage"] .section__head{margin-inline:auto;text-align:center}
html[data-design="heritage"] .section__head .eyebrow{justify-content:center}
@media (min-width:721px){
  html[data-design="heritage"] .section__head h2{font-size:clamp(2.3rem,4vw,3.4rem)}
  html[data-design="heritage"] .section{padding-block:clamp(72px,9vw,124px)}
}
html[data-design="heritage"] .p-crumbs{text-align:center;font-size:.8rem;letter-spacing:.06em}
html[data-design="heritage"] .p-crumbs a{color:var(--he-brass);display:inline-flex;align-items:center;min-height:44px}

/* Key facts: a double-framed card, diamonds instead of icons. */
html[data-design="heritage"] body .p-keyfacts{background:var(--white);border:1px solid var(--he-brass-line);outline:1px solid var(--he-brass-line);outline-offset:-7px;padding:1.6rem 1.8rem}
html[data-design="heritage"] body .p-keyfacts li{align-items:center;color:var(--ink)}
html[data-design="heritage"] body .p-keyfacts svg{display:none}
html[data-design="heritage"] body .p-keyfacts li::before{content:"";flex:none;width:6px;height:6px;background:var(--he-brass);transform:rotate(45deg)}
html[data-design="heritage"] .p-overview__grid h2{font-size:clamp(2.1rem,3.8vw,3.2rem)}

/* Facilities: centred cards, each icon in a brass ring. */
html[data-design="heritage"] body .facility{background:var(--white);border:1px solid var(--line);box-shadow:none;text-align:center}
html[data-design="heritage"] body .facility__ic{margin:0 auto 1rem;width:58px;height:58px;border:1px solid var(--he-brass);background:transparent;color:var(--he-brass);box-shadow:0 0 0 4px var(--white),0 0 0 5px var(--he-brass-line)}
html[data-design="heritage"] body .facility h3{font-family:var(--f-display);font-weight:600;font-size:1.3rem}
html[data-design="heritage"] body .facility:hover{transform:none;box-shadow:var(--shadow-soft)}

/* Offers: an invitation - double frame, the words centred. */
html[data-design="heritage"] body .offer-row{background:var(--white);border:1px solid var(--he-brass-line);outline:1px solid var(--he-brass-line);outline-offset:-8px;box-shadow:var(--shadow-soft);border-radius:0;padding:12px}
html[data-design="heritage"] body .offer-media{border-right:0;border-radius:50% 50% 0 0 / 22% 22% 0 0;overflow:hidden}
html[data-design="heritage"] body .offer-body{text-align:center;align-items:center}
html[data-design="heritage"] body .offer-body h3{font-weight:600;font-size:clamp(1.7rem,2.6vw,2.2rem)}
html[data-design="heritage"] body .offer-inc{justify-content:center}
html[data-design="heritage"] body .offer-foot{width:100%;justify-content:center;flex-wrap:wrap;gap:.8rem 1.4rem}

/* "With every booking": brass rings, centred. */
html[data-design="heritage"] body .perks-ribbon{background:var(--white);border:1px solid var(--he-brass-line);outline:1px solid var(--he-brass-line);outline-offset:-7px}
html[data-design="heritage"] body .perks-ribbon__head{color:var(--he-brass);font-weight:700;letter-spacing:.24em}
html[data-design="heritage"] body .perk__ic{background:transparent;border:1px solid var(--he-brass);color:var(--he-brass)}
html[data-design="heritage"] body .perk b{font-family:var(--f-display);font-weight:600;font-size:1.25rem;color:var(--ink)}

/* Room tiles: arched portraits, captions centred (computers/tablets). */
@media (min-width:721px){
  html[data-design="heritage"] body .roombento{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-auto-rows:auto;gap:2rem}
  html[data-design="heritage"] body .rtile{grid-column:auto;grid-row:auto;display:flex;flex-direction:column;align-items:center;min-height:0;overflow:visible;background:none;box-shadow:none;color:var(--text);text-align:center}
  html[data-design="heritage"] body .rtile img{position:relative;inset:auto;width:100%;height:auto;aspect-ratio:3/4;border-radius:999px 999px 0 0;border:1px solid var(--he-brass-line);padding:6px;background:var(--white)}
  html[data-design="heritage"] body .rtile:hover img{transform:none}
  html[data-design="heritage"] body .rtile__scrim{display:none}
  html[data-design="heritage"] body .rtile__body{position:static;align-items:center;padding:1rem 0 0}
  html[data-design="heritage"] body .rtile h3{color:var(--ink);font-size:1.5rem;font-weight:600}
  html[data-design="heritage"] body .rtile__tag{background:none!important;color:var(--he-brass)!important;padding:0;letter-spacing:.2em;margin:0 0 .3rem}
  html[data-design="heritage"] body .rtile__desc{max-height:none;opacity:1;margin:.3rem 0 0;color:var(--text)}
  html[data-design="heritage"] body .rtile__link{color:var(--ink);letter-spacing:.18em;min-height:44px;border-bottom:1px solid var(--he-brass-line)}
  html[data-design="heritage"] body .rtile--nomedia{background:none}
}

/* Attractions: italic brass numbers, arched thumbnails. */
html[data-design="heritage"] body .attr-row{border-top:1px solid var(--line)}
html[data-design="heritage"] body .attr-idx{font-family:var(--f-display);font-style:italic;font-size:1.6rem;color:var(--he-brass);width:2.6rem}
html[data-design="heritage"] body .attr-thumb{border-radius:50% 50% 0 0 / 40% 40% 0 0}
html[data-design="heritage"] body .attr-thumb:not(:has(img)){display:none}
html[data-design="heritage"] body .attr-main h3{font-weight:600;font-size:1.4rem}
html[data-design="heritage"] body .attr-dist{font-style:italic;font-family:var(--f-display);font-size:1.05rem;color:var(--he-brass)}

/* Questions: one centred column of ruled rows. */
html[data-design="heritage"] body :is(.faqx__item,.faq details){background:none;border:0;border-bottom:1px solid var(--line);border-radius:0}
html[data-design="heritage"] body :is(.faqx__item,.faq details) summary{font-family:var(--f-display);font-weight:600;font-size:1.25rem;padding:1.1rem 0;background:none}
html[data-design="heritage"] body .faqx__cat > h2{text-align:center}
html[data-design="heritage"] body .faq-band{text-align:center}

/* Gallery: arched photographs. */
html[data-design="heritage"] body .gallery a{border-radius:50% 50% 0 0 / 26% 26% 0 0;box-shadow:none}
@media (min-width:721px){
  html[data-design="heritage"] body .gallery{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:auto;gap:1.2rem}
  html[data-design="heritage"] body .gallery a{aspect-ratio:3/4}
}

/* Address panels, awards, facts: double frames. */
html[data-design="heritage"] body .p-location__card{background:var(--white);border:1px solid var(--he-brass-line);outline:1px solid var(--he-brass-line);outline-offset:-7px;box-shadow:none}
html[data-design="heritage"] body .aw-band{min-height:0;border:1px solid var(--he-brass-line)}
html[data-design="heritage"] body .aw-band > img,
html[data-design="heritage"] body .aw-band::after{display:none}
html[data-design="heritage"] body .aw-band :is(h2,.aw-score span){color:var(--ink)}
html[data-design="heritage"] body .aw-band .aw-ring{color:var(--ink);background:transparent;border:3px double var(--he-brass)}
html[data-design="heritage"] body .aw-band__logo{filter:none}
html[data-design="heritage"] body .aw-band__in > div > p{color:var(--text)}
html[data-design="heritage"] body .dx-facts{background:var(--white);border:1px solid var(--he-brass-line)}
html[data-design="heritage"] body .section--ink{text-align:center}

/* =====================================================================
   HOMEPAGE (GroupHome.astro) AND HOTEL PAGE (HotelHome.astro)
   ===================================================================== */
/* Hero: the words on an ivory arch rising from the foot of the photograph. */
@media (min-width:721px){
  html[data-design="heritage"] .he-hero{min-height:min(92vh,880px);display:flex}
  html[data-design="heritage"] body .he-hero .hero__inner{width:100%;align-items:center;justify-content:flex-end;padding-bottom:0;text-align:center}
  html[data-design="heritage"] .he-arch{width:min(700px,92%);margin-top:auto;background:var(--paper);border-radius:350px 350px 0 0;padding:clamp(3.6rem,6vw,5rem) clamp(2rem,4vw,3.4rem) 2.2rem;text-shadow:none;box-shadow:0 -1px 0 var(--he-brass-line)}
  html[data-design="heritage"] body .he-arch :is(h1,h2){color:var(--ink)}
  html[data-design="heritage"] body .he-arch h1{font-size:clamp(2.4rem,3.8vw,3.6rem);max-width:none;margin-inline:auto}
  html[data-design="heritage"] body .he-arch .hero__eyebrow{justify-content:center;margin-inline:auto;color:var(--he-brass);font-size:.75rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase}
  html[data-design="heritage"] body .he-arch .hero__trust{justify-content:center;color:var(--text);font-size:.92rem}
  html[data-design="heritage"] .he-arch__links{display:flex;flex-wrap:wrap;justify-content:center;gap:.2rem 1.6rem;margin-top:1rem}
  html[data-design="heritage"] .he-arch__links a{display:inline-flex;align-items:center;min-height:44px;font-size:.75rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--he-brass-line)}
  html[data-design="heritage"] .he-arch__links a:hover{color:var(--he-brass)}
  html[data-design="heritage"] body .he-hero .hero__dots{position:absolute;right:var(--gutter);bottom:1.4rem;margin:0;z-index:2}
  html[data-design="heritage"] body .he-arch :is(h1,.hero__eyebrow,.hero__trust){text-shadow:none}
  html[data-design="heritage"] body .he-col .btn{letter-spacing:.1em;padding-inline:.9rem;font-size:.75rem}
  html[data-design="heritage"] body .he-booking{margin-top:0;padding-top:0}
}
@media (max-width:720px){
  html[data-design="heritage"] .he-arch__links,html[data-design="heritage"] .he-arch .he-orn{display:none}
  html[data-design="heritage"] body .he-hero .hero__overlay{background:linear-gradient(180deg,rgba(20,28,48,.5),rgba(20,28,48,.55) 50%,rgba(20,28,48,.65))}
  html[data-design="heritage"] .he-arch .he-line span + span::before{background:#fff}
}
/* FIRST SCREEN: the booking card always sits fully on the first screen. It sits under the
   arch with no overlap: card 204px + 16px -> hero = 100svh - 220px (portrait tablets:
   two rows, 440px + 16px). Short screens tighten the arch rather than push the card down. */
@media (min-width:901px){
  html[data-design="heritage"] body .he-hero{min-height:min(880px,calc(100svh - 220px))}
}
@media (min-width:721px) and (max-width:900px){
  html[data-design="heritage"] body .he-hero{min-height:calc(100svh - 456px)}
}
@media (min-width:721px){
  html[data-design="heritage"] body .he-hero .hero__inner{min-height:0;padding-top:130px}
  html[data-design="heritage"] body[data-resort] .he-hero .hero__inner{padding-top:160px}
}
@media (min-width:721px) and (max-height:960px){
  html[data-design="heritage"] body .he-arch{padding-top:2.6rem;padding-bottom:1.4rem}
  html[data-design="heritage"] body .he-arch h1{font-size:clamp(2rem,5vh,3.6rem)}
  html[data-design="heritage"] body .he-arch .he-orn{margin:.5rem auto}
  html[data-design="heritage"] body .he-arch .hero__trust{margin-top:.3rem}
  html[data-design="heritage"] body .he-arch__links{margin-top:.3rem}
}
html[data-design="heritage"] .he-booking .booking__card{background:var(--white);border:1px solid var(--he-brass-line);box-shadow:var(--shadow)}

/* Welcome: centred under an ornament. */
html[data-design="heritage"] .he-welcome{text-align:center}
html[data-design="heritage"] .he-welcome h2{font-size:clamp(2.3rem,4.4vw,3.6rem);max-width:20ch;margin:.4rem auto 0}
html[data-design="heritage"] .he-welcome__body{max-width:64ch;margin:0 auto}
html[data-design="heritage"] .he-welcome__body p{font-size:1.1rem;line-height:1.85;color:var(--text)}

/* The colonnade: arched portraits (phones: the swipe row). */
html[data-design="heritage"] .he-col{background:none;border:0;box-shadow:none;text-align:center;display:flex;flex-direction:column;align-items:center}
html[data-design="heritage"] .he-col__media{display:block;width:100%;aspect-ratio:3/4;overflow:hidden;border-radius:999px 999px 0 0;border:1px solid var(--he-brass-line);padding:6px;background:var(--white)}
html[data-design="heritage"] .he-col__media img{width:100%;height:100%;object-fit:cover;border-radius:999px 999px 0 0;transition:transform .8s var(--ease)}
html[data-design="heritage"] .he-col:hover .he-col__media img{transform:scale(1.03)}
html[data-design="heritage"] .he-col__body{padding:1.1rem .4rem 0;display:flex;flex-direction:column;align-items:center;flex:1}
html[data-design="heritage"] .he-col__place{margin:0;font-size:.75rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--he-brass)}
html[data-design="heritage"] .he-col h3{margin:.3rem 0 .4rem;font-size:1.55rem;font-weight:600}
html[data-design="heritage"] .he-col h3 a{color:var(--ink);text-decoration:none}
html[data-design="heritage"] .he-col__desc{margin:0 0 .9rem;font-size:.92rem;color:var(--text);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
html[data-design="heritage"] .he-col__actions{display:flex;flex-direction:column;align-items:center;gap:.2rem;margin-top:auto}
@media (min-width:721px){
  html[data-design="heritage"] body .he-colonnade{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:clamp(1.2rem,2vw,2rem);margin-top:2.6rem;align-items:stretch}
}

/* Finder: small-capital tabs, the match beside an arched photograph. */
html[data-design="heritage"] .he-finder .router__result{background:none;border:0}
@media (min-width:721px){
  html[data-design="heritage"] body .he-tabs{justify-content:center;gap:0 .4rem;margin:1.4rem 0 2.6rem}
  html[data-design="heritage"] body .he-tabs .chip{min-height:48px;padding:0 1.2rem;background:none;border:0;border-bottom:2px solid transparent;border-radius:0;font-size:.75rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);transform:none}
  html[data-design="heritage"] body .he-tabs .chip[aria-pressed="true"]{background:none;color:var(--ink);border-bottom-color:var(--he-brass)}
  html[data-design="heritage"] .he-finder__answer .match.is-current{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:0 3rem;align-items:center;max-width:960px;margin:0 auto;text-align:left}
  html[data-design="heritage"] .he-finder__answer .match__thumb{grid-row:1 / span 2;width:100%;height:auto;aspect-ratio:4/5;border-radius:999px 999px 0 0}
  html[data-design="heritage"] .he-finder__answer .match__body h3{font-size:clamp(2rem,3vw,2.8rem);font-weight:600}
  html[data-design="heritage"] .he-finder__answer .match__cta{flex-direction:row;align-items:center;gap:1.4rem;margin-top:1rem}
}
@media (max-width:720px){
  html[data-design="heritage"] body #routerResult.he-finder__answer{margin-inline:calc(-1 * var(--gutter));padding-inline:var(--gutter);scroll-padding-inline:var(--gutter)}
}

/* Invitations: double-framed cards, centred. */
html[data-design="heritage"] .he-invite{display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--white);border:1px solid var(--he-brass-line);outline:1px solid var(--he-brass-line);outline-offset:-8px;padding:2.2rem 1.6rem 1.8rem;box-shadow:var(--shadow-soft)}
html[data-design="heritage"] .he-invite__where{margin:0;font-family:var(--f-display);font-size:1.3rem;font-weight:600;color:var(--ink)}
html[data-design="heritage"] body .he-invite__place.beach{margin:.2rem 0 0;font-size:.75rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--he-brass)}
html[data-design="heritage"] body .he-invite__figure .offer__badge{position:static;display:inline-block;background:none!important;border:0!important;color:var(--he-brass)!important;padding:0;font-family:var(--f-display);font-style:italic;font-size:clamp(2.4rem,3.6vw,3.2rem)!important;font-weight:500;letter-spacing:0;line-height:1;text-transform:none}
html[data-design="heritage"] .he-invite__figure{margin:.2rem 0 .3rem}
html[data-design="heritage"] .he-invite .offer__name{font-family:var(--f-display);font-weight:500;font-size:1.35rem;margin:.2rem 0 .7rem;color:var(--ink)}
html[data-design="heritage"] .he-invite .offer__list{display:grid;justify-items:center;margin-bottom:1.2rem}
html[data-design="heritage"] .he-invite__book{margin-top:auto}
@media (min-width:721px){
  html[data-design="heritage"] .he-invites{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.6rem;margin-top:2.6rem}
}

/* Scores in double rings. */
html[data-design="heritage"] .he-rings{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:1.6rem 2.6rem;margin:2.4rem 0 0;padding:0}
html[data-design="heritage"] .he-rings li{display:flex;flex-direction:column;align-items:center;text-align:center;width:150px}
html[data-design="heritage"] .he-rings b{display:grid;place-items:center;width:106px;height:106px;border-radius:50%;border:4px double var(--he-brass);background:var(--white);font-family:var(--f-display);font-size:2.2rem;font-weight:600;color:var(--ink);margin-bottom:.7rem}
html[data-design="heritage"] .he-rings span{font-family:var(--f-display);font-weight:600;font-size:1.15rem;color:var(--ink)}
html[data-design="heritage"] .he-rings small{color:var(--muted)}
html[data-design="heritage"] .he-rings__award{margin-top:1.6rem;text-align:center;color:var(--text)}

/* Questions: one centred column. */
html[data-design="heritage"] .he-faq .faq__grid{max-width:780px;margin-inline:auto}

/* Close: an arched photograph above the words. */
html[data-design="heritage"] body .he-close{background:var(--paper);text-align:center;border-top:3px double var(--he-brass-line)}
html[data-design="heritage"] .he-close__arch{width:min(340px,70%);aspect-ratio:3/4;margin:0 auto 2rem;border-radius:999px 999px 0 0;overflow:hidden;border:1px solid var(--he-brass-line);padding:6px;background:var(--white)}
html[data-design="heritage"] body .he-close__arch img{width:100%;height:100%;object-fit:cover;border-radius:999px 999px 0 0;position:static}
html[data-design="heritage"] .he-close h2{font-size:clamp(2.2rem,4.4vw,3.6rem);max-width:20ch;margin-inline:auto}
html[data-design="heritage"] .he-close p{margin-inline:auto;max-width:52ch}
html[data-design="heritage"] .he-close__note{margin-top:1rem;font-size:.9rem;color:var(--muted)}

/* Hotel page: figures divided by diamonds. */
html[data-design="heritage"] .he-figures{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:1.2rem 0;margin:clamp(2.2rem,4vw,3.2rem) 0 0;padding:1.6rem 0;border-top:3px double var(--he-brass-line);border-bottom:3px double var(--he-brass-line)}
html[data-design="heritage"] .he-figures li{position:relative;display:flex;flex-direction:column;align-items:center;padding:0 clamp(1.4rem,3vw,2.8rem);text-align:center}
html[data-design="heritage"] .he-figures li + li::before{content:"";position:absolute;left:-4px;top:50%;width:7px;height:7px;margin-top:-4px;background:var(--he-brass);transform:rotate(45deg)}
html[data-design="heritage"] .he-figures b{font-family:var(--f-display);font-size:clamp(2.2rem,3.6vw,3rem);font-weight:600;color:var(--ink);line-height:1.1}
html[data-design="heritage"] .he-figures span{font-size:.75rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--he-brass);margin-top:.3rem}

/* Hotel page: rooms as arched portraits. */
html[data-design="heritage"] .he-archcard{display:flex;flex-direction:column;align-items:center;text-align:center;color:var(--text);text-decoration:none}
html[data-design="heritage"] .he-archcard__media{display:block;width:100%;aspect-ratio:3/4;overflow:hidden;border-radius:999px 999px 0 0;border:1px solid var(--he-brass-line);padding:6px;background:var(--white)}
html[data-design="heritage"] .he-archcard__media img{width:100%;height:100%;object-fit:cover;border-radius:999px 999px 0 0}
html[data-design="heritage"] .he-archcard__body{display:flex;flex-direction:column;align-items:center;padding-top:1.1rem}
html[data-design="heritage"] .he-archcard__tag{font-size:.75rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--he-brass)}
html[data-design="heritage"] .he-archcard h3{margin:.3rem 0;font-size:1.65rem;font-weight:600}
html[data-design="heritage"] .he-archcard__desc{display:block;color:var(--text)}
html[data-design="heritage"] .he-archcard.is-nomedia .he-archcard__media{display:none}
@media (min-width:721px){
  html[data-design="heritage"] .he-arches{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:clamp(1.6rem,3vw,2.6rem);margin-top:2.6rem}
}

/* Hotel page: facilities as centred columns with brass rings. */
html[data-design="heritage"] .he-cols{list-style:none;margin:2.4rem 0 0;padding:0;display:grid;gap:2rem}
html[data-design="heritage"] .he-cols li{text-align:center}
html[data-design="heritage"] .he-ring{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 1rem;border:1px solid var(--he-brass);color:var(--he-brass);background:var(--white);box-shadow:0 0 0 4px var(--paper-2),0 0 0 5px var(--he-brass-line)}
html[data-design="heritage"] .he-cols h3{font-size:1.35rem;font-weight:600;margin:0 0 .3rem}
html[data-design="heritage"] .he-cols p{margin:0 auto;max-width:34ch;font-size:.95rem;color:var(--text)}
@media (min-width:721px){
  html[data-design="heritage"] .he-cols{grid-template-columns:repeat(3,minmax(0,1fr));gap:2.6rem 2rem}
}

/* Hotel page: restaurants beside arched photographs. */
html[data-design="heritage"] .he-salon{background:var(--white);border:1px solid var(--line);text-align:center}
html[data-design="heritage"] .he-salon__media{aspect-ratio:4/3;overflow:hidden;border-radius:50% 50% 0 0 / 30% 30% 0 0}
html[data-design="heritage"] .he-salon__media img{width:100%;height:100%;object-fit:cover}
html[data-design="heritage"] .he-salon__body{padding:1.2rem 1.2rem 1.4rem}
html[data-design="heritage"] .he-salon__kind{margin:0;font-size:.75rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--he-brass)}
html[data-design="heritage"] .he-salon h3{margin:.3rem 0 0;font-size:clamp(1.9rem,3vw,2.6rem);font-weight:600}
html[data-design="heritage"] .he-salon__hours{margin:0 0 .6rem;font-family:var(--f-display);font-style:italic;font-size:1.1rem;color:var(--muted)}
html[data-design="heritage"] .he-salon__body > p{color:var(--text);line-height:1.8}
html[data-design="heritage"] .he-salon__note{font-size:.88rem;color:var(--muted)}
@media (min-width:721px){
  html[data-design="heritage"] .he-salons{display:grid;gap:clamp(3rem,6vw,5rem);margin-top:2.6rem}
  html[data-design="heritage"] .he-salon{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);gap:clamp(2.4rem,5vw,4.5rem);align-items:center;background:none;border:0}
  html[data-design="heritage"] .he-salon__media{aspect-ratio:4/5;border-radius:999px 999px 0 0;border:1px solid var(--he-brass-line);padding:6px;background:var(--white)}
  html[data-design="heritage"] .he-salon__media img{border-radius:999px 999px 0 0}
  html[data-design="heritage"] .he-salon__body{padding:0}
  html[data-design="heritage"] .he-salon:nth-child(even) .he-salon__media{order:2}
}

/* Hotel page: a colonnade of arched photographs. */
html[data-design="heritage"] .he-gallery a{display:block;overflow:hidden;border-radius:999px 999px 0 0;background:var(--paper-2)}
html[data-design="heritage"] .he-gallery img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
html[data-design="heritage"] .he-gallery a:hover img{transform:scale(1.04)}
@media (max-width:720px){
  html[data-design="heritage"] .he-gallery > a{height:280px}
}
@media (min-width:721px){
  html[data-design="heritage"] .he-gallery{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem;margin-top:2.6rem}
  html[data-design="heritage"] .he-gallery a{aspect-ratio:2/3}
  html[data-design="heritage"] .he-gallery a:nth-child(odd){margin-top:2rem}
}

/* Hotel page: the map under a domed top, the address double-framed. */
html[data-design="heritage"] .he-where__map{position:relative;z-index:0;height:340px;overflow:hidden;border-radius:50% 50% 0 0 / 18% 18% 0 0;border:1px solid var(--he-brass-line)}
html[data-design="heritage"] .he-where__map #resort-map{width:100%;height:100%}
html[data-design="heritage"] .he-where__card{background:var(--white);border:1px solid var(--he-brass-line);outline:1px solid var(--he-brass-line);outline-offset:-8px;padding:2rem 1.6rem;margin-top:1.4rem;text-align:center}
html[data-design="heritage"] .he-where__card h3{font-size:1.9rem;font-weight:600;margin:0}
html[data-design="heritage"] .he-where__card address{font-style:normal;color:var(--ink);line-height:1.7}
html[data-design="heritage"] .he-where__contact{list-style:none;margin:.8rem 0 0;padding:0}
html[data-design="heritage"] .he-where__contact a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink)}
html[data-design="heritage"] .he-where__go{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.6rem 1.4rem;margin-top:1rem}
@media (min-width:901px){
  html[data-design="heritage"] .he-where__grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:2.4rem;align-items:end;margin-top:2.6rem}
  html[data-design="heritage"] .he-where__map{height:clamp(440px,44vw,560px)}
  html[data-design="heritage"] .he-where__card{margin-top:0}
}

@media (prefers-reduced-motion:reduce){
  html[data-design="heritage"] *{transition:none!important}
}
