/* Sam Villa polish: depth, texture and rhythm for the sections below the hero.
   Taste rules held: one light theme, pills for pressables, radius-lg for viewables, coral stays on CTA/stars/markers.
   No blur filters or animated gradients, so scrolling stays smooth. */

body{background:
  radial-gradient(900px 600px at 100% 520px,rgba(226,241,232,.9),transparent 70%),
  radial-gradient(800px 560px at 0% 1500px,rgba(255,237,231,.75),transparent 70%),
  radial-gradient(900px 640px at 100% 2600px,rgba(226,241,232,.8),transparent 70%),
  radial-gradient(800px 600px at 0% 3600px,rgba(255,237,231,.6),transparent 70%),
  var(--ground)}

/* Section headings: bigger, with a hand-drawn underline on the key word */
.sv-sec__head .sv-h--m,.sv-welcome__copy .sv-h--m,.sv-location .sv-h--m{font-size:clamp(30px,4.2vw,48px);line-height:1.08;letter-spacing:-.025em}
.sv-h--m em{font-style:normal;color:var(--jungle);position:relative;white-space:nowrap}
.sv-h--m em::after{content:"";position:absolute;left:-2%;right:-2%;bottom:-.12em;height:.32em;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 12' preserveAspectRatio='none'%3E%3Cpath d='M2 8 C 22 2, 38 12, 60 6 S 100 2, 118 7' fill='none' stroke='%23ff8a6e' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") center/100% 100% no-repeat;transform:scaleX(0);transform-origin:left;transition:transform .9s .3s cubic-bezier(.16,1,.3,1)}
html:not(.js) .sv-h--m em::after,.in .sv-h--m em::after,.sv-h--m.in em::after,.fx.in em::after{transform:scaleX(1)}

/* Ticker */
.sv-ticker{margin-top:var(--space-16);overflow:hidden;border-block:1px solid var(--line);background:rgba(255,255,254,.7);padding-block:var(--space-4);-webkit-mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.sv-ticker__track{display:flex;width:max-content;gap:var(--space-12);animation:sv-marquee 40s linear infinite;will-change:transform}
.sv-ticker span{display:inline-flex;align-items:center;gap:var(--space-4);white-space:nowrap;font:600 20px/28px var(--font-display);letter-spacing:-.01em;color:var(--ink)}
.sv-ticker .sv-icon{width:22px;height:22px;color:var(--jungle)}
.sv-ticker:hover .sv-ticker__track{animation-play-state:paused}
@keyframes sv-marquee{to{transform:translateX(calc(-50% - var(--space-6)))}}
.sv-ticker+.sv-sec{padding-top:var(--space-16)}

/* Welcome collage: tilted prints */
.sv-welcome__a,.sv-welcome__b{border:6px solid #fffffe;box-shadow:var(--shadow-2)}
.sv-welcome__a{transform:rotate(-2.2deg)}
.sv-welcome__b{transform:rotate(3deg)}
.sv-welcome__a.fx.in{transform:rotate(-2.2deg)}
.sv-welcome__b.fx.in{transform:rotate(3deg)}
.sv-welcome__a:hover,.sv-welcome__b:hover{transform:rotate(0) scale(1.02)}

/* Rooms: price floats on the photo, featured card gets presence */
.sv-room{position:relative}
.sv-room::before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1.5px;background:linear-gradient(135deg,var(--jungle),transparent 40%,var(--coral));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .4s;pointer-events:none}
.sv-room:hover::before{opacity:1}
.sv-room--featured{background:linear-gradient(180deg,var(--ground-raised),var(--jungle-soft))}
.sv-room--featured .sv-h--s{font-size:30px;line-height:36px;letter-spacing:-.02em}
.sv-room--featured .sv-price{font-size:32px;line-height:36px}
.sv-room__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(10,20,15,.35));pointer-events:none;border-radius:inherit}
.sv-room .sv-pill{box-shadow:0 2px 8px rgba(18,32,26,.08)}
.sv-room__foot .sv-button--secondary{transition:background-color .25s,color .25s,transform .25s}
.sv-room__foot .sv-button--secondary:hover{background:var(--jungle);color:var(--on-jungle)!important}

