/* ==========================================================================
   Hotel Paradise on the Nile — site styles (v2)
   Bright Nile teal + sunset amber, warm cream, deep lagoon footer.
   DM Serif Display (display) + Manrope (text/UI).
   ========================================================================== */

:root{
  --phn-teal:#0E7C7B; --phn-teal-600:#0B6B6A; --phn-teal-700:#095756; --phn-teal-50:#EAF6F4; --phn-teal-100:#D3ECE8;
  --phn-deep:#0B3436; --phn-deep-2:#0F4245;
  --phn-sun:#F5A83C; --phn-sun-600:#EC9724; --phn-sun-50:#FFF4E3;
  --phn-ink:#13272A; --phn-text:#3B4D50; --phn-muted:#6A7A7D; --phn-line:#E2EAE8;
  --phn-cream:#FBF7F0; --phn-white:#FFFFFF; --phn-wa:#25D366;
  --phn-serif:'DM Serif Display', Georgia, 'Times New Roman', serif;
  --phn-sans:'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --phn-wrap:1240px; --phn-pad:84px; --phn-pad-sm:56px; --phn-header:84px;
  --phn-r-sm:10px; --phn-r:16px; --phn-r-lg:22px;
  --phn-shadow:0 18px 40px -24px rgba(11,52,54,.35);
  --phn-shadow-lg:0 30px 60px -30px rgba(11,52,54,.45);
  --phn-ease:cubic-bezier(.2,.7,.2,1);
  --phn-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
  --phn-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
}
@media (max-width:767px){ :root{ --phn-pad:60px; --phn-pad-sm:44px; --phn-header:68px; } }

/* ---------- Base ---------- */
:is(body.phn-site, .editor-styles-wrapper){background:#fff; font-family:var(--phn-sans); font-size:16.5px; line-height:1.72; color:var(--phn-text); -webkit-font-smoothing:antialiased;}
:is(body.phn-site, .editor-styles-wrapper) h1, :is(body.phn-site, .editor-styles-wrapper) h2{font-family:var(--phn-serif); font-weight:400; color:var(--phn-ink); line-height:1.08; letter-spacing:-.005em;}
:is(body.phn-site, .editor-styles-wrapper) h3, :is(body.phn-site, .editor-styles-wrapper) h4{font-family:var(--phn-sans); font-weight:700; color:var(--phn-ink); line-height:1.3;}
:is(body.phn-site, .editor-styles-wrapper) h1 em, :is(body.phn-site, .editor-styles-wrapper) h2 em{font-style:italic; color:var(--phn-teal);}
/* Plain text links only; components (buttons, cards, menus) set their own colours. */
:is(body.phn-site, .editor-styles-wrapper) :where(a:not([class])){color:var(--phn-teal); text-decoration-thickness:1px; text-underline-offset:3px;}
:is(body.phn-site, .editor-styles-wrapper) :where(a:not([class])):hover{color:var(--phn-teal-700);}
:is(body.phn-site, .editor-styles-wrapper) ::selection{background:var(--phn-sun); color:var(--phn-ink);}
.phn-no-scroll{overflow:hidden;}
.phn-wrap{width:100%; max-width:var(--phn-wrap); margin:0 auto; padding:0 24px; box-sizing:border-box;}
.phn-icon{flex-shrink:0;}
.screen-reader-text{position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); white-space:nowrap;}
.phn-notice{padding:14px 16px; border:1px dashed var(--phn-sun); border-radius:var(--phn-r-sm); background:var(--phn-sun-50); font-size:14px;}
.phn-img-empty{display:block; width:100%; height:100%; min-height:200px; background:linear-gradient(135deg,var(--phn-teal-100),var(--phn-cream));}

/* Kadence content area: sections sit edge to edge, no gaps between them */
.phn-site .entry-content > .alignfull, .phn-site .entry-content > .phn-hero{margin-top:0!important; margin-bottom:0!important;}
.phn-site .entry-content{margin:0;}
.phn-site.phn-chrome .content-area{margin-top:0; margin-bottom:0;}

