
/* HERO */
.sw-hero{
  position:relative;
  min-height:100svh;
  color:#fff;
  background:#111;
  overflow:hidden;
}
.sw-header{
  position:absolute;
  z-index:20;
  top:0;
  left:0;
  right:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:28px 48px;
}
.sw-header__logo{
  display:block;
  width:210px;
}
.sw-header__logo img{
  width:100%;
}
.sw-header__nav{
  display:flex;
  align-items:center;
  gap:34px;
  font-family:var(--en);
  letter-spacing:.1em;
  font-size:17px;
}
.sw-header__reserve{
  padding:14px 28px;
  border:1px solid rgba(255,255,255,.42);
}
.sw-menu-button{display:none}
.sw-mobile-nav{display:none}
.sw-hero__bg{
  position:absolute;
  inset:0;
  background:url("../img/hero.jpg") center/cover no-repeat;
}
.sw-hero__shade{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(0,0,0,.76),rgba(0,0,0,.26) 58%,rgba(0,0,0,.24));
}
.sw-hero__content{
  position:relative;
  z-index:2;
  width:min(1180px,calc(100% - 88px));
  margin:0 auto;
  padding:190px 0 90px;
}
.sw-hero__content h1{
  max-width:700px;
  margin:0;
  font-family:var(--serif);
  font-size:clamp(38px,4.7vw,70px);
  font-weight:500;
  line-height:1.45;
  letter-spacing:.06em;
}
.sw-hero__content p{
  margin:36px 0 0;
  font-family:var(--serif);
  font-size:clamp(17px,1.6vw,24px);
  line-height:1.9;
}
.sw-hero__cta{
  display:flex;
  gap:18px;
  margin-top:48px;
}
.sw-hero__cta a{
  min-width:230px;
  padding:18px 34px;
  text-align:center;
  border:1px solid rgba(255,255,255,.52);
}
.sw-hero__cta a:first-child{
  background:var(--wood);
  border-color:var(--wood);
  color:#fff;
}
.sw-scroll{
  position:absolute;
  left:32px;
  bottom:40px;
  z-index:2;
  writing-mode:vertical-rl;
  font-family:var(--en);
  letter-spacing:.25em;
}

/* ESSENCE */
.sw-essence{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  background:var(--cream);
  border-bottom:1px solid var(--line);
}
.sw-essence__item{
  padding:34px 54px;
  border-right:1px solid var(--line);
}
.sw-essence__item strong{
  display:block;
  font-family:var(--en);
  font-size:34px;
  font-weight:500;
  line-height:1;
}
.sw-essence__item span{
  display:block;
  margin-top:8px;
  color:var(--muted);
  font-size:13px;
}

/* ROOMS */
.sw-rooms{
  display:grid;
  grid-template-columns:1.1fr repeat(4,1fr);
  min-height:430px;
  background:var(--black);
  color:#fff;
}
.sw-rooms__intro{
  padding:78px 54px;
}
.sw-rooms__intro p,
.sw-journey__intro p{
  margin:0 0 22px;
  color:var(--wood);
  font-family:var(--en);
  letter-spacing:.28em;
}
.sw-rooms__intro h2,
.sw-journey__intro h2{
  margin:0;
  font-family:var(--serif);
  font-weight:500;
  line-height:1.6;
  letter-spacing:.08em;
}
.sw-rooms__intro a,
.sw-journey__intro a{
  display:inline-flex;
  margin-top:42px;
  padding:14px 30px;
  border:1px solid rgba(255,255,255,.5);
}
.sw-room-card{
  position:relative;
  overflow:hidden;
  min-height:430px;
}
.sw-room-card img{
  height:100%;
  object-fit:cover;
  opacity:.95;
  transition:.7s;
}
.sw-room-card:hover img{
  transform:scale(1.04);
}
.sw-room-card::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.72));
}
.sw-room-card div{
  position:absolute;
  z-index:2;
  left:26px;
  right:26px;
  bottom:28px;
}
.sw-room-card h3{
  margin:0;
  font-family:var(--serif);
  font-size:22px;
  font-weight:500;
}
.sw-room-card p{
  margin:8px 0 0;
  color:rgba(255,255,255,.82);
}

/* CONCEPT */
.sw-concept{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:70px;
  padding:120px min(6vw,90px);
  background:var(--cream);
}
.sw-concept h2,
.sw-sauna h2,
.sw-access h2{
  margin:0;
  font-family:var(--serif);
  font-size:clamp(34px,4vw,58px);
  font-weight:500;
  line-height:1.55;
  letter-spacing:.07em;
}
.sw-concept p:not(.sw-label),
.sw-sauna p,
.sw-access p{
  margin:0 0 24px;
  color:var(--muted);
  line-height:2.2;
}

/* SAUNA */
.sw-sauna{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  background:var(--black);
  color:#fff;
}
.sw-sauna__image img{
  height:100%;
  object-fit:cover;
}
.sw-sauna__text{
  padding:110px min(6vw,90px);
}
.sw-sauna .sw-label{color:var(--wood)}
.sw-sauna p{color:rgba(255,255,255,.78)}
.sw-sauna small{
  display:block;
  margin-top:26px;
  color:rgba(255,255,255,.65);
}

/* JOURNEY */
.sw-journey{
  display:grid;
  grid-template-columns:1.1fr repeat(5,1fr);
  gap:18px;
  padding:88px min(5vw,70px);
  background:var(--cream);
}
.sw-journey__intro{padding-right:30px}
.sw-journey__intro a{border-color:var(--line)}
.sw-journey article img{
  aspect-ratio:4/5;
  object-fit:cover;
}
.sw-journey article p{
  margin:14px 0 0;
  font-family:var(--serif);
}

/* ACCESS */
.sw-access{
  display:grid;
  grid-template-columns:1fr .9fr;
  gap:70px;
  padding:120px min(6vw,90px);
  background:#fff;
}
.sw-access__panel{
  display:grid;
  place-items:center;
  text-align:center;
  background:var(--cream2);
  min-height:300px;
}
.sw-access__panel strong{
  display:block;
  font-family:var(--en);
  color:var(--wood);
  font-size:90px;
  line-height:1;
}
.sw-access__panel span{color:var(--muted)}

/* FOOTER */
.sw-footer{
  padding:72px min(6vw,90px) 30px;
  background:var(--black);
  color:#fff;
}
.sw-footer img{
  width:260px;
}
.sw-footer p{
  max-width:520px;
  color:rgba(255,255,255,.68);
}
.sw-footer nav{
  display:flex;
  gap:28px;
  margin-top:38px;
  color:rgba(255,255,255,.72);
  font-family:var(--en);
}
.sw-footer small{
  display:block;
  margin-top:60px;
  color:rgba(255,255,255,.45);
}

/* MOBILE */
@media(max-width:900px){
  .sw-header{
    padding:18px 16px;
  }
  .sw-header__logo{
    width:148px;
  }
  .sw-header__nav{
    display:none;
  }
  .sw-menu-button{
    display:flex;
    align-items:center;
    gap:8px;
    padding:10px 13px;
    color:#fff;
    background:rgba(0,0,0,.35);
    border:1px solid rgba(255,255,255,.34);
    border-radius:999px;
  }
  .sw-menu-button span{
    display:block;
    width:14px;
    height:1px;
    background:#fff;
  }
  .sw-menu-button em{
    font-style:normal;
    font-size:11px;
    letter-spacing:.12em;
  }
  .sw-mobile-nav{
    position:fixed;
    z-index:50;
    inset:0;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:28px;
    padding:40px;
    background:rgba(16,15,12,.96);
    color:#fff;
    font-family:var(--en);
    font-size:28px;
    letter-spacing:.12em;
    opacity:0;
    pointer-events:none;
    transform:translateY(-10px);
    transition:.3s;
  }
  .sw-mobile-nav.is-open{
    opacity:1;
    pointer-events:auto;
    transform:translateY(0);
  }
  .sw-menu-button.is-open{
    position:fixed;
    right:16px;
    top:18px;
    z-index:60;
  }

  .sw-hero{
    min-height:auto;
  }
  .sw-hero__bg{
    background-position:center;
  }
  .sw-hero__shade{
    background:linear-gradient(180deg,rgba(0,0,0,.70),rgba(0,0,0,.42) 52%,rgba(0,0,0,.72));
  }
  .sw-hero__content{
    width:calc(100% - 32px);
    padding:132px 0 70px;
  }
  .sw-hero__content h1{
    font-size:32px;
    line-height:1.55;
  }
  .sw-hero__content p{
    margin-top:26px;
    font-size:16px;
  }
  .sw-hero__cta{
    flex-direction:column;
    margin-top:34px;
  }
  .sw-hero__cta a{
    width:100%;
    min-width:0;
  }
  .sw-scroll{display:none}
  .sw-essence,
  .sw-rooms,
  .sw-concept,
  .sw-sauna,
  .sw-journey,
  .sw-access{
    grid-template-columns:1fr;
  }
  .sw-essence__item{
    border-right:0;
    border-bottom:1px solid var(--line);
    padding:28px 24px;
  }
  .sw-rooms__intro,
  .sw-concept,
  .sw-sauna__text,
  .sw-access{
    padding:78px 24px;
  }
  .sw-room-card{
    min-height:360px;
  }
  .sw-sauna__image{
    order:2;
  }
  .sw-journey{
    padding:78px 24px;
  }
  .sw-journey article img{
    aspect-ratio:16/10;
  }
  .sw-footer nav{
    flex-direction:column;
  }
}


/* ROOM DETAILS */
.sw-room-details{
  padding:120px min(6vw,90px);
  background:var(--cream);
}
.sw-room-details__head{
  max-width:860px;
  margin:0 auto 86px;
  text-align:center;
}
.sw-room-details__head h2{
  margin:0;
  font-family:var(--serif);
  font-size:clamp(34px,4vw,58px);
  font-weight:500;
  line-height:1.55;
  letter-spacing:.07em;
}
.sw-room-details__head p:not(.sw-label){
  margin:28px auto 0;
  max-width:680px;
  color:var(--muted);
  line-height:2.2;
}
.sw-room-detail{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:64px;
  align-items:center;
  max-width:1220px;
  margin:0 auto 86px;
}
.sw-room-detail:last-child{
  margin-bottom:0;
}
.sw-room-detail--reverse{
  grid-template-columns:.9fr 1.1fr;
}
.sw-room-detail--reverse .sw-room-detail__image{
  order:2;
}
.sw-room-detail__image{
  overflow:hidden;
}
.sw-room-detail__image img{
  aspect-ratio:16/10;
  object-fit:cover;
  transition:.7s ease;
}
.sw-room-detail:hover .sw-room-detail__image img{
  transform:scale(1.035);
}
.sw-room-detail__body span{
  display:block;
  margin-bottom:18px;
  color:var(--wood);
  font-family:var(--en);
  letter-spacing:.18em;
}
.sw-room-detail__body h3{
  margin:0;
  font-family:var(--serif);
  font-size:clamp(30px,3.8vw,54px);
  font-weight:500;
  line-height:1.4;
  letter-spacing:.06em;
}
.sw-room-detail__body p{
  margin:28px 0 0;
  color:var(--muted);
  line-height:2.2;
}
.sw-room-detail__body ul{
  margin:28px 0 0;
  padding:0;
  list-style:none;
  border-top:1px solid var(--line);
}
.sw-room-detail__body li{
  padding:14px 0;
  border-bottom:1px solid var(--line);
  color:var(--ink);
}
@media(max-width:900px){
  .sw-room-details{
    padding:78px 24px;
  }
  .sw-room-details__head{
    text-align:left;
    margin-bottom:54px;
  }
  .sw-room-detail,
  .sw-room-detail--reverse{
    grid-template-columns:1fr;
    gap:28px;
    margin-bottom:62px;
  }
  .sw-room-detail--reverse .sw-room-detail__image{
    order:0;
  }
}


