.smhc-shell{
  --smhc-green:#254f4b;
  --smhc-dark:#183c39;
  --smhc-paper:#f8f6f0;
  --smhc-paper2:#efede7;
  --smhc-mist:#edf3f1;
  --smhc-text:#303735;
  --smhc-muted:#7b837f;
  --smhc-line:rgba(37,79,75,.17);
  --smhc-red:#a14f47;
  width:100%;
  max-width:980px;
  margin:0 auto;
  overflow:hidden;
  color:var(--smhc-text);
  background:var(--smhc-paper);
  font-family:-apple-system,BlinkMacSystemFont,"Noto Sans JP","Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;
  line-height:1.8;
  box-sizing:border-box;
}

.smhc-shell *,
.smhc-shell *::before,
.smhc-shell *::after{
  box-sizing:border-box;
}

.smhc-shell h2,
.smhc-shell h3,
.smhc-shell p,
.smhc-shell figure{
  margin:0;
  padding:0;
}

/* Cocoonの記事見出し装飾を、このモジュール内だけ完全に解除 */
body .article .smhc-shell h2,
body .article .smhc-shell h3,
body .entry-content .smhc-shell h2,
body .entry-content .smhc-shell h3{
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:none !important;
  box-shadow:none !important;
  text-shadow:none !important;
}

body .article .smhc-shell h2::before,
body .article .smhc-shell h2::after,
body .article .smhc-shell h3::before,
body .article .smhc-shell h3::after,
body .entry-content .smhc-shell h2::before,
body .entry-content .smhc-shell h2::after,
body .entry-content .smhc-shell h3::before,
body .entry-content .smhc-shell h3::after{
  content:none !important;
  display:none !important;
}

.smhc-shell a{
  color:inherit;
  text-decoration:none;
}

.smhc-section{
  padding:68px clamp(22px,7vw,84px) 72px;
}

.smhc-kicker{
  display:block;
  margin-bottom:13px;
  color:var(--smhc-green);
  font-family:Georgia,"Times New Roman",serif;
  font-size:10px;
  line-height:1.2;
  letter-spacing:.2em;
}

.smhc-preview-note{
  padding:18px clamp(22px,7vw,84px);
  border-bottom:1px solid var(--smhc-line);
  background:#fff;
}

.smhc-preview-note span{
  color:var(--smhc-green);
  font-family:Georgia,"Times New Roman",serif;
  font-size:9px;
  letter-spacing:.18em;
}

.smhc-preview-note p{
  margin-top:4px;
  color:var(--smhc-muted);
  font-size:10px;
}

.smhc-heading{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(250px,.75fr);
  gap:42px;
  align-items:end;
  margin-bottom:32px;
}

.smhc-heading h2,
.smhc-map-copy h2{
  color:var(--smhc-dark);
  font-family:Georgia,"Noto Serif JP",serif;
  font-size:clamp(30px,4.2vw,43px);
  font-weight:400;
  line-height:1.38;
  letter-spacing:-.025em;
}

body .article .smhc-heading h2,
body .entry-content .smhc-heading h2,
body .article .smhc-map-copy h2,
body .entry-content .smhc-map-copy h2{
  color:var(--smhc-dark) !important;
  font-family:Georgia,"Noto Serif JP",serif !important;
  font-size:clamp(30px,4.2vw,43px) !important;
  font-weight:400 !important;
  line-height:1.38 !important;
  letter-spacing:-.025em !important;
}

.smhc-heading p,
.smhc-map-copy p{
  color:var(--smhc-muted);
  font-size:12px;
  line-height:2;
}

.smhc-guides{
  border-top:1px solid var(--smhc-line);
  border-bottom:1px solid var(--smhc-line);
  background:#f3f0e8;
}

.smhc-guide-layout{
  display:grid;
  grid-template-columns:minmax(0,1.48fr) minmax(270px,.82fr);
  gap:14px;
}

