/* ============================================================ */
/* 3CUBE TOP — DESIGN.md applied                                */
/* ============================================================ */

/* ---------- Hero ---------- */
.hero {
  position: relative; height: 100vh; min-height: 800px; overflow: hidden;
  margin-top: var(--header-h);
}
/* Wave SVG at hero bottom — DESIGN.md style */
.hero__wave-bottom {
  position: absolute; bottom: -1px; left: 0; right: 0;
  z-index: 3; overflow: hidden; line-height: 0;
  transform: rotate(180deg);
}
.hero__wave-bottom svg {
  position: relative; display: block;
  width: calc(100% + 1.3px); height: 60px;
}
.hero__video-wrap {
  position: absolute; inset: 0; z-index: 0;
}
.hero__video {
  width: 100%; height: 100%; object-fit: cover;
}
.hero__overlay {
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(to bottom, rgba(14,76,85,.2) 0%, transparent 40%, rgba(14,76,85,.4) 100%);
}
.hero__content {
  position: relative; z-index: 2;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  height: 100%; text-align: center; color: #fff;
}
.hero__sub {
  font-family: var(--font-sans);
  font-size: 10px; font-weight: 700; letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(255,255,255,.7); margin-bottom: 16px;
}
.hero__title {
  font-family: var(--font-serif);
  font-size: 72px; font-weight: 400; font-style: italic;
  letter-spacing: .05em;
  margin-bottom: 24px;
}
.hero__desc {
  font-family: var(--font-sans);
  font-size: 14px; font-weight: 300; letter-spacing: .1em; line-height: 2;
  color: rgba(255,255,255,.85);
}

/* ---------- Intro stagger fade-in ---------- */
.intro-fade {
  opacity: 0;
  transform: translateY(20px);
  animation: introReveal 1s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.intro-fade--1 { animation-delay: .3s; }
.intro-fade--2 { animation-delay: .8s; }
.intro-fade--3 { animation-delay: 1.3s; }
@keyframes introReveal {
  to { opacity: 1; transform: translateY(0); }
}

/* ---------- View more link ---------- */
.tp-sec__more {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: 12px; font-weight: 700; letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--ocean-primary);
  transition: color .3s;
}
.tp-sec__more:hover { color: var(--ocean-dark); }

/* ---------- News ---------- */
.news-list { display: flex; flex-direction: column; gap: 0; }
.news-item {
  display: flex; align-items: baseline; gap: 24px;
  padding: 10px 0; border-bottom: 1px solid var(--ocean-light);
  font-size: 14px; color: var(--text); transition: opacity .3s;
}
.news-item:hover { opacity: .6; }
.news-item__date { color: var(--ui-gray); font-size: 12px; letter-spacing: .05em; flex-shrink: 0; }

/* ---------- Room Cards ---------- */
.tp-cards {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px;
}
.tp-card {
  display: block; text-decoration: none; color: var(--text);
  transition: transform .3s, box-shadow .3s;
}
.tp-card:hover { transform: translateY(-4px); }
.tp-card__img {
  width: 100%; aspect-ratio: 4/3; overflow: hidden; margin-bottom: 16px;
  border-radius: 16px;
}
.tp-card__img img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .7s ease;
}
.tp-card:hover .tp-card__img img { transform: scale(1.05); }
.tp-card__name {
  font-family: var(--font-serif);
  font-size: 18px; font-weight: 400; letter-spacing: .03em;
  margin-bottom: 4px;
}
.tp-card__info { font-size: 13px; color: var(--ui-gray); }