/* ACCESS v2.7 ENHANCED */
.sw-access{
  display:grid;
  grid-template-columns:1fr .9fr;
  gap:70px;
  padding:120px min(6vw,90px);
  background:#fff;
}
.sw-access__intro{
  align-self:center;
}
.sw-access__intro p:not(.sw-label){
  margin-top:28px;
  color:var(--muted);
  line-height:2.2;
}
.sw-access__map{
  grid-column:1 / -1;
  overflow:hidden;
  border:1px solid var(--line);
  background:var(--cream2);
}
.sw-access__map iframe{
  display:block;
  filter:saturate(.85) contrast(.95);
}
.sw-access__cards{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.sw-access__cards div{
  background:var(--cream);
  padding:34px 32px;
}
.sw-access__cards span{
  color:var(--wood);
  font-family:var(--en);
  font-size:24px;
}
.sw-access__cards h3{
  margin:18px 0 12px;
  font-family:var(--serif);
  font-size:24px;
  font-weight:500;
  line-height:1.5;
}
.sw-access__cards p{
  margin:0;
  color:var(--muted);
  line-height:2;
}
.sw-access__note{
  grid-column:1 / -1;
}
.sw-access__note p{
  margin:0;
  color:var(--muted);
  font-size:13px;
  line-height:1.9;
}
@media(max-width:900px){
  .sw-access{
    grid-template-columns:1fr;
    padding:78px 24px;
    gap:34px;
  }
  .sw-access__cards{
    grid-template-columns:1fr;
  }
  .sw-access__map iframe{
    height:360px;
  }
}


/* ESSENCE v2.8 BRAND VALUE */
.sw-essence{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  background:rgba(247,243,234,.96);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.sw-essence__item{
  position:relative;
  display:grid;
  grid-template-columns:52px 1fr;
  grid-template-rows:auto auto;
  column-gap:22px;
  row-gap:8px;
  align-items:center;
  padding:38px 46px;
  border-right:1px solid var(--line);
}
.sw-essence__item:last-child{
  border-right:0;
}
.sw-essence__icon{
  grid-row:1 / span 2;
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
}
.sw-essence__icon svg{
  width:44px;
  height:44px;
}
.sw-essence__icon path{
  fill:none;
  stroke:var(--ink);
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.sw-essence__item strong{
  display:block;
  font-family:"Inter", "Noto Sans JP", sans-serif;
  color:var(--ink);
  font-size:30px;
  font-weight:600;
  line-height:1;
  letter-spacing:.02em;
}
.sw-essence__item span{
  display:block;
  color:var(--muted);
  font-size:13px;
  line-height:1.7;
}
@media(max-width:1100px){
  .sw-essence{
    grid-template-columns:repeat(2,1fr);
  }
  .sw-essence__item:nth-child(2){
    border-right:0;
  }
  .sw-essence__item:nth-child(-n+2){
    border-bottom:1px solid var(--line);
  }
}
@media(max-width:640px){
  .sw-essence{
    grid-template-columns:1fr;
  }
  .sw-essence__item{
    grid-template-columns:44px 1fr;
    padding:28px 24px;
    border-right:0;
    border-bottom:1px solid var(--line);
  }
  .sw-essence__item:nth-child(2){
    border-bottom:1px solid var(--line);
  }
  .sw-essence__item:last-child{
    border-bottom:0;
  }
  .sw-essence__icon,
  .sw-essence__icon svg{
    width:38px;
    height:38px;
  }
  .sw-essence__item strong{
    font-size:26px;
  }
}


/* v2.9 HERO VISIBILITY FIX */
.sw-header__logo{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto;
  padding:10px 16px;
  background:rgba(247,243,234,.88);
  border:1px solid rgba(255,255,255,.35);
  border-radius:999px;
  backdrop-filter:blur(10px);
  box-shadow:0 12px 36px rgba(0,0,0,.18);
}
.sw-header__logo img{
  width:178px;
}

.sw-hero__shade{
  background:
    linear-gradient(90deg,rgba(0,0,0,.82),rgba(0,0,0,.42) 48%,rgba(0,0,0,.16) 78%),
    linear-gradient(180deg,rgba(0,0,0,.20),rgba(0,0,0,.18) 40%,rgba(0,0,0,.56));
}

.sw-hero__content h1,
.sw-hero__content p{
  text-shadow:0 3px 24px rgba(0,0,0,.48);
}

.sw-hero__content h1{
  color:#fff;
}

.sw-hero__content p{
  color:rgba(255,255,255,.92);
}

.sw-scroll{
  display:flex;
  align-items:center;
  gap:16px;
  writing-mode:initial;
  left:32px;
  bottom:36px;
  color:rgba(255,255,255,.86);
}
.sw-scroll::after{
  content:"";
  display:block;
  width:1px;
  height:72px;
  background:rgba(255,255,255,.78);
  transform-origin:top;
  animation:swScrollLine 1.8s ease-in-out infinite;
}
@keyframes swScrollLine{
  0%{
    transform:scaleY(0);
    opacity:0;
  }
  35%{
    transform:scaleY(1);
    opacity:1;
  }
  100%{
    transform:scaleY(0);
    transform-origin:bottom;
    opacity:0;
  }
}

@media(max-width:900px){
  .sw-header__logo{
    padding:8px 12px;
  }
  .sw-header__logo img{
    width:138px;
  }
  .sw-hero__shade{
    background:
      linear-gradient(180deg,rgba(0,0,0,.78),rgba(0,0,0,.54) 45%,rgba(0,0,0,.72)),
      linear-gradient(90deg,rgba(0,0,0,.58),rgba(0,0,0,.18));
  }
}


/* v2.10 FOOTER LOGO VISIBILITY FIX */
.sw-footer img{
  width:260px;
}

.sw-footer > div:first-child img{
  display:block;
  width:260px;
  max-width:100%;
  background:rgba(247,243,234,.92);
  padding:14px 18px;
  border-radius:999px;
  box-shadow:0 14px 38px rgba(0,0,0,.22);
}

.sw-footer nav a{
  color:rgba(255,255,255,.78);
  transition:color .25s ease;
}

.sw-footer nav a:hover{
  color:var(--wood);
}

.sw-footer p{
  color:rgba(255,255,255,.72);
}

.sw-footer small{
  color:rgba(255,255,255,.50);
}

@media(max-width:900px){
  .sw-footer > div:first-child img{
    width:220px;
    padding:12px 16px;
  }
}


/* v3.0 AIR & EXPERIENCE */
.sw-hero-v3 .sw-hero__bg{
  animation:swHeroZoom 18s ease-out forwards;
}
@keyframes swHeroZoom{
  from{transform:scale(1.04);}
  to{transform:scale(1);}
}
.sw-hero__eyebrow{
  margin:0 0 22px;
  color:rgba(255,255,255,.72);
  font-family:var(--en);
  letter-spacing:.22em;
  font-size:18px;
}
.sw-sound{
  position:absolute;
  right:34px;
  bottom:34px;
  z-index:5;
  display:grid;
  place-items:center;
  width:82px;
  height:82px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.35);
  background:rgba(0,0,0,.22);
  color:#fff;
  backdrop-filter:blur(10px);
  cursor:pointer;
}
.sw-sound span{
  font-family:var(--en);
  font-size:15px;
}
.sw-sound strong{
  font-size:12px;
  letter-spacing:.14em;
}
.sw-sound.is-on{
  background:rgba(185,155,103,.42);
}

/* Rooms v3 */
.sw-rooms-v3{
  padding:130px min(6vw,90px);
  background:var(--black);
  color:#fff;
}
.sw-rooms-v3__head{
  max-width:860px;
  margin:0 auto 96px;
  text-align:center;
}
.sw-rooms-v3__head h2,
.sw-nearby__head h2,
.sw-gallery__head h2,
.sw-final-cta h2{
  margin:0;
  font-family:var(--serif);
  font-size:clamp(36px,5vw,72px);
  font-weight:500;
  line-height:1.45;
  letter-spacing:.07em;
}
.sw-rooms-v3__head p:not(.sw-label),
.sw-nearby__head p{
  margin:28px auto 0;
  max-width:680px;
  color:rgba(255,255,255,.70);
  line-height:2.2;
}
.sw-room-v3{
  display:grid;
  grid-template-columns:1.25fr .75fr;
  gap:70px;
  align-items:center;
  max-width:1320px;
  margin:0 auto 120px;
}
.sw-room-v3:last-child{
  margin-bottom:0;
}
.sw-room-v3--reverse{
  grid-template-columns:.75fr 1.25fr;
}
.sw-room-v3--reverse img{
  order:2;
}
.sw-room-v3 img{
  width:100%;
  aspect-ratio:16/10;
  object-fit:cover;
}
.sw-room-v3 div span{
  color:var(--wood);
  font-family:var(--en);
  letter-spacing:.2em;
}
.sw-room-v3 h3{
  margin:22px 0 0;
  font-family:var(--serif);
  font-size:clamp(32px,4vw,58px);
  font-weight:500;
  line-height:1.45;
}
.sw-room-v3 p{
  margin:28px 0 0;
  color:rgba(255,255,255,.75);
  line-height:2.2;
}
.sw-room-v3 ul{
  margin:28px 0 0;
  padding:0;
  list-style:none;
  border-top:1px solid rgba(255,255,255,.16);
}
.sw-room-v3 li{
  padding:14px 0;
  border-bottom:1px solid rgba(255,255,255,.16);
  color:rgba(255,255,255,.82);
}

/* Nearby */
.sw-nearby{
  padding:130px min(6vw,90px);
  background:var(--cream);
}
.sw-nearby__head{
  max-width:860px;
  margin:0 auto 76px;
  text-align:center;
}
.sw-nearby__head p:not(.sw-label){
  color:var(--muted);
}
.sw-nearby__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
}
.sw-nearby article{
  background:#fff;
}
.sw-nearby img{
  aspect-ratio:4/3;
  object-fit:cover;
}
.sw-nearby article span{
  display:block;
  margin:30px 30px 0;
  color:var(--wood);
  font-family:var(--en);
  font-size:24px;
}
.sw-nearby h3{
  margin:16px 30px 12px;
  font-family:var(--serif);
  font-size:28px;
  font-weight:500;
}
.sw-nearby article p{
  margin:0 30px 36px;
  color:var(--muted);
  line-height:2;
}

/* Gallery */
.sw-gallery{
  padding:130px min(6vw,90px);
  background:#fff;
}
.sw-gallery__head{
  max-width:860px;
  margin:0 auto 70px;
  text-align:center;
}
.sw-gallery__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
}
.sw-gallery figure{
  margin:0;
  overflow:hidden;
  background:#ddd;
}
.sw-gallery figure:nth-child(2),
.sw-gallery figure:nth-child(6){
  transform:translateY(42px);
}
.sw-gallery img{
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  transition:transform .7s ease;
}
.sw-gallery figure:hover img{
  transform:scale(1.045);
}

/* Final CTA */
.sw-final-cta{
  min-height:70vh;
  display:grid;
  place-items:center;
  text-align:center;
  color:#fff;
  background:
    linear-gradient(rgba(0,0,0,.55),rgba(0,0,0,.66)),
    url("../img/hero.jpg") center/cover no-repeat;
  padding:120px 24px;
}
.sw-final-cta p{
  margin:0 0 30px;
  color:var(--wood);
  font-family:var(--en);
  letter-spacing:.24em;
  font-size:22px;
}
.sw-final-cta a{
  display:inline-flex;
  margin-top:46px;
  padding:18px 42px;
  border:1px solid rgba(255,255,255,.65);
  background:rgba(255,255,255,.08);
  color:#fff;
}

@media(max-width:900px){
  .sw-sound{
    width:70px;
    height:70px;
    right:18px;
    bottom:18px;
  }
  .sw-rooms-v3,
  .sw-nearby,
  .sw-gallery{
    padding:86px 24px;
  }
  .sw-rooms-v3__head,
  .sw-nearby__head,
  .sw-gallery__head{
    text-align:left;
    margin-bottom:54px;
  }
  .sw-room-v3,
  .sw-room-v3--reverse{
    grid-template-columns:1fr;
    gap:28px;
    margin-bottom:76px;
  }
  .sw-room-v3--reverse img{
    order:0;
  }
  .sw-nearby__grid,
  .sw-gallery__grid{
    grid-template-columns:1fr;
  }
  .sw-gallery figure:nth-child(2),
  .sw-gallery figure:nth-child(6){
    transform:none;
  }
  .sw-final-cta{
    min-height:56vh;
  }
}


/* v3.1 LOGO WITHOUT CAPSULE */
.sw-header__logo{
  background:none !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  padding:0 !important;
  backdrop-filter:none !important;
}
.sw-header__logo img{
  width:210px;
  filter:none;
}
.sw-footer > div:first-child img{
  background:none !important;
  border-radius:0 !important;
  box-shadow:none !important;
  padding:0 !important;
  width:260px;
}

/* v3.1 ADDRESS */
.sw-footer address{
  margin-top:24px;
  color:rgba(255,255,255,.62);
  font-style:normal;
  line-height:2;
  font-size:14px;
}
.sw-access__address{
  align-self:center;
  padding:40px;
  background:var(--cream);
  border:1px solid var(--line);
}
.sw-access__address h3{
  margin:0 0 18px;
  font-family:var(--serif);
  font-size:30px;
  font-weight:500;
}
.sw-access__address p:not(.sw-label){
  color:var(--muted);
  line-height:2.1;
}
.sw-access__address small{
  color:var(--muted);
}