.smhc-guide-feature{
  min-width:0;
  display:flex;
  flex-direction:column;
  background:var(--smhc-paper);
  border:1px solid var(--smhc-line);
  box-shadow:0 16px 38px rgba(24,60,57,.09);
  transition:background .2s ease;
}

.smhc-guide-compact:hover{
  background:var(--smhc-mist);
}

.smhc-guide-feature-image{
  position:relative;
  aspect-ratio:16/10;
  overflow:hidden;
  background:#e4e2da;
}

.smhc-guide-feature-image::after,
.smhc-map-feature-image::after,
.smhc-map-card-image::after{
  content:"";
  position:absolute;
  inset:9px;
  border:1px solid rgba(255,255,255,.38);
  pointer-events:none;
}

.smhc-guide-feature-image img,
.smhc-guide-compact-image img,
.smhc-map-feature-image img,
.smhc-map-card-image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .35s ease;
}

.smhc-guide-feature:hover img,
.smhc-guide-compact:hover img,
.smhc-map-feature:hover img,
.smhc-map-card:hover img{
  transform:scale(1.018);
}

.smhc-guide-feature-body{
  flex:1;
  display:flex;
  flex-direction:column;
  min-height:205px;
  padding:23px 27px 20px;
  background:var(--smhc-dark);
}

.smhc-card-label{
  display:block;
  color:var(--smhc-green);
  font-family:Georgia,"Times New Roman",serif;
  font-size:9px;
  letter-spacing:.17em;
}

.smhc-guide-feature .smhc-card-label{
  color:rgba(255,255,255,.65);
}

.smhc-guide-feature h3{
  margin-top:11px;
  color:#fff;
  font-family:Georgia,"Noto Serif JP",serif;
  font-size:clamp(21px,2.7vw,28px);
  font-weight:400;
  line-height:1.45;
}

body .article .smhc-guide-feature h3,
body .entry-content .smhc-guide-feature h3{
  margin-top:11px !important;
  color:#fff !important;
  font-family:Georgia,"Noto Serif JP",serif !important;
  font-size:clamp(21px,2.7vw,28px) !important;
  font-weight:400 !important;
  line-height:1.45 !important;
  letter-spacing:0 !important;
}

.smhc-guide-feature p{
  margin-top:9px;
  display:-webkit-box;
  overflow:hidden;
  color:rgba(255,255,255,.68);
  font-size:11px;
  line-height:1.8;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}

.smhc-card-link{
  margin-top:15px;
  padding-top:14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-top:1px solid rgba(255,255,255,.18);
  color:#fff;
  font-size:11px;
}

.smhc-card-link i,
.smhc-text-arrow,
.smhc-map-feature-caption i,
.smhc-all-link i,
.smhc-criteria-link i{
  font-style:normal;
}

.smhc-guide-list{
  min-width:0;
  display:grid;
  grid-template-rows:repeat(3,minmax(0,1fr));
  gap:12px;
}

.smhc-guide-compact{
  min-width:0;
  display:grid;
  grid-template-columns:116px minmax(0,1fr);
  background:var(--smhc-paper);
  border:1px solid var(--smhc-line);
  transition:background .2s ease;
}

.smhc-guide-compact-image{
  min-height:100%;
  overflow:hidden;
  background:#e4e2da;
}

.smhc-guide-compact-body{
  min-width:0;
  position:relative;
  padding:23px 35px 21px 21px;
}

.smhc-guide-compact h3{
  margin-top:11px;
  color:var(--smhc-dark);
  font-family:Georgia,"Noto Serif JP",serif;
  font-size:15px;
  font-weight:400;
  line-height:1.55;
}

body .article .smhc-guide-compact h3,
body .entry-content .smhc-guide-compact h3{
  margin-top:10px !important;
  color:var(--smhc-dark) !important;
  font-family:Georgia,"Noto Serif JP",serif !important;
  font-size:15px !important;
  font-weight:400 !important;
  line-height:1.52 !important;
  letter-spacing:0 !important;
}