/* ---------- Reviews ---------- */
.review-carousel { position: relative; overflow: hidden; padding: 0 60px; }
.review-carousel__track-wrap { overflow: hidden; }
.review-carousel__track {
  display: flex; gap: 28px;
  transition: transform .4s ease;
}
.review-card {
  flex: 0 0 calc(33.333% - 20px);
  padding: 32px; background-color: var(--white);
  border: 1px solid var(--ocean-light); border-radius: 16px;
  box-shadow: 0 1px 3px rgba(0,0,0,.04);
}
.review-card__stars { color: #e6b422; font-size: 14px; margin-bottom: 12px; }
.review-card__text { font-size: 14px; line-height: 2; color: var(--text); margin-bottom: 16px; }
.review-card__footer { display: flex; justify-content: space-between; font-size: 12px; color: var(--ui-gray); }

.review-carousel__prev,
.review-carousel__next {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 40px; height: 40px;
  background-color: rgba(255,255,255,.9); backdrop-filter: blur(4px);
  border: 1px solid var(--ocean-light); border-radius: 50%;
  font-size: 20px; color: var(--ocean-dark); cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background-color .3s, box-shadow .3s;
  z-index: 2;
}
.review-carousel__prev { left: 0; }
.review-carousel__next { right: 0; }
.review-carousel__prev:hover,
.review-carousel__next:hover {
  background-color: var(--ocean-primary); color: var(--white);
  box-shadow: 0 4px 12px rgba(45,164,168,.2);
}

/* ---------- Access ---------- */
.tp-access {
  display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start;
}
.tp-access__map iframe { display: block; width: 100%; border-radius: 12px; }
.tp-access__name {
  font-family: var(--font-serif); font-size: 20px; font-weight: 400;
  color: var(--ocean-dark); margin-bottom: 8px;
}
.tp-access__addr { font-size: 14px; color: var(--ui-gray); margin-bottom: 4px; }
.tp-access__tel { font-size: 14px; color: var(--ui-gray); margin-bottom: 24px; }
.tp-access__tel a { color: var(--ui-gray); transition: color .3s; }
.tp-access__tel a:hover { color: var(--ocean-primary); }
.tp-access__dl { margin-bottom: 24px; }
.tp-access__dl dt {
  font-size: 13px; font-weight: 500; color: var(--ocean-dark);
  margin-bottom: 2px;
}
.tp-access__dl dd {
  font-size: 14px; color: var(--ui-gray); margin-bottom: 16px;
}

/* tp-cta-img / tp-cta-img__title / tp-cta-img__desc 等のルールは common.css に集約済み（全ページ共通） */
/* ---------- Responsive ---------- */
@media (max-width: 768px) {
  .hero { height: 80vh; min-height: 500px; }
  .hero__title { font-size: 48px; }
  .hero__desc { font-size: 14px; }
  .tp-cards { grid-template-columns: 1fr; gap: 32px; }
  .review-card { flex: 0 0 85%; }
  .review-carousel { padding: 0 40px; }
  .tp-access { grid-template-columns: 1fr; gap: 32px; }
}

/* === extracted from front-page.php === */
/* === TOP v2 detailed (2026-04-22) — keep header icons/side-cta === */
/* HERO */
.tp-hero{position:relative;height:100vh;min-height:720px;overflow:hidden;background:#fff}
.tp-hero__slides{position:absolute;inset:0}
.tp-hero__slide{position:absolute;inset:0;background:center/cover no-repeat;filter:saturate(.98);opacity:0;transition:opacity 1.4s ease-in-out;will-change:opacity}
.tp-hero__slide.is-active{opacity:1}
.tp-hero__bg{position:absolute;inset:0;background:center/cover no-repeat;filter:saturate(.98)}
.tp-hero__veil{position:absolute;inset:0;background:linear-gradient(100deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.35) 35%,rgba(0,0,0,.1) 65%,rgba(0,0,0,0) 85%)}
.tp-hero__inner{position:relative;z-index:2;max-width:1360px;margin:0 auto;padding:120px 64px 140px;height:100%;display:flex;align-items:center}
.tp-hero__copy{max-width:620px;color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.5)}
.tp-hero__kicker{font-family:"Noto Serif JP",serif;font-size:38px;font-weight:400;letter-spacing:.08em;line-height:1.5;color:#fff;margin:0 0 14px}
.tp-hero__kicker span{display:block;margin-left:0;margin-top:4px}
.tp-hero__mini{font-size:13px;letter-spacing:.22em;color:#fff;opacity:.95;margin:0 0 60px}
.tp-hero__brand{font-family:"Playfair Display","Noto Serif JP",serif;font-size:148px;font-weight:400;letter-spacing:.08em;line-height:1;margin:0 0 18px;color:#fff;text-shadow:0 6px 26px rgba(0,0,0,.5)}
.tp-hero__resort{display:flex;align-items:center;gap:16px;font-family:"Playfair Display",serif;font-size:14px;letter-spacing:.5em;color:#fff;opacity:.95;margin:0 0 56px;font-weight:400}
.tp-hero__resort svg{flex:none;width:72px;height:12px;opacity:.95}
.tp-hero__tag{display:none}
.tp-hero__cta{display:inline-flex;align-items:center;gap:16px;background:#2d4a4f;color:#fff;padding:22px 44px;border-radius:999px;text-decoration:none;font-size:14px;letter-spacing:.22em;font-weight:500;box-shadow:0 10px 26px rgba(0,0,0,.35);transition:all .3s}
.tp-hero__cta:hover{background:#1a3034;transform:translateY(-2px);box-shadow:0 14px 34px rgba(0,0,0,.4)}
.tp-hero__cta::after{content:"→";font-size:16px}
.tp-hero__wave{position:absolute;left:0;right:0;bottom:-1px;line-height:0;z-index:3;pointer-events:none}
.tp-hero__wave svg{width:100%;height:100px;display:block;transform:scaleY(-1)}

/* CONCEPT */
.tp-concept{position:relative;background:#f7f4eb;padding:120px 48px 140px;overflow:hidden}
.tp-concept::before{content:"";position:absolute;right:-120px;top:50%;transform:translateY(-50%);width:880px;height:1180px;background:url(<?php echo get_stylesheet_directory_uri(); ?>/assets/img/palm-silhouette.png) right center/contain no-repeat;opacity:.01;pointer-events:none;z-index:0}
.tp-concept__inner{position:relative;max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1fr 1.1fr;gap:80px;align-items:center}
.tp-concept__label{font-size:12px;letter-spacing:.35em;color:#3a5a46;margin:0 0 28px}
.tp-concept__h{font-family:"Noto Serif JP",serif;font-size:42px;font-weight:500;line-height:1.5;color:#2d3b40;letter-spacing:.05em;margin:0 0 36px}
.tp-concept__p{font-size:14px;line-height:2.2;color:#546069;font-weight:400;margin:0 0 48px}
.tp-concept__btn{display:inline-flex;align-items:center;gap:28px;font-family:"Noto Serif JP",serif;font-size:14px;letter-spacing:.2em;color:#3a5a46;text-decoration:none;border-bottom:1px solid #3a5a46;padding-bottom:8px}
.tp-concept__btn::after{content:"";width:40px;height:1px;background:#3a5a46;display:inline-block;position:relative}
.tp-concept__photos{position:relative;height:500px}
.tp-concept__photo{position:absolute;border-radius:14px;overflow:hidden;box-shadow:0 20px 40px rgba(0,0,0,.18);background:#fff;padding:14px}
.tp-concept__photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 35%;border-radius:6px}
.tp-concept__photo--a{left:0;top:20px;width:58%;height:320px;transform:rotate(-4deg)}
.tp-concept__photo--b{right:0;bottom:0;width:48%;height:340px;transform:rotate(3deg)}

/* FACILITIES 3 */
.tp-fac{background:#fff;padding:100px 48px 110px}
.tp-fac__head{text-align:center;margin-bottom:64px}
.tp-fac__label{font-family:"Playfair Display",serif;font-size:13px;letter-spacing:.45em;color:#2d4a4f;margin:0 0 14px}
.tp-fac__title{font-family:"Noto Serif JP",serif;font-size:38px;font-weight:500;color:#1a2e32;letter-spacing:.22em;margin:0}
.tp-fac__grid{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.tp-fac__card{background:#fff;border-radius:10px;overflow:hidden;text-decoration:none;color:inherit;transition:transform .35s,box-shadow .35s;box-shadow:0 4px 18px rgba(0,0,0,.06)}
.tp-fac__card:hover{transform:translateY(-6px);box-shadow:0 16px 40px rgba(0,0,0,.1)}
.tp-fac__imgwrap{position:relative;overflow:hidden;background:#000}
.tp-fac__imgwrap img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.tp-fac__letter{position:absolute;left:26px;top:10px;font-family:"Playfair Display",serif;font-size:140px;font-weight:400;line-height:1;color:#fff;text-shadow:0 4px 18px rgba(0,0,0,.45);letter-spacing:0;pointer-events:none}
.tp-fac__body{padding:28px 28px 32px}
.tp-fac__h{font-family:"Playfair Display",serif;font-size:22px;font-weight:500;color:#1a2e32;letter-spacing:.14em;margin:0 0 14px}
.tp-fac__p{font-size:13px;line-height:1.9;color:#546069;margin:0 0 22px;font-weight:400}
.tp-fac__more{font-family:"Playfair Display",serif;font-size:11px;letter-spacing:.3em;color:#2d4a4f;display:inline-flex;align-items:center;gap:10px;padding-bottom:6px;border-bottom:1px solid #2d4a4f}
.tp-fac__more::after{content:"→";font-size:13px}

/* GALLERY photo collage (12-photo organic) */
.tp-gal{background:#fff;padding:30px 24px 110px}
.tp-gal__head{text-align:center;margin-bottom:40px}
.tp-gal__title{font-family:"Playfair Display",serif;font-size:22px;letter-spacing:.5em;color:#2d4a4f;margin:0;text-transform:uppercase}
.tp-gal__wrap{max-width:1360px;margin:0 auto;position:relative}
.tp-gal__row{display:grid;grid-template-columns:repeat(12,1fr);gap:10px;margin-bottom:-40px;position:relative}
.tp-gal__row:last-child{margin-bottom:0}
.tp-gal__cell{overflow:hidden;border-radius:8px;box-shadow:0 12px 28px rgba(0,0,0,.15);transition:transform .4s,box-shadow .4s;border:5px solid #fff;background:#fff;position:relative}
.tp-gal__cell:hover{transform:scale(1.05) rotate(0deg) !important;box-shadow:0 20px 48px rgba(0,0,0,.25);z-index:10}
.tp-gal__cell img{width:100%;height:100%;object-fit:cover;display:block}

/* Row 1: 6 photos varying sizes */
.tp-gal__cell--1{grid-column:1 / span 2;aspect-ratio:5/4;transform:rotate(-3deg);z-index:2}
.tp-gal__cell--2{grid-column:3 / span 2;aspect-ratio:5/4;transform:rotate(2deg) translateY(18px);z-index:1}
.tp-gal__cell--3{grid-column:5 / span 2;aspect-ratio:1/1;transform:rotate(-1.5deg) translateY(-8px);z-index:3}
.tp-gal__cell--4{grid-column:7 / span 2;aspect-ratio:5/4;transform:rotate(2.5deg) translateY(12px);z-index:2}
.tp-gal__cell--5{grid-column:9 / span 2;aspect-ratio:5/4;transform:rotate(-2deg);z-index:1}
.tp-gal__cell--6{grid-column:11 / span 2;aspect-ratio:5/4;transform:rotate(1.5deg) translateY(20px);z-index:2}

/* Row 2: 6 photos overlapping row 1 */
.tp-gal__cell--7{grid-column:1 / span 2;aspect-ratio:4/3;transform:rotate(1.5deg) translateY(-10px);z-index:4}
.tp-gal__cell--8{grid-column:3 / span 2;aspect-ratio:4/3;transform:rotate(-2.5deg) translateY(8px);z-index:3}
.tp-gal__cell--9{grid-column:5 / span 2;aspect-ratio:4/3;transform:rotate(2deg) translateY(-4px);z-index:4}
.tp-gal__cell--10{grid-column:7 / span 2;aspect-ratio:4/3;transform:rotate(-1.5deg) translateY(14px);z-index:3}
.tp-gal__cell--11{grid-column:9 / span 2;aspect-ratio:4/3;transform:rotate(2.5deg) translateY(-6px);z-index:4}
.tp-gal__cell--12{grid-column:11 / span 2;aspect-ratio:5/4;transform:rotate(-2deg) translateY(22px);z-index:5}

@media(max-width:960px){
  .tp-gal__row{grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:-20px}
  .tp-gal__cell--1,.tp-gal__cell--2,.tp-gal__cell--3,.tp-gal__cell--4,.tp-gal__cell--5,.tp-gal__cell--6{grid-column:span 2}
  .tp-gal__cell--7,.tp-gal__cell--9,.tp-gal__cell--11{grid-column:span 3}
  .tp-gal__cell--8,.tp-gal__cell--10,.tp-gal__cell--12{grid-column:span 3}
}
@media(max-width:640px){
  .tp-gal__row{grid-template-columns:repeat(4,1fr)}
  .tp-gal__cell--1,.tp-gal__cell--2,.tp-gal__cell--3,.tp-gal__cell--4,.tp-gal__cell--5,.tp-gal__cell--6{grid-column:span 2}
  .tp-gal__cell--7,.tp-gal__cell--8,.tp-gal__cell--9,.tp-gal__cell--10,.tp-gal__cell--11,.tp-gal__cell--12{grid-column:span 2}
}

/* SAUNA full-width overlay */
.tp-sauna{position:relative;padding:80px 48px;background:#eaf2f5}
.tp-sauna__frame{position:relative;max-width:1240px;margin:0 auto;min-height:540px;border-radius:20px;overflow:hidden}
.tp-sauna__bg{position:absolute;inset:0;background:center/cover no-repeat}
.tp-sauna__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(270deg,rgba(247,244,235,.98) 0%,rgba(247,244,235,.92) 35%,rgba(247,244,235,.55) 60%,rgba(247,244,235,0) 85%)}
.tp-sauna__card{position:relative;z-index:2;width:52%;max-width:560px;padding:80px 64px;margin-left:auto;word-break:keep-all;overflow-wrap:break-word}
.tp-sauna__label{font-size:12px;letter-spacing:.4em;color:#2d4a4f;font-weight:600;margin:0 0 20px}
.tp-sauna__h{font-family:"Noto Serif JP",serif;font-size:30px;font-weight:600;line-height:1.7;color:#1a2e32;letter-spacing:.06em;margin:0 0 28px;word-break:keep-all}
.tp-sauna__p{font-size:13px;line-height:2.1;color:#2d4048;margin:0 0 40px;word-break:keep-all}
.tp-sauna__more{font-family:"Playfair Display",serif;font-size:13px;letter-spacing:.25em;color:#2d4a4f;font-weight:500;text-decoration:none;display:inline-flex;align-items:center;gap:10px}
.tp-sauna__more::after{content:"→"}

/* BBQ panel */
.tp-bbq{background:#eaf2f5;padding:40px 48px 100px}
.tp-bbq__panel{max-width:1240px;margin:0 auto;background:#e0edf0;border-radius:20px;padding:64px;display:grid;grid-template-columns:1fr 1.2fr;gap:56px;align-items:center}
.tp-bbq__label{font-size:12px;letter-spacing:.4em;color:#3a5a46;margin:0 0 20px}
.tp-bbq__h{font-family:"Noto Serif JP",serif;font-size:30px;font-weight:500;color:#2d3b40;letter-spacing:.06em;line-height:1.5;margin:0 0 28px}
.tp-bbq__p{font-size:13px;line-height:2.1;color:#546069;margin:0 0 40px}
.tp-bbq__more{font-family:"Playfair Display",serif;font-size:12px;letter-spacing:.25em;color:#3a5a46;text-decoration:none}
.tp-bbq__more::after{content:" →"}
.tp-bbq__imgs{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.tp-bbq__imgs img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:10px;box-shadow:0 10px 22px rgba(0,0,0,.1)}
.tp-bbq__imgs img:nth-child(1){transform:translateY(-12px)}

/* INFORMATION 4-step photos (no icons) */
.tp-info{background:#fff;padding:60px 48px 110px;text-align:center}
.tp-info__label{font-family:"Playfair Display",serif;font-size:13px;letter-spacing:.45em;color:#2d4a4f;margin:0 0 12px}
.tp-info__title{font-family:"Noto Serif JP",serif;font-size:32px;font-weight:500;color:#1a2e32;letter-spacing:.2em;margin:0 0 56px;position:relative;display:inline-block;padding:0 60px}
.tp-info__title::before,.tp-info__title::after{content:"";position:absolute;top:50%;width:40px;height:1px;background:#2d4a4f}
.tp-info__title::before{left:0}
.tp-info__title::after{right:0}
.tp-info__grid{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:32px;text-align:left}
.tp-info__step{}
.tp-info__num{font-family:"Playfair Display",serif;font-size:28px;font-weight:400;color:#2d4a4f;letter-spacing:.06em;margin:0 0 6px}
.tp-info__h{font-family:"Noto Serif JP",serif;font-size:18px;font-weight:500;color:#1a2e32;margin:0 0 18px;letter-spacing:.1em}
.tp-info__img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;margin-bottom:18px;box-shadow:0 6px 20px rgba(0,0,0,.08)}
.tp-info__p{font-size:12px;line-height:1.9;color:#546069;margin:0}

/* FAQ + ACCESS 2-col */
.tp-fa{background:#f7f4eb;padding:90px 48px}
.tp-fa__inner{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:1fr 1.15fr;gap:48px}
.tp-fa__label{font-family:"Playfair Display",serif;font-size:13px;letter-spacing:.4em;color:#2d4a4f;margin:0 0 10px}
.tp-fa__title{font-family:"Noto Serif JP",serif;font-size:26px;font-weight:500;color:#1a2e32;margin:0 0 28px;letter-spacing:.12em}
.tp-faq2{list-style:none;padding:0;margin:0 0 24px;border-top:1px solid #d9d5c8}
.tp-faq2__item{border-bottom:1px solid #d9d5c8}
.tp-faq2__q{padding:18px 40px 18px 0;font-size:13px;color:#1a2e32;cursor:pointer;position:relative;letter-spacing:.04em}
.tp-faq2__q::after{content:"+";position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:20px;color:#2d4a4f;font-weight:300;transition:transform .3s}
.tp-faq2__item.is-open .tp-faq2__q::after{transform:translateY(-50%) rotate(45deg)}
.tp-faq2__a{max-height:0;overflow:hidden;transition:max-height .4s,padding .4s;font-size:12px;line-height:1.9;color:#546069;padding:0}
.tp-faq2__item.is-open .tp-faq2__a{max-height:260px;padding:0 0 18px}
.tp-fa__btn{display:inline-block;padding:10px 28px;border:1px solid #2d4a4f;border-radius:999px;text-decoration:none;color:#2d4a4f;font-family:"Noto Serif JP",serif;font-size:12px;letter-spacing:.15em;transition:all .3s}
.tp-fa__btn:hover{background:#2d4a4f;color:#fff}
.tp-fa__access{background:#fff;border-radius:12px;padding:40px;display:grid;grid-template-columns:1fr 1.2fr;gap:28px;align-items:start}
.tp-fa__addr p{margin:0 0 6px;font-size:13px;line-height:1.7;color:#1a2e32}
.tp-fa__addr .tp-fa__zip{font-family:"Playfair Display",serif;letter-spacing:.1em;color:#2d4a4f;margin-bottom:4px}
.tp-fa__addr .tp-fa__tel{font-family:"Playfair Display",serif;font-size:18px;letter-spacing:.08em;color:#2d4a4f;margin-top:14px}
.tp-fa__map iframe{width:100%;height:200px;border:0;border-radius:8px;display:block}
.tp-fa__map .tp-fa__btn{margin-top:14px}

@media(max-width:960px){
  .tp-hero__brand{font-size:80px}
  .tp-hero__kicker{font-size:22px}
  .tp-concept__inner,.tp-bbq__panel,.tp-fa__inner,.tp-fa__access{grid-template-columns:1fr;gap:40px}
  .tp-bbq__panel{padding:40px 24px}
  .tp-concept__photos{height:380px}
  .tp-fac__grid{grid-template-columns:1fr}
  .tp-sauna__card{width:auto;max-width:none;padding:48px 32px}
  .tp-info__grid{grid-template-columns:repeat(2,1fr)}
  .tp-gal__grid{grid-template-columns:repeat(6,1fr)}
}
@media(max-width:640px){
  .tp-hero{height:78vh;min-height:500px}
  .tp-hero__brand{font-size:60px}
  .tp-hero__inner,.tp-concept,.tp-fac,.tp-sauna,.tp-bbq,.tp-info,.tp-gal,.tp-fa{padding-left:16px;padding-right:16px}
  .tp-bbq__panel{padding:32px 16px;border-radius:12px}
  .tp-bbq__imgs{gap:10px}
  .tp-bbq__imgs img{aspect-ratio:4/5}
  .tp-bbq__imgs img:nth-child(1){transform:none}
  .tp-info__grid{grid-template-columns:1fr}
  .tp-gal__grid{grid-template-columns:repeat(4,1fr)}
}