/* v3.1 TERMS PAGE */
.sw-terms-page{
  background:var(--cream);
  color:var(--ink);
}
.sw-terms-header{
  padding:30px min(6vw,80px);
}
.sw-terms-header img{
  width:220px;
}
.sw-terms-hero{
  padding:90px min(6vw,90px) 80px;
  background:var(--black);
  color:#fff;
}
.sw-terms-hero p{
  margin:0 0 24px;
  color:var(--wood);
  font-family:var(--en);
  letter-spacing:.28em;
}
.sw-terms-hero h1{
  margin:0;
  font-family:var(--serif);
  font-size:clamp(42px,6vw,84px);
  font-weight:500;
  letter-spacing:.08em;
}
.sw-terms-hero span{
  display:block;
  margin-top:20px;
  color:rgba(255,255,255,.64);
  font-family:var(--en);
  letter-spacing:.16em;
}
.sw-terms-content{
  max-width:980px;
  margin:0 auto;
  padding:90px 24px 120px;
}
.sw-terms-note{
  padding:22px 24px;
  background:#fff;
  border-left:4px solid var(--wood);
  color:var(--muted);
}
.sw-terms-content h2{
  margin:54px 0 16px;
  font-family:var(--serif);
  font-size:28px;
  font-weight:500;
}
.sw-terms-content p{
  color:var(--muted);
  line-height:2.2;
}
.sw-terms-back{
  margin-top:70px;
}
.sw-terms-back a{
  display:inline-flex;
  padding:16px 34px;
  background:var(--black);
  color:#fff;
}
@media(max-width:900px){
  .sw-header__logo img{
    width:158px;
  }
  .sw-access__address{
    padding:28px 24px;
  }
}


/* v3.2 AMENITIES */
.sw-amenities{
  padding:130px min(6vw,90px);
  background:#fff;
}
.sw-amenities__head{
  max-width:900px;
  margin:0 auto 76px;
  text-align:center;
}
.sw-amenities__head h2{
  margin:0;
  font-family:var(--serif);
  font-size:clamp(34px,5vw,70px);
  font-weight:500;
  line-height:1.45;
  letter-spacing:.07em;
}
.sw-amenities__head p:not(.sw-label){
  margin:28px auto 0;
  max-width:720px;
  color:var(--muted);
  line-height:2.2;
}
.sw-amenities__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  max-width:1220px;
  margin:0 auto;
  background:var(--line);
  border:1px solid var(--line);
}
.sw-amenities__grid article{
  background:var(--cream);
  padding:38px 34px;
}
.sw-amenities__grid span{
  display:block;
  color:var(--wood);
  font-family:var(--en);
  font-size:24px;
  margin-bottom:22px;
}
.sw-amenities__grid h3{
  margin:0 0 16px;
  font-family:var(--serif);
  font-size:28px;
  font-weight:500;
  letter-spacing:.05em;
}
.sw-amenities__grid p{
  margin:0;
  color:var(--muted);
  line-height:2;
}
.sw-amenities__note{
  max-width:1220px;
  margin:28px auto 0;
  color:var(--muted);
  font-size:13px;
  line-height:1.9;
}
.sw-header__nav{
  gap:26px;
}
.sw-header__nav a{
  white-space:nowrap;
}
@media(max-width:1100px){
  .sw-amenities__grid{
    grid-template-columns:repeat(2,1fr);
  }
}
@media(max-width:900px){
  .sw-amenities{
    padding:86px 24px;
  }
  .sw-amenities__head{
    text-align:left;
    margin-bottom:54px;
  }
  .sw-amenities__grid{
    grid-template-columns:1fr;
  }
  .sw-amenities__grid article{
    padding:32px 26px;
  }
}


/* =========================================================
   SO・WA・RI v3.3 RC1 - Quiet Luxury Polish
========================================================= */
:root{ --sw-ease:cubic-bezier(.22,.8,.24,1); }

.sw-header{ padding:34px min(5vw,72px); }
.sw-header__logo{
  display:block !important;
  width:auto !important;
  padding:0 !important;
  background:none !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  opacity:0;
  transform:translateY(-8px);
  animation:swLogoIn 1.1s var(--sw-ease) forwards .35s;
}
.sw-header__logo img{ width:178px !important; filter:none !important; }
@keyframes swLogoIn{ to{opacity:1;transform:translateY(0);} }

.sw-header__nav{ gap:30px; font-family:var(--en); font-size:16px; letter-spacing:.08em; }
.sw-header__nav a{ position:relative; color:rgba(255,255,255,.86); white-space:nowrap; }
.sw-header__nav a::after{
  content:""; position:absolute; left:0; right:0; bottom:-7px; height:1px;
  background:var(--wood); transform:scaleX(0); transform-origin:left;
  transition:transform .45s var(--sw-ease);
}
.sw-header__nav a:hover::after{ transform:scaleX(1); }
.sw-header__reserve{ transition:background .45s var(--sw-ease),color .45s var(--sw-ease),transform .45s var(--sw-ease); }
.sw-header__reserve:hover{ background:rgba(255,255,255,.92); color:var(--black); transform:translateY(-2px); }

.sw-hero-v33 .sw-hero__bg{ animation:swHeroSlowZoom 22s var(--sw-ease) forwards; background:url("../img/hero.jpg") center/cover no-repeat; }
@keyframes swHeroSlowZoom{ from{transform:scale(1.055);} to{transform:scale(1);} }
.sw-hero-v33 .sw-hero__shade{
  background:
    linear-gradient(90deg,rgba(0,0,0,.82),rgba(0,0,0,.44) 48%,rgba(0,0,0,.15) 78%),
    linear-gradient(180deg,rgba(0,0,0,.18),rgba(0,0,0,.22) 52%,rgba(0,0,0,.62));
}
.sw-hero__content{
  opacity:0; transform:translateY(18px);
  animation:swHeroTextIn 1.3s var(--sw-ease) forwards .55s;
}
@keyframes swHeroTextIn{ to{opacity:1;transform:translateY(0);} }
.sw-hero__eyebrow{
  margin:0 0 26px; color:rgba(255,255,255,.70);
  font-family:var(--en); letter-spacing:.24em; font-size:18px;
}
.sw-hero__content h1{ text-shadow:0 8px 38px rgba(0,0,0,.48); }
.sw-hero__content p{ color:rgba(255,255,255,.92); text-shadow:0 4px 28px rgba(0,0,0,.42); }

.sw-hero__cta a,.sw-final-cta a,.sw-footer__reserve a,.sw-terms-back a{
  position:relative; overflow:hidden;
  transition:transform .45s var(--sw-ease),background .45s var(--sw-ease),color .45s var(--sw-ease),border-color .45s var(--sw-ease);
}
.sw-hero__cta a::after,.sw-final-cta a::after,.sw-footer__reserve a::after,.sw-terms-back a::after{
  content:"→"; display:inline-block; margin-left:14px; transform:translateX(0);
  transition:transform .45s var(--sw-ease);
}
.sw-hero__cta a:hover,.sw-final-cta a:hover,.sw-footer__reserve a:hover,.sw-terms-back a:hover{ transform:translateY(-3px); }
.sw-hero__cta a:hover::after,.sw-final-cta a:hover::after,.sw-footer__reserve a:hover::after,.sw-terms-back a:hover::after{ transform:translateX(6px); }

.sw-sound{
  right:34px; bottom:34px; width:104px; height:104px; border-radius:50%;
  border:1px solid rgba(255,255,255,.36); background:rgba(0,0,0,.24);
  backdrop-filter:blur(12px); transition:background .45s var(--sw-ease),transform .45s var(--sw-ease),border-color .45s var(--sw-ease);
}
.sw-sound span{ font-family:var(--en); font-size:15px; letter-spacing:.05em; }
.sw-sound strong{ font-size:12px; letter-spacing:.18em; }
.sw-sound:hover{ transform:translateY(-3px); border-color:rgba(255,255,255,.68); }
.sw-sound.is-on{ background:rgba(185,155,103,.45); border-color:rgba(185,155,103,.88); }

.sw-amenities{ background:#fff; }
.sw-amenities__grid article{ transition:transform .45s var(--sw-ease),background .45s var(--sw-ease); }
.sw-amenities__grid article:hover{ transform:translateY(-4px); background:#fbf7ef; }
.sw-amenities__grid span{ font-family:var(--en); letter-spacing:.08em; }

.sw-gallery figure{ position:relative; }
.sw-gallery figure::after{
  content:"SO・WA・RI"; position:absolute; left:22px; bottom:20px; z-index:2;
  color:#fff; font-family:var(--en); letter-spacing:.12em; opacity:0; transform:translateY(8px);
  transition:.45s var(--sw-ease); text-shadow:0 4px 18px rgba(0,0,0,.45);
}
.sw-gallery figure::before{
  content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.45)); opacity:0; transition:.45s var(--sw-ease);
}
.sw-gallery figure:hover::before,.sw-gallery figure:hover::after{ opacity:1; }

.sw-footer{ padding:96px min(6vw,90px) 36px; }
.sw-footer__inner{
  display:grid; grid-template-columns:1fr 1.1fr .7fr; gap:70px; align-items:start;
}
.sw-footer__brand img{
  width:230px !important; background:none !important; padding:0 !important;
  box-shadow:none !important; border-radius:0 !important;
}
.sw-footer__reserve p{
  margin:0 0 22px; color:var(--wood); font-family:var(--en); letter-spacing:.22em; font-size:18px;
}
.sw-footer__reserve h2{
  margin:0; font-family:var(--serif); font-size:clamp(30px,4vw,54px);
  font-weight:500; line-height:1.5;
}
.sw-footer__reserve a{
  display:inline-flex; margin-top:34px; padding:16px 34px; border:1px solid rgba(255,255,255,.58); color:#fff;
}
.sw-footer__nav{
  display:grid !important; gap:16px !important; margin-top:0 !important; font-family:var(--en) !important;
}
.sw-footer__nav a{ color:rgba(255,255,255,.72); }
.sw-footer__nav a:hover{ color:var(--wood); }

.sw-terms-header img{ width:210px; }
.sw-terms-hero{
  background:linear-gradient(rgba(0,0,0,.68),rgba(0,0,0,.72)),url("../img/hero.jpg") center/cover no-repeat;
}

.sw-reveal{ opacity:0; transform:translateY(26px); transition:opacity .8s var(--sw-ease), transform .8s var(--sw-ease); }
.sw-reveal.is-visible{ opacity:1; transform:translateY(0); }

@media(max-width:1100px){ .sw-footer__inner{ grid-template-columns:1fr; gap:48px; } }
@media(max-width:900px){
  .sw-header{ padding:20px 18px; }
  .sw-header__logo img{ width:138px !important; }
  .sw-menu-button{ background:rgba(0,0,0,.32); backdrop-filter:blur(10px); }
  .sw-sound{ width:78px; height:78px; right:18px; bottom:18px; }
  .sw-sound span{ font-size:12px; }
  .sw-sound strong{ font-size:10px; }
  .sw-footer__brand img{ width:200px !important; }
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important; animation-iteration-count:1 !important;
    scroll-behavior:auto !important; transition-duration:.01ms !important;
  }
}


/* =========================================================
   SO・WA・RI v3.3 RC2 - readability and sound button fix
========================================================= */

/* Soundscape button: center text vertically and horizontally */
.sw-sound{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:14px !important;
  text-align:center !important;
  line-height:1 !important;
  padding:0 !important;
}
.sw-sound span,
.sw-sound strong{
  display:block !important;
  width:100% !important;
  text-align:center !important;
  margin:0 !important;
}
.sw-sound span{
  transform:translateY(2px);
}
.sw-sound strong{
  transform:translateY(0);
}

/* Dark section readability */
.sw-rooms-v3,
.sw-sauna,
.sw-final-cta,
.sw-footer{
  color:#fff;
}

.sw-rooms-v3 .sw-label,
.sw-sauna .sw-label,
.sw-gallery .sw-label{
  color:#d7bf90;
}

.sw-rooms-v3__head h2,
.sw-rooms-v3 h2,
.sw-room-v3 h3,
.sw-sauna h2,
.sw-final-cta h2,
.sw-footer__reserve h2{
  color:#fff !important;
  text-shadow:0 6px 28px rgba(0,0,0,.28);
}

