/* =========================================================
   ISLAND HERB - BASE Custom Styles (v2)
   ========================================================= */

/* =========================================================
   NEWS & INFORMATION
   ========================================================= */
:is(
  .newblog .title a,
  .newblog .date,
  .blogListMain .blog_title,
  .blogListMain .blog_title a,
  .blogListMain .blog_publish
){
  color:#FFFDF8 !important;
}

:is(
  .newblog .title a,
  .blogListMain .blog_title a
):hover{
  opacity:.7;
}


/* =========================================================
   TOP YouTube
   ========================================================= */

.bgyoutube{
  width:calc(100% - 80px) !important;
  max-width:1000px !important;
  aspect-ratio:16 / 9 !important;
  height:auto !important;
  min-height:0 !important;
  margin:80px auto !important;
  position:relative !important;
  overflow:hidden !important;
}

.bgyoutube .mbYTP_wrapper{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  min-width:0 !important;
  min-height:0 !important;
  margin:0 !important;
}

.bgyoutube .mbYTP_wrapper iframe{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  margin:0 !important;
  min-width:0 !important;
  min-height:0 !important;
  transform:none !important;
}


/* =========================================================
   商品詳細
   ========================================================= */

.appsItemDetailCustomTag_heading{
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  margin:4rem 0 1.5rem !important;
  letter-spacing:.14em !important;
}

.appsItemDetailCustomTag_heading::before{
  content:"";
  width:28px;
  height:1px;
  background:#6F8373;
  flex:none;
}

.appsItemDetailCustomTag_description{
  line-height:2;
}


/* =========================================================
   SALON MENU
   ========================================================= */

.salon-page-title{
  display:none !important;
}

.s #about.blogDetail .blog_title,
.s #about.blogDetail .blog_publish{
  display:none !important;
}

.s #about.blogDetail .blog_inner{
  width:calc(100% - 48px) !important;
  max-width:980px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

.s #about.blogDetail .blog_contents,
.s #about.blogDetail .blog_body{
  width:100% !important;
  max-width:none !important;
}

.s #about.blogDetail .blog_body{
  font-size:15px;
  line-height:2;
  letter-spacing:.03em;
  color:#433f38;
}


/* -------------------------
   HERO
------------------------- */

.s .salon-hero{
  width:100%;
  max-width:860px;
  margin:0 auto 30px;
  overflow:hidden;
}

.s .salon-hero img{
  display:block;
  width:100% !important;
  height:auto !important;
  aspect-ratio:3.2 / 1;
  object-fit:cover;
  object-position:center;
}


/* -------------------------
   INTRO
------------------------- */

.s .salon-intro{
  max-width:720px;
  margin:0 auto 80px;
}

.s .salon-intro p{
  margin:0 0 .95em;
}


/* -------------------------
   SECTION COMMON
------------------------- */

.s .salon-section{
  max-width:760px;
  margin:0 auto 84px;
}

.s .salon-section h3{
  display:flex;
  align-items:center;
  gap:12px;
  margin:0 0 30px;
  font-size:24px;
  font-weight:500;
  letter-spacing:.1em;
  color:#48594c;
}

.s .salon-section h3::before{
  content:"";
  width:30px;
  height:1px;
  background:#6F8373;
  flex:none;
}

.s .salon-section h4,
.s .salon-subtitle{
  margin:0 0 14px;
  padding-left:14px;
  border-left:3px solid #8c9d90;
  font-size:18px;
  font-weight:600;
  letter-spacing:.08em;
  color:#596d5d;
}

.s .salon-section p{
  margin:0 0 1em;
}

.s .salon-section img{
  display:block;
  width:100% !important;
  height:auto !important;
}

.s .salon-section ul,
.s .salon-section ol{
  margin:1.1em 0 0;
  padding:0;
  list-style:none;
}

.s .salon-section li{
  position:relative;
  margin:0 0 10px;
  padding-left:1.5em;
}

.s .salon-section li::before{
  content:"";
  position:absolute;
  left:0;
  top:.8em;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#8c9d90;
  transform:translateY(-50%);
}

