/**
 * Philo — Garden Hero, Welcome Harmony, new sections, card designs and the
 * Showcase scroll fix. Loaded alongside philo-widgets.css (includes/class-plugin.php).
 */

/* ============================================================
   GARDEN HERO
   ============================================================ */
.pgh{
  --pgh-bg:#123526; --pgh-ink:#F7F3EA; --pgh-accent:#F3A65A; --pgh-btn:#F58429;
  --pgh-shape:#F7F3EA; --pgh-scrim:.75; --pgh-interval:6s;
  position:relative; isolation:isolate; overflow:hidden;
  display:flex; align-items:center;
  background:var(--pgh-bg); color:var(--pgh-ink);
  font-family:'Jost',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}
.pgh *{box-sizing:border-box;}
.pgh--h-full{min-height:100vh; min-height:100svh;}
.pgh--h-tall{min-height:86vh; min-height:86svh;}
.pgh--h-compact{min-height:62vh; min-height:62svh;}

.pgh__inner{
  position:relative; z-index:3; width:100%; max-width:1300px; margin:0 auto;
  padding:clamp(104px,13vh,150px) 24px clamp(100px,13vh,146px);
}

/* ---------- Type ---------- */
.pgh__eyebrow{
  font-family:'Beau Rivage',cursive; font-size:clamp(30px,3.1vw,42px); line-height:1.1;
  color:var(--pgh-accent); margin:0 0 4px;
}
.pgh__title{
  font-family:'Fraunces',Georgia,serif; font-weight:500; font-size:clamp(35px,4.8vw,70px);
  line-height:1.03; letter-spacing:-.02em; margin:0 0 22px; color:var(--pgh-ink);
  text-wrap:balance;
}
.pgh__title em{font-style:italic; font-weight:400; color:var(--pgh-accent);}
.pgh__text{
  font-size:clamp(16px,1.2vw,18.5px); line-height:1.72; max-width:33em; margin:0 0 32px;
  color:var(--pgh-ink); opacity:.86;
}