.sw-rooms-v3__head p:not(.sw-label),
.sw-room-v3 p,
.sw-room-v3 li,
.sw-sauna p,
.sw-sauna small,
.sw-footer p,
.sw-footer address{
  color:rgba(255,255,255,.78) !important;
}

/* Prevent awkward heading breaks */
.sw-rooms-v3__head h2,
.sw-nearby__head h2,
.sw-gallery__head h2,
.sw-amenities__head h2,
.sw-final-cta h2{
  word-break:keep-all;
  overflow-wrap:normal;
  line-break:strict;
}

.sw-rooms-v3__head{
  max-width:980px;
}

.sw-rooms-v3__head h2{
  white-space:normal;
}

@media(min-width:901px){
  .sw-rooms-v3__head h2 br,
  .sw-amenities__head h2 br,
  .sw-nearby__head h2 br,
  .sw-gallery__head h2 br{
    display:none;
  }
}

/* Mobile: keep balance without forcing odd breaks */
@media(max-width:900px){
  .sw-rooms-v3__head h2,
  .sw-amenities__head h2,
  .sw-nearby__head h2,
  .sw-gallery__head h2{
    word-break:keep-all;
    overflow-wrap:break-word;
  }

  .sw-sound{
    gap:10px !important;
  }
}


/* =========================================================
   SO・WA・RI v3.3 RC3 - Typography / Rooms / Access Polish
========================================================= */

/* Japanese typography control */
.sw-balance,
.sw-hero__lead,
.sw-rooms-v3__head p,
.sw-amenities__head p,
.sw-nearby__head p,
.sw-access__intro p,
.sw-final-cta h2,
.sw-footer__reserve h2{
  word-break:keep-all;
  overflow-wrap:normal;
  line-break:strict;
}

.sw-balance span,
.sw-hero__lead span{
  display:block;
}

.sw-sp-only{
  display:none;
}

/* Hero image + typography */
.sw-hero-v33 .sw-hero__bg{
  background:url("../img/hero.jpg") center/cover no-repeat !important;
}

.sw-hero-title{
  max-width:980px;
}

.sw-hero-title span:nth-child(2){
  white-space:nowrap;
}

.sw-hero__lead{
  max-width:720px;
}

/* Dark section readability */
.sw-rooms-v3__head h2,
.sw-room-v3 h3,
.sw-sauna h2,
.sw-final-cta h2,
.sw-footer__reserve h2{
  color:#fff !important;
}

.sw-rooms-v3__head p:not(.sw-label),
.sw-room-v3 p,
.sw-room-v3 li,
.sw-sauna p,
.sw-sauna small{
  color:rgba(255,255,255,.80) !important;
}

/* Rooms heading */
.sw-rooms-v3__head{
  max-width:1040px;
}
.sw-rooms-v3__head h2{
  letter-spacing:.06em;
}
.sw-rooms-v3__head h2 span{
  display:inline;
}
.sw-rooms-v3__head h2 span + span::before{
  content:"";
}

/* Room spec blocks */
.sw-room-v3__body{
  min-width:0;
}
.sw-room-v3__number{
  display:block;
  color:var(--wood);
  font-family:var(--en);
  letter-spacing:.2em;
  margin-bottom:22px;
}
.sw-room-spec{
  margin:34px 0 0;
  padding:0;
  border-top:1px solid rgba(255,255,255,.16);
}
.sw-room-spec div{
  display:grid;
  grid-template-columns:120px 1fr;
  gap:20px;
  padding:20px 0;
  border-bottom:1px solid rgba(255,255,255,.16);
}
.sw-room-spec dt{
  color:var(--wood);
  font-family:var(--serif);
  font-size:15px;
  letter-spacing:.12em;
}
.sw-room-spec dd{
  margin:0;
  color:rgba(255,255,255,.86);
}
.sw-room-spec dd span{
  display:inline-flex;
  align-items:center;
  margin:0 8px 8px 0;
  padding:7px 13px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  color:rgba(255,255,255,.86);
  font-size:13px;
  line-height:1.4;
}

/* Access RC3 */
.sw-access{
  background:#fff;
}
.sw-access__intro h2{
  word-break:keep-all;
}
.sw-access__address{
  align-self:stretch;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:44px;
  background:var(--cream);
  border:1px solid var(--line);
}
.sw-access__address h3{
  margin:0 0 20px;
  font-family:var(--serif);
  font-size:34px;
  font-weight:500;
  letter-spacing:.06em;
}
.sw-access__address p:not(.sw-label){
  margin:0;
  color:var(--muted);
  line-height:2.1;
}
.sw-access__address a{
  display:inline-flex;
  width:max-content;
  margin-top:26px;
  padding:13px 24px;
  border:1px solid var(--line);
  color:var(--ink);
  transition:background .35s var(--sw-ease), color .35s var(--sw-ease), transform .35s var(--sw-ease);
}
.sw-access__address a:hover{
  background:var(--black);
  color:#fff;
  transform:translateY(-2px);
}
.sw-access__map{
  grid-column:1 / -1;
  overflow:hidden;
  border:1px solid var(--line);
}
.sw-access__map iframe{
  display:block;
  filter:saturate(.86) contrast(.96);
}

/* Sound OFF immediate UX: visual feedback */
.sw-sound:not(.is-on){
  opacity:.88;
}
.sw-sound.is-on strong{
  color:#fff;
}

/* Footer address */
.sw-footer address{
  color:rgba(255,255,255,.62);
}

/* Mobile typography */
@media(max-width:900px){
  .sw-sp-only{
    display:block;
  }

  .sw-hero-title{
    max-width:100%;
  }

  .sw-hero-title span:nth-child(2){
    white-space:normal;
  }

  .sw-hero-title span{
    display:block;
  }

  .sw-hero__lead span{
    display:inline;
  }

  .sw-hero__lead span:not(:last-child)::after{
    content:"";
  }

  .sw-rooms-v3__head h2 span{
    display:block;
  }

  .sw-room-spec div{
    grid-template-columns:1fr;
    gap:10px;
    padding:18px 0;
  }

  .sw-room-spec dd span{
    font-size:12px;
    padding:7px 11px;
  }

  .sw-access__address{
    padding:30px 24px;
  }

  .sw-access__address a{
    width:100%;
    justify-content:center;
  }
}

@media(max-width:480px){
  .sw-hero__content h1{
    font-size:30px;
    line-height:1.55;
  }

  .sw-hero__content p{
    font-size:15px;
  }

  .sw-final-cta h2 span,
  .sw-footer__reserve h2 span{
    display:block;
  }
}


/* =========================================================
   SO・WA・RI v3.3 RC4 - Mobile text clipping fix
========================================================= */

/* Prevent narrow-screen text clipping */
.sw-hero__content,
.sw-rooms-v3__head,
.sw-amenities__head,
.sw-nearby__head,
.sw-gallery__head,
.sw-access__intro,
.sw-footer__reserve,
.sw-room-v3__body{
  min-width:0;
  max-width:100%;
}

.sw-cta-title span{
  display:inline;
}

@media(max-width:900px){
  html,
  body{
    overflow-x:hidden;
  }

  .sowari-site{
    width:100%;
    overflow:hidden;
  }

  /* Mobile should prioritize readable wrapping over strict Japanese no-break rules */
  .sw-balance,
  .sw-balance span,
  .sw-hero__lead,
  .sw-hero__lead span,
  .sw-rooms-v3__head p,
  .sw-amenities__head p,
  .sw-nearby__head p,
  .sw-access__intro p,
  .sw-final-cta h2,
  .sw-footer__reserve h2{
    word-break:normal !important;
    overflow-wrap:anywhere !important;
    line-break:auto !important;
    white-space:normal !important;
    max-width:100% !important;
  }

  .sw-hero-title span:nth-child(2){
    white-space:normal !important;
  }

  .sw-hero__content{
    width:calc(100% - 40px) !important;
    max-width:100% !important;
  }

  .sw-hero__eyebrow{
    font-size:13px !important;
    letter-spacing:.14em !important;
    line-height:1.7 !important;
  }

  .sw-hero__content h1{
    font-size:clamp(28px, 8vw, 34px) !important;
    line-height:1.55 !important;
    letter-spacing:.04em !important;
  }

  .sw-hero__lead{
    font-size:15px !important;
    line-height:2 !important;
  }

  .sw-hero__lead span{
    display:block !important;
  }

  .sw-concept h2,
  .sw-rooms-v3__head h2,
  .sw-sauna h2,
  .sw-amenities__head h2,
  .sw-nearby__head h2,
  .sw-gallery__head h2,
  .sw-access__intro h2,
  .sw-final-cta h2,
  .sw-footer__reserve h2{
    font-size:clamp(30px, 8vw, 40px) !important;
    line-height:1.55 !important;
    letter-spacing:.04em !important;
    word-break:normal !important;
    overflow-wrap:anywhere !important;
    line-break:auto !important;
    max-width:100% !important;
  }

  .sw-sauna h2 br{
    display:none !important;
  }

  .sw-room-v3 h3{
    font-size:clamp(28px, 7.6vw, 38px) !important;
    line-height:1.5 !important;
    word-break:normal !important;
    overflow-wrap:anywhere !important;
  }

  .sw-room-v3 p,
  .sw-amenities__grid p,
  .sw-nearby article p,
  .sw-access__cards p,
  .sw-access__intro p,
  .sw-concept p,
  .sw-sauna p{
    font-size:15px !important;
    line-height:2 !important;
    word-break:normal !important;
    overflow-wrap:anywhere !important;
  }

  .sw-cta-title span{
    display:block !important;
  }

  .sw-room-spec dd{
    display:flex !important;
    flex-wrap:wrap !important;
    gap:8px !important;
  }

  .sw-room-spec dd span{
    margin:0 !important;
    max-width:100% !important;
    white-space:normal !important;
  }

  .sw-access__cards h3,
  .sw-access__address h3,
  .sw-access__address p:not(.sw-label){
    word-break:normal !important;
    overflow-wrap:anywhere !important;
    line-height:1.6 !important;
  }

  .sw-sound{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    flex-direction:column !important;
    gap:9px !important;
    text-align:center !important;
    padding:0 !important;
  }

  .sw-sound span,
  .sw-sound strong{
    display:block !important;
    width:100% !important;
    text-align:center !important;
    margin:0 !important;
  }
}

@media(max-width:390px){
  .sw-hero__content{
    width:calc(100% - 30px) !important;
  }

  .sw-header__logo img{
    width:126px !important;
  }

  .sw-hero__content h1{
    font-size:27px !important;
  }

  .sw-concept h2,
  .sw-rooms-v3__head h2,
  .sw-sauna h2,
  .sw-amenities__head h2,
  .sw-nearby__head h2,
  .sw-gallery__head h2,
  .sw-access__intro h2,
  .sw-final-cta h2,
  .sw-footer__reserve h2{
    font-size:28px !important;
  }
}


/* =========================================================
   SO・WA・RI v3.3 Deploy Polish
========================================================= */

.sw-concept__body{
  padding-top:28px;
}

.sw-concept__body p{
  word-break:normal;
  overflow-wrap:anywhere;
}

.sw-footer__reserve{
  max-width:720px;
  min-width:0;
}

.sw-footer-title{
  margin:0;
  font-family:var(--serif);
  font-size:clamp(34px, 3.8vw, 62px) !important;
  font-weight:500;
  line-height:1.45 !important;
  letter-spacing:.05em;
  color:#fff;
  word-break:normal;
  overflow-wrap:normal;
}

.sw-footer-title span{
  display:inline;
}

.sw-footer__inner{
  grid-template-columns:minmax(260px, .9fr) minmax(420px, 1fr) minmax(150px, .45fr) !important;
  column-gap:72px !important;
}

.sw-footer__nav{
  min-width:140px;
}

.sw-gallery figure:nth-child(2),
.sw-gallery figure:nth-child(6){
  transform:none !important;
}

.sw-gallery__grid{
  align-items:stretch;
}

.sw-gallery figure{
  height:100%;
}

@media(max-width:1100px){
  .sw-footer__inner{
    grid-template-columns:1fr !important;
    gap:48px !important;
  }

  .sw-footer__reserve{
    max-width:100%;
  }
}

@media(max-width:900px){
  .sw-concept__body{
    padding-top:0;
  }

  .sw-footer-title{
    font-size:clamp(30px, 8vw, 40px) !important;
    line-height:1.55 !important;
  }

  .sw-footer-title span{
    display:block;
  }
}


/* =========================================================
   SO・WA・RI Deploy Final - Menu Hover Gold
========================================================= */