.s .salon-caption{
  color:#6c6a63;
  font-size:13px;
}


/* -------------------------
   美らハーブピーリング
------------------------- */

.s .salon-feature{
  max-width:860px;
}

.s .salon-feature > h3{
  display:none;
}

.s .salon-feature .salon-feature-img{
  margin-bottom:34px;
}

.s .salon-feature .salon-feature-img img,
.s .salon-feature img.salon-feature-img{
  width:100% !important;
  height:auto !important;
}

.s .salon-feature .salon-feature-copy{
  max-width:760px;
  margin:0 auto;
}

.s .salon-feature-lead{
  position:relative;
  margin:0 0 24px !important;
  padding-left:18px;
  font-size:19px;
  line-height:1.75;
  font-weight:600;
  letter-spacing:.07em;
  color:#526657;
}

.s .salon-feature-lead::before{
  content:"";
  position:absolute;
  left:0;
  top:.34em;
  width:3px;
  height:1.45em;
  background:#8c9d90;
}


/* -------------------------
   MENU
------------------------- */

.s .salon-menu{
  max-width:860px;
  padding:56px 48px 50px;
  background:#e8ece5;
  box-sizing:border-box;
}

.s .salon-menu-list{
  display:grid;
  gap:18px;
}

.s .salon-menu-item{
  padding:20px 24px;
  background:rgba(255,255,255,.52);
  border:1px solid rgba(111,131,115,.18);
}

.s .salon-menu-item-title{
  margin:0 0 10px;
  padding:0 0 12px;
  border-bottom:1px solid rgba(111,131,115,.28);
  font-size:17px;
  font-weight:600;
  letter-spacing:.08em;
  color:#4d6151;
}

.s .salon-menu-item-body > *:last-child{
  margin-bottom:0;
}

.s .salon-menu-item-body p{
  margin:0 0 .7em;
  border:0;
  padding:0;
}

.s .salon-menu a{
  color:#55695a !important;
  text-underline-offset:3px;
}

.s .salon-menu-cta-wrap{
  margin-top:26px;
}

.s .salon-menu-cta{
  display:flex !important;
  align-items:center;
  justify-content:center;
  min-height:54px;
  padding:0 24px;
  border:1px solid #708474;
  background:transparent;
  color:#55695a !important;
  font-weight:600;
  letter-spacing:.06em;
  text-decoration:none !important;
  transition:.2s ease;
}

.s .salon-menu-cta::after{
  content:"→";
  margin-left:.8em;
}

.s .salon-menu-cta:hover{
  background:#708474;
  color:#fffdf8 !important;
}


/* -------------------------
   FLOW
------------------------- */

.s .salon-flow{
  max-width:860px;
}

.s .salon-flow-list{
  display:grid;
  gap:14px;
}

.s .salon-flow-item{
  position:relative;
  display:grid;
  grid-template-columns:76px 1fr;
  gap:18px;
  align-items:start;
  padding:18px 22px;
  background:rgba(255,255,255,.5);
  border:1px solid rgba(111,131,115,.18);
}

.s .salon-flow-step{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:60px;
  min-height:48px;
  padding:0;
  background:#8c9d90;
  color:#fffdf8;
  font-size:16px;
  font-weight:600;
  letter-spacing:.08em;
  box-sizing:border-box;
}

.s .salon-flow-content > *:last-child{
  margin-bottom:0;
}

.s .salon-flow-item-title{
  margin:0 0 6px;
  font-size:16px;
  font-weight:600;
  letter-spacing:.06em;
  color:#4d6151;
}

.s .salon-flow-content p{
  margin:0;
}


/* -------------------------
   HOME CARE
------------------------- */

.s .salon-homecare{
  max-width:860px;
  padding:46px 42px;
  border:1px solid rgba(111,131,115,.28);
  box-sizing:border-box;
}

.s .salon-homecare-layout{
  display:grid;
  grid-template-columns:minmax(0, 320px) minmax(0, 1fr);
  gap:34px;
  align-items:center;
}