.smhc-text-arrow{
  position:absolute;
  right:18px;
  bottom:17px;
  color:var(--smhc-green);
  font-size:16px;
}

.smhc-all-link{
  margin-top:21px;
  padding:18px 21px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  border:1px solid var(--smhc-green);
  background:var(--smhc-green);
  color:#fff !important;
  font-size:12px;
  transition:background .2s ease;
}

.smhc-all-link:hover{
  background:var(--smhc-dark);
}

.smhc-all-link span{
  display:flex;
  flex-direction:column;
  gap:2px;
}

.smhc-all-link small{
  color:rgba(255,255,255,.68);
  font-family:Georgia,"Times New Roman",serif;
  font-size:8px;
  line-height:1.3;
  letter-spacing:.16em;
}

.smhc-all-link i{
  flex:none;
  font-size:18px;
}

.smhc-maps{
  background:var(--smhc-mist);
}

.smhc-map-intro{
  display:grid;
  grid-template-columns:minmax(250px,.72fr) minmax(0,1.28fr);
  gap:52px;
  align-items:center;
}

.smhc-map-copy p{
  margin-top:21px;
}

.smhc-criteria-link{
  margin-top:24px;
  padding-bottom:3px;
  display:inline-flex;
  align-items:center;
  gap:22px;
  border-bottom:1px solid rgba(37,79,75,.42);
  color:var(--smhc-green) !important;
  font-size:11px;
}

.smhc-map-feature{
  min-width:0;
  display:block;
  border:1px solid var(--smhc-line);
  background:var(--smhc-paper);
}