/* Header / overlay / mobile menu: normal white, hover gold */
.sw-header__nav a,
.sw-mobile-nav a,
.sw-footer__nav a{
  color:rgba(255,255,255,.86) !important;
  transition:color .28s ease, letter-spacing .28s ease, border-color .28s ease;
}

.sw-header__nav a:hover,
.sw-mobile-nav a:hover,
.sw-footer__nav a:hover{
  color:#C6A86A !important;
}

/* Underlines and decorative lines should also use gold */
.sw-header__nav a::after,
.sw-mobile-nav a::after,
.sw-footer__nav a::after{
  background:#C6A86A !important;
}

/* Reserve button hover: gold accent, not blue */
.sw-header__reserve,
.sw-hero__cta a,
.sw-footer__reserve a,
.sw-final-cta a{
  border-color:rgba(198,168,106,.58) !important;
}

.sw-header__reserve:hover,
.sw-hero__cta a:hover,
.sw-footer__reserve a:hover,
.sw-final-cta a:hover{
  color:#C6A86A !important;
  border-color:#C6A86A !important;
}

/* WordPress/theme default blue link override inside SO・WA・RI area */
.sowari-site a:hover{
  color:#C6A86A;
}


/* =========================================================
   SO・WA・RI Deploy Footer Fix
   - Footer CTA overlap fix
   - Copyright center
========================================================= */

/* Footer layout: prevent CTA headline from colliding with menu */
.sw-footer__inner{
  grid-template-columns: minmax(260px, .95fr) minmax(360px, .95fr) minmax(180px, .45fr) !important;
  column-gap: 96px !important;
  align-items: center !important;
}

.sw-footer__reserve{
  max-width: 620px !important;
  min-width: 0 !important;
  text-align: center !important;
  justify-self: center !important;
}

.sw-footer__reserve h2,
.sw-footer-title{
  font-size: clamp(30px, 3.05vw, 48px) !important;
  line-height: 1.45 !important;
  letter-spacing: .045em !important;
  max-width: 620px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  white-space: normal !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
}

.sw-footer__reserve h2 span,
.sw-footer-title span{
  display: inline !important;
}

/* Keep nav safely separated */
.sw-footer__nav{
  justify-self: end !important;
  min-width: 170px !important;
}

/* Copyright centered */
.sw-footer > small{
  display: block !important;
  width: 100% !important;
  text-align: center !important;
  margin: 70px auto 0 !important;
}

/* Tablet / mobile */
@media(max-width:1100px){
  .sw-footer__inner{
    grid-template-columns: 1fr !important;
    row-gap: 54px !important;
    column-gap: 0 !important;
    align-items: start !important;
  }

  .sw-footer__reserve{
    justify-self: start !important;
    text-align: left !important;
    max-width: 100% !important;
  }

  .sw-footer__reserve h2,
  .sw-footer-title{
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    font-size: clamp(30px, 7vw, 42px) !important;
  }

  .sw-footer__reserve h2 span,
  .sw-footer-title span{
    display: block !important;
  }

  .sw-footer__nav{
    justify-self: start !important;
  }

  .sw-footer > small{
    margin-top: 52px !important;
  }
}


/* =========================================================
   SO・WA・RI Deploy Mobile Fix 2
   1. Mobile MENU icon polish
   2. Scroll / Soundscape overlap fix
   3. Mobile menu close fix
   4. Sticky mobile header
========================================================= */

@media(max-width:900px){

  /* Sticky mobile header */
  .sw-header{
    position:fixed !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    z-index:10020 !important;
    width:100% !important;
    padding:18px 20px !important;
    background:rgba(11,11,8,.66) !important;
    backdrop-filter:blur(14px) !important;
    -webkit-backdrop-filter:blur(14px) !important;
    border-bottom:1px solid rgba(255,255,255,.08) !important;
  }

  .admin-bar .sw-header{
    top:46px !important;
  }

  .sw-header__logo{
    position:relative !important;
    z-index:10022 !important;
  }

  .sw-header__logo img{
    width:148px !important;
  }

  /* Replace "- - - MENU" with clean hamburger / close icon */
  .sw-menu-button{
    position:relative !important;
    z-index:10023 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:12px !important;
    min-width:132px !important;
    height:52px !important;
    padding:0 20px !important;
    border-radius:999px !important;
    border:1px solid rgba(255,255,255,.48) !important;
    background:rgba(0,0,0,.22) !important;
    color:#fff !important;
    letter-spacing:.22em !important;
  }

  .sw-menu-button span{
    display:none !important;
  }

  .sw-menu-button::before{
    content:"☰";
    display:inline-block;
    font-size:20px;
    line-height:1;
    letter-spacing:0;
    color:#fff;
    transform:translateY(-1px);
  }

  .sw-menu-button.is-open::before{
    content:"×";
    font-size:26px;
    transform:translateY(-2px);
  }

  .sw-menu-button em{
    display:inline-block !important;
    font-style:normal !important;
    font-size:14px !important;
    line-height:1 !important;
    color:#fff !important;
    letter-spacing:.20em !important;
  }

  .sw-menu-button.is-open em{
    letter-spacing:.16em !important;
  }

  /* Mobile menu overlay should be closeable */
  .sw-mobile-nav{
    position:fixed !important;
    inset:0 !important;
    z-index:10010 !important;
    padding:130px 42px 60px !important;
    background:rgba(8,8,6,.94) !important;
    backdrop-filter:blur(16px) !important;
    -webkit-backdrop-filter:blur(16px) !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    transform:none !important;
    transition:opacity .32s ease, visibility .32s ease !important;
  }

  .sw-mobile-nav.is-open{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }

  .sw-mobile-nav a{
    color:rgba(255,255,255,.9) !important;
    font-size:clamp(34px, 10vw, 56px) !important;
    line-height:1.35 !important;
    letter-spacing:.10em !important;
    display:block !important;
    margin:0 0 26px !important;
  }

  .sw-mobile-nav a:hover{
    color:#C6A86A !important;
  }

  /* Hero spacing for sticky header */
  .sw-hero{
    min-height:100svh !important;
    padding-top:96px !important;
    padding-bottom:150px !important;
  }

  .sw-hero__content{
    padding-top:70px !important;
  }

  .sw-hero__cta{
    margin-top:44px !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:18px !important;
  }

  .sw-hero__cta a{
    width:100% !important;
    min-height:68px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
  }

  /* Hide scroll on mobile to avoid collision and visual noise */
  .sw-scroll{
    display:none !important;
  }

  /* Soundscape: move below CTA area, no overlap with View Rooms */
  .sw-sound{
    position:absolute !important;
    right:22px !important;
    bottom:22px !important;
    width:74px !important;
    height:74px !important;
    z-index:6 !important;
    gap:7px !important;
    opacity:.92 !important;
  }

  .sw-sound span{
    font-size:10px !important;
    letter-spacing:.03em !important;
  }

  .sw-sound strong{
    font-size:10px !important;
    letter-spacing:.14em !important;
  }
}

@media(max-width:390px){
  .sw-header{
    padding:16px 16px !important;
  }

  .sw-header__logo img{
    width:132px !important;
  }

  .sw-menu-button{
    min-width:116px !important;
    height:48px !important;
    padding:0 16px !important;
  }

  .sw-menu-button em{
    font-size:12px !important;
  }

  .sw-hero{
    padding-bottom:142px !important;
  }
}


body.sw-menu-open{
  overflow:hidden !important;
}


/* =========================================================
   SO・WA・RI Deploy Mobile Menu Final
   - Smaller menu text
   - Centered menu links
   - Open state: X only
   - Refined fade
========================================================= */

@media(max-width:900px){

  /* Default closed button: hamburger + MENU */
  .sw-menu-button{
    min-width:124px !important;
    height:50px !important;
    padding:0 18px !important;
    gap:10px !important;
  }

  .sw-menu-button::before{
    content:"☰" !important;
    font-size:19px !important;
    line-height:1 !important;
    color:#fff !important;
    transform:translateY(-1px) !important;
  }

  .sw-menu-button em{
    display:inline-block !important;
    font-size:13px !important;
    letter-spacing:.18em !important;
  }

  /* Open state: X only */
  .sw-menu-button.is-open{
    min-width:54px !important;
    width:54px !important;
    height:54px !important;
    padding:0 !important;
    border-radius:50% !important;
    gap:0 !important;
    background:rgba(0,0,0,.22) !important;
  }

  .sw-menu-button.is-open::before{
    content:"×" !important;
    font-size:32px !important;
    font-weight:300 !important;
    line-height:1 !important;
    color:#fff !important;
    transform:translateY(-2px) !important;
  }

  .sw-menu-button.is-open em{
    display:none !important;
  }

  /* Full overlay refinement */
  .sw-mobile-nav{
    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    align-items:center !important;
    padding:112px 28px 64px !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    transition:opacity .42s ease, visibility .42s ease !important;
  }

  .sw-mobile-nav.is-open{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }

  .sw-mobile-nav a{
    display:block !important;
    width:auto !important;
    margin:0 0 20px !important;
    color:rgba(255,255,255,.92) !important;
    font-size:clamp(30px, 8.4vw, 38px) !important;
    line-height:1.32 !important;
    letter-spacing:.11em !important;
    text-align:center !important;
    transform:translateY(10px) !important;
    opacity:0 !important;
    transition:
      opacity .48s ease,
      transform .48s ease,
      color .28s ease,
      letter-spacing .28s ease !important;
  }

  .sw-mobile-nav.is-open a{
    opacity:1 !important;
    transform:translateY(0) !important;
  }

  .sw-mobile-nav.is-open a:nth-child(1){ transition-delay:.04s !important; }
  .sw-mobile-nav.is-open a:nth-child(2){ transition-delay:.08s !important; }
  .sw-mobile-nav.is-open a:nth-child(3){ transition-delay:.12s !important; }
  .sw-mobile-nav.is-open a:nth-child(4){ transition-delay:.16s !important; }
  .sw-mobile-nav.is-open a:nth-child(5){ transition-delay:.20s !important; }
  .sw-mobile-nav.is-open a:nth-child(6){ transition-delay:.24s !important; }
  .sw-mobile-nav.is-open a:nth-child(7){ transition-delay:.28s !important; }

  .sw-mobile-nav a:hover{
    color:#C6A86A !important;
    letter-spacing:.13em !important;
  }
}

@media(max-width:390px){
  .sw-menu-button{
    min-width:112px !important;
    height:46px !important;
    padding:0 15px !important;
  }

  .sw-menu-button em{
    font-size:12px !important;
  }

  .sw-menu-button.is-open{
    min-width:50px !important;
    width:50px !important;
    height:50px !important;
  }

  .sw-mobile-nav a{
    font-size:clamp(28px, 8vw, 34px) !important;
    margin-bottom:18px !important;
  }
}


/* =========================================================
   SO・WA・RI Deploy Mobile Menu Final 2
   - Fit all menu items
   - Tighter spacing
   - Add Top link support
========================================================= */

@media(max-width:900px){

  .sw-mobile-nav{
    justify-content:flex-start !important;
    align-items:center !important;
    padding:112px 28px 36px !important;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch !important;
  }

  .sw-mobile-nav a{
    font-size:clamp(24px, 6.6vw, 32px) !important;
    line-height:1.18 !important;
    letter-spacing:.10em !important;
    margin:0 0 17px !important;
  }

  .sw-mobile-nav a:last-child{
    margin-bottom:0 !important;
  }
}

@media(max-width:390px){
  .sw-mobile-nav{
    padding-top:104px !important;
    padding-bottom:28px !important;
  }

  .sw-mobile-nav a{
    font-size:clamp(23px, 6.2vw, 30px) !important;
    line-height:1.15 !important;
    margin-bottom:15px !important;
  }
}

@media(max-height:720px) and (max-width:900px){
  .sw-mobile-nav{
    padding-top:94px !important;
  }

  .sw-mobile-nav a{
    font-size:24px !important;
    line-height:1.12 !important;
    margin-bottom:12px !important;
  }
}


/* =========================================================
   SO・WA・RI v3.3 Final
   - View Rooms white / hover gold
   - Mobile Soundscape spacing polish
========================================================= */

/* View Rooms button/link: remove blue, keep brand palette */
.sw-hero__cta a,
.sw-hero__cta a:visited{
  color:#fff !important;
}

.sw-hero__cta a:hover,
.sw-hero__cta a:focus{
  color:#C6A86A !important;
  border-color:#C6A86A !important;
}

/* Specifically keep secondary View Rooms white */
.sw-hero__cta a:nth-child(2),
.sw-hero__cta a:nth-child(2):visited{
  color:#fff !important;
  border-color:rgba(198,168,106,.58) !important;
}