/* ---------- Buttons ---------- */
.pgh__actions{display:flex; flex-wrap:wrap; gap:12px 14px; margin:0 0 36px;}
.pgh__btn{
  display:inline-flex; align-items:center; gap:10px; padding:15px 28px; border-radius:999px;
  font-family:inherit; font-weight:600; font-size:15px; letter-spacing:.01em; line-height:1.2;
  text-decoration:none; transition:transform .35s cubic-bezier(.2,.7,.2,1), background-color .3s, color .3s, border-color .3s, box-shadow .3s;
}
.pgh__btn svg{transition:transform .35s cubic-bezier(.2,.7,.2,1);}
.pgh__btn:hover svg{transform:translateX(4px);}
.pgh__btn--primary{background:var(--pgh-btn); color:#fff; box-shadow:0 14px 34px -14px rgba(245,132,41,.75);}
.pgh__btn--primary:hover, .pgh__btn--primary:focus-visible{background:#fff; color:#123526; transform:translateY(-2px);}
.pgh__btn--ghost{border:1.5px solid rgba(247,243,234,.42); color:var(--pgh-ink);}
.pgh__btn--ghost:hover, .pgh__btn--ghost:focus-visible{border-color:var(--pgh-ink); background:rgba(247,243,234,.08); color:var(--pgh-ink);}
.pgh__btn:focus-visible, .pgh__dot:focus-visible{outline:2px solid var(--pgh-accent); outline-offset:3px;}

/* ---------- Quick facts ---------- */
.pgh__chips{
  list-style:none; margin:0; padding:22px 0 0; display:flex; flex-wrap:wrap; gap:12px 28px;
  border-top:1px solid rgba(247,243,234,.16); max-width:40em;
}
.pgh__chips li{display:flex; align-items:center; gap:10px; font-size:14px; letter-spacing:.02em; opacity:.9; margin:0;}
.pgh__chips li::before{
  content:''; width:7px; height:7px; border-radius:50%; flex-shrink:0;
  background:var(--pgh-accent); box-shadow:0 0 0 4px rgba(243,166,90,.18);
}

/* ---------- Slides (shared) ---------- */
.pgh__slides{position:absolute; inset:0;}
.pgh__slide{position:absolute; inset:0; opacity:0; transition:opacity 1.4s ease; overflow:hidden;}
.pgh__slide.is-active{opacity:1; z-index:1;}
.pgh__slide img{position:absolute; inset:0; width:100%; height:100% !important; max-width:none !important; object-fit:cover; display:block; border-radius:0 !important;}
.pgh--zoom .pgh__slide img{transform:scale(1.07); transition:transform 0s linear 1.4s;}
.pgh--zoom .pgh__slide.is-active img{transform:scale(1); transition:transform calc(var(--pgh-interval) + 1.6s) cubic-bezier(.25,.1,.25,1) 0s;}

/* ---------- Layout: Garden Arch ---------- */
.pgh--arch::before{
  content:''; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(55% 65% at 80% 42%, rgba(245,132,41,.16), transparent 62%),
    radial-gradient(45% 60% at 6% 96%, rgba(17,110,56,.45), transparent 70%),
    radial-gradient(40% 40% at 35% 8%, rgba(247,243,234,.06), transparent 70%);
}
.pgh--arch::after{ /* faint leaf-vein texture */
  content:''; position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.07;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cg fill='none' stroke='%23F7F3EA' stroke-width='1'%3E%3Cpath d='M80 150C50 120 28 90 36 52 44 24 66 12 80 12s36 12 44 40c8 38-14 68-44 98Z'/%3E%3Cpath d='M80 150V28M80 60 60 46M80 84 54 66M80 108 52 88M80 60l20-14M80 84l26-18M80 108l28-20'/%3E%3C/g%3E%3C/svg%3E");
  background-size:160px 160px;
  -webkit-mask-image:linear-gradient(100deg, #000 0%, transparent 55%); mask-image:linear-gradient(100deg, #000 0%, transparent 55%);
}
.pgh--arch .pgh__inner{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(32px,5vw,80px); align-items:center;
}
.pgh__visual{position:relative; justify-self:end; width:min(100%,560px); container-type:inline-size;}
.pgh__arch{
  position:relative; aspect-ratio:4/5; border-radius:999px 999px 28px 28px; overflow:hidden;
  box-shadow:0 44px 90px -34px rgba(0,0,0,.65);
  outline:1px solid rgba(247,243,234,.28); outline-offset:12px;
  transform:translateZ(0);
}
/* On shorter laptop screens keep the arch wide but cap its height so the
   whole hero (and its bottom curve) still fits in the first screen. */
@supports (height:1cqw){
  .pgh--h-full .pgh__arch{aspect-ratio:auto; height:min(125cqw, max(440px, calc(100svh - 210px)));}
  .pgh--h-tall .pgh__arch{aspect-ratio:auto; height:min(125cqw, max(420px, calc(86svh - 210px)));}
}
.pgh__peek{
  position:absolute; left:-15%; bottom:15%; width:36%; aspect-ratio:1/1; z-index:3;
  border-radius:18px; overflow:hidden; border:6px solid #F7F3EA;
  box-shadow:0 26px 50px -18px rgba(0,0,0,.6); transform:rotate(-4deg);
}
.pgh__peek .pgh__slide img{transform:none !important;}
.pgh__badge{
  position:absolute; right:-6%; top:5%; width:128px; height:128px; z-index:4;
  color:var(--pgh-ink);
}
.pgh__badge > svg{width:100%; height:100%; overflow:visible; animation:pgh-spin 28s linear infinite;}
.pgh__badge text{font-family:'Jost',sans-serif; font-size:9.6px; letter-spacing:.18em; text-transform:uppercase; fill:currentColor; font-weight:500;}
.pgh__badge-core{
  position:absolute; inset:31%; border-radius:50%; background:var(--pgh-btn); color:#fff;
  display:grid; place-items:center; box-shadow:0 10px 24px -8px rgba(0,0,0,.45);
}
.pgh__badge-core svg{width:46%; height:46%;}

/* caption + dots: a glass pill inside the bottom of the arch */
.pgh__arch .pgh__nav{
  position:absolute; z-index:3; left:50%; bottom:16px; transform:translateX(-50%);
  display:flex; align-items:center; gap:14px; max-width:calc(100% - 32px);
  padding:6px 8px 6px 18px; border-radius:999px;
  background:rgba(10,30,21,.52); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border:1px solid rgba(247,243,234,.16);
}
.pgh__caption{
  margin:0; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--pgh-ink); opacity:.9;
  transition:opacity .4s; line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0;
}
.pgh__caption.is-swapping{opacity:0;}

/* dots: 24px tall hit area, 3px line inside */
.pgh__dots{display:flex; gap:4px; flex-shrink:0;}
.pgh__dot{
  position:relative; width:24px; height:24px; padding:0; margin:0; border:0; background:none;
  cursor:pointer; border-radius:0; box-shadow:none;
}
.pgh__dot::before, .pgh__dot::after{
  content:''; position:absolute; left:2px; right:2px; top:50%; height:3px; margin-top:-1.5px; border-radius:3px;
}
.pgh__dot::before{background:rgba(247,243,234,.3);}
.pgh__dot::after{background:var(--pgh-accent); transform:scaleX(0); transform-origin:left;}
.pgh__dot.is-active::after{animation:pgh-progress var(--pgh-interval) linear forwards;}
.pgh.is-paused .pgh__dot.is-active::after, .pgh.is-static .pgh__dot.is-active::after{animation:none; transform:scaleX(1);}
.pgh__dot:hover::before{background:rgba(247,243,234,.6);}

/* ---------- Layout: Immersive ---------- */
.pgh--immersive{align-items:flex-end;}
.pgh__media{position:absolute; inset:0; z-index:0;}
.pgh__media::after{
  content:''; position:absolute; inset:0; z-index:2;
  background:
    linear-gradient(90deg, rgba(9,26,18,var(--pgh-scrim)) 0%, rgba(9,26,18,calc(var(--pgh-scrim) * .55)) 40%, rgba(9,26,18,0) 72%),
    linear-gradient(0deg, rgba(9,26,18,calc(var(--pgh-scrim) * .85)) 0%, rgba(9,26,18,0) 46%),
    linear-gradient(180deg, rgba(9,26,18,.55) 0%, rgba(9,26,18,0) 24%);
}
.pgh--immersive .pgh__copy{max-width:680px;}
.pgh--immersive .pgh__inner{padding-bottom:clamp(150px,20vh,210px);}
.pgh__foot{position:absolute; left:0; right:0; bottom:clamp(58px,7vw,108px); z-index:4;}
.pgh__foot-inner{max-width:1300px; margin:0 auto; padding:0 24px; display:flex; align-items:center; gap:22px;}
.pgh__counter{font-family:'Fraunces',Georgia,serif; font-size:15px; opacity:.85; letter-spacing:.04em; white-space:nowrap;}
.pgh__counter b{font-weight:600; color:var(--pgh-accent);}
.pgh--immersive .pgh__caption{margin-left:auto;}

/* ---------- Scroll cue ---------- */
.pgh__cue{
  position:absolute; z-index:5; left:50%; bottom:clamp(64px,8vw,118px); width:22px; height:36px;
  margin-left:-11px; border:1.5px solid rgba(247,243,234,.55); border-radius:12px;
}
.pgh__cue span{position:absolute; left:50%; top:7px; width:3px; height:7px; margin-left:-1.5px; border-radius:2px; background:var(--pgh-ink); animation:pgh-cue 2s ease-in-out infinite;}
.pgh--immersive .pgh__cue{left:auto; right:24px; margin-left:0;}
@media (min-width:1349px){ .pgh--immersive .pgh__cue{right:calc((100vw - 1300px) / 2 + 24px);} }

/* ---------- Bottom edge ---------- */
.pgh__shape{position:absolute; left:0; right:0; bottom:-1px; z-index:6; line-height:0; color:var(--pgh-shape); pointer-events:none;}
.pgh__shape svg{display:block; width:100%; height:clamp(38px,6vw,96px);}

/* ---------- Entrance ---------- */
.pgh [data-pgh-in]{opacity:0; transform:translateY(24px); animation:pgh-in 1.05s cubic-bezier(.2,.7,.2,1) forwards; animation-delay:calc(var(--i,0) * 120ms + 120ms);}
.pgh__visual[data-pgh-in]{transform:translateY(34px) scale(.98);}

@keyframes pgh-in{to{opacity:1; transform:none;}}
@keyframes pgh-spin{to{transform:rotate(360deg);}}
@keyframes pgh-progress{from{transform:scaleX(0);} to{transform:scaleX(1);}}
@keyframes pgh-cue{0%{opacity:0; transform:translateY(0);} 30%{opacity:1;} 100%{opacity:0; transform:translateY(12px);}}

/* ---------- Responsive: photo first on tablets & phones ---------- */
@media (max-width:1024px){
  .pgh--arch .pgh__inner{grid-template-columns:1fr; gap:44px; padding-top:clamp(96px,13vh,130px);}
  .pgh--arch .pgh__visual{order:-1; justify-self:center; width:min(74%,460px);}
  .pgh--arch .pgh__copy{text-align:center; display:flex; flex-direction:column; align-items:center;}
  .pgh--arch .pgh__text{margin-left:auto; margin-right:auto;}
  .pgh--arch .pgh__actions, .pgh--arch .pgh__chips{justify-content:center;}
  .pgh--arch .pgh__visual[data-pgh-in]{animation-delay:.1s;}
  .pgh__cue{display:none;}
}
@media (max-width:767px){
  .pgh--arch .pgh__inner{gap:34px; padding-top:92px;}
  .pgh--arch .pgh__visual{width:80%;}
  .pgh__arch{outline-offset:8px; border-radius:999px 999px 22px 22px;}
  .pgh--h-full .pgh__arch, .pgh--h-tall .pgh__arch{aspect-ratio:4/5; height:auto;}
  .pgh__title{font-size:clamp(34px,9.4vw,46px);}
  .pgh__eyebrow{font-size:30px;}
  .pgh__btn{padding:14px 22px; font-size:14.5px;}
  .pgh__actions{width:100%;}
  .pgh--arch .pgh__actions .pgh__btn{flex:1 1 auto; justify-content:center;}
  .pgh__chips{gap:10px 18px;}
  .pgh__chips li{font-size:13px;}
  .pgh__peek{left:-11%; bottom:18%; width:34%; border-width:4px; border-radius:14px;}
  .pgh__badge{width:84px; height:84px; right:-8%; top:3%;}
  .pgh__arch .pgh__nav{bottom:12px; padding:4px 6px 4px 14px; gap:8px;}
  .pgh__caption{font-size:10.5px; letter-spacing:.08em;}
  .pgh__dot{width:18px;}
  .pgh__media::after{
    background:
      linear-gradient(0deg, rgba(9,26,18,calc(var(--pgh-scrim) + .08)) 0%, rgba(9,26,18,calc(var(--pgh-scrim) * .6)) 55%, rgba(9,26,18,.35) 100%);
  }
  .pgh--immersive .pgh__inner{padding-bottom:170px;}
  .pgh__foot-inner{flex-wrap:wrap; gap:10px 16px;}
  .pgh--immersive .pgh__caption{margin-left:0; flex-basis:100%;}
}
@media (max-width:420px){ .pgh__arch .pgh__caption{display:none;} .pgh__arch .pgh__nav{padding:4px 6px;} }
@media (prefers-reduced-motion:reduce){
  .pgh [data-pgh-in]{animation:none; opacity:1; transform:none;}
  .pgh__slide{transition:opacity .01s;}
  .pgh--zoom .pgh__slide img, .pgh--zoom .pgh__slide.is-active img{transform:none; transition:none;}
  .pgh__badge > svg, .pgh__cue span{animation:none;}
}
.elementor-editor-active .pgh [data-pgh-in]{animation:none; opacity:1; transform:none;}

/* ============================================================
   WELCOME HARMONY (sits under the hero — shares only its cream)
   ============================================================ */
.pwh{
  --pwh-bg:#F7F3EA; --pwh-accent:#F58429; --pwh-green:#123526; --pwh-ink:#1C2B22; --pwh-soft:#56645A;
  position:relative; overflow:hidden; background:var(--pwh-bg); color:var(--pwh-ink);
  padding:clamp(48px,6vw,90px) 0 clamp(64px,8vw,110px);
  font-family:'Jost',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}
.pwh *{box-sizing:border-box;}
.pwh__leaf{position:absolute; width:360px; height:360px; left:-110px; bottom:120px; color:var(--pwh-green); opacity:.06; transform:rotate(-24deg); pointer-events:none;}
.pwh__inner{
  position:relative; max-width:1300px; margin:0 auto; padding:0 24px;
  display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:clamp(40px,6vw,96px); align-items:center;
}
.pwh--media-right .pwh__inner{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);}
.pwh--media-right .pwh__media{order:2;}

/* label with a leading rule — not the hero's script eyebrow */
.pwh__label{
  display:inline-flex; align-items:center; gap:14px; margin:0 0 18px;
  font-size:12.5px; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:var(--pwh-accent);
}
.pwh__label::before{content:''; width:38px; height:1.5px; background:currentColor;}
.pwh__title{
  font-family:'Fraunces',Georgia,serif; font-weight:500; font-size:clamp(34px,3.8vw,56px); line-height:1.08;
  letter-spacing:-.018em; color:var(--pwh-green); margin:0 0 24px; text-wrap:balance;
}
/* hand-drawn underline instead of the hero's orange italic */
.pwh__title em{
  font-style:normal; color:inherit; padding:0 .04em .08em; white-space:nowrap;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 14' preserveAspectRatio='none'%3E%3Cpath d='M3 10C60 4 140 2 297 7' stroke='%23F58429' stroke-width='5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat 0 100% / 100% .34em;
}
.pwh__text{font-size:17px; line-height:1.8; color:var(--pwh-soft); max-width:34em;}
.pwh__text p{margin:0 0 1em;}
.pwh__text p:first-child::first-letter{
  font-family:'Fraunces',Georgia,serif; float:left; font-size:3.4em; line-height:.9; padding:.06em .1em 0 0; color:var(--pwh-accent);
}
.pwh__sign{display:flex; align-items:center; flex-wrap:wrap; gap:18px 30px; margin-top:26px;}
.pwh__signature{font-family:'Beau Rivage',cursive; font-size:34px; line-height:1; color:var(--pwh-green);}
.pwh__btn{
  display:inline-flex; align-items:center; gap:10px; padding:14px 26px; border-radius:999px;
  border:1.5px solid var(--pwh-green); color:var(--pwh-green); font-weight:600; font-size:15px; text-decoration:none;
  transition:background-color .3s, color .3s, transform .35s cubic-bezier(.2,.7,.2,1);
}
.pwh__btn:hover, .pwh__btn:focus-visible{background:var(--pwh-green); color:var(--pwh-bg); transform:translateY(-2px);}
.pwh__btn svg{transition:transform .35s;}
.pwh__btn:hover svg{transform:translateX(4px);}

/* three-photo mosaic — rectangles with one leaf-shaped corner, no arch */
.pwh__media{position:relative;}
.pwh__mosaic{
  display:grid; grid-template-columns:1.2fr 1fr; grid-template-rows:1fr 1fr; gap:14px;
  height:clamp(420px,40vw,580px);
}
.pwh__tile{position:relative; overflow:hidden; border-radius:18px; background:#E4E8DC; box-shadow:0 24px 50px -30px rgba(18,53,38,.5);}
.pwh__tile--a{grid-row:1 / 3; border-radius:18px 18px 18px 90px;}
.pwh__tile--b{border-radius:18px 90px 18px 18px;}
.pwh__img{position:absolute; inset:0; width:100% !important; height:100% !important; max-width:none !important; object-fit:cover; border-radius:0 !important; transition:transform .9s cubic-bezier(.2,.7,.2,1);}
.pwh__tile:hover .pwh__img{transform:scale(1.05);}
.pwh__note{
  position:absolute; right:-14px; bottom:-26px; z-index:2; max-width:240px; padding:16px 18px 15px;
  background:#fff; border-radius:14px; box-shadow:0 18px 40px -18px rgba(18,53,38,.45); transform:rotate(2deg);
  font-size:13.5px; line-height:1.5; color:var(--pwh-soft);
}
.pwh__note::before{content:''; position:absolute; top:-9px; left:50%; width:60px; height:18px; margin-left:-30px; background:rgba(245,132,41,.35); transform:rotate(-3deg); border-radius:2px;}
.pwh__note strong{display:block; font-family:'Beau Rivage',cursive; font-weight:400; font-size:24px; line-height:1.1; color:var(--pwh-green); margin-bottom:4px;}

/* stats card — big numbers, not the hero's chips */
.pwh__stats{position:relative; max-width:1300px; margin:clamp(64px,7vw,100px) auto 0; padding:0 24px;}
.pwh__stats-list{
  list-style:none; margin:0; padding:clamp(26px,3vw,40px) 0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  background:#fff; border-radius:24px; box-shadow:0 30px 60px -42px rgba(18,53,38,.55);
}
.pwh__stat{margin:0; padding:0 clamp(18px,2.4vw,36px); border-left:1px solid rgba(18,53,38,.1);}
.pwh__stat:first-child{border-left:0;}
.pwh__num{
  display:block; font-family:'Fraunces',Georgia,serif; font-weight:500; font-size:clamp(36px,3.4vw,52px);
  line-height:1; letter-spacing:-.02em; color:var(--pwh-accent); margin-bottom:12px;
}
.pwh__icon{display:grid; place-items:center; width:52px; height:52px; margin-bottom:12px; border-radius:50%; background:#FDF1E6; color:var(--pwh-accent);}
.pwh__icon svg{width:24px; height:24px;}
.pwh__stat-label{display:block; font-size:12.5px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--pwh-green); margin-bottom:6px;}
.pwh__stat-text{display:block; font-size:14.5px; line-height:1.6; color:var(--pwh-soft);}

[data-pwh-reveal]{opacity:0; transform:translateY(28px); transition:opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1); transition-delay:var(--d,0s);}
[data-pwh-reveal].is-in, .elementor-editor-active [data-pwh-reveal]{opacity:1; transform:none;}

@media (max-width:1024px){
  .pwh__inner, .pwh--media-right .pwh__inner{grid-template-columns:1fr;}
  .pwh__media, .pwh--media-right .pwh__media{order:2; max-width:640px; width:100%; margin:0 auto;}
  .pwh__stats-list{grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:30px;}
  .pwh__stat:nth-child(3){border-left:0;}
}
@media (max-width:600px){
  .pwh__text{font-size:16px;}
  .pwh__mosaic{height:400px; gap:10px;}
  .pwh__tile--a{border-radius:16px 16px 16px 60px;}
  .pwh__tile--b{border-radius:16px 60px 16px 16px;}
  .pwh__note{right:8px; max-width:210px; font-size:13px;}
  .pwh__stats-list{grid-template-columns:1fr; row-gap:26px;}
  .pwh__stat{border-left:0; display:grid; grid-template-columns:96px 1fr; column-gap:16px; align-items:start;}
  .pwh__num, .pwh__icon{grid-row:span 2; margin:0;}
  .pwh__num{font-size:32px; white-space:nowrap; padding-top:2px;}
}
@media (prefers-reduced-motion:reduce){
  [data-pwh-reveal]{opacity:1; transform:none; transition:none;}
}

/* ============================================================
   SHOWCASE — sticky scroll (replaces the GSAP pin that could get
   stuck) + swipe carousel on touch / small screens.
   ============================================================ */
.philo-showcase__stage{position:relative;}
.philo-showcase.is-sticky .philo-showcase__pin{position:sticky; top:0;}
.philo-showcase.is-sticky .philo-showcase__track{will-change:transform;}

.philo-showcase.is-swipe .philo-showcase__pin{height:auto; overflow:visible; padding:0 0 64px;}
.philo-showcase.is-swipe .philo-showcase__track{
  width:auto; height:auto; overflow-x:auto; overflow-y:hidden; padding:10px 6vw 22px;
  scroll-snap-type:x mandatory; scroll-padding:0 6vw; -webkit-overflow-scrolling:touch;
  overscroll-behavior-x:contain; scrollbar-width:none; transform:none !important;
}
.philo-showcase.is-swipe .philo-showcase__track::-webkit-scrollbar{display:none;}
.philo-showcase.is-swipe .philo-showcase__panel{scroll-snap-align:start; height:min(66vh,560px);}
.philo-showcase.is-swipe .philo-showcase__progress{bottom:30px;}
.philo-showcase__arrows{position:absolute; right:6vw; bottom:14px; z-index:6; display:none; gap:10px;}
.philo-showcase.is-swipe .philo-showcase__arrows{display:flex;}
.philo-showcase__arrow{
  width:44px; height:44px; border-radius:50%; border:1.5px solid rgba(255,255,255,.4); background:transparent; color:#fff;
  display:grid; place-items:center; cursor:pointer; padding:0; transition:background-color .3s, border-color .3s;
}
.philo-showcase__arrow:hover{background:rgba(255,255,255,.12); border-color:#fff;}
.philo-showcase__arrow svg{width:18px; height:18px;}
.philo-showcase.is-swipe .philo-showcase__progress{right:calc(6vw + 110px);}
@media (max-width:767px){
  .philo-showcase.is-swipe .philo-showcase__panel{width:80vw; height:62vh; max-height:520px;}
  .philo-showcase__arrows{display:none !important;}
  .philo-showcase.is-swipe .philo-showcase__progress{right:6vw;}
}
.philo-showcase.is-swipe .philo-showcase__head{margin-bottom:0 !important;}

/* ============================================================
   DINING TEASER
   ============================================================ */
.pdt{
  --pdt-bg:#123526; --pdt-ink:#F7F3EA; --pdt-accent:#F3A65A; --pgh-btn:#F58429;
  position:relative; overflow:hidden; background:var(--pdt-bg); color:var(--pdt-ink);
  padding:clamp(64px,8vw,120px) 0; font-family:'Jost',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}
.pdt *{box-sizing:border-box;}
.pdt::before{content:''; position:absolute; inset:0; pointer-events:none; background:radial-gradient(50% 60% at 15% 50%, rgba(245,132,41,.14), transparent 65%);}
.pdt__inner{position:relative; max-width:1300px; margin:0 auto; padding:0 24px; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(40px,7vw,110px); align-items:center;}
.pdt__media{position:relative; min-height:clamp(380px,42vw,580px);}
.pdt__main{position:absolute; inset:0 12% 8% 0; border-radius:26px; overflow:hidden; box-shadow:0 40px 80px -36px rgba(0,0,0,.7);}
.pdt__round{position:absolute; right:0; bottom:0; width:40%; aspect-ratio:1/1; border-radius:50%; overflow:hidden; border:8px solid var(--pdt-bg); box-shadow:0 20px 40px -18px rgba(0,0,0,.6);}
.pdt__img{position:absolute; inset:0; width:100% !important; height:100% !important; max-width:none !important; object-fit:cover; border-radius:0 !important;}
.pdt__hours{position:absolute; left:22px; top:22px; z-index:2; padding:9px 16px; border-radius:999px; background:rgba(247,243,234,.95); color:#123526; font-size:13px; font-weight:600; letter-spacing:.03em;}
.pdt__eyebrow{font-family:'Beau Rivage',cursive; font-size:clamp(28px,2.6vw,36px); line-height:1.1; color:var(--pdt-accent); margin:0 0 6px;}
.pdt__title{font-family:'Fraunces',Georgia,serif; font-weight:500; font-size:clamp(34px,3.8vw,56px); line-height:1.06; letter-spacing:-.018em; color:var(--pdt-ink); margin:0 0 20px;}
.pdt__title em{font-style:italic; font-weight:400; color:var(--pdt-accent);}
.pdt__text{font-size:17px; line-height:1.75; opacity:.84; margin:0 0 30px; max-width:34em;}
.pdt__menu{list-style:none; margin:0 0 22px; padding:0;}
.pdt__menu li{padding:16px 0; border-bottom:1px solid rgba(247,243,234,.12); margin:0;}
.pdt__menu li:first-child{border-top:1px solid rgba(247,243,234,.12);}
.pdt__row{display:flex; align-items:baseline; gap:12px;}
.pdt__row strong{font-family:'Fraunces',Georgia,serif; font-weight:500; font-size:20px;}
.pdt__row i{flex:1; border-bottom:1.5px dotted rgba(247,243,234,.3); transform:translateY(-5px);}
.pdt__row b{font-weight:600; color:var(--pdt-accent); white-space:nowrap; font-size:15px;}
.pdt__note-line{display:block; font-size:14px; opacity:.7; margin-top:4px;}
.pdt__small{font-size:14px; opacity:.75; margin:0 0 26px; font-style:italic;}
.pdt__actions{display:flex; align-items:center; flex-wrap:wrap; gap:14px 26px;}
.pdt__link{color:var(--pdt-ink); font-weight:600; font-size:15px; text-decoration:underline; text-underline-offset:5px; text-decoration-color:rgba(247,243,234,.4); transition:text-decoration-color .3s;}
.pdt__link:hover{color:var(--pdt-ink); text-decoration-color:var(--pdt-accent);}
@media (max-width:1024px){ .pdt__inner{grid-template-columns:1fr;} .pdt__media{max-width:620px; width:100%; margin:0 auto;} }
@media (max-width:600px){ .pdt__media{min-height:340px;} .pdt__row strong{font-size:18px;} }

/* ============================================================
   EVENTS BAND
   ============================================================ */
.peb{
  --pgh-btn:#F58429; position:relative; overflow:hidden; isolation:isolate;
  padding:clamp(80px,10vw,150px) 0; font-family:'Jost',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}
.peb *{box-sizing:border-box;}
.peb__bg{position:absolute; inset:0; z-index:-1;}
.peb__bg::after{content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(9,26,18,.45), rgba(9,26,18,.1) 60%);}
.peb--right .peb__bg::after{background:linear-gradient(270deg, rgba(9,26,18,.45), rgba(9,26,18,.1) 60%);}
.peb__img{position:absolute; inset:0; width:100% !important; height:100% !important; max-width:none !important; object-fit:cover; border-radius:0 !important;}
.peb__inner{max-width:1300px; margin:0 auto; padding:0 24px; display:flex;}
.peb--right .peb__inner{justify-content:flex-end;}
.peb__card{
  width:min(100%,540px); background:#F7F3EA; color:#1C2B22; border-radius:26px;
  padding:clamp(30px,4vw,52px); box-shadow:0 40px 80px -30px rgba(0,0,0,.5);
}
.peb__eyebrow{font-family:'Beau Rivage',cursive; font-size:32px; line-height:1.1; color:#F58429; margin:0 0 6px;}
.peb__title{font-family:'Fraunces',Georgia,serif; font-weight:500; font-size:clamp(30px,3.2vw,46px); line-height:1.08; letter-spacing:-.015em; color:#123526; margin:0 0 16px;}
.peb__title em{font-style:italic; font-weight:400; color:#F58429;}
.peb__text{font-size:16.5px; line-height:1.72; color:#56645A; margin:0 0 22px;}
.peb__chips{list-style:none; margin:0 0 28px; padding:0; display:flex; flex-wrap:wrap; gap:8px;}
.peb__chips li{margin:0; padding:8px 15px; border-radius:999px; background:#fff; border:1px solid rgba(18,53,38,.12); font-size:13.5px; font-weight:500; color:#123526;}
.peb__actions{display:flex; align-items:center; flex-wrap:wrap; gap:12px 22px;}
.peb__ghost{font-weight:600; font-size:15px; color:#123526; text-decoration:underline; text-underline-offset:5px; text-decoration-color:rgba(18,53,38,.3);}
.peb__ghost:hover{color:#123526; text-decoration-color:#F58429;}
.peb .pgh__btn--primary:hover{background:#123526; color:#fff;}
@media (max-width:767px){ .peb{padding:220px 0 0;} .peb__inner{padding:0;} .peb__card{border-radius:26px 26px 0 0; width:100%;} }

/* ============================================================
   GETTING HERE
   ============================================================ */
.pgt{
  --pgt-bg:#F7F3EA; --pwh-green:#123526; --pwh-bg:#F7F3EA;
  background:var(--pgt-bg); color:#1C2B22; padding:clamp(64px,8vw,110px) 0;
  font-family:'Jost',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}
.pgt *{box-sizing:border-box;}
.pgt__inner{max-width:1300px; margin:0 auto; padding:0 24px;}
.pgt__head{text-align:center; margin-bottom:clamp(40px,5vw,64px);}
.pgt__eyebrow{font-family:'Beau Rivage',cursive; font-size:clamp(28px,2.6vw,36px); line-height:1.1; color:#F58429; margin:0 0 6px;}
.pgt__title{font-family:'Fraunces',Georgia,serif; font-weight:500; font-size:clamp(32px,3.6vw,52px); line-height:1.08; color:#123526; margin:0;}
.pgt__title em{font-style:italic; font-weight:400; color:#F58429;}
.pgt__steps{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(20px,3vw,40px); position:relative;}
.pgt__steps::before{content:''; position:absolute; top:27px; left:6%; right:6%; border-top:1.5px dashed rgba(18,53,38,.25);}
.pgt__step{position:relative; margin:0; text-align:center; padding:0 6px;}
.pgt__step .pgt__num{
  position:relative; display:grid; place-items:center; width:56px; height:56px; margin:0 auto 18px; border-radius:50%;
  background:#123526; color:#F7F3EA; font-family:'Fraunces',Georgia,serif; font-size:18px; box-shadow:0 0 0 8px var(--pgt-bg);
}
.pgt__step:last-child .pgt__num{background:#F58429; color:#fff;}
.pgt__step strong{display:block; font-family:'Fraunces',Georgia,serif; font-weight:600; font-size:19px; color:#123526; margin-bottom:6px;}
.pgt__step > span:not(.pgt__num){display:block; font-size:15px; line-height:1.65; color:#56645A;}
.pgt__foot{margin-top:clamp(40px,5vw,60px); display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:16px 30px; text-align:center;}
.pgt__alt{margin:0; font-size:15px; color:#56645A; font-style:italic; max-width:36em;}
@media (max-width:900px){
  .pgt__steps{grid-template-columns:1fr; gap:26px; max-width:520px; margin:0 auto;}
  .pgt__steps::before{top:28px; bottom:28px; left:27px; right:auto; border-top:0; border-left:1.5px dashed rgba(18,53,38,.25);}
  .pgt__step{display:grid; grid-template-columns:56px 1fr; column-gap:18px; text-align:left; padding:0;}
  .pgt__step .pgt__num{grid-row:span 2; margin:0;}
  .pgt__step strong{margin-top:6px;}
}

/* ============================================================
   ROOM CARDS (Philo: Rooms Grid) — photo with a floating info panel
   ============================================================ */
.elementor-widget-philo-rooms-grid .philo-grid{gap:clamp(24px,2.6vw,36px); align-items:stretch;}
.prc{position:relative; display:flex; flex-direction:column; isolation:isolate; font-family:'Jost',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;}
.prc__media{position:relative; aspect-ratio:4/3.3; border-radius:22px; overflow:hidden; background:#DFE5D8;}
.prc__media img{position:absolute; inset:0; width:100%; height:100% !important; max-width:none !important; object-fit:cover; border-radius:0 !important; transition:transform .9s cubic-bezier(.2,.7,.2,1);}
.prc__media::after{content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg, rgba(9,26,18,.4) 0%, rgba(9,26,18,0) 34%);}
.prc:hover .prc__media img{transform:scale(1.06);}
.prc__tag{
  position:absolute; z-index:2; top:16px; left:16px; padding:7px 13px; border-radius:999px;
  background:rgba(255,255,255,.18); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); border:1px solid rgba(255,255,255,.38);
  color:#fff; font-size:11.5px; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
}
.prc__price{
  position:absolute; z-index:2; top:14px; right:14px; text-align:right; padding:9px 14px 8px; border-radius:14px;
  background:#F7F3EA; color:#123526; line-height:1.1; box-shadow:0 10px 24px -12px rgba(0,0,0,.45);
}
.prc__price b{display:block; font-family:'Fraunces',Georgia,serif; font-size:17px; font-weight:600;}
.prc__price small{display:block; font-size:11px; color:#56645A; margin-top:3px; letter-spacing:.02em;}
.prc__panel{
  position:relative; z-index:2; flex:1; display:flex; flex-direction:column;
  margin:-58px 16px 0; padding:22px 22px 18px; background:#fff; border-radius:18px;
  box-shadow:0 22px 44px -26px rgba(18,53,38,.45);
  transition:transform .45s cubic-bezier(.2,.7,.2,1), box-shadow .45s;
}
.prc:hover .prc__panel{transform:translateY(-6px); box-shadow:0 30px 56px -28px rgba(18,53,38,.55);}
.prc__title{font-family:'Fraunces',Georgia,serif; font-weight:600; font-size:21px; line-height:1.2; margin:0 0 8px; color:#123526;}
.prc__desc{font-size:14.5px; line-height:1.6; color:#56645A; margin:0 0 16px; flex:1;}
.prc__foot{display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:14px; border-top:1px solid rgba(18,53,38,.1);}
.prc__meta{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:6px 16px; font-size:13px; color:#123526; font-weight:500;}
.prc__meta li{display:flex; align-items:center; gap:6px; margin:0;}
.prc__meta svg{width:16px; height:16px; color:#F58429; flex-shrink:0;}
.prc__go{
  flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; gap:0; height:42px; min-width:42px; padding:0 13px;
  border-radius:999px; border:1.5px solid rgba(18,53,38,.2); color:#123526; font-size:13.5px; font-weight:600;
  transition:background-color .35s, border-color .35s, color .35s, gap .35s;
}
.prc__go-text{max-width:0; overflow:hidden; white-space:nowrap; transition:max-width .45s cubic-bezier(.2,.7,.2,1);}
.prc:hover .prc__go, .prc:focus-within .prc__go{background:#F58429; border-color:#F58429; color:#fff; gap:8px;}
.prc:hover .prc__go-text, .prc:focus-within .prc__go-text{max-width:120px;}
.prc__link{position:absolute; inset:0; z-index:4; border-radius:22px;}
.prc__link:focus-visible{outline:3px solid #F58429; outline-offset:4px;}
@media (hover:none){ .prc__go{background:#F58429; border-color:#F58429; color:#fff;} }

/* ============================================================
   EXPERIENCE CARDS (Philo: Experiences Grid) — postcard style
   ============================================================ */
.elementor-widget-philo-experiences-grid .philo-section--tinted{background:#F7F3EA;}
.elementor-widget-philo-experiences-grid .philo-grid{gap:clamp(20px,2.4vw,32px);}
.pxc{
  position:relative; isolation:isolate; overflow:hidden; aspect-ratio:4/5; border-radius:24px; color:#fff;
  background:#123526; box-shadow:0 30px 60px -36px rgba(18,53,38,.65); font-family:'Jost',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
}
.pxc__media{position:absolute; inset:0; z-index:-2;}
.pxc__media img{position:absolute; inset:0; width:100%; height:100% !important; max-width:none !important; object-fit:cover; border-radius:0 !important; transition:transform 1s cubic-bezier(.2,.7,.2,1);}
.pxc::after{content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(9,26,18,.25) 0%, rgba(9,26,18,0) 30%, rgba(9,26,18,.2) 50%, rgba(9,26,18,.9) 100%); transition:background .5s;}
.pxc:hover .pxc__media img{transform:scale(1.07);}
.pxc__badge{
  position:absolute; top:18px; left:18px; display:inline-flex; align-items:center; gap:7px; padding:8px 14px;
  border-radius:999px; background:#F58429; color:#fff; font-size:12.5px; font-weight:600; letter-spacing:.03em;
  box-shadow:0 10px 20px -10px rgba(0,0,0,.5);
}
.pxc__body{position:absolute; left:0; right:0; bottom:0; padding:clamp(20px,2vw,28px);}
.pxc__title{font-family:'Fraunces',Georgia,serif; font-weight:500; font-size:clamp(24px,2.1vw,30px); line-height:1.12; margin:0 0 10px; color:#fff;}
.pxc__desc{
  font-size:14.5px; line-height:1.6; color:rgba(255,255,255,.85); margin:0;
  max-height:0; opacity:0; overflow:hidden; transition:max-height .55s cubic-bezier(.2,.7,.2,1), opacity .45s, margin .45s;
}
.pxc:hover .pxc__desc, .pxc:focus-within .pxc__desc{max-height:9em; opacity:1; margin-bottom:4px;}
.pxc__foot{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:16px; padding-top:16px; border-top:1px solid rgba(255,255,255,.22);}
.pxc__price{font-size:14px; font-weight:600; color:#F6C592; line-height:1.35;}
.pxc__cta{display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:14px; white-space:nowrap;}
.pxc__cta svg{transition:transform .35s;}
.pxc:hover .pxc__cta svg{transform:translateX(4px);}
.pxc__link{position:absolute; inset:0; z-index:3; border-radius:24px;}
.pxc__link:focus-visible{outline:3px solid #F58429; outline-offset:4px;}
@media (hover:none){ .pxc__desc{max-height:none; opacity:1; margin-bottom:4px;} }
@media (max-width:620px){ .pxc{aspect-ratio:4/4.6;} }

/* ============================================================
   ACTIVITIES LIST (Activities page) — numbered editorial rows
   ============================================================ */
.pal.philo-al-row, .pal.philo-al-row--reverse{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:clamp(36px,5vw,80px); padding:clamp(44px,5vw,70px) 0;}
.pal.philo-al-row--reverse .philo-al-media{order:2;}
.pal .philo-al-media{aspect-ratio:5/4; border-radius:26px; overflow:hidden; box-shadow:18px 18px 0 -2px #F6E4D1;}
.pal.philo-al-row--reverse .philo-al-media{box-shadow:-18px 18px 0 -2px #E3ECDF;}
.pal .philo-al-media img{border-radius:0; transition:transform .9s cubic-bezier(.2,.7,.2,1);}
.pal:hover .philo-al-media img{transform:scale(1.05);}
.pal__top{display:flex; align-items:center; gap:16px; margin-bottom:2px;}
.pal__num{
  font-family:'Fraunces',Georgia,serif; font-size:clamp(46px,4.4vw,64px); font-weight:500; line-height:.9;
  color:transparent; -webkit-text-stroke:1.3px #F58429; letter-spacing:-.02em;
}
.pal .philo-al-tag{
  padding:6px 13px; border-radius:999px; background:#EEF3EA; color:#116E38;
  font-size:11.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
}
.pal .philo-al-content h3{font-family:'Fraunces',Georgia,serif; font-weight:500; font-size:clamp(26px,2.8vw,38px); line-height:1.1; color:#123526; margin:0;}
.pal .philo-al-meta{gap:8px;}
.pal .philo-al-meta li{
  display:inline-flex; align-items:center; gap:7px; padding:7px 13px 7px 11px; border-radius:999px;
  background:#fff; border:1px solid rgba(18,53,38,.12); font-size:13px; font-weight:500; color:#123526;
}
.pal .philo-al-meta li::before{display:none;}
.pal .philo-al-meta svg{color:#F58429; flex-shrink:0;}
.pal .philo-al-content p{font-size:16px; line-height:1.75; color:#56645A;}
.pal__cta{
  display:inline-flex; align-items:center; gap:12px; margin-top:6px; font-weight:600; font-size:15px; color:#123526; text-decoration:none;
}
.pal__cta-arrow{
  display:grid; place-items:center; width:42px; height:42px; border-radius:50%; background:#F58429; color:#fff;
  transition:transform .35s cubic-bezier(.2,.7,.2,1), background-color .3s;
}
.pal__cta:hover{color:#123526;}
.pal__cta:hover .pal__cta-arrow{transform:translateX(5px); background:#123526;}
@media (max-width:860px){
  .pal.philo-al-row, .pal.philo-al-row--reverse{grid-template-columns:1fr; gap:38px;}
  .pal.philo-al-row--reverse .philo-al-media{order:0;}
  .pal .philo-al-media, .pal.philo-al-row--reverse .philo-al-media{box-shadow:12px 12px 0 -2px #F6E4D1; margin-right:12px;}
}

/* ============================================================
   SHOWCASE PANELS (homepage activities slider) — small polish
   ============================================================ */
.philo-showcase__track{counter-reset:philo-panel;}
.philo-showcase__panel{counter-increment:philo-panel; border-radius:26px;}
.philo-showcase__panel::before{
  content:counter(philo-panel, decimal-leading-zero); position:absolute; z-index:3; top:20px; left:22px;
  padding:6px 13px; border-radius:999px; border:1px solid rgba(255,255,255,.45); color:#fff;
  font-family:'Fraunces',Georgia,serif; font-size:14px; letter-spacing:.04em;
  background:rgba(10,30,21,.3); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
}
.philo-showcase__cap{
  font-family:'Fraunces',Georgia,serif; font-size:clamp(22px,2vw,28px); font-weight:500; line-height:1.15; color:#fff;
  padding:90px 28px 26px; background:linear-gradient(0deg, rgba(9,26,18,.88) 0%, rgba(9,26,18,.45) 55%, rgba(9,26,18,0) 100%);
}
.philo-showcase__cap > span{display:block; margin-top:6px; font-family:'Jost',sans-serif; font-size:14px; font-weight:400; letter-spacing:.02em; color:#F6C592;}
.philo-showcase__cap .philo-showcase__btn{align-self:flex-start; margin-top:6px; padding:10px 20px; font-family:'Jost',sans-serif; font-size:13.5px; color:#fff; border:1.5px solid rgba(255,255,255,.55); border-radius:999px; background:transparent;}
.philo-showcase__cap .philo-showcase__btn:hover{background:#F58429; border-color:#F58429; color:#fff;}

/* Showcase captions v2 — details line + solid button with arrow circle */
.philo-showcase__cap .philo-showcase__meta{
  display:inline-flex; align-self:flex-start; margin-top:10px; padding:5px 12px; border-radius:999px;
  background:rgba(247,243,234,.14); border:1px solid rgba(247,243,234,.28);
  font-family:'Jost',sans-serif; font-style:normal; font-size:12.5px; font-weight:500; letter-spacing:.04em; color:#F7F3EA;
}
.philo-showcase__cap .philo-showcase__btn{
  display:inline-flex; align-items:center; gap:10px; align-self:flex-start; margin-top:14px;
  padding:6px 6px 6px 18px; border:0; border-radius:999px; background:#F7F3EA; color:#123526;
  font-family:'Jost',sans-serif; font-size:14px; font-weight:600; text-decoration:none; opacity:1; transform:none;
  transition:background-color .3s, color .3s;
}
.philo-showcase__btn-arrow{display:grid; place-items:center; width:32px; height:32px; border-radius:50%; background:#F58429; color:#fff; transition:transform .35s cubic-bezier(.2,.7,.2,1);}
.philo-showcase__cap .philo-showcase__btn:hover{background:#F58429; color:#fff;}
.philo-showcase__cap .philo-showcase__btn:hover .philo-showcase__btn-arrow{background:#fff; color:#F58429; transform:translateX(3px);}

/* Theme templates (Other Rooms / More Experiences / Other Activities / archives)
   reuse the .prc / .pxc cards — small fixes for that context. */
.card-grid > .prc, .card-grid > .pxc{min-width:0;}
.card-grid:has(> .prc), .card-grid:has(> .pxc){gap:clamp(24px,2.6vw,36px); align-items:stretch;}
.prc__media .philo-img-placeholder, .pxc__media .philo-img-placeholder{position:absolute; inset:0; min-height:0;}
.pxc__media img, .prc__media img{margin:0;}
.prc--activity .prc__price b{font-size:14.5px;}
.prc__price{max-width:62%;}
.prc__tag{max-width:36%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}

/* ============================================================
   BOOKING PANEL (Book a Stay page)
   ============================================================ */
.pbp{background:#F7F3EA; padding:clamp(56px,7vw,100px) 0; font-family:'Jost',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;}
.pbp *{box-sizing:border-box;}
.pbp__inner{max-width:1300px; margin:0 auto; padding:0 24px; display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(24px,3vw,40px); align-items:start;}
.pbp__info{position:sticky; top:110px; background:#123526; color:#F7F3EA; border-radius:26px; padding:clamp(28px,3vw,42px); box-shadow:0 40px 70px -40px rgba(18,53,38,.8);}
.pbp__eyebrow{margin:0 0 6px; font-family:'Beau Rivage',cursive; font-size:32px; line-height:1.1; color:#F3A65A;}
.pbp__title{margin:0 0 22px; font-family:'Fraunces',Georgia,serif; font-weight:500; font-size:clamp(28px,2.6vw,38px); line-height:1.1; color:#F7F3EA;}
.pbp__facts{margin:0; padding:0;}
.pbp__facts > div{padding:14px 0; border-top:1px solid rgba(247,243,234,.14);}
.pbp__facts dt{font-size:11.5px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:#F3A65A; margin:0 0 4px;}
.pbp__facts dd{margin:0; font-size:15.5px; line-height:1.55; color:rgba(247,243,234,.9);}
.pbp__or{margin:22px 0 12px; padding-top:18px; border-top:1px solid rgba(247,243,234,.14); font-size:14px; opacity:.75;}
.pbp__contact{display:flex; flex-direction:column; align-items:flex-start; gap:12px;}
.pbp__line{color:#F7F3EA; text-decoration:underline; text-underline-offset:4px; text-decoration-color:rgba(247,243,234,.35); font-size:15px;}
.pbp__line:hover{color:#F3A65A;}
.pbp__form{background:#fff; border-radius:26px; padding:clamp(24px,3vw,44px); box-shadow:0 30px 60px -40px rgba(18,53,38,.5);}
.pbp__form-title{margin:0 0 20px; font-family:'Fraunces',Georgia,serif; font-weight:500; font-size:clamp(26px,2.4vw,34px); color:#123526;}
.pbp__form .philo-contact-form{max-width:none; padding:0; border:0; box-shadow:none; background:transparent;}
@media (max-width:980px){ .pbp__inner{grid-template-columns:1fr;} .pbp__form{order:-1;} .pbp__info{position:static;} }

/* ============================================================
   WHY US ("What makes a stay here different") — elevated cards
   ============================================================ */
.elementor-widget-philo-why-us .philo-section{background:#F7F3EA;}
.elementor-widget-philo-why-us .philo-why-us__grid{gap:clamp(18px,2vw,28px);}
.elementor-widget-philo-why-us .philo-why-us__item{
  position:relative; overflow:hidden; background:#fff; border-radius:24px; padding:clamp(28px,3vw,38px) clamp(22px,2.4vw,32px);
  border:1px solid rgba(18,53,38,.07); box-shadow:0 24px 50px -36px rgba(18,53,38,.5);
  transition:transform .45s cubic-bezier(.2,.7,.2,1), box-shadow .45s;
}
.elementor-widget-philo-why-us .philo-why-us__item::before{
  content:''; position:absolute; left:0; top:0; right:0; height:4px; background:linear-gradient(90deg,#F58429,#116E38);
  transform:scaleX(0); transform-origin:left; transition:transform .5s cubic-bezier(.2,.7,.2,1);
}
.elementor-widget-philo-why-us .philo-why-us__item:hover{transform:translateY(-6px); box-shadow:0 34px 60px -34px rgba(18,53,38,.55);}
.elementor-widget-philo-why-us .philo-why-us__item:hover::before{transform:scaleX(1);}
.elementor-widget-philo-why-us .philo-why-us__icon{
  display:inline-grid; place-items:center; width:62px; height:62px; margin-bottom:20px; border-radius:50%;
  background:#FDF1E6; color:#F58429;
}
.elementor-widget-philo-why-us .philo-why-us__icon svg, .elementor-widget-philo-why-us .philo-why-us__icon i{width:26px; height:26px; font-size:24px; fill:currentColor; color:inherit;}
.elementor-widget-philo-why-us .philo-why-us__item h3, .elementor-widget-philo-why-us .philo-why-us__item h4{font-family:'Fraunces',Georgia,serif; font-weight:600; font-size:21px; line-height:1.2; color:#123526; margin:0 0 10px;}
.elementor-widget-philo-why-us .philo-why-us__item p{font-size:15px; line-height:1.7; color:#56645A; margin:0;}

/* ============================================================
   AMENITIES ("What's Included") — icon tiles
   ============================================================ */
.elementor-widget-philo-amenities .philo-amenities__grid{gap:14px;}
.elementor-widget-philo-amenities .philo-amenities__item{
  display:flex; align-items:center; gap:16px; padding:18px 20px; background:#fff; border-radius:18px;
  border:1px solid rgba(18,53,38,.08); box-shadow:0 14px 30px -26px rgba(18,53,38,.5);
  transition:border-color .3s, transform .35s cubic-bezier(.2,.7,.2,1);
}
.elementor-widget-philo-amenities .philo-amenities__item:hover{border-color:rgba(245,132,41,.45); transform:translateY(-3px);}
.elementor-widget-philo-amenities .philo-amenities__icon{
  flex-shrink:0; display:grid; place-items:center; width:50px; height:50px; border-radius:14px; background:#EEF3EA; color:#116E38;
}
.elementor-widget-philo-amenities .philo-amenities__icon svg, .elementor-widget-philo-amenities .philo-amenities__icon i{width:22px; height:22px; font-size:20px; fill:currentColor; color:inherit;}
.elementor-widget-philo-amenities .philo-amenities__item h3, .elementor-widget-philo-amenities .philo-amenities__item h4{font-family:'Fraunces',Georgia,serif; font-weight:600; font-size:17px; color:#123526; margin:0 0 2px;}
.elementor-widget-philo-amenities .philo-amenities__item p{font-size:14px; line-height:1.55; color:#56645A; margin:0;}

/* ============================================================
   EXPLORE MOSAIC — bento photo tiles (About page "Things to do")
   ============================================================ */
.pem{background:#fff; padding:clamp(64px,8vw,110px) 0; font-family:'Jost',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;}
.pem *{box-sizing:border-box;}
.pem__inner{max-width:1300px; margin:0 auto; padding:0 24px;}
.pem__head{max-width:640px; margin:0 0 clamp(32px,4vw,48px);}
.pem__head .pwh__label{color:#F58429;}
.pem__title{font-family:'Fraunces',Georgia,serif; font-weight:500; font-size:clamp(32px,3.6vw,52px); line-height:1.08; letter-spacing:-.018em; color:#123526; margin:0 0 12px;}
.pem__title em{font-style:normal; color:inherit; white-space:nowrap; padding:0 .04em .08em;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 14' preserveAspectRatio='none'%3E%3Cpath d='M3 10C60 4 140 2 297 7' stroke='%23F58429' stroke-width='5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat 0 100% / 100% .34em;}
.pem__text{margin:0; font-size:17px; line-height:1.7; color:#56645A;}
.pem__grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-auto-rows:clamp(190px,17vw,250px); grid-auto-flow:dense; gap:clamp(12px,1.4vw,18px);}
.pem__tile{position:relative; overflow:hidden; border-radius:22px; background:#123526; isolation:isolate;}
.pem__tile--wide{grid-column:span 2;}
.pem__tile--big{grid-column:span 2; grid-row:span 2;}
.pem__img{position:absolute; inset:0; width:100% !important; height:100% !important; max-width:none !important; object-fit:cover; border-radius:0 !important; z-index:-2; transition:transform .9s cubic-bezier(.2,.7,.2,1);}
.pem__tile::after{content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(9,26,18,0) 35%, rgba(9,26,18,.82) 100%); transition:background .4s;}
.pem__tile:hover .pem__img{transform:scale(1.06);}
.pem__cap{position:absolute; left:0; right:64px; bottom:0; padding:20px 22px; color:#fff;}
.pem__name{margin:0; font-family:'Fraunces',Georgia,serif; font-weight:500; font-size:21px; line-height:1.15; color:#fff;}
.pem__tile--big .pem__name{font-size:clamp(26px,2.4vw,34px);}
.pem__line{margin:6px 0 0; font-size:14px; line-height:1.45; color:rgba(255,255,255,.85);}
.pem__go{position:absolute; right:18px; bottom:20px; display:grid; place-items:center; width:40px; height:40px; border-radius:50%; background:rgba(247,243,234,.95); color:#123526; transition:background-color .3s, color .3s, transform .35s cubic-bezier(.2,.7,.2,1);}
.pem__tile:hover .pem__go{background:#F58429; color:#fff; transform:translateX(3px);}
.pem__link{position:absolute; inset:0; z-index:3; border-radius:22px;}
.pem__link:focus-visible{outline:3px solid #F58429; outline-offset:3px;}
@media (max-width:900px){ .pem__grid{grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:200px;} }
@media (max-width:560px){ .pem__grid{grid-template-columns:1fr; grid-auto-rows:220px;} .pem__tile--wide, .pem__tile--big{grid-column:auto; grid-row:auto;} .pem__tile--big{grid-row:span 1;} }