.s .salon-homecare-media img{
  width:100% !important;
  aspect-ratio:1.06 / 1;
  object-fit:cover;
}

.s .salon-homecare-text > *:last-child{
  margin-bottom:0;
}


/* -------------------------
   RESERVATION
------------------------- */

.s .salon-reservation{
  max-width:860px;
  padding:56px 56px;
  text-align:center;
  background:#7f9183;
  color:#FFFDF8;
  box-sizing:border-box;
}

.s .salon-reservation h3{
  justify-content:center;
  margin-bottom:22px;
  color:#FFFDF8;
}

.s .salon-reservation h3::before{
  background:#FFFDF8;
}

.s .salon-reservation p{
  max-width:620px;
  margin-left:auto;
  margin-right:auto;
}

.s .salon-reservation a{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  min-width:320px;
  min-height:58px;
  margin-top:18px;
  padding:0 32px;
  border:1px solid #FFFDF8 !important;
  background:#FFFDF8 !important;
  color:#6F8373 !important;
  text-decoration:none !important;
  letter-spacing:.08em;
  font-weight:600;
  box-shadow:0 10px 24px rgba(0,0,0,.14);
  transition:.2s ease;
  box-sizing:border-box;
}

.s .salon-reservation a::after{
  content:"→";
  margin-left:.8em;
  font-size:14px;
}

.s .salon-reservation a:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 28px rgba(0,0,0,.18);
  opacity:.96;
}

/* 空要素由来の装飾線を出さない */
.s #about.blogDetail .blog_body h1:empty,
.s #about.blogDetail .blog_body h2:empty,
.s #about.blogDetail .blog_body h3:empty,
.s #about.blogDetail .blog_body h4:empty,
.s #about.blogDetail .blog_body h5:empty,
.s #about.blogDetail .blog_body h6:empty,
.s #about.blogDetail .blog_body hr:empty{
  display:none !important;
}



/* =========================================================
   MOBILE
   ========================================================= */

@media(max-width:767px){

  .bgyoutube{
    width:calc(100% - 32px) !important;
    margin:48px auto !important;
  }

  .appsItemDetailCustomTag_heading{
    font-size:20px !important;
    letter-spacing:.1em !important;
    gap:8px !important;
    margin:2.5rem 0 1.2rem !important;
  }

  .appsItemDetailCustomTag_heading::before{
    width:20px !important;
  }

  .appsItemDetailCustomTag_description{
    line-height:1.9;
  }

  .s #about.blogDetail .blog_inner{
    width:calc(100% - 32px) !important;
  }

  .s #about.blogDetail .blog_body{
    font-size:14px;
    line-height:1.9;
  }

  .s .salon-hero{
    margin-bottom:24px;
  }

  .s .salon-hero img{
    aspect-ratio:1.9 / 1;
    object-position:center;
  }

  .s .salon-intro{
    margin-bottom:58px;
  }

  .s .salon-section{
    margin-bottom:58px;
  }

  .s .salon-section h3{
    gap:9px;
    margin-bottom:22px;
    font-size:20px;
  }

  .s .salon-section h3::before{
    width:22px;
  }

  .s .salon-section h4,
  .s .salon-subtitle{
    font-size:16px;
  }

  .s .salon-feature-lead{
    font-size:17px;
    padding-left:14px;
  }

  .s .salon-menu,
  .s .salon-homecare,
  .s .salon-reservation{
    padding:34px 22px;
  }

  .s .salon-menu-item,
  .s .salon-flow-item{
    padding:16px 16px;
  }

  .s .salon-flow-item{
    grid-template-columns:1fr;
    gap:12px;
  }

  .s .salon-flow-step{
    width:56px;
    min-height:44px;
    font-size:15px;
  }

  .s .salon-homecare-layout{
    grid-template-columns:1fr;
    gap:20px;
  }

  .s .salon-reservation a{
    width:100%;
    min-width:0;
    box-sizing:border-box;
  }
}