.sw-hero__cta a:nth-child(2):hover,
.sw-hero__cta a:nth-child(2):focus{
  color:#C6A86A !important;
  border-color:#C6A86A !important;
}

/* Override any theme default blue inside HERO CTA */
.sw-hero a,
.sw-hero a:visited{
  text-decoration:none !important;
}

@media(max-width:900px){
  /* Tighten spacing between View Rooms and Soundscape */
  .sw-hero{
    padding-bottom:118px !important;
  }

  .sw-hero__cta{
    margin-top:38px !important;
    gap:16px !important;
  }

  .sw-sound{
    right:18px !important;
    bottom:18px !important;
    width:72px !important;
    height:72px !important;
  }
}

@media(max-width:390px){
  .sw-hero{
    padding-bottom:112px !important;
  }

  .sw-sound{
    right:16px !important;
    bottom:16px !important;
    width:68px !important;
    height:68px !important;
  }
}


/* =========================================================
   SO・WA・RI v3.4 Terms / Reservation
========================================================= */
.sw-header__reserve,
.sw-hero__cta a:first-child,
.sw-footer__reserve a,
.sw-final-cta a{
  border-color:rgba(198,168,106,.68) !important;
}
.sw-terms-header{
  position:absolute;
  z-index:10;
  top:0; left:0; right:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:32px min(6vw,80px);
}
.sw-terms-header img{ width:190px; }
.sw-terms-header nav{ display:flex; gap:28px; font-family:var(--en); letter-spacing:.08em; }
.sw-terms-header nav a{ color:rgba(255,255,255,.84); }
.sw-terms-header nav a:hover{ color:#C6A86A; }
.sw-terms-hero{
  min-height:46vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:130px min(6vw,90px) 90px;
  background:linear-gradient(90deg,rgba(0,0,0,.82),rgba(0,0,0,.42)),url("../img/hero.jpg") center/cover no-repeat !important;
  color:#fff;
}
.sw-terms-hero p{
  margin:0 0 24px;
  color:#C6A86A;
  font-family:var(--en);
  letter-spacing:.26em;
  font-size:18px;
}
.sw-terms-hero h1{
  margin:0;
  font-family:var(--serif);
  font-size:clamp(46px,7vw,92px);
  font-weight:500;
  letter-spacing:.08em;
}
.sw-terms-hero span{
  display:block;
  margin-top:26px;
  color:rgba(255,255,255,.76);
  font-family:var(--serif);
  font-size:clamp(18px,2vw,26px);
  letter-spacing:.08em;
}
.sw-terms-intro{
  display:grid;
  grid-template-columns:1fr .9fr;
  gap:70px;
  padding:90px min(6vw,90px);
  background:var(--black);
  color:#fff;
}
.sw-terms-intro > p{
  margin:0;
  font-family:var(--serif);
  font-size:clamp(22px,3vw,34px);
  line-height:2;
  letter-spacing:.06em;
}
.sw-terms-intro dl{ margin:0; border-top:1px solid rgba(255,255,255,.16); }
.sw-terms-intro div{
  display:grid;
  grid-template-columns:120px 1fr;
  gap:24px;
  padding:18px 0;
  border-bottom:1px solid rgba(255,255,255,.16);
}
.sw-terms-intro dt{ color:#C6A86A; font-family:var(--serif); letter-spacing:.12em; }
.sw-terms-intro dd{ margin:0; color:rgba(255,255,255,.78); line-height:1.9; }
.sw-terms-content{
  max-width:1040px;
  margin:0 auto;
  padding:100px 24px 130px;
}
.sw-terms-content h2{
  margin:80px 0 34px;
  padding-bottom:18px;
  border-bottom:1px solid var(--line);
  font-family:var(--serif);
  font-size:clamp(32px,4vw,54px);
  font-weight:500;
  letter-spacing:.08em;
}
.sw-terms-content article{
  padding:34px 0;
  border-bottom:1px solid var(--line);
}
.sw-terms-content h3{
  margin:0 0 20px;
  font-family:var(--serif);
  font-size:24px;
  font-weight:500;
  letter-spacing:.05em;
}
.sw-terms-content p,
.sw-terms-content li{
  color:var(--muted);
  line-height:2.15;
}
.sw-terms-content ul{ margin:16px 0 0; padding-left:1.4em; }
.sw-terms-back{ margin-top:70px; }
.sw-terms-back a{
  display:inline-flex;
  padding:16px 34px;
  background:var(--black);
  color:#fff;
  border:1px solid var(--black);
}
.sw-terms-back a:hover{ color:#C6A86A; border-color:#C6A86A; }
.sw-contact-box{
  padding:42px;
  background:#fff;
  border:1px solid var(--line);
}
.sw-contact-box p{ margin:0 0 20px; }
.sw-contact-mail a{ color:var(--ink); border-bottom:1px solid #C6A86A; }
.sw-contact-mail a:hover{ color:#C6A86A; }

@media(max-width:900px){
  .sw-terms-header{ padding:22px 20px; }
  .sw-terms-header img{ width:140px; }
  .sw-terms-header nav{ gap:16px; font-size:14px; }
  .sw-terms-hero{ min-height:44vh; padding:120px 24px 70px; }
  .sw-terms-intro{ grid-template-columns:1fr; gap:40px; padding:70px 24px; }
  .sw-terms-intro div{ grid-template-columns:1fr; gap:8px; }
  .sw-terms-content{ padding:70px 24px 100px; }
  .sw-contact-box{ padding:30px 24px; }
}


/* =========================================================
   SO・WA・RI v3.4.1 Full Terms Page Fix
========================================================= */

.sw-header--sub{
  position:fixed !important;
  top:0;
  left:0;
  right:0;
  z-index:10020;
  background:rgba(11,11,8,.64);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(255,255,255,.08);
}

.sw-terms-page .sw-mobile-nav{
  z-index:10010;
}

.sw-terms-page .sw-terms-hero{
  min-height:52vh;
  padding-top:160px;
}

.sw-terms-page .sw-footer{
  margin-top:0;
}

.sw-terms-content article{
  scroll-margin-top:120px;
}

.sw-terms-content h3{
  color:var(--ink);
}

.sw-terms-content p,
.sw-terms-content li{
  font-size:15px;
}

.sw-terms-content ul li{
  margin-bottom:8px;
}

@media(max-width:900px){
  .sw-terms-page .sw-terms-hero{
    padding-top:138px;
    min-height:48vh;
  }

  .sw-terms-content article{
    padding:28px 0;
  }

  .sw-terms-content h3{
    font-size:21px;
    line-height:1.6;
  }

  .sw-terms-content p,
  .sw-terms-content li{
    font-size:14px;
    line-height:2.05;
  }
}


/* =========================================================
   SO・WA・RI Theme v3.5
   Common header / footer / sub pages
========================================================= */

:root{
  --sowari-gold:#C6A86A;
  --sowari-black:#0b0b08;
}

/* Global header */
.sw-header--global{
  position:fixed !important;
  top:0;
  left:0;
  right:0;
  z-index:10020;
  background:rgba(11,11,8,.58);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.admin-bar .sw-header--global{
  top:32px;
}
.sw-header__nav a,
.sw-mobile-nav a,
.sw-footer__nav a{
  color:rgba(255,255,255,.88) !important;
}
.sw-header__nav a:hover,
.sw-mobile-nav a:hover,
.sw-footer__nav a:hover{
  color:var(--sowari-gold) !important;
}

/* Mobile menu unified */
body.sw-menu-open{
  overflow:hidden !important;
}

@media(max-width:900px){
  .admin-bar .sw-header--global{
    top:46px;
  }

  .sw-header--global{
    padding:18px 20px !important;
  }

  .sw-header__logo img{
    width:148px !important;
  }

  .sw-menu-button{
    position:relative !important;
    z-index:10023 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-width:112px !important;
    height:46px !important;
    padding:0 15px !important;
    border-radius:999px !important;
    border:1px solid rgba(255,255,255,.48) !important;
    background:rgba(0,0,0,.22) !important;
    color:#fff !important;
    gap:10px !important;
  }

  .sw-menu-button span{
    display:none !important;
  }

  .sw-menu-button::before{
    content:"☰" !important;
    font-size:19px !important;
    line-height:1 !important;
    color:#fff !important;
    transform:translateY(-1px) !important;
  }

  .sw-menu-button em{
    display:inline-block !important;
    font-style:normal !important;
    font-size:12px !important;
    line-height:1 !important;
    color:#fff !important;
    letter-spacing:.18em !important;
  }

  .sw-menu-button.is-open{
    min-width:50px !important;
    width:50px !important;
    height:50px !important;
    padding:0 !important;
    border-radius:50% !important;
    gap:0 !important;
  }

  .sw-menu-button.is-open::before{
    content:"×" !important;
    font-size:32px !important;
    font-weight:300 !important;
    line-height:1 !important;
    transform:translateY(-2px) !important;
  }

  .sw-menu-button.is-open em{
    display:none !important;
  }

  .sw-mobile-nav{
    position:fixed !important;
    inset:0 !important;
    z-index:10010 !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:flex-start !important;
    align-items:center !important;
    padding:104px 28px 28px !important;
    background:rgba(8,8,6,.95) !important;
    backdrop-filter:blur(16px) !important;
    -webkit-backdrop-filter:blur(16px) !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    transition:opacity .42s ease, visibility .42s ease !important;
    overflow-y:auto !important;
  }

  .sw-mobile-nav.is-open{
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }

  .sw-mobile-nav a{
    display:block !important;
    width:auto !important;
    margin:0 0 15px !important;
    font-size:clamp(23px, 6.2vw, 30px) !important;
    line-height:1.15 !important;
    letter-spacing:.10em !important;
    text-align:center !important;
    opacity:0 !important;
    transform:translateY(10px) !important;
    transition:opacity .48s ease, transform .48s ease, color .28s ease, letter-spacing .28s ease !important;
  }

  .sw-mobile-nav.is-open a{
    opacity:1 !important;
    transform:translateY(0) !important;
  }

  .sw-mobile-nav.is-open a:nth-child(1){ transition-delay:.03s !important; }
  .sw-mobile-nav.is-open a:nth-child(2){ transition-delay:.06s !important; }
  .sw-mobile-nav.is-open a:nth-child(3){ transition-delay:.09s !important; }
  .sw-mobile-nav.is-open a:nth-child(4){ transition-delay:.12s !important; }
  .sw-mobile-nav.is-open a:nth-child(5){ transition-delay:.15s !important; }
  .sw-mobile-nav.is-open a:nth-child(6){ transition-delay:.18s !important; }
  .sw-mobile-nav.is-open a:nth-child(7){ transition-delay:.21s !important; }
  .sw-mobile-nav.is-open a:nth-child(8){ transition-delay:.24s !important; }
  .sw-mobile-nav.is-open a:nth-child(9){ transition-delay:.27s !important; }
}

/* Hero top with fixed header */
.sw-hero{
  padding-top:96px !important;
}
.sw-hero-v33 .sw-hero__bg{
  background:url("../img/hero.jpg") center/cover no-repeat !important;
}
.sw-hero__cta a,
.sw-hero__cta a:visited{
  color:#fff !important;
}
.sw-hero__cta a:hover,
.sw-hero__cta a:focus{
  color:var(--sowari-gold) !important;
  border-color:var(--sowari-gold) !important;
}

/* Footer stable layout */
.sw-footer__inner{
  grid-template-columns:minmax(260px,.95fr) minmax(360px,.95fr) minmax(180px,.45fr) !important;
  column-gap:96px !important;
  align-items:center !important;
}
.sw-footer__reserve{
  max-width:620px !important;
  min-width:0 !important;
  text-align:center !important;
  justify-self:center !important;
}
.sw-footer-title{
  margin:0;
  font-family:var(--serif);
  font-size:clamp(30px,3.05vw,48px) !important;
  font-weight:500;
  line-height:1.45 !important;
  letter-spacing:.045em !important;
  color:#fff;
}
.sw-footer-title span{
  display:inline;
}
.sw-footer__nav{
  justify-self:end !important;
  min-width:170px !important;
}
.sw-footer > small{
  display:block !important;
  width:100% !important;
  text-align:center !important;
  margin:70px auto 0 !important;
}

@media(max-width:1100px){
  .sw-footer__inner{
    grid-template-columns:1fr !important;
    gap:48px !important;
    align-items:start !important;
  }
  .sw-footer__reserve{
    justify-self:start !important;
    text-align:left !important;
    max-width:100% !important;
  }
  .sw-footer-title span{
    display:block;
  }
  .sw-footer__nav{
    justify-self:start !important;
  }
}

/* Sub pages */
.sw-sub-page,
.sw-terms-page,
.sw-contact-page,
.sw-privacy-page{
  background:var(--cream);
  color:var(--ink);
}

.sw-sub-hero{
  min-height:52vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:160px min(6vw,90px) 90px;
  background:linear-gradient(90deg,rgba(0,0,0,.82),rgba(0,0,0,.42)),url("../img/hero.jpg") center/cover no-repeat !important;
  color:#fff;
}
.sw-sub-hero p{
  margin:0 0 24px;
  color:var(--sowari-gold);
  font-family:var(--en);
  letter-spacing:.26em;
  font-size:18px;
}
.sw-sub-hero h1{
  margin:0;
  font-family:var(--serif);
  font-size:clamp(46px,7vw,92px);
  font-weight:500;
  letter-spacing:.08em;
}
.sw-sub-hero span{
  display:block;
  margin-top:26px;
  color:rgba(255,255,255,.76);
  font-family:var(--serif);
  font-size:clamp(18px,2vw,26px);
  letter-spacing:.08em;
}

/* Terms */
.sw-terms-intro{
  display:grid;
  grid-template-columns:1fr .9fr;
  gap:70px;
  padding:90px min(6vw,90px);
  background:var(--sowari-black);
  color:#fff;
}
.sw-terms-intro > p{
  margin:0;
  font-family:var(--serif);
  font-size:clamp(22px,3vw,34px);
  line-height:2;
  letter-spacing:.06em;
}
.sw-terms-intro dl{
  margin:0;
  border-top:1px solid rgba(255,255,255,.16);
}
.sw-terms-intro div{
  display:grid;
  grid-template-columns:120px 1fr;
  gap:24px;
  padding:18px 0;
  border-bottom:1px solid rgba(255,255,255,.16);
}
.sw-terms-intro dt{
  color:var(--sowari-gold);
  font-family:var(--serif);
  letter-spacing:.12em;
}
.sw-terms-intro dd{
  margin:0;
  color:rgba(255,255,255,.78);
  line-height:1.9;
}
.sw-terms-content{
  max-width:1040px;
  margin:0 auto;
  padding:100px 24px 130px;
}
.sw-terms-toc{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
  margin-bottom:70px;
  padding:24px;
  background:#fff;
  border:1px solid var(--line);
}
.sw-terms-toc p{
  margin:0 18px 0 0;
  color:var(--sowari-gold);
  font-family:var(--en);
  letter-spacing:.16em;
}
.sw-terms-toc a{
  display:inline-flex;
  padding:10px 18px;
  border:1px solid var(--line);
  color:var(--ink);
}
.sw-terms-toc a:hover{
  color:var(--sowari-gold);
  border-color:var(--sowari-gold);
}
.sw-terms-content h2{
  margin:80px 0 34px;
  padding-bottom:18px;
  border-bottom:1px solid var(--line);
  font-family:var(--serif);
  font-size:clamp(32px,4vw,54px);
  font-weight:500;
  letter-spacing:.08em;
}
.sw-terms-content article{
  padding:34px 0;
  border-bottom:1px solid var(--line);
}
.sw-terms-content h3{
  margin:0 0 20px;
  color:var(--ink);
  font-family:var(--serif);
  font-size:24px;
  font-weight:500;
  letter-spacing:.05em;
}
.sw-terms-content p,
.sw-terms-content li{
  color:var(--muted);
  font-size:15px;
  line-height:2.15;
}
.sw-terms-content ul{
  margin:16px 0 0;
  padding-left:1.4em;
}
.sw-terms-content ul li{
  margin-bottom:8px;
}
.sw-terms-back{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-top:70px;
}
.sw-terms-back a{
  display:inline-flex;
  padding:16px 34px;
  background:var(--sowari-black);
  color:#fff;
  border:1px solid var(--sowari-black);
}
.sw-terms-back a:hover{
  color:var(--sowari-gold);
  border-color:var(--sowari-gold);
}

/* Contact */
.sw-contact-section{
  display:grid;
  grid-template-columns:.8fr 1.1fr;
  gap:70px;
  padding:100px min(6vw,90px) 130px;
}
.sw-contact-lead{
  font-family:var(--serif);
  font-size:clamp(20px,2.4vw,30px);
  line-height:2;
}
.sw-contact-lead p{
  margin:0 0 28px;
}
.sw-contact-form{
  background:#fff;
  border:1px solid var(--line);
  padding:42px;
}
.sw-contact-form input,
.sw-contact-form textarea,
.sw-contact-form select{
  width:100%;
  border:1px solid var(--line);
  background:#fff;
  padding:14px 16px;
  font-family:inherit;
}
.sw-contact-form textarea{
  min-height:180px;
}
.sw-contact-form input[type="submit"],
.sw-contact-form button[type="submit"]{
  width:auto;
  display:inline-flex;
  padding:16px 34px;
  background:var(--sowari-black);
  color:#fff;
  border:1px solid var(--sowari-black);
  cursor:pointer;
}
.sw-contact-form input[type="submit"]:hover,
.sw-contact-form button[type="submit"]:hover{
  color:var(--sowari-gold);
  border-color:var(--sowari-gold);
}

/* Gallery no stagger */
.sw-gallery figure:nth-child(2),
.sw-gallery figure:nth-child(6){
  transform:none !important;
}
.sw-gallery__grid{
  align-items:stretch;
}
.sw-gallery figure{
  height:100%;
}

@media(max-width:900px){
  .sw-hero{
    padding-top:96px !important;
    padding-bottom:112px !important;
  }
  .sw-scroll{
    display:none !important;
  }
  .sw-sound{
    right:16px !important;
    bottom:16px !important;
    width:68px !important;
    height:68px !important;
  }
  .sw-sub-hero{
    min-height:48vh;
    padding:138px 24px 70px;
  }
  .sw-sub-hero p{
    font-size:14px;
  }
  .sw-terms-intro{
    grid-template-columns:1fr;
    gap:40px;
    padding:70px 24px;
  }
  .sw-terms-intro div{
    grid-template-columns:1fr;
    gap:8px;
  }
  .sw-terms-content{
    padding:70px 24px 100px;
  }
  .sw-terms-content article{
    padding:28px 0;
  }
  .sw-terms-content h3{
    font-size:21px;
    line-height:1.6;
  }
  .sw-terms-content p,
  .sw-terms-content li{
    font-size:14px;
    line-height:2.05;
  }
  .sw-contact-section{
    grid-template-columns:1fr;
    gap:40px;
    padding:70px 24px 100px;
  }
  .sw-contact-form{
    padding:30px 24px;
  }
}


/* =========================================================
   SO・WA・RI v3.5.1 Defensive Fix
========================================================= */

body.sowari-v35 .site-main,
body.sowari-v35 .ct-container,
body.sowari-v35 .entry-content,
body.sowari-v35 article.page{
  max-width:none !important;
  width:100% !important;
  padding:0 !important;
  margin:0 !important;
}

body.sowari-v35 .entry-header{
  display:none !important;
}

.sowari-site{
  width:100%;
  overflow:hidden;
}

.sw-header--global{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
}

.sw-header--global .sw-header__logo{
  display:inline-flex !important;
  align-items:center !important;
  line-height:1 !important;
}

.sw-header--global .sw-header__logo img{
  display:block !important;
  max-width:172px !important;
  width:172px !important;
  height:auto !important;
}

.sw-header--global .sw-header__nav{
  display:flex !important;
  align-items:center !important;
  gap:26px !important;
}

.sw-header--global .sw-header__nav a,
.sw-mobile-nav a{
  text-decoration:none !important;
}

@media(max-width:900px){
  .sw-header--global .sw-header__nav{
    display:none !important;
  }

  .sw-header--global .sw-header__logo img{
    max-width:148px !important;
    width:148px !important;
  }
}


/* =========================================================
   SO・WA・RI v3.5.2 Polish
   Text / CTA / Access / Rooms / Sub page refinement
========================================================= */

/* Header reserve label is now Reserve */
.sw-header__reserve{
  font-family:var(--en), serif !important;
  letter-spacing:.14em !important;
}

/* SCROLL should work as anchor */
.sw-scroll{
  text-decoration:none !important;
  cursor:pointer !important;
  color:rgba(255,255,255,.78) !important;
}
.sw-scroll:hover{
  color:var(--sowari-gold) !important;
}

/* 2人部屋 title gold */
.sw-room-v3 h3.sw-room-title--gold{
  color:var(--sowari-gold) !important;
}

/* Access 1min readability */
.sw-access__panel strong{
  font-family:"Helvetica Neue", Arial, sans-serif !important;
  font-weight:300 !important;
  letter-spacing:.035em !important;
  font-variant-numeric:lining-nums tabular-nums !important;
}
.sw-access__panel strong .sw-access-num{
  font-family:Arial, "Helvetica Neue", sans-serif !important;
  font-weight:400 !important;
  letter-spacing:.02em !important;
  margin-right:.02em !important;
}

/* Sub hero typography refinement */
.sw-sub-hero h1{
  color:rgba(255,255,255,.92) !important;
  text-shadow:0 12px 34px rgba(0,0,0,.36) !important;
  line-height:1.12 !important;
}
.sw-sub-hero p{
  color:var(--sowari-gold) !important;
}
.sw-sub-hero span{
  color:rgba(255,255,255,.84) !important;
}

/* 宿泊約款 hero */
.sw-terms-page .sw-sub-hero h1{
  font-size:clamp(42px,5.4vw,80px) !important;
  letter-spacing:.10em !important;
}
.sw-terms-page .sw-sub-hero p{
  font-size:clamp(14px,1.05vw,18px) !important;
}
.sw-terms-page .sw-sub-hero span{
  font-size:clamp(18px,1.7vw,25px) !important;
}

/* 宿泊約款 body readability */
.sw-terms-intro > p{
  color:rgba(255,255,255,.92) !important;
  font-size:clamp(24px,2.55vw,40px) !important;
  line-height:2.05 !important;
}
.sw-terms-intro dt{
  color:var(--sowari-gold) !important;
}
.sw-terms-intro dd{
  color:rgba(255,255,255,.82) !important;
}
.sw-terms-content h2{
  color:#1f2d24 !important;
  font-size:clamp(30px,3.4vw,50px) !important;
  line-height:1.35 !important;
}
.sw-terms-content h3{
  color:#2b281f !important;
  font-size:clamp(20px,1.6vw,24px) !important;
  line-height:1.65 !important;
}
.sw-terms-content p,
.sw-terms-content li{
  color:#514b40 !important;
  font-size:15.5px !important;
  line-height:2.08 !important;
}
.sw-terms-toc p{
  color:var(--sowari-gold) !important;
}
.sw-terms-toc a{
  color:#2b281f !important;
}
.sw-terms-toc a:hover{
  color:var(--sowari-gold) !important;
}

/* Contact typography refinement */
.sw-contact-page .sw-sub-hero h1{
  font-family:var(--en), serif !important;
  font-size:clamp(54px,7vw,104px) !important;
  letter-spacing:.11em !important;
  color:rgba(255,255,255,.92) !important;
}
.sw-contact-page .sw-sub-hero p{
  font-size:clamp(14px,1.05vw,18px) !important;
}
.sw-contact-page .sw-sub-hero span{
  font-size:clamp(18px,1.7vw,25px) !important;
}
.sw-contact-lead{
  color:#26231b !important;
  font-size:clamp(20px,2.05vw,31px) !important;
  line-height:1.95 !important;
  letter-spacing:.045em !important;
}
.sw-contact-lead p{
  color:#26231b !important;
}
.sw-contact-form{
  color:#252118 !important;
}
.sw-contact-form label,
.sw-contact-form p{
  color:#252118 !important;
}
.sw-contact-form input,
.sw-contact-form textarea,
.sw-contact-form select{
  color:#252118 !important;
  font-size:15px !important;
}
.sw-contact-form input::placeholder,
.sw-contact-form textarea::placeholder{
  color:rgba(37,33,24,.46) !important;
}

@media(max-width:900px){
  .sw-terms-page .sw-sub-hero h1{
    font-size:clamp(38px,12vw,58px) !important;
  }
  .sw-contact-page .sw-sub-hero h1{
    font-size:clamp(46px,14vw,72px) !important;
  }
  .sw-terms-intro > p{
    font-size:clamp(22px,6.4vw,32px) !important;
  }
  .sw-contact-lead{
    font-size:clamp(20px,6vw,29px) !important;
  }
}


/* =========================================================
   SO・WA・RI v3.5.3 Contact Button Fix
========================================================= */

.sw-contact-form input[type="submit"],
.sw-contact-form button[type="submit"],
.sw-contact-form .wpcf7-submit{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:132px !important;
  min-height:54px !important;
  padding:15px 34px !important;
  background:#0b0b08 !important;
  color:#fff !important;
  border:1px solid #0b0b08 !important;
  border-radius:0 !important;
  font-family:var(--serif), serif !important;
  font-size:16px !important;
  letter-spacing:.12em !important;
  line-height:1 !important;
  opacity:1 !important;
  cursor:pointer !important;
  transition:color .28s ease, border-color .28s ease, background .28s ease, transform .28s ease !important;
  -webkit-appearance:none !important;
  appearance:none !important;
}

.sw-contact-form input[type="submit"]:hover,
.sw-contact-form button[type="submit"]:hover,
.sw-contact-form .wpcf7-submit:hover{
  color:#C6A86A !important;
  border-color:#C6A86A !important;
  background:#0b0b08 !important;
  transform:translateY(-2px) !important;
}

.sw-contact-form input[type="submit"]:disabled,
.sw-contact-form button[type="submit"]:disabled,
.sw-contact-form .wpcf7-submit:disabled{
  opacity:.55 !important;
  cursor:not-allowed !important;
  transform:none !important;
}

.sw-contact-form .wpcf7-spinner{
  vertical-align:middle !important;
  margin-left:14px !important;
}


/* =========================================================
   SO・WA・RI v3.6 Decisions
========================================================= */
.sw-header__nav{ gap:24px !important; }
.sw-header__nav .sw-nav-terms{ font-size:.88em !important; opacity:.78 !important; }
.sw-header__nav .sw-nav-terms:hover{ opacity:1 !important; }
.sw-mobile-nav__divider,.sw-footer__divider{ display:block; width:72px; height:1px; margin:4px auto 14px; background:rgba(255,255,255,.22); }
.sw-mobile-nav__terms{ font-size:.88em !important; color:rgba(255,255,255,.76) !important; }
.sw-footer__divider{ width:100%; margin:10px 0 4px; }
.sw-footer__terms{ font-size:.88em !important; color:rgba(255,255,255,.66) !important; }

.sw-room-v3 h3.sw-room-title--gold{ color:var(--sowari-gold) !important; }
.sw-access__panel strong{ font-family:"Helvetica Neue",Arial,sans-serif !important; font-weight:300 !important; letter-spacing:.035em !important; font-variant-numeric:lining-nums tabular-nums !important; }
.sw-access__panel strong .sw-access-num{ font-family:Arial,"Helvetica Neue",sans-serif !important; font-weight:400 !important; letter-spacing:.02em !important; margin-right:.02em !important; }

.sw-sub-hero h1{ font-size:clamp(38px,5.2vw,76px) !important; line-height:1.16 !important; color:rgba(255,255,255,.92) !important; }
.sw-sub-hero p{ font-size:clamp(13px,1vw,17px) !important; color:var(--sowari-gold) !important; }
.sw-sub-hero span{ font-size:clamp(16px,1.45vw,22px) !important; color:rgba(255,255,255,.82) !important; }

.sw-contact-form input[type="submit"],.sw-contact-form button[type="submit"],.sw-contact-form .wpcf7-submit{ background:#0b0b08 !important; color:#fff !important; border:1px solid #0b0b08 !important; opacity:1 !important; }
.sw-contact-form input[type="submit"]:hover,.sw-contact-form button[type="submit"]:hover,.sw-contact-form .wpcf7-submit:hover{ color:#C6A86A !important; border-color:#C6A86A !important; }

.sw-reservation-intro{ display:grid; grid-template-columns:.85fr 1fr; gap:70px; padding:100px min(6vw,90px); background:#fff; }
.sw-reservation-intro h2{ margin:0; font-family:var(--serif); font-size:clamp(34px,4vw,62px); font-weight:500; line-height:1.55; letter-spacing:.06em; }
.sw-reservation-intro>p{ margin:24px 0 0; color:var(--muted); line-height:2.2; align-self:center; }
.sw-reservation-info{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); padding:0 min(6vw,90px) 100px; }
.sw-reservation-info article{ background:var(--cream); padding:38px 30px; }
.sw-reservation-info span{ color:var(--sowari-gold); font-family:var(--en); letter-spacing:.12em; }
.sw-reservation-info h3{ margin:18px 0; font-family:var(--serif); font-size:24px; font-weight:500; }
.sw-reservation-info p{ color:var(--muted); line-height:2; }
.sw-faq-section{ max-width:1000px; margin:0 auto; padding:100px 24px; }
.sw-faq-section h2{ margin:0 0 40px; font-family:var(--serif); font-size:clamp(34px,4vw,58px); font-weight:500; }
.sw-faq-section details{ border-top:1px solid var(--line); padding:24px 0; }
.sw-faq-section details:last-child{ border-bottom:1px solid var(--line); }
.sw-faq-section summary{ cursor:pointer; font-family:var(--serif); font-size:22px; color:var(--ink); list-style:none; }
.sw-faq-section summary::-webkit-details-marker{ display:none; }
.sw-faq-section summary::after{ content:"+"; float:right; color:var(--sowari-gold); }
.sw-faq-section details[open] summary::after{ content:"−"; }
.sw-faq-section details p{ margin:18px 0 0; color:var(--muted); line-height:2; }
.sw-reservation-cta{ padding:110px 24px; background:var(--sowari-black); color:#fff; text-align:center; }
.sw-reservation-cta p{ margin:0 0 22px; color:var(--sowari-gold); font-family:var(--en); letter-spacing:.2em; }
.sw-reservation-cta h2{ margin:0; font-family:var(--serif); font-size:clamp(30px,4vw,56px); font-weight:500; line-height:1.7; }
.sw-reservation-cta a{ display:inline-flex; margin-top:38px; padding:16px 38px; border:1px solid rgba(198,168,106,.7); color:#fff; }
.sw-reservation-cta a:hover{ color:var(--sowari-gold); border-color:var(--sowari-gold); }
.sw-reservation-cta small{ display:block; margin-top:22px; color:rgba(255,255,255,.54); }

@media(max-width:1100px){ .sw-reservation-info{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:900px){
  .sw-sub-hero h1{ font-size:clamp(34px,10vw,54px) !important; }
  .sw-sub-hero span{ font-size:clamp(15px,4.2vw,20px) !important; }
  .sw-reservation-intro{ grid-template-columns:1fr; gap:34px; padding:72px 24px; }
  .sw-reservation-info{ grid-template-columns:1fr; padding:0 24px 72px; background:transparent; gap:16px; }
  .sw-reservation-info article{ border:1px solid var(--line); }
  .sw-faq-section{ padding:72px 24px; }
  .sw-faq-section summary{ font-size:19px; line-height:1.7; }
  .sw-reservation-cta{ padding:82px 24px; }
}

/* =========================================================
   SO・WA・RI Version 1.1 Release
   Discover / Facilities polish
========================================================= */
.sw-nearby{
  background:#f7f1e6;
  color:var(--black);
}
.sw-nearby__head .sw-label{
  color:var(--wood);
}
.sw-nearby__head p:not(.sw-label),
.sw-nearby article p{
  color:#5f584f;
}
.sw-nearby article{
  background:#fffdf8;
  box-shadow:0 20px 60px rgba(42,35,25,.08);
}
.sw-amenities__grid{
  grid-template-columns:repeat(3,1fr);
}
.sw-amenities__grid article{
  min-height:260px;
}
.sw-amenities__tag{
  display:inline-block;
  margin:0 0 18px !important;
  padding:6px 12px;
  border:1px solid rgba(185,155,103,.45);
  border-radius:999px;
  color:var(--wood) !important;
  font-size:12px;
  line-height:1.4 !important;
  letter-spacing:.08em;
  background:rgba(255,255,255,.58);
}
@media(max-width:1100px){
  .sw-amenities__grid{
    grid-template-columns:repeat(2,1fr);
  }
}
@media(max-width:900px){
  .sw-amenities__grid{
    grid-template-columns:1fr;
  }
  .sw-amenities__grid article{
    min-height:auto;
  }
}

/* SO・WA・RI v1.1 additional fixes */
.sw-reservation-intro>p a{ color:var(--sowari-black); text-decoration:underline; text-underline-offset:4px; }
.sw-reservation-intro__action{ grid-column:2; margin-top:22px; }
.sw-reservation-intro__action a{ display:inline-flex; padding:15px 36px; border:1px solid rgba(74,58,43,.35); color:var(--sowari-black); letter-spacing:.08em; }
.sw-reservation-intro__action a:hover{ border-color:var(--sowari-gold); color:var(--sowari-gold); }
.sw-reservation-cta h2{ color:#fff; }
.sw-footer__contact{ color:rgba(255,255,255,.82); }
@media(max-width:900px){ .sw-reservation-intro__action{ grid-column:1; margin-top:0; } }

/* =========================================================
   SO・WA・RI v1.1 Legal / Footer info
========================================================= */
.sw-footer__operator{
  margin-top:22px;
  display:grid;
  gap:8px;
  color:rgba(255,255,255,.68);
  font-size:12px;
  line-height:1.8;
  letter-spacing:.05em;
}
.sw-footer__operator p{
  margin:0 !important;
  color:rgba(255,255,255,.68) !important;
}
.sw-footer__operator span{
  display:block;
  color:#C6A86A;
  font-size:11px;
  letter-spacing:.12em;
}
.sw-legal-list{
  display:grid;
  gap:0;
  border-top:1px solid rgba(64,50,36,.16);
}
.sw-legal-list div{
  display:grid;
  grid-template-columns:220px 1fr;
  gap:28px;
  padding:18px 0;
  border-bottom:1px solid rgba(64,50,36,.16);
}
.sw-legal-list dt{
  font-weight:600;
  color:#3f3224;
}
.sw-legal-list dd{
  margin:0;
}
@media(max-width:700px){
  .sw-legal-list div{
    grid-template-columns:1fr;
    gap:6px;
  }
}


/* =========================================================
   SO・WA・RI v1.1 Footer / Header refinement
   - Add Top anchor navigation
   - Compact footer navigation
   - Smaller footer CTA headline
========================================================= */
.sw-header__nav{
  gap:20px !important;
}

.sw-footer__inner{
  grid-template-columns:minmax(260px,.9fr) minmax(300px,.72fr) minmax(300px,.82fr) !important;
  column-gap:64px !important;
  align-items:start !important;
}

.sw-footer__reserve{
  max-width:460px !important;
  text-align:center !important;
  justify-self:center !important;
}

.sw-footer__reserve h2,
.sw-footer-title{
  font-size:clamp(24px,2.35vw,38px) !important;
  line-height:1.42 !important;
  letter-spacing:.04em !important;
  max-width:460px !important;
}

.sw-footer__reserve p{
  font-size:13px !important;
  margin-bottom:14px !important;
}

.sw-footer__reserve a{
  margin-top:26px !important;
}

.sw-footer__nav{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(118px,1fr)) !important;
  column-gap:20px !important;
  row-gap:9px !important;
  min-width:280px !important;
  justify-self:end !important;
  align-content:start !important;
  font-size:13px !important;
  line-height:1.35 !important;
}

.sw-footer__nav a{
  line-height:1.35 !important;
}

.sw-footer__divider{
  grid-column:1 / -1 !important;
  width:100% !important;
  margin:6px 0 2px !important;
}

@media(max-width:1180px){
  .sw-header__nav{ gap:16px !important; font-size:14px !important; }
  .sw-footer__inner{
    grid-template-columns:1fr !important;
    row-gap:42px !important;
    column-gap:0 !important;
  }
  .sw-footer__reserve{
    justify-self:start !important;
    text-align:left !important;
    max-width:100% !important;
  }
  .sw-footer__reserve h2,
  .sw-footer-title{
    max-width:100% !important;
    font-size:clamp(28px,6vw,40px) !important;
  }
  .sw-footer__nav{
    justify-self:start !important;
    min-width:0 !important;
    max-width:520px !important;
  }
}

@media(max-width:900px){
  .sw-footer__nav{
    grid-template-columns:repeat(2,minmax(120px,1fr)) !important;
    column-gap:18px !important;
    row-gap:8px !important;
    font-size:12.5px !important;
  }
  .sw-footer__reserve h2,
  .sw-footer-title{
    font-size:clamp(24px,7vw,34px) !important;
    line-height:1.5 !important;
  }
}