.smhc-map-feature-image{
  position:relative;
  aspect-ratio:3/2;
  overflow:hidden;
  background:radial-gradient(circle at 50% 45%,#fff 0%,#f2f0ea 68%,#dedbd2 100%);
}

.smhc-map-feature-image img,
.smhc-map-card-image img{
  object-fit:contain;
}

.smhc-map-feature-caption{
  min-height:72px;
  padding:15px 18px;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:13px;
  align-items:center;
  border-top:1px solid var(--smhc-line);
}

.smhc-map-feature-caption strong,
.smhc-map-card-caption strong{
  color:var(--smhc-dark);
  font-family:Georgia,"Noto Serif JP",serif;
  font-weight:400;
}

.smhc-map-feature-caption strong{
  font-size:16px;
}

.smhc-map-feature-caption i{
  color:var(--smhc-green);
  font-size:17px;
}

.smhc-a-pill{
  padding:4px 8px;
  border:1px solid rgba(161,79,71,.5);
  color:var(--smhc-red);
  font-size:9px;
  font-weight:600;
  line-height:1.2;
  letter-spacing:.05em;
  white-space:nowrap;
}

.smhc-map-grid{
  margin-top:30px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}

.smhc-map-card{
  min-width:0;
  border:1px solid var(--smhc-line);
  background:rgba(248,246,240,.84);
}

.smhc-map-card-image{
  position:relative;
  aspect-ratio:3/2;
  overflow:hidden;
  background:radial-gradient(circle at 50% 45%,#fff 0%,#f2f0ea 68%,#dedbd2 100%);
}

.smhc-map-card-caption{
  min-height:76px;
  padding:14px;
  display:flex;
  align-items:flex-start;
  gap:10px;
  border-top:1px solid var(--smhc-line);
}

.smhc-map-card-caption strong{
  font-size:13px;
  line-height:1.55;
}

.smhc-rating-note{
  margin-top:30px;
  padding:21px 23px;
  display:grid;
  grid-template-columns:54px minmax(0,1fr);
  gap:18px;
  align-items:center;
  border-left:2px solid var(--smhc-red);
  background:rgba(248,246,240,.72);
}

.smhc-a-mark{
  display:flex;
  width:54px;
  height:54px;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(161,79,71,.55);
  color:var(--smhc-red);
  font-family:Georgia,"Times New Roman",serif;
  font-size:28px;
  line-height:1;
}

.smhc-rating-note p{
  color:var(--smhc-muted);
  font-size:10px;
  line-height:1.8;
}

.smhc-rating-note strong{
  display:block;
  margin-bottom:3px;
  color:var(--smhc-dark);
  font-size:12px;
  font-weight:600;
}

.smhc-all-link-light{
  border-color:var(--smhc-line);
  background:var(--smhc-paper);
  color:var(--smhc-green) !important;
}

.smhc-all-link-light:hover{
  background:#fff;
}

.smhc-all-link-light small{
  color:var(--smhc-muted);
}

.smhc-image-placeholder{
  display:flex;
  width:100%;
  height:100%;
  align-items:center;
  justify-content:center;
  color:var(--smhc-green);
  font-family:Georgia,"Times New Roman",serif;
  font-size:11px;
  letter-spacing:.18em;
}

.smhc-empty{
  margin:20px;
  padding:18px;
  border:1px solid var(--smhc-line);
  color:var(--smhc-muted);
  background:var(--smhc-paper);
  font-size:12px;
}

@media screen and (max-width:760px){
  .smhc-section{
    padding:45px 20px 49px;
  }

  .smhc-heading{
    grid-template-columns:1fr;
    gap:14px;
    margin-bottom:25px;
  }

  .smhc-heading h2,
  .smhc-map-copy h2{
    font-size:31px;
  }

  body .article .smhc-heading h2,
  body .entry-content .smhc-heading h2,
  body .article .smhc-map-copy h2,
  body .entry-content .smhc-map-copy h2{
    font-size:30px !important;
    line-height:1.35 !important;
  }

  .smhc-heading p,
  .smhc-map-copy p{
    font-size:11px;
  }

  .smhc-guide-layout{
    display:block;
  }

  .smhc-guide-feature-body{
    min-height:0;
    padding:19px 21px 17px;
  }

  .smhc-guide-feature-image{
    aspect-ratio:16/9;
  }

  body .article .smhc-guide-feature h3,
  body .entry-content .smhc-guide-feature h3{
    margin-top:9px !important;
    font-size:19px !important;
    line-height:1.45 !important;
  }

  .smhc-guide-feature p{
    margin-top:8px;
    font-size:10px;
    line-height:1.75;
    -webkit-line-clamp:2;
  }

  .smhc-card-link{
    margin-top:13px;
    padding-top:12px;
  }

  .smhc-guide-list{
    margin-top:14px;
    margin-right:-20px;
    padding-right:20px;
    display:flex;
    gap:12px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
  }

  .smhc-guide-list::-webkit-scrollbar{
    display:none;
  }

  .smhc-guide-compact{
    flex:0 0 78%;
    display:block;
    min-height:0;
    scroll-snap-align:start;
  }

  .smhc-guide-compact-image{
    min-height:0;
    aspect-ratio:16/9;
  }

  .smhc-guide-compact-body{
    min-height:118px;
    padding:17px 34px 17px 18px;
  }

  body .article .smhc-guide-compact h3,
  body .entry-content .smhc-guide-compact h3{
    font-size:16px !important;
    line-height:1.5 !important;
  }

  .smhc-map-intro{
    grid-template-columns:1fr;
    gap:30px;
  }

  .smhc-map-copy h2 br{
    display:none;
  }

  .smhc-map-grid{
    margin-right:-20px;
    padding-right:20px;
    display:flex;
    gap:12px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
  }

  .smhc-map-grid::-webkit-scrollbar{
    display:none;
  }

  .smhc-map-card{
    flex:0 0 76%;
    scroll-snap-align:start;
  }

  .smhc-rating-note{
    grid-template-columns:46px minmax(0,1fr);
    gap:14px;
    padding:18px;
  }

  .smhc-a-mark{
    width:46px;
    height:46px;
    font-size:24px;
  }
}

@media (prefers-reduced-motion:reduce){
  .smhc-shell img,
  .smhc-shell a{
    transition:none !important;
  }
}
