@charset "UTF-8";

body.northspin-renewal {
  --ns-ink: #173b3a;
  --ns-muted: #4d6968;
  --ns-aqua: #a9dce4;
  --ns-aqua-soft: #eaf7f7;
  --ns-lime: #b7df69;
  --ns-lime-deep: #81ad37;
  --ns-cream: #f7f7ef;
  --ns-line: #d7e7e5;
  --ns-white: #fff;
  margin: 0;
  background: var(--ns-cream);
  color: var(--ns-ink);
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-size: 16px;
  line-height: 1.8;
  -webkit-font-smoothing: antialiased;
}
body.northspin-renewal *, body.northspin-renewal *::before, body.northspin-renewal *::after { box-sizing: border-box; }
body.northspin-renewal a { color: inherit; text-decoration: none; }
body.northspin-renewal img { max-width: 100%; height: auto; }
body.northspin-renewal button { font: inherit; }
body.northspin-renewal h1, body.northspin-renewal h2, body.northspin-renewal h3, body.northspin-renewal p { margin-top: 0; }
body.northspin-renewal h1, body.northspin-renewal h2, body.northspin-renewal h3 { color: var(--ns-ink); letter-spacing: -.045em; line-height: 1.35; }
body.northspin-renewal :focus-visible { outline: 3px solid #16898a; outline-offset: 3px; }
body.northspin-renewal .ns-container { width: min(100% - 48px, 1180px); margin-inline: auto; }
.ns-skip { position: absolute; top: -100px; left: 16px; z-index: 99999; padding: 12px 18px; background: var(--ns-ink); color: white !important; }
.ns-skip:focus { top: 12px; }
.ns-eyebrow { display: flex; align-items: center; gap: 9px; margin: 0 0 16px; color: #386867; font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.ns-dot { width: 9px; height: 9px; background: var(--ns-lime-deep); border-radius: 50%; }

.ns-header { position: relative; z-index: 100; background: rgba(255,255,255,.96); box-shadow: 0 1px 0 rgba(31,84,80,.08); }
.ns-header__inner { width: min(100% - 48px, 1240px); min-height: 88px; margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.ns-logo { flex: none; display: inline-flex; align-items: center; }
.ns-logo img { display: block; width: 155px; height: auto; object-fit: contain; }
.ns-nav { display: flex; align-items: center; gap: clamp(12px, 2vw, 32px); }
.ns-nav > a { min-height: 48px; display: inline-flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 700; white-space: nowrap; transition: color .2s ease; }
.ns-nav > a:hover, .ns-nav > a[aria-current="page"] { color: #358e91; }
.ns-nav .ns-nav__booking { padding: 0 22px; min-height: 48px; color: var(--ns-ink); background: var(--ns-lime); border-radius: 999px; box-shadow: 0 5px 16px rgba(85,126,44,.12); }
.ns-nav .ns-nav__booking:hover { background: #c8ea86; color: var(--ns-ink); }
.ns-menu-toggle { display: none; }

.ns-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 56px; padding: 12px 22px; border-radius: 999px; font-size: 14px; font-weight: 800; line-height: 1.3; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.ns-button:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(35,92,77,.13); }
.ns-button--primary { background: var(--ns-lime); color: var(--ns-ink); }
.ns-button--primary:hover { background: #c9e989; }
.ns-button--secondary { background: var(--ns-white); color: var(--ns-ink); box-shadow: inset 0 0 0 1px var(--ns-line); }
.ns-button--secondary:hover { background: var(--ns-aqua-soft); }
.ns-button__arrow { display: grid; place-items: center; width: 28px; height: 28px; flex: none; border-radius: 50%; background: rgba(255,255,255,.58); font-size: 16px; }
.ns-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.ns-actions .ns-button { min-width: 202px; }
.ns-text-link { display: inline-flex; align-items: center; gap: 12px; font-size: 14px; font-weight: 800; color: #267a7d !important; text-decoration: underline !important; text-underline-offset: 5px; }
.ns-text-link:hover { color: var(--ns-ink) !important; }

.ns-hero { overflow: hidden; background: var(--ns-aqua-soft); }
.ns-hero__grid { min-height: 665px; display: grid; grid-template-columns: minmax(0,.87fr) minmax(0,1.13fr); align-items: stretch; gap: 48px; }
.ns-hero__copy { align-self: center; padding: 64px 0 76px; }
.ns-hero h1 { margin: 0 0 26px; font-size: clamp(56px, 6.3vw, 90px); font-weight: 800; line-height: 1.13; letter-spacing: -.085em; }
.ns-hero h1 em { font-style: normal; position: relative; z-index: 0; white-space: nowrap; }
.ns-hero h1 em::after { content: ""; position: absolute; z-index: -1; height: .2em; left: -.02em; right: -.06em; bottom: .04em; border-radius: 999px; background: var(--ns-lime); transform: rotate(-2deg); }
.ns-hero__lead { margin-bottom: 30px; color: var(--ns-muted); font-size: 17px; line-height: 1.9; }
.ns-hero__micro { margin: 18px 0 0; font-size: 12px; color: var(--ns-muted); }
.ns-hero__visual { position: relative; min-height: 570px; margin: 32px calc((min(100vw - 48px, 1180px) - 100vw)/2) 32px 0; overflow: hidden; border-radius: 38px 0 0 38px; background: #cbd8d6; }
.ns-hero__visual > img { width: 100%; height: 100%; min-height: 570px; display: block; object-fit: cover; object-position: center; }
.ns-hero__visual::after { content: ""; position: absolute; inset: 50% 0 0; background: linear-gradient(transparent, rgba(11,40,39,.42)); pointer-events: none; }
.ns-hero__visual figcaption { position: absolute; z-index: 1; inset: auto 28px 28px; display: flex; align-items: end; justify-content: space-between; gap: 12px; color: white; }
.ns-hero__tag { padding: 9px 15px; background: rgba(255,255,255,.92); border-radius: 999px; color: var(--ns-ink); font-size: 12px; font-weight: 800; letter-spacing: .04em; }
.ns-hero__tag small { font-size: 11px; }
.ns-hero__caption { font-size: 12px; font-weight: 600; text-shadow: 0 1px 8px rgba(0,0,0,.35); }

.ns-facts { background: var(--ns-white); }
.ns-facts__grid { display: grid; grid-template-columns: repeat(4,1fr); }
.ns-facts__grid > div { min-height: 142px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 2px; text-align: center; }
.ns-facts__grid > div + div { box-shadow: inset 1px 0 0 var(--ns-line); }
.ns-facts strong { color: #4a9294; font-size: 43px; font-weight: 800; line-height: 1.2; letter-spacing: -.06em; }
.ns-facts strong small { font-size: 16px; letter-spacing: -.02em; }
.ns-facts span { color: var(--ns-muted); font-size: 12px; font-weight: 700; }

.ns-section { padding: 100px 0; }
.ns-section-heading { max-width: 720px; margin-bottom: 35px; }
.ns-section-heading h2, .ns-price-head h2, .ns-studio-grid h2, .ns-booking-grid h2, .ns-access-grid h2, .ns-regular h2 { margin-bottom: 16px; font-size: clamp(31px, 3.4vw, 48px); font-weight: 800; }
.ns-section-heading__copy, .ns-price-head p, .ns-studio-grid__copy > p:not(.ns-eyebrow), .ns-booking-grid > div > p:not(.ns-eyebrow), .ns-access-grid > div > p:not(.ns-eyebrow), .ns-regular p:not(.ns-eyebrow) { color: var(--ns-muted); font-size: 15px; line-height: 1.95; }
.ns-use-section { background: var(--ns-cream); }
.ns-use-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.ns-use-card { position: relative; min-height: 300px; padding: 30px; border-radius: 30px; }
.ns-use-card--a { background: #d9f0ef; }
.ns-use-card--b { background: #e9f3d1; }
.ns-use-card--c { background: #e8eef2; }
.ns-use-card__icon { display: grid; place-items: center; width: 66px; height: 66px; margin-bottom: 40px; border-radius: 20px; background: rgba(255,255,255,.75); color: #367a79; font-size: 29px; font-weight: 800; }
.ns-use-card__num { position: absolute; top: 30px; right: 30px; color: rgba(34,79,72,.45); font-size: 13px; font-weight: 800; }
.ns-use-card h3 { margin-bottom: 11px; font-size: 21px; }
.ns-use-card p { margin-bottom: 0; color: var(--ns-muted); font-size: 14px; line-height: 1.85; }

.ns-studio-section { background: white; }
.ns-studio-grid { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); gap: clamp(40px, 6vw, 90px); align-items: center; }
.ns-studio-grid__photos { position: relative; padding-bottom: 60px; }
.ns-studio-grid__main { display: block; width: 91%; aspect-ratio: 1.04; object-fit: cover; border-radius: 32px; }
.ns-studio-grid__detail { position: absolute; right: 0; bottom: 0; width: 40%; aspect-ratio: 1.15; object-fit: cover; border: 8px solid white; border-radius: 26px; box-shadow: 0 18px 35px rgba(22,73,69,.12); }
.ns-check-list { display: grid; grid-template-columns: 1fr 1fr; gap: 9px 16px; margin: 27px 0 34px; padding: 0; list-style: none; }
.ns-check-list li { position: relative; padding-left: 25px; font-size: 13px; font-weight: 700; }
.ns-check-list li::before { content: "✓"; position: absolute; left: 0; top: 0; color: #5d9a39; font-weight: 900; }

.ns-price-section { background: var(--ns-aqua-soft); }
.ns-price-head { display: flex; align-items: end; justify-content: space-between; gap: 25px; margin-bottom: 28px; }
.ns-price-head p { margin-bottom: 0; }
.ns-price-head .ns-text-link { flex: none; margin-bottom: 7px; }
.ns-rate-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.ns-rate { padding: 28px; background: white; border-radius: 25px; box-shadow: 0 8px 24px rgba(54,110,102,.05); }
.ns-rate--featured { background: var(--ns-lime); }
.ns-rate > span { display: inline-block; padding: 5px 12px; background: var(--ns-aqua-soft); border-radius: 999px; font-size: 12px; font-weight: 800; }
.ns-rate--featured > span { background: rgba(255,255,255,.58); }
.ns-rate strong { display: block; margin: 20px 0 4px; font-size: clamp(32px, 3.5vw, 50px); line-height: 1.2; letter-spacing: -.06em; }
.ns-rate strong small { margin-left: 3px; font-size: 13px; letter-spacing: 0; }
.ns-rate p { margin-bottom: 0; color: var(--ns-muted); font-size: 13px; font-weight: 700; }
.ns-night-pack { display: flex; align-items: center; gap: 22px; margin-top: 17px; padding: 18px 26px; background: #d4e8eb; border-radius: 24px; }
.ns-night-pack__icon { display: grid; place-items: center; width: 48px; height: 48px; flex: none; background: white; border-radius: 16px; color: #418c91; font-size: 29px; line-height: 1; }
.ns-night-pack strong { font-size: 16px; }
.ns-night-pack p { margin: 2px 0 0; color: var(--ns-muted); font-size: 12px; }
.ns-night-pack .ns-night-pack__price { margin-left: auto; white-space: nowrap; font-size: 27px; letter-spacing: -.04em; }

.ns-booking-section { background: white; }
.ns-booking-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.84fr); gap: clamp(40px, 7vw, 100px); align-items: center; }
.ns-booking-note { display: grid; gap: 2px; margin: 27px 0 28px; padding: 20px 24px; background: var(--ns-cream); border-radius: 20px; }
.ns-booking-note strong { color: #5d872e; font-size: 14px; }
.ns-booking-note span { color: var(--ns-muted); font-size: 13px; }
.ns-steps { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.ns-steps li { display: flex; gap: 20px; align-items: center; min-height: 112px; padding: 20px 25px; background: var(--ns-aqua-soft); border-radius: 24px; }
.ns-steps li:nth-child(2) { background: #edf4df; }
.ns-steps li:nth-child(3) { background: #eef1f1; }
.ns-steps li > span { display: grid; place-items: center; width: 52px; height: 52px; flex: none; background: white; border-radius: 17px; color: #548b86; font-size: 21px; font-weight: 800; }
.ns-steps strong { font-size: 17px; }
.ns-steps p { margin: 2px 0 0; color: var(--ns-muted); font-size: 12px; }

.ns-regular { padding: 64px 0; background: #dceebc; }
.ns-regular__inner { display: flex; justify-content: space-between; align-items: center; gap: 30px; }
.ns-regular h2 { margin-bottom: 8px; }
.ns-regular p:not(.ns-eyebrow) { max-width: 620px; margin-bottom: 0; }
.ns-regular .ns-button { flex: none; }
.ns-access-section { background: var(--ns-cream); }
.ns-access-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.8fr); gap: 60px; align-items: center; }
.ns-access-grid__art { min-height: 310px; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 15px; padding: 30px; background: radial-gradient(circle at 50% 45%, #d8f3f1 0 8%, transparent 8% 100%), repeating-linear-gradient(0deg, transparent 0 38px, rgba(64,137,134,.12) 39px 40px), repeating-linear-gradient(90deg, #eaf7f7 0 38px, #cfe8e7 39px 40px); border-radius: 32px; text-align: center; }
.ns-access-grid__point { display: grid; place-items: center; width: 74px; height: 74px; background: var(--ns-lime); border: 7px solid white; border-radius: 50%; box-shadow: 0 10px 24px rgba(24,99,95,.15); font-size: 29px; font-weight: 900; }
.ns-access-grid__art strong { font-size: 20px; line-height: 1.1; }
.ns-access-grid__art strong small { font-size: 11px; }
.ns-access-grid__art > span:last-child { padding: 5px 12px; background: white; border-radius: 999px; font-size: 11px; font-weight: 700; }

.ns-faq-section { background: white; }
.ns-faq-grid { display: grid; grid-template-columns: minmax(0,.7fr) minmax(0,1.3fr); gap: 70px; }
.ns-faq-grid h2 { margin-bottom: 13px; font-size: clamp(31px, 3.4vw, 48px); }
.ns-faq-grid > div:first-child > p:not(.ns-eyebrow) { color: var(--ns-muted); font-size: 14px; }
.ns-faq-list { display: grid; gap: 9px; }
.ns-faq-list details { padding: 0 21px; background: var(--ns-aqua-soft); border-radius: 19px; }
.ns-faq-list summary { position: relative; padding: 21px 27px 21px 0; cursor: pointer; font-size: 14px; font-weight: 800; list-style: none; }
.ns-faq-list summary::-webkit-details-marker { display: none; }
.ns-faq-list summary::after { content: "+"; position: absolute; right: 2px; top: 16px; color: #468b8e; font-size: 24px; font-weight: 400; }
.ns-faq-list details[open] summary::after { content: "−"; }
.ns-faq-list details p { margin: 0; padding: 0 0 20px; color: var(--ns-muted); font-size: 13px; }

.ns-last-cta { padding: 74px 0; background: #a5dbe1; }
.ns-last-cta__inner { display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.ns-last-cta h2 { margin: 0 0 10px; font-size: clamp(34px, 4vw, 56px); }
.ns-last-cta p:last-child { margin-bottom: 0; font-size: 14px; }
.ns-last-cta__actions { display: grid; gap: 10px; min-width: 220px; }
.ns-footer { background: #173f3e; color: #e9f4f0; }
.ns-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1.15fr 1.1fr; gap: 48px; padding: 58px 0 48px; }
.ns-footer .ns-logo img { width: 144px; background: white; padding: 6px; border-radius: 6px; }
.ns-footer__brand p { margin: 17px 0 0; color: #c4dfd8; font-size: 12px; }
.ns-footer nav, .ns-footer__contact { display: flex; align-items: flex-start; flex-direction: column; gap: 8px; }
.ns-footer strong { margin-bottom: 8px; color: white; font-size: 13px; }
.ns-footer a:not(.ns-logo), .ns-footer__contact p { color: #c4dfd8; font-size: 12px; }
.ns-footer a:not(.ns-logo):hover { color: var(--ns-lime); }
.ns-footer__contact p { margin-bottom: 0; }
.ns-footer__bottom { display: flex; justify-content: space-between; gap: 10px; padding: 18px 0 28px; border-top: 1px solid rgba(255,255,255,.16); color: #b7d2cc; font-size: 11px; }
.ns-footer__bottom a { color: #d7e9df !important; }

/* Interior pages */
.ns-page-hero { padding: 68px 0 76px; background: var(--ns-aqua-soft); }
.ns-page-hero .ns-container { max-width: 1080px; }
.ns-page-hero h1 { max-width: 870px; margin: 0; font-size: clamp(38px, 5vw, 66px); font-weight: 800; }
.ns-page-hero p:last-child { max-width: 720px; margin: 18px 0 0; color: var(--ns-muted); }
.ns-page-content { padding: 72px 0 96px; background: white; }
.ns-page-content > .ns-container { max-width: 1080px; }
.ns-page-content h2 { margin: 48px 0 18px; font-size: clamp(26px, 3vw, 38px); }
.ns-page-content h3 { margin: 32px 0 12px; font-size: 22px; }
.ns-page-content p, .ns-page-content li { color: var(--ns-muted); }
.ns-page-content a:not(.ns-button) { color: #217b7e; text-decoration: underline; text-underline-offset: 4px; }
.ns-page-content img { border-radius: 20px; }
.ns-page-content table { width: 100%; border-collapse: collapse; }
.ns-page-content td, .ns-page-content th { padding: 14px 16px; border-bottom: 1px solid var(--ns-line); text-align: left; }
.ns-page-lead { max-width: 740px; color: var(--ns-muted); font-size: 17px; }
.ns-feature-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.ns-feature-panel { padding: 28px; background: var(--ns-aqua-soft); border-radius: 26px; }
.ns-feature-panel:nth-child(even) { background: #ecf4df; }
.ns-feature-panel h3 { margin: 0 0 9px; font-size: 21px; }
.ns-feature-panel p { margin: 0; font-size: 14px; }
.ns-photo-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 14px; margin: 28px 0 40px; }
.ns-photo-grid img { width: 100%; height: 100%; min-height: 270px; object-fit: cover; border-radius: 24px; }
.ns-photo-grid img:first-child { grid-row: span 2; }
.ns-price-table { width: 100%; margin: 20px 0 30px; background: white; border-collapse: separate !important; border-spacing: 0; overflow: hidden; border: 1px solid var(--ns-line); border-radius: 22px; }
.ns-price-table th { background: var(--ns-aqua-soft); font-size: 13px; }
.ns-price-table td, .ns-price-table th { padding: 18px 20px; border-bottom: 1px solid var(--ns-line); }
.ns-price-table tr:last-child td { border-bottom: 0; }
.ns-price-table td:last-child { font-weight: 800; white-space: nowrap; }
.ns-info-panel { padding: 28px; margin: 22px 0; background: var(--ns-aqua-soft); border-radius: 26px; }
.ns-info-panel--lime { background: #eaf3d8; }
.ns-info-panel h2, .ns-info-panel h3 { margin: 0 0 10px; }
.ns-info-panel p:last-child { margin-bottom: 0; }
.ns-link-steps { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin: 30px 0; }
.ns-link-steps > div { padding: 25px; background: var(--ns-aqua-soft); border-radius: 24px; }
.ns-link-steps strong { display: block; font-size: 17px; }
.ns-link-steps span { display: grid; place-items: center; width: 38px; height: 38px; margin-bottom: 15px; background: white; border-radius: 12px; color: #438b8d; font-weight: 800; }
.ns-link-steps p { margin: 5px 0 0; font-size: 13px; }
.ns-calendar-frame { width: 100%; min-height: 600px; border: 0; border-radius: 20px; background: var(--ns-aqua-soft); }
.ns-contact-form { max-width: 740px; padding: 30px; background: var(--ns-aqua-soft); border-radius: 28px; }
.ns-contact-form input:not([type=submit]), .ns-contact-form textarea { width: 100%; padding: 12px 14px; border: 1px solid #c3d8d5; border-radius: 12px; background: white; }
.ns-contact-form input[type=submit] { min-height: 50px; padding: 10px 28px; border: 0; border-radius: 999px; background: var(--ns-lime); color: var(--ns-ink); font-weight: 800; cursor: pointer; }

@media (max-width: 960px) {
  .ns-header__inner { min-height: 76px; }
  .ns-menu-toggle { display: flex; width: 46px; height: 46px; align-items: center; justify-content: center; flex-direction: column; gap: 5px; border: 0; border-radius: 15px; background: var(--ns-aqua-soft); cursor: pointer; }
  .ns-menu-toggle span { display: block; width: 20px; height: 2px; background: var(--ns-ink); border-radius: 2px; }
  .ns-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; padding: 18px 24px 28px; background: white; box-shadow: 0 16px 24px rgba(19,58,55,.12); }
  .ns-nav.is-open { display: flex; align-items: stretch; flex-direction: column; gap: 0; }
  .ns-nav > a { padding: 10px 8px; }
  .ns-nav .ns-nav__booking { justify-content: space-between; padding: 12px 20px; margin-top: 8px; }
  .ns-hero__grid { grid-template-columns: 1fr; gap: 0; }
  .ns-hero__copy { padding: 68px 0 42px; }
  .ns-hero__visual { min-height: 420px; height: 420px; margin: 0 -24px 0; border-radius: 30px 30px 0 0; }
  .ns-hero__visual > img { min-height: 420px; }
  .ns-studio-grid, .ns-booking-grid, .ns-access-grid { gap: 35px; }
  .ns-footer__grid { grid-template-columns: repeat(2,1fr); gap: 35px; }
}
@media (max-width: 720px) {
  body.northspin-renewal .ns-container, .ns-header__inner { width: min(100% - 36px, 1180px); }
  .ns-logo img { width: 128px; }
  .ns-hero__copy { padding: 53px 0 42px; }
  .ns-hero h1 { font-size: clamp(48px, 12vw, 72px); }
  .ns-hero__lead { font-size: 15px; }
  .ns-actions .ns-button { min-width: unset; }
  .ns-hero__visual { margin-inline: -18px; height: 340px; min-height: 340px; }
  .ns-hero__visual > img { min-height: 340px; }
  .ns-hero__caption { display: none; }
  .ns-facts__grid { grid-template-columns: 1fr 1fr; }
  .ns-facts__grid > div { min-height: 112px; }
  .ns-facts__grid > div:nth-child(3) { box-shadow: none; border-top: 1px solid var(--ns-line); }
  .ns-facts__grid > div:nth-child(4) { border-top: 1px solid var(--ns-line); }
  .ns-facts strong { font-size: 36px; }
  .ns-section { padding: 65px 0; }
  .ns-use-grid, .ns-rate-grid, .ns-studio-grid, .ns-booking-grid, .ns-access-grid, .ns-faq-grid, .ns-feature-grid, .ns-link-steps { grid-template-columns: 1fr; }
  .ns-use-card { min-height: unset; padding: 24px; }
  .ns-use-card__icon { margin-bottom: 17px; }
  .ns-studio-grid__photos { max-width: 580px; }
  .ns-price-head, .ns-regular__inner, .ns-last-cta__inner { align-items: flex-start; flex-direction: column; }
  .ns-price-head .ns-text-link { margin-bottom: 0; }
  .ns-rate { display: grid; grid-template-columns: 1fr auto; gap: 2px 16px; align-items: end; }
  .ns-rate > span { grid-column: 1; justify-self: start; }
  .ns-rate strong { grid-column: 2; grid-row: 1 / 3; margin: 0; font-size: 31px; }
  .ns-rate p { grid-column: 1; }
  .ns-night-pack { gap: 12px; padding: 17px; }
  .ns-night-pack .ns-night-pack__price { font-size: 21px; }
  .ns-access-grid__art { min-height: 240px; }
  .ns-last-cta { padding: 60px 0; }
  .ns-last-cta__actions { width: 100%; }
  .ns-footer__grid { grid-template-columns: 1fr 1fr; gap: 30px 16px; padding: 44px 0 40px; }
  .ns-footer__brand { grid-column: 1 / -1; }
  .ns-footer__contact { grid-column: 1 / -1; }
  .ns-page-hero { padding: 52px 0; }
  .ns-page-content { padding: 56px 0 72px; }
  .ns-photo-grid { grid-template-columns: 1fr 1fr; }
  .ns-photo-grid img:first-child { grid-column: 1 / -1; grid-row: 1; }
  .ns-photo-grid img { min-height: 150px; }
  .ns-price-table { display: block; overflow-x: auto; }
  .ns-price-table td, .ns-price-table th { padding: 12px; font-size: 13px; }
  .ns-calendar-frame { min-height: 510px; }
}
@media (max-width: 390px) {
  .ns-actions { align-items: stretch; flex-direction: column; }
  .ns-actions .ns-button { width: 100%; }
  .ns-hero h1 { font-size: 46px; }
  .ns-rate strong { font-size: 27px; }
  .ns-night-pack__icon { display: none; }
}
@media (prefers-reduced-motion: reduce) { .ns-button { transition: none; } }