/* Bento: jungle tile for contrast, oversized ghost icons */
.sv-tile{transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s}
.sv-tile--tall{background:linear-gradient(160deg,#2e7458,#245f48);border-color:transparent;color:#fffffe}
.sv-tile--tall .sv-h,.sv-tile--tall p{color:#fffffe}
.sv-tile--tall p{opacity:.9}
.sv-tile--tall .sv-tile__icon{background:rgba(255,255,254,.16);color:#fffffe}
.sv-tile--tall::after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;border:34px solid rgba(255,255,254,.07)}
.sv-tile--soft::after,.sv-tile--third:not(.sv-tile--soft)::after{content:"";position:absolute;right:-30px;bottom:-30px;width:110px;height:110px;border-radius:50%;background:radial-gradient(circle,rgba(46,116,88,.12),transparent 70%)}
.sv-tile--photo .sv-tile__copy{box-shadow:var(--shadow-2)}
.sv-tile--photo::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(10,20,15,.3));z-index:0}

/* Breakfast band */
.sv-band{box-shadow:var(--shadow-3)}
.sv-band__copy .sv-h--l{font-size:clamp(34px,5vw,56px);line-height:1.04;letter-spacing:-.03em;text-shadow:0 2px 24px rgba(0,0,0,.3)}
.sv-chip{box-shadow:0 6px 18px rgba(0,0,0,.18)}

/* Reviews */
.sv-quote{position:relative;padding:var(--space-8) var(--space-8) var(--space-8) var(--space-12);border-radius:var(--radius-lg);background:var(--ground-raised);border:1px solid var(--line);box-shadow:var(--shadow-1)}
.sv-quote::before{content:"\201C";position:absolute;left:var(--space-4);top:-6px;font:700 120px/1 var(--font-display);color:var(--coral);opacity:.35;pointer-events:none}
.sv-review{transition:transform .3s,box-shadow .3s}
.sv-review:hover{transform:translateY(-4px);box-shadow:var(--shadow-2)}
.sv-score{padding:var(--space-8);border-radius:var(--radius-lg);background:var(--ground-raised);border:1px solid var(--line);box-shadow:var(--shadow-1)}
.sv-score .sv-stars .sv-icon{width:22px;height:22px}

/* Map */
.sv-location__map{box-shadow:var(--shadow-3);border:6px solid #fffffe}
.sv-travel__item{border:1px solid var(--line);background:var(--ground-raised);box-shadow:var(--shadow-1)}
.sv-travel__item .sv-icon{width:36px;height:36px;padding:8px;border-radius:50%;background:var(--jungle-soft)}

/* Closing call to action: jungle gradient, white copy */
.sv-cta{position:relative;overflow:hidden;background:linear-gradient(135deg,#2e7458 0%,#3c8d6d 100%);color:#fffffe;box-shadow:var(--shadow-3)}
.sv-cta::before,.sv-cta::after{content:"";position:absolute;border-radius:50%;border:48px solid rgba(255,255,254,.07);pointer-events:none}
.sv-cta::before{width:340px;height:340px;left:-100px;top:-120px}
.sv-cta::after{width:420px;height:420px;right:-140px;bottom:-190px}
.sv-cta>*{position:relative}
.sv-cta .sv-h--l{color:#fffffe;font-size:clamp(34px,5vw,56px);line-height:1.04;letter-spacing:-.03em}
.sv-cta .sv-lede{color:rgba(255,255,254,.9)}
.sv-root .sv-cta a.sv-button--secondary{color:#fffffe;border-color:rgba(255,255,254,.75)}
.sv-root .sv-cta a.sv-button--secondary:hover{background:rgba(255,255,254,.16)}
.sv-cta .sv-button--primary{box-shadow:0 12px 30px rgba(0,0,0,.25)}

/* Footer wordmark */
.sv-footer{position:relative;overflow:hidden}
.sv-footer__mark{grid-column:1 / -1;font:700 clamp(64px,17vw,230px)/.9 var(--font-display);letter-spacing:-.05em;text-align:center;color:transparent;-webkit-text-stroke:1.5px var(--line-strong);opacity:.35;user-select:none;margin-top:var(--space-4);white-space:nowrap}
.sv-footer__list a{transition:color .2s,padding-left .25s}
.sv-footer__list a:hover{padding-left:6px}

/* Focus ring on interactive cards, and pointer-friendly sizing on touch */
@media (max-width:767px){
  .sv-ticker{margin-top:var(--space-12)}
  .sv-ticker span{font-size:17px}
  .sv-quote{padding:var(--space-6) var(--space-4) var(--space-6) var(--space-8)}
  .sv-quote::before{font-size:84px;left:var(--space-2)}
  .sv-welcome__a,.sv-welcome__b{border-width:4px}
  .sv-room--featured .sv-h--s{font-size:26px;line-height:32px}
  .sv-footer__mark{font-size:20vw}
  .sv-score{padding:var(--space-6)}
}
@media (prefers-reduced-motion:reduce){
  .sv-ticker__track{animation:none}
  .sv-h--m em::after{transform:scaleX(1);transition:none}
}

/* Buttons: one green family so they sit with the palette; coral stays for underline, stars and quote marks */
.sv-button--primary,.sv-root a.sv-button--primary{background:linear-gradient(135deg,#2e7458,#276650);color:#fffffe;border-color:transparent;box-shadow:0 8px 22px rgba(46,116,88,.32)}
.sv-button--primary:hover{background:linear-gradient(135deg,#348464,#2e7458);box-shadow:0 12px 28px rgba(46,116,88,.4)}
.sv-stage .sv-button--primary{background:#fffffe;color:var(--jungle)!important;box-shadow:0 10px 30px rgba(0,0,0,.3)}
.sv-stage .sv-button--primary:hover{background:var(--jungle-soft)}
.sv-stage .sv-button--primary::after{background:linear-gradient(110deg,transparent 30%,rgba(46,116,88,.18) 50%,transparent 70%)}
.sv-root .sv-cta a.sv-button--primary{background:#fffffe;color:var(--jungle)}
.sv-root .sv-cta a.sv-button--primary:hover{background:var(--jungle-soft)}
.sv-cta .sv-button--primary::after{background:linear-gradient(110deg,transparent 30%,rgba(46,116,88,.18) 50%,transparent 70%)}
.sv-booking .sv-button--primary{min-height:52px}
.sv-dock .sv-button--primary,.sv-root a.sv-dock__btn{background:#fffffe;color:var(--jungle);box-shadow:none}
.sv-button--secondary{border-color:rgba(46,116,88,.55)}
.sv-button--secondary:hover{border-color:var(--jungle)}
.sv-button:focus-visible{outline-offset:3px}
