/* One final motion layer. Containers and photographs never fade out on scroll. */
.reveal,.reveal.is-visible{
  opacity:1!important;filter:none!important;transform:none!important;transition:none!important;
}
.hero-grid>div:first-child>*{
  animation:none!important;opacity:1;filter:none;
}
.hero-image,.about-image,.gallery img,.gallery figure:first-child img{
  opacity:1!important;filter:none!important;animation:none!important;
  transform:none!important;translate:none!important;
  backface-visibility:visible;transition:none!important;
}
.gallery{perspective:none!important}
.gallery figure,.gallery figure:nth-child(n),.gallery figure:hover{
  transform:none!important;transform-style:flat!important;rotate:none!important;
  translate:none!important;will-change:auto!important;
  transition:box-shadow .4s ease!important;
}
.gallery figure::after,.gallery figcaption,.gallery figure:hover img{
  transform:none!important;backdrop-filter:none!important;
}
.gallery figure::before{animation:twinkle 5s ease-in-out infinite}
.hero-image-wrap{animation:quietFloat 8s ease-in-out infinite}
@keyframes quietFloat{0%,100%{translate:0 0}50%{translate:0 -5px}}

/* Natural-sized cards, readable headings, and generous, symmetric mobile gutters. */
.policies-section{overflow:clip!important}
.policies-section>.wrap{width:min(1040px,calc(100% - 40px));min-width:0}
.policies-grid{
  width:100%;max-width:980px;min-width:0;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;padding:0 8px 12px;
}
.policy-card{
  min-width:0;width:100%;max-width:100%;height:auto;
  padding:clamp(20px,2.5vw,30px);
  overflow-wrap:anywhere;transform:none!important;translate:none!important;
  opacity:1!important;filter:none!important;animation:none!important;
}
.policy-card h3{
  display:flex;align-items:flex-start;gap:10px;min-width:0;
  font-size:clamp(1.25rem,2.1vw,1.5rem);line-height:1.3;
  text-transform:none;letter-spacing:0;color:#8b3f64;
}
.policy-card h3>[data-i18n]{min-width:0;flex:1;overflow-wrap:anywhere}
.policy-card ul{padding-left:1.15rem}
.policy-card li{font-size:1rem;line-height:1.7;color:#51404b;margin:9px 0}
.policy-card strong{color:#923e68}
.policy-icon{width:32px;height:32px;flex:0 0 32px;font-size:1rem}
.policies-section .kitty-sticker{display:none}
.policies-section .magic-orb{opacity:.25;z-index:0}
.policies-section>.wrap{position:relative;z-index:1}
.hero-grid,.about-grid,.booking-grid{min-width:0}
.hero-grid>*,.about-grid>*,.booking-grid>*{min-width:0}
.address-card>div{min-width:0;overflow-wrap:anywhere}
.motion-word{display:inline-block;white-space:nowrap;transform-origin:center 70%}
/* A narrow-screen heading can wrap even when a translated word is unusually long. */
.policy-card .motion-word{max-width:100%;white-space:normal;overflow-wrap:anywhere}
/* Social dock intentionally uses the original site's styles without overrides. */
/* Quiet continuous detail; photographs never fade, blur, or get new 3D layers. */
@keyframes detailBreath{0%,100%{opacity:.55}50%{opacity:1}}
@keyframes tinyDrift{0%,100%{translate:0 0}50%{translate:0 -3px}}
@keyframes iconBreath{0%,100%{scale:1;box-shadow:0 0 0 0 #ecc4d433}50%{scale:1.04;box-shadow:0 0 0 5px #ecc4d400}}
.gallery figure::after{animation:detailBreath 6s ease-in-out infinite}
.gallery figure:nth-child(2)::after{animation-delay:-2s}
.gallery figure:nth-child(3)::after{animation-delay:-4s}
.about-grid>div:first-child{animation:tinyDrift 9s ease-in-out infinite}
.trustitems>span{animation:tinyDrift 6s ease-in-out infinite}
.trustitems>span:nth-child(2){animation-delay:-1.5s}
.trustitems>span:nth-child(3){animation-delay:-3s}
.trustitems>span:nth-child(4){animation-delay:-4.5s}
.policy-icon{animation:iconBreath 5s ease-in-out infinite}
.policy-card:nth-child(2) .policy-icon{animation-delay:-1.3s}
.policy-card:nth-child(3) .policy-icon{animation-delay:-2.6s}
.policy-card:nth-child(4) .policy-icon{animation-delay:-3.9s}
.address-icon{animation:twinkle 5.5s ease-in-out infinite}
.policy-card,.faq-card,.booking-panel,.address-card{
  transition:border-color .4s ease,box-shadow .4s ease,background-color .4s ease,translate .45s cubic-bezier(.22,1,.36,1);
}
.btn{transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s ease,filter .35s ease}
@media(hover:hover) and (pointer:fine){
  .policy-card:hover,.address-card:hover{border-color:#b66a8d}
  .faq-card:hover{transform:none;translate:0 -3px}
  .gallery figure:hover{box-shadow:0 0 0 2px #fff,0 0 0 5px #d9b4c6,0 8px 0 #d5a9bd,0 18px 32px #67354b30!important}
}
.motion-resting .magic-orb,.motion-resting .sticker,.motion-resting .kitty-sticker,
.motion-resting .hero-image-wrap,.motion-resting .image-tag,
.motion-resting .hello-kitty-gif,.motion-resting .about-grid>div:first-child,
.motion-resting .trustitems>span,.motion-resting .policy-icon,
.motion-resting .address-icon,.motion-resting .gallery figure::before,
.motion-resting .gallery figure::after,.motion-resting::before,.motion-resting::after{
  animation-play-state:paused!important;
}
@media(max-width:700px){
  .policies-grid{grid-template-columns:minmax(0,1fr);gap:20px}
  .policies-section>.wrap{width:calc(100% - 32px)}
  .policy-card{padding:22px 20px}
  .policy-card h3{font-size:1.4rem}
}
@media(prefers-reduced-motion:reduce){
  .hero-image-wrap,.gallery figure::before{animation:none!important}
  .motion-word{opacity:1!important;clip-path:none!important;scale:1!important}
  .gallery figure::after,.about-grid>div:first-child,.trustitems>span,
  .policy-icon,.address-icon{animation:none!important;scale:1!important;translate:none!important}
  .faq-card:hover{translate:none}
}