/* ---------- Sections (core Group with class phn-section) ---------- */
/* Side padding must beat Kadence's ".entry-content .alignfull{padding:0}" (sections are full-width Groups) */
:is(body.phn-site, .editor-styles-wrapper) .phn-section{position:relative; box-sizing:border-box; padding-left:24px; padding-right:24px;}
.phn-pad--normal{padding-top:var(--phn-pad); padding-bottom:var(--phn-pad);}
.phn-pad--compact{padding-top:var(--phn-pad-sm); padding-bottom:var(--phn-pad-sm);}
.phn-pad--none{padding-top:0; padding-bottom:0;}
.phn-bg--white{background:#fff;}
.phn-bg--cream{background:var(--phn-cream);}
.phn-bg--mist{background:var(--phn-teal-50);}
.phn-bg--teal{background:var(--phn-teal); color:#E6F4F2;}
.phn-bg--deep{background:var(--phn-deep); color:#C9DDDA;}
.phn-bg--teal h2, .phn-bg--deep h2, .phn-bg--teal h3, .phn-bg--deep h3{color:#fff!important;}
.phn-bg--teal h2 em, .phn-bg--deep h2 em{color:var(--phn-sun)!important;}
:is(.phn-section, .phn-section > .wp-block-group__inner-container) > :first-child{margin-top:0;} :is(.phn-section, .phn-section > .wp-block-group__inner-container) > :last-child{margin-bottom:0;}

/* Section heading pattern */
.phn-eyebrow{display:flex; align-items:center; gap:12px; margin:0 0 14px!important; font-family:var(--phn-sans); font-size:13px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--phn-teal);}
.phn-eyebrow::before{content:''; width:28px; height:2px; border-radius:2px; background:var(--phn-sun);}
p.phn-eyebrow.has-text-align-center{display:flex; justify-content:center;}
.phn-bg--teal .phn-eyebrow, .phn-bg--deep .phn-eyebrow, .phn-hero .phn-eyebrow{color:#fff;}
:is(body.phn-site, .editor-styles-wrapper) .phn-h2{font-size:clamp(34px,4.1vw,52px); margin:0 0 18px;}
.phn-lead{font-size:18.5px; line-height:1.65; color:var(--phn-muted); max-width:660px;}
.phn-lead.has-text-align-center{margin-left:auto!important; margin-right:auto!important;}
.phn-section .phn-lead + *{margin-top:44px;}
.phn-section .phn-h2 + .phn-grid, .phn-section .phn-h2 + .wp-block-columns{margin-top:40px;}
.phn-bg--teal .phn-lead, .phn-bg--deep .phn-lead{color:#CFE6E2;}
.phn-muted{color:var(--phn-muted);}

/* ---------- Buttons ----------
   Selectors are deliberately specific (:is(body.phn-site, .editor-styles-wrapper) + .wp-block-button.is-style-x)
   so Kadence's own button colours/paddings can never win. */
.phn-actions{display:flex; flex-wrap:wrap; gap:12px; align-items:center;}
:is(body.phn-site, .editor-styles-wrapper) .phn-btn, :is(body.phn-site, .editor-styles-wrapper) .wp-block-button .wp-block-button__link{
  display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:52px; padding:0 24px 0 28px; box-sizing:border-box;
  border-radius:999px; border:1.5px solid transparent; font-family:var(--phn-sans); font-size:15px; font-weight:700; letter-spacing:.01em; line-height:1;
  white-space:nowrap; text-decoration:none; cursor:pointer; box-shadow:none; transition:background-color .25s, color .25s, border-color .25s, box-shadow .25s, transform .25s var(--phn-ease);
}
:is(body.phn-site, .editor-styles-wrapper) .phn-btn:hover, :is(body.phn-site, .editor-styles-wrapper) .wp-block-button .wp-block-button__link:hover{transform:translateY(-2px); text-decoration:none;}
.phn-btn__icon{display:inline-grid; place-items:center; width:26px; height:26px; margin-right:-10px; border-radius:50%; background:rgba(19,39,42,.1); transition:transform .3s var(--phn-ease), background-color .25s;}
.phn-btn:hover .phn-btn__icon{transform:translateX(3px);}
:is(body.phn-site, .editor-styles-wrapper) .wp-block-button .wp-block-button__link::after{content:''; width:16px; height:16px; margin-right:-4px; background:currentColor; -webkit-mask:var(--phn-arrow) center/contain no-repeat; mask:var(--phn-arrow) center/contain no-repeat; transition:transform .3s var(--phn-ease);}
:is(body.phn-site, .editor-styles-wrapper) .wp-block-button .wp-block-button__link:hover::after{transform:translateX(4px);}
/* sun (default core button + .phn-btn--sun) */
:is(body.phn-site, .editor-styles-wrapper) .phn-btn--sun, :is(body.phn-site, .editor-styles-wrapper) .wp-block-button:not([class*="is-style-"]) .wp-block-button__link, :is(body.phn-site, .editor-styles-wrapper) .wp-block-button.is-style-fill .wp-block-button__link{background:var(--phn-sun); border-color:var(--phn-sun); color:var(--phn-ink);}
:is(body.phn-site, .editor-styles-wrapper) .phn-btn--sun:hover, :is(body.phn-site, .editor-styles-wrapper) .wp-block-button:not([class*="is-style-"]) .wp-block-button__link:hover, :is(body.phn-site, .editor-styles-wrapper) .wp-block-button.is-style-fill .wp-block-button__link:hover{background:var(--phn-sun-600); border-color:var(--phn-sun-600); color:var(--phn-ink); box-shadow:0 12px 26px -12px rgba(236,151,36,.7);}
/* teal */
:is(body.phn-site, .editor-styles-wrapper) .phn-btn--teal, :is(body.phn-site, .editor-styles-wrapper) .wp-block-button.is-style-phn-teal .wp-block-button__link{background:var(--phn-teal); border-color:var(--phn-teal); color:#fff;}
.phn-btn--teal .phn-btn__icon{background:rgba(255,255,255,.18);}
:is(body.phn-site, .editor-styles-wrapper) .phn-btn--teal:hover, :is(body.phn-site, .editor-styles-wrapper) .wp-block-button.is-style-phn-teal .wp-block-button__link:hover{background:var(--phn-teal-700); border-color:var(--phn-teal-700); color:#fff; box-shadow:0 12px 26px -12px rgba(9,87,86,.7);}
/* outline (teal line on light backgrounds) */
:is(body.phn-site, .editor-styles-wrapper) .phn-btn--outline, :is(body.phn-site, .editor-styles-wrapper) .wp-block-button.is-style-outline .wp-block-button__link{background:transparent; border-color:var(--phn-teal); color:var(--phn-teal);}
:is(body.phn-site, .editor-styles-wrapper) .phn-btn--outline:hover, :is(body.phn-site, .editor-styles-wrapper) .wp-block-button.is-style-outline .wp-block-button__link:hover{background:var(--phn-teal); border-color:var(--phn-teal); color:#fff; box-shadow:0 12px 26px -12px rgba(9,87,86,.55);}
/* light (white line on photos / dark backgrounds) */
:is(body.phn-site, .editor-styles-wrapper) .phn-btn--light, :is(body.phn-site, .editor-styles-wrapper) .wp-block-button.is-style-phn-light .wp-block-button__link, :is(body.phn-site, .editor-styles-wrapper) .phn-bg--teal .wp-block-button.is-style-outline .wp-block-button__link, :is(body.phn-site, .editor-styles-wrapper) .phn-bg--deep .wp-block-button.is-style-outline .wp-block-button__link{background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.65); color:#fff; -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);}
:is(body.phn-site, .editor-styles-wrapper) .phn-btn--light:hover, :is(body.phn-site, .editor-styles-wrapper) .wp-block-button.is-style-phn-light .wp-block-button__link:hover, :is(body.phn-site, .editor-styles-wrapper) .phn-bg--teal .wp-block-button.is-style-outline .wp-block-button__link:hover, :is(body.phn-site, .editor-styles-wrapper) .phn-bg--deep .wp-block-button.is-style-outline .wp-block-button__link:hover{background:#fff; border-color:#fff; color:var(--phn-ink);}
/* WhatsApp */
:is(body.phn-site, .editor-styles-wrapper) .phn-btn--wa{background:#1A9E4C; border-color:#1A9E4C; color:#fff;}
.phn-btn--wa .phn-btn__icon{margin:0 0 0 -12px; background:transparent; width:auto; height:auto;}
:is(body.phn-site, .editor-styles-wrapper) .phn-btn--wa:hover{background:#15873F; border-color:#15873F; color:#fff; box-shadow:0 12px 26px -12px rgba(37,211,102,.7);}
:is(body.phn-site, .editor-styles-wrapper) .wp-block-buttons{gap:12px;}
/* Buttons that follow a grid/list directly inside a section get breathing room */
:is(body.phn-site, .editor-styles-wrapper) :is(.phn-section, .phn-section > .wp-block-group__inner-container) > .wp-block-buttons:not(:first-child){margin-top:40px;}
.phn-chiplink{display:inline-flex; align-items:center; gap:6px; padding:8px 14px; border-radius:999px; border:1.5px solid var(--phn-teal-100); color:var(--phn-teal)!important; font-weight:700; font-size:14px; text-decoration:none!important; white-space:nowrap; transition:.25s;}
.phn-chiplink:hover{background:var(--phn-teal); border-color:var(--phn-teal); color:#fff!important;}
.phn-chiplink .phn-icon{transition:transform .3s var(--phn-ease);}
.phn-chiplink:hover .phn-icon{transform:translateX(3px);}

/* ---------- Grid ---------- */
.phn-grid{display:grid; gap:26px;}
.phn-grid--2{grid-template-columns:repeat(2,minmax(0,1fr));}
.phn-grid--3{grid-template-columns:repeat(3,minmax(0,1fr));}
.phn-grid--4{grid-template-columns:repeat(4,minmax(0,1fr));}
.phn-grid--6{grid-template-columns:repeat(6,minmax(0,1fr));}
@media (max-width:1100px){ .phn-grid--4, .phn-grid--6{grid-template-columns:repeat(2,minmax(0,1fr));} .phn-grid--3{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (max-width:640px){ .phn-grid--2, .phn-grid--3, .phn-grid--4{grid-template-columns:1fr;} .phn-grid--6{grid-template-columns:repeat(2,minmax(0,1fr));} }

/* ---------- Reveal on scroll (only when JS is running) ---------- */
.phn-js [data-phn-reveal]{opacity:0; transform:translateY(22px); transition:opacity .8s var(--phn-ease), transform .8s var(--phn-ease);}
.phn-js [data-phn-reveal].is-in{opacity:1; transform:none;}
@media (prefers-reduced-motion:reduce){ .phn-js [data-phn-reveal]{opacity:1; transform:none; transition:none;} }

/* ==========================================================================
   Header
   ========================================================================== */
body.phn-chrome #masthead, body.phn-chrome #colophon{display:none!important;}
.phn-header{position:fixed; top:0; left:0; right:0; z-index:1000; background:#fff; box-shadow:0 1px 0 var(--phn-line); transition:background-color .35s, box-shadow .35s, color .35s;}
.admin-bar .phn-header{top:32px;} @media (max-width:782px){ .admin-bar .phn-header{top:46px;} }
body.phn-no-hero{padding-top:var(--phn-header);}
.phn-header__bar{display:flex; align-items:center; gap:28px; height:var(--phn-header); transition:height .35s;}
.phn-header.is-scrolled{box-shadow:0 10px 30px -18px rgba(11,52,54,.45);}
.phn-header.is-scrolled .phn-header__bar{height:72px;}
@media (max-width:767px){ .phn-header.is-scrolled .phn-header__bar{height:64px;} }

/* transparent over the hero */
.phn-has-hero .phn-header:not(.is-scrolled):not(.is-open){background:transparent; box-shadow:none; color:#fff;}
.phn-has-hero .phn-header:not(.is-scrolled):not(.is-open) .phn-brand__name,
.phn-has-hero .phn-header:not(.is-scrolled):not(.is-open) .phn-nav__list > li > a,
.phn-has-hero .phn-header:not(.is-scrolled):not(.is-open) .phn-header__phone{color:#fff;}
.phn-has-hero .phn-header:not(.is-scrolled):not(.is-open) .phn-brand__small, .phn-has-hero .phn-header:not(.is-scrolled):not(.is-open) .phn-brand__sub{color:rgba(255,255,255,.8);}
.phn-has-hero .phn-header:not(.is-scrolled):not(.is-open) .phn-header__phone-icon{border-color:rgba(255,255,255,.4); color:#fff;}
.phn-has-hero .phn-header:not(.is-scrolled):not(.is-open) .phn-burger span{background:#fff;}
/*.phn-has-hero .phn-header:not(.is-scrolled):not(.is-open) .custom-logo{filter:brightness(0) invert(1);}*/

.phn-header__brand{flex-shrink:0; margin-right:auto;}
.phn-header__brand .custom-logo{max-height:58px; width:auto; transition:filter .35s;}
.phn-brand{display:inline-flex; flex-direction:column; line-height:1; text-decoration:none!important; padding:4px 0;}
.phn-brand__small{font-family:var(--phn-sans); font-size:11px; font-weight:700; letter-spacing:.34em; text-transform:uppercase; color:var(--phn-muted); margin-left:2px;}
.phn-brand__name{font-family:var(--phn-serif); font-size:31px; color:var(--phn-ink); letter-spacing:-.01em; margin:3px 0 2px; transition:color .35s;}
.phn-brand__sub{font-family:var(--phn-serif); font-style:italic; font-size:14px; color:var(--phn-teal); margin-left:2px;}
.phn-has-hero .phn-header:not(.is-scrolled):not(.is-open) .phn-brand__sub{color:var(--phn-sun);}

.phn-nav__list{list-style:none; display:flex; align-items:center; gap:2px; margin:0; padding:0;}
.phn-nav__list > li{position:relative; margin:0;}
.phn-nav__list > li > a{position:relative; display:block; padding:12px 13px; font-size:15px; font-weight:600; color:var(--phn-ink); text-decoration:none; white-space:nowrap; transition:color .25s;}
.phn-nav__list > li > a::after{content:''; position:absolute; left:13px; right:13px; bottom:6px; height:2px; border-radius:2px; background:var(--phn-sun); transform:scaleX(0); transition:transform .3s var(--phn-ease);}
.phn-nav__list > li > a:hover::after, .phn-nav__list > li.current-menu-item > a::after, .phn-nav__list > li.current-menu-ancestor > a::after, .phn-nav__list > li.current-page-ancestor > a::after{transform:scaleX(1);}
.phn-nav__list > li > a:hover{color:var(--phn-teal);}
.phn-has-hero .phn-header:not(.is-scrolled):not(.is-open) .phn-nav__list > li > a:hover{color:#fff;}
.phn-nav__list .menu-item-has-children > a{padding-right:26px;}
.phn-nav__list .menu-item-has-children > a::before{content:''; position:absolute; right:12px; top:50%; width:6px; height:6px; margin-top:-5px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg);}
.phn-nav__list .sub-menu{position:absolute; top:calc(100% + 6px); left:0; min-width:220px; list-style:none; margin:0; padding:10px; background:#fff; border-radius:14px; box-shadow:var(--phn-shadow-lg); opacity:0; visibility:hidden; transform:translateY(8px); transition:.25s var(--phn-ease);}
.phn-nav__list li:hover > .sub-menu, .phn-nav__list li:focus-within > .sub-menu{opacity:1; visibility:visible; transform:none;}
.phn-nav__list .sub-menu a{display:block; padding:10px 12px; border-radius:8px; color:var(--phn-ink); font-size:14.5px; font-weight:600; text-decoration:none;}
.phn-nav__list .sub-menu a:hover{background:var(--phn-teal-50); color:var(--phn-teal);}
.phn-nav__mobile-extra{display:none;}

.phn-header__actions{display:flex; align-items:center; gap:18px; flex-shrink:0;}
.phn-header__phone{display:flex; align-items:center; gap:10px; color:var(--phn-ink); text-decoration:none!important; transition:color .35s;}
.phn-header__phone-icon{display:grid; place-items:center; width:38px; height:38px; border-radius:50%; border:1.5px solid var(--phn-line); color:var(--phn-teal); transition:.35s;}
.phn-header__phone-text{display:flex; flex-direction:column; font-size:14.5px; font-weight:700; line-height:1.2; white-space:nowrap;}
.phn-header__phone-text small{font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; opacity:.7;}
.phn-header__phone:hover .phn-header__phone-icon{background:var(--phn-sun); border-color:var(--phn-sun); color:var(--phn-ink);}
.phn-header__actions .phn-btn{min-height:46px; padding:0 22px;}

.phn-burger{display:none; position:relative; width:44px; height:44px; padding:0; border:0; background:transparent; cursor:pointer;}
.phn-burger span:not(.screen-reader-text){position:absolute; left:10px; right:10px; height:2px; border-radius:2px; background:var(--phn-ink); transition:transform .3s var(--phn-ease), opacity .2s, top .3s var(--phn-ease);}
.phn-burger span:nth-child(1){top:15px;} .phn-burger span:nth-child(2){top:21px;} .phn-burger span:nth-child(3){top:27px;}
.phn-header.is-open .phn-burger span:nth-child(1){top:21px; transform:rotate(45deg);}
.phn-header.is-open .phn-burger span:nth-child(2){opacity:0;}
.phn-header.is-open .phn-burger span:nth-child(3){top:21px; transform:rotate(-45deg);}

@media (max-width:1320px){ .phn-header__phone-text{display:none;} }
@media (max-width:1140px){
  .phn-burger{display:block;}
  .phn-header__actions > .phn-btn{display:none;}
  .phn-header__phone{display:none;}
  .phn-nav{position:fixed; left:0; right:0; bottom:0; top:var(--phn-header); background:#fff; padding:12px 24px 40px; overflow-y:auto; opacity:0; visibility:hidden; transform:translateY(-10px); transition:.3s var(--phn-ease);}
  .admin-bar .phn-nav{top:calc(var(--phn-header) + 46px);}
  .phn-header.is-open .phn-nav{opacity:1; visibility:visible; transform:none;}
  .phn-nav__list{flex-direction:column; align-items:stretch; gap:0;}
  .phn-nav__list > li > a{padding:16px 2px; font-family:var(--phn-serif); font-size:26px; font-weight:400; color:var(--phn-ink)!important; border-bottom:1px solid var(--phn-line);}
  .phn-nav__list > li > a::after{display:none;}
  .phn-nav__list .menu-item-has-children > a::before{display:none;}
  .phn-nav__list .sub-menu{position:static; opacity:1; visibility:inherit; transform:none; box-shadow:none; padding:6px 0 10px 12px; min-width:0;}
  .phn-nav__mobile-extra{display:flex; flex-direction:column; align-items:flex-start; gap:18px; margin-top:28px;}
  .phn-nav__phone{display:flex; align-items:center; gap:10px; font-weight:700; color:var(--phn-ink); text-decoration:none;}
}

/* ==========================================================================
   Hero
   ========================================================================== */
.phn-hero{position:relative; display:flex; flex-direction:column; justify-content:flex-end; overflow:hidden; background:var(--phn-deep); color:#fff; isolation:isolate;}
/* --phn-vh is only set in the editor (= the browser window's 1vh), so heroes are the same height there */
.phn-hero--full{min-height:100vh; min-height:calc(var(--phn-vh, 1svh) * 100); max-height:1100px;}
.phn-hero--page{min-height:480px; min-height:clamp(440px, calc(var(--phn-vh, 1vh) * 62), 600px);}
.phn-hero--band{min-height:420px; justify-content:center;}
.phn-hero__media{position:absolute; inset:0; z-index:-1;}
.phn-hero__slide{position:absolute; inset:0; opacity:0; transition:opacity 1.4s ease;}
.phn-hero__slide.is-active{opacity:1;}
.phn-hero__img{width:100%; height:100%; object-fit:cover; display:block; max-width:none; transform:scale(1.06); transition:transform 8s linear;}
.phn-hero__slide.is-active .phn-hero__img{transform:scale(1);}
.phn-hero__media::after{content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(7,30,32,.55) 0%, rgba(7,30,32,0) 26%),
             linear-gradient(90deg, rgba(7,30,32,var(--phn-ov,.62)) 0%, rgba(7,30,32,calc(var(--phn-ov,.62) * .55)) 45%, rgba(7,30,32,.08) 100%),
             linear-gradient(0deg, rgba(7,30,32,calc(var(--phn-ov,.62) * .8)) 0%, rgba(7,30,32,0) 50%);}
.phn-hero--ov-soft{--phn-ov:.42;} .phn-hero--ov-medium{--phn-ov:.62;} .phn-hero--ov-strong{--phn-ov:.8;}
.phn-hero--center .phn-hero__media::after{background:linear-gradient(180deg, rgba(7,30,32,.5) 0%, rgba(7,30,32,calc(var(--phn-ov,.62) * .7)) 40%, rgba(7,30,32,calc(var(--phn-ov,.62) * .9)) 100%);}
.phn-hero__inner{position:relative; padding-top:calc(var(--phn-header) + 60px); padding-bottom:72px;}
.phn-hero--page .phn-hero__inner{padding-bottom:56px;}
.phn-hero--band .phn-hero__inner{padding-top:72px; padding-bottom:72px;}
.phn-hero--facts .phn-hero__inner{padding-bottom:120px;}
.phn-hero__content{max-width:700px;}
.phn-hero--center .phn-hero__content{margin:0 auto; text-align:center;}
.phn-hero--center .phn-hero__content .wp-block-buttons{justify-content:center;}
.phn-hero--center .phn-eyebrow{justify-content:center; display:flex;}
.phn-hero__content > *{margin-top:0;}
:is(body.phn-site, .editor-styles-wrapper) .phn-hero h1, :is(body.phn-site, .editor-styles-wrapper) .phn-hero h2{color:#fff; font-size:clamp(44px,6.2vw,86px); line-height:1.02; margin:0 0 20px; text-shadow:0 2px 24px rgba(0,0,0,.18);}
:is(body.phn-site, .editor-styles-wrapper) .phn-hero--page h1, :is(body.phn-site, .editor-styles-wrapper) .phn-hero--band h2{font-size:clamp(40px,5vw,66px);}
:is(body.phn-site, .editor-styles-wrapper) .phn-hero h1 em, :is(body.phn-site, .editor-styles-wrapper) .phn-hero h2 em{color:var(--phn-sun);}
.phn-hero p:not(.phn-eyebrow){font-size:clamp(17px,1.4vw,19.5px); line-height:1.6; color:rgba(255,255,255,.9); max-width:560px; margin:0 0 30px;}
.phn-hero--center p:not(.phn-eyebrow){margin-left:auto; margin-right:auto;}
.phn-hero .wp-block-buttons{margin-top:6px;}
.phn-hero__dots{position:absolute; right:24px; bottom:74px; display:flex; gap:8px;}
.phn-hero--facts .phn-hero__dots{bottom:118px;}
.phn-hero__dot{width:34px; height:24px; padding:0; border:0; background:none; cursor:pointer; position:relative;}
.phn-hero__dot::before{content:''; position:absolute; left:0; right:0; top:11px; height:3px; border-radius:3px; background:rgba(255,255,255,.4); transition:background-color .3s;}
.phn-hero__dot.is-active::before, .phn-hero__dot:hover::before{background:var(--phn-sun);}
.phn-hero__facts{position:absolute; left:0; right:0; bottom:0; background:rgba(8,40,42,.55); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); border-top:1px solid rgba(255,255,255,.14);}
.phn-hero__facts ul{list-style:none; display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px 28px; margin:0 auto; padding-top:20px; padding-bottom:20px;}
.phn-hero__facts li{display:flex; align-items:center; gap:10px; margin:0; font-size:14.5px; font-weight:600; color:#fff; white-space:nowrap;}
.phn-hero__facts li::before{content:''; width:8px; height:8px; border-radius:50%; background:var(--phn-sun); box-shadow:0 0 0 4px rgba(245,168,60,.25);}
@media (max-width:900px){
  .phn-hero__facts ul{justify-content:flex-start; gap:10px 22px;}
  .phn-hero--facts .phn-hero__inner{padding-bottom:150px;}
  .phn-hero__dots{display:none;}
}
@media (max-width:640px){
  .phn-hero--full{min-height:calc(var(--phn-vh, 1svh) * 92);}
  .phn-hero__inner{padding-bottom:48px;}
  .phn-hero__facts li{font-size:13px;}
  .phn-hero--facts .phn-hero__inner{padding-bottom:170px;}
}

/* ==========================================================================
   Core-block layouts used on the pages
   ========================================================================== */
.phn-section .wp-block-columns{gap:clamp(28px,4vw,64px); margin-bottom:0;}
.phn-split.wp-block-columns{align-items:center;}
.phn-section .wp-block-image{margin:0;}
.phn-section .wp-block-image img{border-radius:var(--phn-r-lg);}
.phn-split .wp-block-image img{width:100%; aspect-ratio:4/3; object-fit:cover;}
.phn-frame{position:relative; z-index:0;}
.phn-frame::before{content:''; position:absolute; z-index:-1; left:-18px; bottom:-18px; width:62%; height:62%; border-radius:var(--phn-r-lg); background:var(--phn-teal-100);}
.phn-bg--cream .phn-frame::before{background:var(--phn-sun-50);}
.phn-split--right .phn-frame::before{left:auto; right:-18px;}
@media (max-width:781px){ .phn-frame::before{left:-10px; bottom:-10px;} .phn-split--right .phn-frame::before{right:-10px;} }

/* Welcome collage: large photo, small photo, round badge */
.phn-collage{position:relative; padding:0 10% 9% 0;}
.phn-collage .wp-block-image:first-child img{width:100%; aspect-ratio:1/1; object-fit:cover;}
.phn-collage .wp-block-image:nth-child(2){position:absolute; right:0; bottom:0; width:48%;}
.phn-collage .wp-block-image:nth-child(2) img{aspect-ratio:1; object-fit:cover; border:8px solid #fff; box-shadow:var(--phn-shadow-lg);}
.phn-collage .phn-badge{position:absolute; left:-20px; top:32px; display:flex; flex-direction:column; align-items:flex-start; gap:6px; max-width:150px; margin:0!important; padding:18px 22px 16px; border-radius:18px; background:var(--phn-sun); color:var(--phn-ink); font-family:var(--phn-sans); font-size:12.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; line-height:1.35; box-shadow:var(--phn-shadow-lg);}
.phn-collage .phn-badge strong{font-family:var(--phn-serif); font-size:48px; font-weight:400; line-height:.9; letter-spacing:0; text-transform:none;}
@media (max-width:1300px){ .phn-collage .phn-badge{left:-8px;} }
@media (max-width:640px){ .phn-collage .phn-badge{left:-8px; top:20px; padding:14px 16px 12px; font-size:11px;} .phn-collage .phn-badge strong{font-size:36px;} }

/* Lists */
:is(body.phn-site, .editor-styles-wrapper) .is-style-phn-check{list-style:none; padding:0; margin:22px 0;}
:is(body.phn-site, .editor-styles-wrapper) .is-style-phn-check li{position:relative; padding-left:34px; margin:0 0 12px;}
:is(body.phn-site, .editor-styles-wrapper) .is-style-phn-check li::before{content:''; position:absolute; left:0; top:2px; width:22px; height:22px; border-radius:50%; background:var(--phn-teal-50);}
:is(body.phn-site, .editor-styles-wrapper) .is-style-phn-check li::after{content:''; position:absolute; left:5px; top:7px; width:12px; height:12px; background:var(--phn-teal); -webkit-mask:var(--phn-check) center/contain no-repeat; mask:var(--phn-check) center/contain no-repeat;}
:is(body.phn-site, .editor-styles-wrapper) .is-style-phn-check.phn-cols-2{columns:2; column-gap:32px;}
:is(body.phn-site, .editor-styles-wrapper) .is-style-phn-check.phn-cols-2 li{break-inside:avoid;}
@media (max-width:640px){ :is(body.phn-site, .editor-styles-wrapper) .is-style-phn-check.phn-cols-2{columns:1;} }
:is(body.phn-site, .editor-styles-wrapper) .is-style-phn-chips{list-style:none; display:flex; flex-wrap:wrap; gap:10px; padding:0; margin:22px 0;}
:is(body.phn-site, .editor-styles-wrapper) .is-style-phn-chips li{margin:0; padding:10px 18px; border-radius:999px; background:#fff; border:1px solid var(--phn-line); font-size:14.5px; font-weight:600; color:var(--phn-ink); transition:.25s;}
:is(body.phn-site, .editor-styles-wrapper) .is-style-phn-chips li:hover{border-color:var(--phn-teal); color:var(--phn-teal); transform:translateY(-2px);}
.phn-bg--cream .is-style-phn-chips li, .phn-bg--mist .is-style-phn-chips li{background:#fff;}

/* Numbers */
.phn-stats.wp-block-columns{gap:24px!important;}
.phn-stats .wp-block-column{padding:8px 0 8px 22px; border-left:2px solid rgba(255,255,255,.18);}
.phn-bg--white .phn-stats .wp-block-column, .phn-bg--cream .phn-stats .wp-block-column{border-color:var(--phn-line);}
.phn-stat__value{margin:0!important; font-family:var(--phn-serif); font-size:clamp(40px,4.4vw,60px); line-height:1; color:#fff;}
.phn-stat__label{margin:10px 0 0!important; font-size:14.5px; font-weight:600; color:#CFE6E2;}
.phn-bg--white .phn-stat__value, .phn-bg--cream .phn-stat__value{color:var(--phn-teal);}
.phn-bg--white .phn-stat__label, .phn-bg--cream .phn-stat__label{color:var(--phn-muted);}
@media (max-width:781px){ .phn-stats.wp-block-columns{display:grid!important; grid-template-columns:1fr 1fr;} }

/* Cards (core Group .phn-card) */
.phn-card{height:100%; box-sizing:border-box; padding:30px; background:#fff; border:1px solid var(--phn-line); border-radius:var(--phn-r); transition:transform .35s var(--phn-ease), box-shadow .35s, border-color .35s;}
.phn-card:hover{transform:translateY(-5px); box-shadow:var(--phn-shadow); border-color:transparent;}
.phn-card > :first-child{margin-top:0;} .phn-card > :last-child{margin-bottom:0;}
:is(body.phn-site, .editor-styles-wrapper) .phn-card h3{font-family:var(--phn-serif); font-weight:400; font-size:26px; margin:0 0 10px;}
.phn-card .phn-meta{display:inline-flex; margin:0 0 16px; padding:6px 12px; border-radius:999px; background:var(--phn-sun-50); color:#9A5B06; font-size:13px; font-weight:700;}
.phn-section .wp-block-columns.phn-cards{align-items:stretch;}
.phn-section .wp-block-columns.phn-cards + .wp-block-columns.phn-cards{margin-top:26px;}

/* FAQ (core Details inside .phn-faq) */
.phn-faq .wp-block-details{margin:0 0 12px; padding:0; background:#fff; border:1px solid var(--phn-line); border-radius:14px; transition:border-color .25s, box-shadow .25s;}
.phn-faq .wp-block-details:hover{border-color:var(--phn-teal-100);}
.phn-faq .wp-block-details[open]{box-shadow:var(--phn-shadow); border-color:transparent;}
.phn-faq .wp-block-details summary{position:relative; list-style:none; cursor:pointer; padding:20px 60px 20px 24px; font-weight:700; font-size:17px; color:var(--phn-ink);}
.phn-faq .wp-block-details summary::-webkit-details-marker{display:none;}
.phn-faq .wp-block-details summary::after{content:'+'; position:absolute; right:20px; top:50%; width:30px; height:30px; margin-top:-15px; border-radius:50%; background:var(--phn-teal-50); color:var(--phn-teal); display:grid; place-items:center; font-size:20px; line-height:30px; text-align:center; transition:transform .3s var(--phn-ease), background-color .3s, color .3s;}
.phn-faq .wp-block-details[open] summary::after{transform:rotate(45deg); background:var(--phn-teal); color:#fff;}
:is(body.phn-site, .editor-styles-wrapper) .phn-faq .wp-block-details > :not(summary){margin:0 24px 20px; color:var(--phn-text);}

/* Form card (the Form block) */
.phn-form{padding:clamp(24px,3vw,40px); background:#fff; border-radius:var(--phn-r-lg); box-shadow:var(--phn-shadow);}

/* ==========================================================================
   Paradise blocks
   ========================================================================== */
/* Rooms grid */
.phn-room{position:relative; display:flex; flex-direction:column; padding:10px; background:#fff; border-radius:24px; box-shadow:0 1px 2px rgba(11,52,54,.06), 0 14px 34px -22px rgba(11,52,54,.35); transition:transform .45s var(--phn-ease), box-shadow .45s;}
.phn-room:hover{transform:translateY(-6px); box-shadow:0 1px 2px rgba(11,52,54,.06), 0 30px 50px -26px rgba(11,52,54,.45);}
.phn-room__media{position:relative; display:block; aspect-ratio:6/5; overflow:hidden; border-radius:16px; background:var(--phn-teal-50);}
.phn-room__img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .9s var(--phn-ease);}
.phn-room:hover .phn-room__img{transform:scale(1.06);}
.phn-room__body{display:flex; flex-direction:column; flex:1; padding:18px 12px 8px;}
:is(body.phn-site, .editor-styles-wrapper) .phn-room__title{font-family:var(--phn-serif); font-weight:400; font-size:27px; line-height:1.15; margin:0 0 12px;}
:is(body.phn-site, .editor-styles-wrapper) .phn-room__title a{color:var(--phn-ink); text-decoration:none; transition:color .25s;}
.phn-room__title a::after{content:''; position:absolute; inset:0; z-index:1; border-radius:24px;}
:is(body.phn-site, .editor-styles-wrapper) .phn-room:hover .phn-room__title a{color:var(--phn-teal);}
:is(body.phn-site, .editor-styles-wrapper) .phn-room__meta{list-style:none; margin:0 0 18px; padding:0; display:flex; flex-wrap:wrap; gap:7px 16px; font-size:13.5px; line-height:1.4; color:var(--phn-muted);}
.phn-room__meta li{display:flex; align-items:center; gap:7px; margin:0;}
.phn-room__meta .phn-icon{color:var(--phn-teal);}
.phn-room__foot{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:auto; padding-top:14px; border-top:1px solid var(--phn-line);}
:is(body.phn-site, .editor-styles-wrapper) .phn-room__price{display:flex; align-items:baseline; flex-wrap:wrap; gap:0 6px; margin:0; line-height:1.1; color:var(--phn-muted); font-size:13px;}
.phn-room__price small{width:100%; margin-bottom:3px; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--phn-muted);}
.phn-room__price strong{font-family:var(--phn-serif); font-weight:400; font-size:25px; color:var(--phn-ink); letter-spacing:0;}
.phn-room__go{display:grid; place-items:center; flex-shrink:0; width:46px; height:46px; border-radius:50%; background:var(--phn-teal-50); color:var(--phn-teal); transition:background-color .3s, color .3s, transform .45s var(--phn-ease);}
.phn-room:hover .phn-room__go{background:var(--phn-sun); color:var(--phn-ink); transform:rotate(-45deg);}

/* Photo tiles */
.phn-tile{position:relative; display:block; aspect-ratio:4/5; border-radius:var(--phn-r-lg); overflow:hidden; color:#fff!important; text-decoration:none!important; background:var(--phn-deep); isolation:isolate;}
.phn-grid--2 .phn-tile{aspect-ratio:16/11;}
.phn-tile__img, .phn-tile .phn-img-empty{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; transition:transform 1s var(--phn-ease);}
.phn-tile::after{content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(7,30,32,0) 30%, rgba(7,30,32,.85) 100%); transition:background .5s;}
.phn-tile:hover .phn-tile__img{transform:scale(1.08);}
.phn-tile:hover::after{background:linear-gradient(180deg, rgba(7,30,32,.1) 10%, rgba(7,30,32,.92) 100%);}
.phn-tile__body{position:absolute; left:0; right:0; bottom:0; padding:28px; display:flex; flex-direction:column; align-items:flex-start;}
.phn-tile__label{margin-bottom:12px; padding:6px 12px; border-radius:999px; background:var(--phn-sun); color:var(--phn-ink); font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase;}
.phn-tile__title{font-family:var(--phn-serif); font-size:clamp(28px,2.4vw,36px); line-height:1.08;}
.phn-tile__text{display:block; max-height:0; opacity:0; overflow:hidden; margin-top:0; font-size:15px; line-height:1.6; color:rgba(255,255,255,.88); transition:max-height .5s var(--phn-ease), opacity .4s, margin .4s;}
.phn-tile:hover .phn-tile__text, .phn-tile:focus .phn-tile__text{max-height:9em; opacity:1; margin-top:10px;}
.phn-tile__link{display:inline-flex; align-items:center; gap:8px; margin-top:16px; font-weight:700; font-size:14.5px; color:#fff;}
.phn-tile__link .phn-icon{transition:transform .3s var(--phn-ease);}
.phn-tile:hover .phn-tile__link .phn-icon{transform:translateX(5px);}
@media (hover:none){ .phn-tile__text{max-height:none; opacity:1; margin-top:10px;} }
@media (max-width:640px){ .phn-tile{aspect-ratio:4/4.4;} }

/* Icon grid */
.phn-iconitem{display:flex; flex-direction:column; gap:16px;}
.phn-iconitem__icon{display:grid; place-items:center; width:54px; height:54px; border-radius:16px; background:var(--phn-teal-50); color:var(--phn-teal); transition:background-color .3s, color .3s, transform .35s var(--phn-ease);}
:is(body.phn-site, .editor-styles-wrapper) .phn-iconitem__title{font-size:17.5px; font-weight:700; margin:0 0 6px;}
.phn-iconitem__text{margin:0; font-size:15px; line-height:1.6; color:var(--phn-muted);}
.phn-icons--cards .phn-iconitem{height:100%; box-sizing:border-box; padding:28px 26px; background:#fff; border:1px solid var(--phn-line); border-radius:var(--phn-r); transition:transform .35s var(--phn-ease), box-shadow .35s, border-color .35s;}
.phn-icons--cards .phn-iconitem:hover{transform:translateY(-5px); box-shadow:var(--phn-shadow); border-color:transparent;}
.phn-icons--cards .phn-iconitem:hover .phn-iconitem__icon, .phn-icons--plain .phn-iconitem:hover .phn-iconitem__icon{background:var(--phn-teal); color:#fff; transform:rotate(-6deg);}
.phn-bg--cream .phn-icons--plain .phn-iconitem__icon, .phn-bg--mist .phn-icons--plain .phn-iconitem__icon{background:#fff;}
.phn-icons--strip{gap:14px;}
.phn-icons--strip .phn-iconitem{flex-direction:row; align-items:center; gap:14px; padding:16px 18px; background:#fff; border:1px solid var(--phn-line); border-radius:14px; transition:border-color .3s, transform .3s var(--phn-ease);}
.phn-icons--strip .phn-iconitem:hover{border-color:var(--phn-teal); transform:translateY(-3px);}
.phn-icons--strip .phn-iconitem__icon{width:44px; height:44px; border-radius:12px;}
.phn-icons--strip .phn-iconitem__title{font-size:15px; margin:0;}
.phn-icons--strip .phn-iconitem__text{font-size:13.5px;}
.phn-bg--teal .phn-icons--plain .phn-iconitem__title, .phn-bg--deep .phn-icons--plain .phn-iconitem__title{color:#fff;}
.phn-bg--teal .phn-icons--plain .phn-iconitem__text, .phn-bg--deep .phn-icons--plain .phn-iconitem__text{color:#CFE6E2;}
.phn-bg--teal .phn-icons--plain .phn-iconitem__icon, .phn-bg--deep .phn-icons--plain .phn-iconitem__icon{background:rgba(255,255,255,.1); color:var(--phn-sun);}

/* Places */
.phn-place{padding:28px; background:#fff; border:1px solid var(--phn-line); border-radius:var(--phn-r); transition:transform .35s var(--phn-ease), box-shadow .35s, border-color .35s;}
.phn-place:hover{transform:translateY(-5px); box-shadow:var(--phn-shadow); border-color:transparent;}
.phn-place__top{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:20px;}
.phn-place__icon{display:grid; place-items:center; width:50px; height:50px; border-radius:50%; background:var(--phn-teal-50); color:var(--phn-teal); transition:.3s;}
.phn-place:hover .phn-place__icon{background:var(--phn-sun); color:var(--phn-ink);}
.phn-place__time{display:inline-flex; align-items:center; gap:6px; padding:6px 12px; border-radius:999px; background:var(--phn-sun-50); color:#9A5B06; font-size:13px; font-weight:700; white-space:nowrap;}
:is(body.phn-site, .editor-styles-wrapper) .phn-place__name{font-family:var(--phn-serif); font-weight:400; font-size:25px; line-height:1.15; margin:0 0 10px;}
.phn-place__text{margin:0; font-size:15px; line-height:1.65; color:var(--phn-muted);}

/* Rates table */
.phn-table-wrap{overflow-x:auto; background:#fff; border:1px solid var(--phn-line); border-radius:var(--phn-r); box-shadow:var(--phn-shadow);}
.phn-table{width:100%; border-collapse:collapse; margin:0; font-size:15.5px;}
.phn-table th, .phn-table td{padding:18px 22px; text-align:left; border:0; border-bottom:1px solid var(--phn-line); vertical-align:middle;}
.phn-table thead th{background:var(--phn-teal-50); color:var(--phn-teal-700); font-size:12.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase;}
.phn-table tbody tr{transition:background-color .2s;}
.phn-table tbody tr:hover{background:var(--phn-cream);}
.phn-table tbody tr:last-child > *{border-bottom:0;}
.phn-table tbody th{font-family:var(--phn-serif); font-weight:400; font-size:21px;}
.phn-table tbody th a{color:var(--phn-ink)!important; text-decoration:none!important;}
.phn-table tbody th a:hover{color:var(--phn-teal)!important;}
.phn-table__price{font-weight:800; font-size:17px; color:var(--phn-teal); white-space:nowrap;}
.phn-table__book{text-align:right!important;}
@media (max-width:700px){
  .phn-table thead{display:none;}
  .phn-table, .phn-table tbody, .phn-table tr{display:block;}
  .phn-table tr{padding:18px 20px; border-bottom:1px solid var(--phn-line);}
  .phn-table tbody th, .phn-table td{display:flex; justify-content:space-between; gap:12px; padding:3px 0; border:0;}
  .phn-table td[data-label]::before{content:attr(data-label); color:var(--phn-muted); font-size:13.5px; font-weight:600;}
  .phn-table__book{justify-content:flex-start!important; padding-top:12px!important;}
}
.phn-notes{list-style:none; margin:22px 0 0; padding:0; font-size:14.5px; color:var(--phn-muted);}
.phn-notes li{position:relative; margin:0 0 8px; padding-left:18px;}
.phn-notes li::before{content:''; position:absolute; left:0; top:.62em; width:7px; height:7px; border-radius:50%; background:var(--phn-sun);}

/* Room facts + booking card (room pages) */
.phn-facts{list-style:none; display:flex; flex-wrap:wrap; gap:10px; margin:0 0 30px; padding:0;}
.phn-facts li{display:inline-flex; align-items:center; gap:9px; margin:0; padding:10px 16px; border-radius:999px; background:var(--phn-teal-50); color:var(--phn-ink); font-size:14.5px; font-weight:600;}
.phn-facts .phn-icon{color:var(--phn-teal);}
.phn-bookcard{position:sticky; top:calc(var(--phn-header) + 24px); padding:30px; background:#fff; border:1px solid var(--phn-line); border-radius:var(--phn-r-lg); box-shadow:var(--phn-shadow-lg);}
.phn-bookcard p{margin:0;}
.phn-bookcard__from{font-size:12.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--phn-muted);}
.phn-bookcard__price{font-family:var(--phn-serif); font-size:52px; line-height:1.05; color:var(--phn-teal);}
.phn-bookcard__note{margin-top:6px!important; font-size:14.5px; color:var(--phn-muted);}
.phn-bookcard__actions{display:flex; flex-direction:column; gap:10px; margin:24px 0 6px;}
.phn-bookcard__actions .phn-btn{width:100%;}
.phn-bookcard__call{display:flex; align-items:center; gap:8px; margin-top:18px!important; padding-top:18px; border-top:1px solid var(--phn-line); font-weight:700;}
.phn-bookcard__call .phn-icon{color:var(--phn-teal);}
.phn-bookcard__call a{color:var(--phn-ink)!important; text-decoration:none!important;}
@media (max-width:781px){ .phn-bookcard{position:static;} }

/* Gallery with albums */
.phn-gallery__tabs{display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin:0 0 34px;}
.phn-gallery__tab{padding:11px 22px; border:1.5px solid var(--phn-line); border-radius:999px; background:#fff; color:var(--phn-ink); font-family:var(--phn-sans); font-size:14.5px; font-weight:700; white-space:nowrap; cursor:pointer; transition:.25s;}
.phn-gallery__tab:hover{border-color:var(--phn-teal); color:var(--phn-teal);}
.phn-gallery__tab.is-active{background:var(--phn-teal); border-color:var(--phn-teal); color:#fff;}
.phn-gallery__grid{display:grid; gap:14px;}
.phn-gallery__grid--3{grid-template-columns:repeat(3,1fr);} .phn-gallery__grid--4{grid-template-columns:repeat(4,1fr);}
.phn-gallery__item{position:relative; display:block; aspect-ratio:4/3; border-radius:var(--phn-r); overflow:hidden; background:var(--phn-teal-50);}
.phn-gallery__item[hidden]{display:none;}
.phn-gallery__img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .8s var(--phn-ease);}
.phn-gallery__zoom{position:absolute; inset:0; display:grid; place-items:center; background:rgba(11,52,54,.45); color:#fff; opacity:0; transition:opacity .35s;}
.phn-gallery__zoom .phn-icon{width:52px; height:52px; padding:14px; border-radius:50%; background:rgba(255,255,255,.18); box-sizing:border-box; transform:scale(.8); transition:transform .35s var(--phn-ease);}
.phn-gallery__item:hover .phn-gallery__img{transform:scale(1.07);}
.phn-gallery__item:hover .phn-gallery__zoom{opacity:1;}
.phn-gallery__item:hover .phn-gallery__zoom .phn-icon{transform:none;}
.phn-gallery__item.is-appearing{animation:phn-pop .5s var(--phn-ease);}
@keyframes phn-pop{from{opacity:0; transform:scale(.96);} to{opacity:1; transform:none;}}
@media (max-width:900px){ .phn-gallery__grid--3, .phn-gallery__grid--4{grid-template-columns:repeat(2,1fr);} }
@media (max-width:480px){ .phn-gallery__grid--3, .phn-gallery__grid--4{grid-template-columns:1fr;} }
.phn-lightbox{position:fixed; inset:0; z-index:100000; display:flex; align-items:center; justify-content:center; background:rgba(6,24,26,.94);}
.phn-lightbox[hidden]{display:none;}
.phn-lightbox img{max-width:92vw; max-height:86vh; border-radius:10px; box-shadow:0 30px 80px rgba(0,0,0,.5);}
.phn-lightbox button{position:absolute; display:grid; place-items:center; width:52px; height:52px; border:0; border-radius:50%; background:rgba(255,255,255,.12); color:#fff; font-size:30px; line-height:1; cursor:pointer; transition:background-color .25s;}
.phn-lightbox button:hover{background:var(--phn-sun); color:var(--phn-ink);}
.phn-lightbox__close{top:20px; right:20px;} .phn-lightbox__prev{left:20px; top:50%; margin-top:-26px;} .phn-lightbox__next{right:20px; top:50%; margin-top:-26px;}

/* Contact */
.phn-contact{display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(28px,4vw,56px); align-items:stretch;}
.phn-contact__info{display:flex; flex-direction:column; align-items:flex-start; gap:6px;}
.phn-contact__map{min-height:420px; border-radius:var(--phn-r-lg); overflow:hidden; box-shadow:var(--phn-shadow);}
.phn-contact__map iframe{width:100%; height:100%; min-height:420px; border:0; display:block;}
.phn-contact-card{padding:30px; background:#fff; border:1px solid var(--phn-line); border-radius:var(--phn-r-lg); box-shadow:var(--phn-shadow);}
.phn-contact-card .phn-notes{margin:0 0 20px;}
:is(body.phn-site, .editor-styles-wrapper) .phn-contact-card__title{font-family:var(--phn-serif); font-weight:400; font-size:28px; margin:0 0 16px;}
.phn-contact-list{list-style:none; margin:0 0 22px; padding:0;}
.phn-contact-list li{display:flex; align-items:flex-start; gap:14px; margin:0 0 14px; font-size:15.5px; font-weight:600; color:var(--phn-ink);}
.phn-contact-list__icon{display:grid; place-items:center; flex-shrink:0; width:40px; height:40px; border-radius:50%; background:var(--phn-teal-50); color:var(--phn-teal);}
.phn-contact-list li > a, .phn-contact-list li > span:last-child{padding-top:9px; line-height:1.45;}
.phn-contact-list a{color:var(--phn-ink)!important; text-decoration:none!important; transition:color .2s;}
.phn-contact-list a:hover{color:var(--phn-teal)!important;}
@media (max-width:900px){ .phn-contact{grid-template-columns:1fr;} .phn-contact__map, .phn-contact__map iframe{min-height:320px;} }

/* ==========================================================================
   Contact Form 7
   ========================================================================== */
.phn-form-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 20px;}
.phn-form-full{grid-column:1 / -1;}
.phn-field{display:flex; flex-direction:column; gap:7px; margin:0;}
.phn-field > span:first-child{font-size:13px; font-weight:700; letter-spacing:.02em; color:var(--phn-ink);}
.wpcf7-form input[type="text"], .wpcf7-form input[type="email"], .wpcf7-form input[type="tel"], .wpcf7-form input[type="date"],
.wpcf7-form input[type="number"], .wpcf7-form select, .wpcf7-form textarea{
  width:100%; min-height:52px; padding:12px 16px; box-sizing:border-box; border:1.5px solid var(--phn-line); border-radius:12px; background:#fff;
  font-family:var(--phn-sans); font-size:15.5px; line-height:1.6; color:var(--phn-ink); box-shadow:none; transition:border-color .2s, box-shadow .2s;
}
.wpcf7-form select{appearance:none; -webkit-appearance:none; padding-right:44px; background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E7C7B' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 16px center/16px;}
.wpcf7-form textarea{min-height:130px; resize:vertical;}
.wpcf7-form input:hover, .wpcf7-form select:hover, .wpcf7-form textarea:hover{border-color:var(--phn-teal-100);}
.wpcf7-form input:focus, .wpcf7-form select:focus, .wpcf7-form textarea:focus{outline:none; border-color:var(--phn-teal); box-shadow:0 0 0 4px rgba(14,124,123,.12);}
.wpcf7-form .wpcf7-submit{margin-top:22px; min-height:54px; padding:0 34px; border:0; border-radius:999px; background:var(--phn-sun); color:var(--phn-ink); font-family:var(--phn-sans); font-size:15.5px; font-weight:800; white-space:nowrap; cursor:pointer; transition:background-color .25s, transform .25s var(--phn-ease), box-shadow .25s;}
.wpcf7-form .wpcf7-submit:hover{background:var(--phn-sun-600); transform:translateY(-2px); box-shadow:0 12px 26px -12px rgba(236,151,36,.7);}
.wpcf7-form .wpcf7-spinner{vertical-align:middle;}
.wpcf7-form .wpcf7-list-item{margin:0 18px 8px 0;}
.wpcf7-form .wpcf7-list-item label{display:inline-flex; align-items:center; gap:10px; font-size:15px; color:var(--phn-ink); cursor:pointer;}
.wpcf7-form input[type="checkbox"]{width:20px; height:20px; accent-color:var(--phn-teal);}
.wpcf7-not-valid-tip{font-size:13px; margin-top:6px;}
.wpcf7 form .wpcf7-response-output{margin:20px 0 0; padding:14px 18px; border-radius:12px; font-size:14.5px;}
.phn-form-note{margin:14px 0 0; font-size:14px; color:var(--phn-muted);}
@media (max-width:640px){ .phn-form-grid{grid-template-columns:1fr;} .wpcf7-form .wpcf7-submit{width:100%;} }

/* ==========================================================================
   Footer
   ========================================================================== */
.phn-footer{position:relative; margin-top:0; background:var(--phn-deep); color:#B9D1CD; font-size:15px;}
.phn-footer__wave{position:absolute; left:0; right:0; top:-59px; width:100%; height:60px; color:var(--phn-deep); display:block;}
.phn-footer__top{display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:24px 56px; padding:64px 0 44px; border-bottom:1px solid rgba(255,255,255,.1);}
.phn-footer .phn-brand__small{color:#8FB3AE;} .phn-footer .phn-brand__name{color:#fff; font-size:40px;} .phn-footer .phn-brand__sub{color:var(--phn-sun); font-size:16px;}
:is(body.phn-site, .editor-styles-wrapper) .phn-footer__about{margin:0; max-width:520px; line-height:1.7;}
.phn-footer__actions{display:flex; flex-wrap:wrap; gap:12px;}
.phn-footer__cols{display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1.2fr) minmax(0,1fr) minmax(0,1.1fr); gap:36px 44px; padding:48px 0 52px;}
:is(body.phn-site, .editor-styles-wrapper) .phn-footer__title{margin:0 0 18px; font-size:12.5px; font-weight:800; letter-spacing:.18em; text-transform:uppercase; color:var(--phn-sun);}
:is(body.phn-site, .editor-styles-wrapper) .phn-footer__text{margin:0 0 14px; line-height:1.7;}
:is(body.phn-site, .editor-styles-wrapper) .phn-footer__list{list-style:none; margin:0; padding:0;}
:is(body.phn-site, .editor-styles-wrapper) .phn-footer__list li{margin:0 0 10px;}
:is(body.phn-site, .editor-styles-wrapper) .phn-footer a:not(.phn-btn){color:#E8F2F0; text-decoration:none; transition:color .2s, background-color .25s, border-color .25s;}
:is(body.phn-site, .editor-styles-wrapper) .phn-footer__list a{position:relative; display:inline-block; overflow-wrap:anywhere;}
.phn-footer__list a::after{content:''; position:absolute; left:0; right:0; bottom:-2px; height:1px; background:var(--phn-sun); transform:scaleX(0); transform-origin:left; transition:transform .3s var(--phn-ease);}
:is(body.phn-site, .editor-styles-wrapper) .phn-footer__list a:hover{color:#fff;}
.phn-footer__list a:hover::after{transform:scaleX(1);}
:is(body.phn-site, .editor-styles-wrapper) .phn-footer a.phn-footer__link{display:inline-flex; align-items:center; gap:6px; font-weight:700; color:var(--phn-sun);}
.phn-footer__link .phn-icon{transition:transform .3s var(--phn-ease);}
.phn-footer__link:hover .phn-icon{transform:translateX(4px);}
.phn-footer__hours li{display:flex; justify-content:space-between; gap:12px; padding-bottom:8px; border-bottom:1px dashed rgba(255,255,255,.12);}
.phn-footer__hours li span:last-child{color:#E8F2F0; white-space:nowrap;}
.phn-footer__bottom{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px 24px; padding:22px 0 26px; border-top:1px solid rgba(255,255,255,.1); font-size:14px;}
:is(body.phn-site, .editor-styles-wrapper) .phn-footer__bottom p{margin:0;}
.phn-social{display:flex; align-items:center; gap:10px;}
:is(body.phn-site, .editor-styles-wrapper) .phn-social a{display:inline-grid; place-items:center; width:42px; height:42px; padding:0; box-sizing:border-box; border-radius:999px; border:1px solid rgba(255,255,255,.22); color:#E8F2F0; font-size:13.5px; font-weight:700;}
:is(body.phn-site, .editor-styles-wrapper) .phn-social a:hover{background:var(--phn-sun); border-color:var(--phn-sun); color:var(--phn-ink);}
@media (max-width:1100px){ .phn-footer__top{grid-template-columns:1fr; justify-items:start;} .phn-footer__cols{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .phn-footer__cols{grid-template-columns:1fr; gap:30px;} .phn-footer__bottom{flex-direction:column; align-items:flex-start;} }

/* Back to top + floating WhatsApp */
.phn-totop{position:fixed; right:30px; bottom:100px; z-index:990; display:grid; place-items:center; width:46px; height:46px; border:0; border-radius:50%; background:#fff; color:var(--phn-teal); box-shadow:0 10px 26px -10px rgba(11,52,54,.45); cursor:pointer; opacity:0; visibility:hidden; transform:translateY(10px); transition:.3s var(--phn-ease);}
.phn-totop.is-visible{opacity:1; visibility:visible; transform:none;}
.phn-totop:hover{background:var(--phn-teal); color:#fff;}
.phn-wa-float{position:fixed; right:24px; bottom:24px; z-index:991; display:flex; align-items:center; text-decoration:none!important;}
.phn-wa-float__icon{position:relative; display:grid; place-items:center; width:60px; height:60px; border-radius:50%; background:var(--phn-wa); color:#fff; box-shadow:0 14px 30px -10px rgba(37,211,102,.7); transition:transform .3s var(--phn-ease);}
.phn-wa-float__icon::before{content:''; position:absolute; inset:0; border-radius:50%; border:2px solid var(--phn-wa); animation:phn-wa-pulse 2.8s ease-out infinite;}
.phn-wa-float__label{margin-right:-10px; padding:11px 24px 11px 18px; border-radius:999px 0 0 999px; background:#fff; color:var(--phn-ink); font-weight:700; font-size:14.5px; white-space:nowrap; box-shadow:0 10px 26px -12px rgba(11,52,54,.4); opacity:0; transform:translateX(12px); transition:.3s var(--phn-ease); pointer-events:none;}
.phn-wa-float:hover .phn-wa-float__label{opacity:1; transform:none;}
.phn-wa-float:hover .phn-wa-float__icon{transform:scale(1.06);}
@keyframes phn-wa-pulse{0%{transform:scale(1); opacity:.7;} 80%,100%{transform:scale(1.55); opacity:0;}}
@media (max-width:640px){ .phn-wa-float{right:16px; bottom:16px;} .phn-wa-float__icon{width:56px; height:56px;} .phn-totop{right:22px; bottom:86px;} }
@media (prefers-reduced-motion:reduce){ .phn-wa-float__icon::before, .phn-hero__img{animation:none; transition:none; transform:none;} }

/* Kadence indents content lists; component lists must stay flush */
:is(body.phn-site, .editor-styles-wrapper) :is(.phn-room__meta, .phn-notes, .phn-facts, .phn-contact-list, .phn-footer__list){padding-left:0; margin-left:0;}
:is(body.phn-site, .editor-styles-wrapper) :is(.phn-room__meta, .phn-notes, .phn-facts, .phn-contact-list, .phn-footer__list) > li{margin-left:0;}

/* ---------- Feature pair (photo cards: pool/health club, bar/private dining) ---------- */
:is(body.phn-site, .editor-styles-wrapper) .phn-features.wp-block-columns{gap:28px; align-items:stretch; margin:0;}
.phn-features > .wp-block-column{display:flex; flex-direction:column; padding:10px 10px 26px; background:#fff; border-radius:24px; box-shadow:0 1px 2px rgba(11,52,54,.06), 0 14px 34px -22px rgba(11,52,54,.35); transition:transform .45s var(--phn-ease), box-shadow .45s;}
.phn-features > .wp-block-column:hover{transform:translateY(-5px); box-shadow:0 1px 2px rgba(11,52,54,.06), 0 30px 50px -26px rgba(11,52,54,.45);}
:is(body.phn-site, .editor-styles-wrapper) .phn-features .phn-feature__img{margin:0 0 22px; overflow:hidden; border-radius:16px;}
.phn-features .phn-feature__img img{display:block; width:100%; aspect-ratio:16/10; object-fit:cover; transition:transform .9s var(--phn-ease);}
.phn-features > .wp-block-column:hover .phn-feature__img img{transform:scale(1.05);}
:is(body.phn-site, .editor-styles-wrapper) .phn-features > .wp-block-column > :not(.phn-feature__img){margin-left:18px; margin-right:18px;}
:is(body.phn-site, .editor-styles-wrapper) .phn-features h3{font-family:var(--phn-serif); font-weight:400; font-size:30px; line-height:1.15; margin:0 0 10px;}
:is(body.phn-site, .editor-styles-wrapper) .phn-features p:not(.phn-eyebrow){margin:0 0 12px;}
:is(body.phn-site, .editor-styles-wrapper) .phn-features .phn-eyebrow{margin:0 18px 10px!important;}
:is(body.phn-site, .editor-styles-wrapper) .phn-features .wp-block-buttons{margin-top:auto; padding-top:8px;}

/* ---------- Venue capacity strip (conferences) ---------- */
.phn-venues > .wp-block-group__inner-container{display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:16px;}
:is(body.phn-site, .editor-styles-wrapper) .phn-venues .phn-venue{margin:0; padding:26px 22px 24px; background:#fff; border:1px solid var(--phn-line); border-radius:20px; transition:transform .4s var(--phn-ease), box-shadow .4s, border-color .4s;}
.phn-venue:hover{transform:translateY(-4px); border-color:transparent; box-shadow:0 26px 44px -26px rgba(11,52,54,.45);}
:is(body.phn-site, .editor-styles-wrapper) .phn-venue__cap{margin:0 0 16px; font-size:11.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--phn-muted); line-height:1.3;}
.phn-venue__cap strong{display:block; margin:4px 0 2px; font-family:var(--phn-serif); font-size:54px; font-weight:400; line-height:1; letter-spacing:0; color:var(--phn-teal);}
:is(body.phn-site, .editor-styles-wrapper) .phn-venue h3{margin:0 0 8px; padding-top:14px; border-top:1px solid var(--phn-line); font-size:17px;}
:is(body.phn-site, .editor-styles-wrapper) .phn-venue h3 + p{margin:0; font-size:14.5px; line-height:1.6; color:var(--phn-muted);}
@media (max-width:1100px){ .phn-venues > .wp-block-group__inner-container{grid-template-columns:repeat(3,minmax(0,1fr));} }
@media (max-width:700px){ .phn-venues > .wp-block-group__inner-container{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (max-width:420px){ .phn-venues > .wp-block-group__inner-container{grid-template-columns:1fr;} }

/* ---------- Room photos ---------- */
.phn-roomgal{margin-top:34px;}
:is(body.phn-site, .editor-styles-wrapper) .phn-roomgal__title{margin:0 0 16px;}
.phn-roomgal__grid{gap:10px;}
.phn-roomgal__grid .phn-gallery__item{aspect-ratio:1;}
@media (max-width:480px){ .phn-roomgal__grid.phn-gallery__grid--3{grid-template-columns:repeat(2,1fr);} }
/* Hero facts strip lines up with the page content */
:is(body.phn-site, .editor-styles-wrapper) .phn-hero__facts ul.phn-wrap{max-width:var(--phn-wrap); margin:0 auto; padding:20px 24px;}
:is(body.phn-site, .editor-styles-wrapper) .phn-hero__facts ul.phn-wrap > li{margin:0;}

/* Editor canvas: Kadence's front-end content spacing (its .single-content rules),
   at the same specificity, so blocks sit exactly where they do on the site.
   Kept at the END of this file: on the site Kadence's stylesheets load after
   this one, so Kadence wins ties there; placed last, it wins the same ties here. */
:where(.editor-styles-wrapper) .is-root-container p, :where(.editor-styles-wrapper) .is-root-container figure, :where(.editor-styles-wrapper) .is-root-container form,
:where(.editor-styles-wrapper) .is-root-container .wp-block-buttons, :where(.editor-styles-wrapper) .is-root-container .wp-block-button,
:where(.editor-styles-wrapper) .is-root-container .wp-block-group{margin-top:0; margin-bottom:var(--global-md-spacing, 2rem);}
:where(.editor-styles-wrapper) .is-root-container .wp-block-buttons .wp-block-button{margin-bottom:0;}
:where(.editor-styles-wrapper) .is-root-container .wp-block-columns{margin-top:0; margin-bottom:var(--global-md-spacing, 2rem);}
:where(.editor-styles-wrapper) .is-root-container :is(h1,h2,h3,h4,h5,h6){margin:1.5em 0 .5em;}
:where(.editor-styles-wrapper) .is-root-container :is(h1,h2,h3,h4,h5,h6):first-child, :where(.editor-styles-wrapper) .is-root-container :is(h1,h2,h3,h4,h5,h6) + *{margin-top:0;}
:where(.editor-styles-wrapper) .is-root-container ul, :where(.editor-styles-wrapper) .is-root-container ol{margin:0 0 var(--global-md-spacing, 2rem); padding-left:2em;}
:where(.editor-styles-wrapper) .is-root-container li > ul, :where(.editor-styles-wrapper) .is-root-container li > ol{margin:0;}
:where(.editor-styles-wrapper) .is-root-container .wp-block-image{margin-top:0; margin-bottom:0;}
/* :last-child as on the site. Server-rendered blocks sit inside two wrappers in the editor
   (div.phn-ed-preview > div > component), so their root is judged by the wrapper's position instead. */
:where(.editor-styles-wrapper) .is-root-container :is(p, figure, form, ul, ol, h1, h2, h3, h4, h5, h6):last-child:where(:not(.phn-ed-preview > div > *)),
:where(.editor-styles-wrapper) .is-root-container :is(.wp-block-buttons, .wp-block-button, .wp-block-group):last-child:where(:not(.phn-ed-preview > div > *)),
:where(.editor-styles-wrapper) .is-root-container :where(.phn-ed-preview:last-child > div) > :is(p, figure, form, ul, ol, h1, h2, h3, h4, h5, h6):last-child{margin-bottom:0;}
/* (after the :last-child reset, as in Kadence, so image blocks keep this margin even when last) */
:where(.editor-styles-wrapper) .is-root-container .wp-block-image figure, :where(.editor-styles-wrapper) .is-root-container figure.wp-block-image{margin-bottom:var(--global-md-spacing, 2rem);}
:where(.editor-styles-wrapper) .is-root-container .wp-block-image:last-child figure, :where(.editor-styles-wrapper) .is-root-container figure.wp-block-image:last-child{margin-bottom:0;}
