.stay-category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.stay-category-grid article{position:relative;isolation:isolate}
.stay-category-grid article:before{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;background:radial-gradient(ellipse at 85% 0%,#e4ca9540,transparent 65%);opacity:0;transition:opacity .4s ease}
@media(prefers-reduced-motion:no-preference){
  .stay-category-grid article{transition:transform .5s cubic-bezier(.22,.61,.36,1),box-shadow .5s ease,border-color .4s ease}
  .stay-category-grid article.reveal-ready{transition:opacity .6s ease var(--stay-delay,0ms),transform .6s cubic-bezier(.22,.61,.36,1) var(--stay-delay,0ms),box-shadow .4s ease,border-color .4s ease}
  .stay-category-grid article.reveal-pending:not(.reveal-visible){transform:translateY(16px)}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .stay-category-grid article.reveal-visible:hover{transform:translateY(-5px);border-color:#b99a62;box-shadow:0 16px 36px #1833450c,0 0 28px #cfb78512}
  .stay-category-grid article:hover:before{opacity:1}
}
@media(prefers-reduced-motion:reduce){.stay-category-grid article,.stay-category-grid article:before{transition:none!important;transform:none!important;opacity:1}}
.stay-category-grid article{padding:2rem;border:1px solid #18334522;border-radius:16px;background:linear-gradient(130deg,#fff,#eaf1f233)}
.stay-number{font-size:.875rem;letter-spacing:.1em;color:#987844}
.stay-information h3,.seaside-information h3{font-size:1.4rem;font-weight:500;line-height:1.4;letter-spacing:-.03em;color:#183345}
.stay-information p,.seaside-information p,.stay-faq p{font-size:1rem;line-height:1.85;color:#48616b}
.home-comfort{display:grid;grid-template-columns:.85fr 1.15fr;gap:4rem;margin-top:4rem;padding:3rem;border-radius:20px;background:#183345;color:#f7f3e9}
.home-comfort h3{color:#f7f3e9;font-size:2rem;margin:1rem 0}
.home-comfort p{color:#c5d3d6}
.home-comfort ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:1.5rem 2rem}
.home-comfort h4{font-size:1.125rem;font-weight:500;color:#e3c68e;margin:0 0 .6rem}.home-comfort li p{margin:0}
.seaside-information{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start}
.seaside-image{position:sticky;top:110px}.seaside-image img{display:block;width:100%;height:580px;object-fit:cover;border-radius:18px}
.seaside-copy h2{margin:1rem 0 1.5rem}.nearby-list{margin-top:1.7rem}.nearby-list>div{border-top:1px solid #18334522;padding-top:.5rem}.nearby-list h3{margin-bottom:.5rem}
.stay-faq-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:3rem}
.stay-policy{padding:2rem;background:linear-gradient(120deg,#f1e2c2,#e6cf9c);border-radius:18px;align-self:start;display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.stay-policy>div>span{display:block;font-size:.875rem;letter-spacing:.12em;color:#48616b}.stay-policy strong{display:block;font-size:2rem;font-weight:500;color:#183345;margin-top:.5rem}
.stay-policy>p,.quiet-note{grid-column:1/-1;margin:0}.quiet-note{border-top:1px solid #18334522;padding-top:1rem}.quiet-note h3{font-size:1.1rem;font-weight:600;color:#183345}.quiet-note p{margin-bottom:0}
.stay-faq-list details{border-bottom:1px solid #18334522;padding:1.2rem 0}.stay-faq-list details:first-child{border-top:1px solid #18334522}.stay-faq-list summary{font-size:1.1rem;font-weight:500;color:#183345;cursor:pointer;line-height:1.5;min-height:30px}.stay-faq-list summary:focus-visible{outline:2px solid #99723d;outline-offset:5px}.stay-faq-list details p{margin-bottom:.4rem}
@media(max-width:1000px){.stay-category-grid{grid-template-columns:1fr}.home-comfort{gap:2rem;padding:2rem}.seaside-information{gap:2rem}.stay-faq-grid{gap:2rem}}
@media(max-width:700px){.home-comfort,.seaside-information,.stay-faq-grid{grid-template-columns:1fr}.home-comfort ul{grid-template-columns:1fr}.home-comfort{padding:1.5rem;margin-top:2rem}.stay-category-grid article{padding:1.5rem}.seaside-image{position:static}.seaside-image img{height:320px}.stay-policy{padding:1.5rem}}
