
.pilimals-amami-map{
  --ink:#2d5c72;
  --muted:#6d7b76;
  --accent:#82a89d;
  --cream:#fffdf8;
  --warm:#f8f6ef;
  --mint:#eef7f3;
  --line:rgba(64,96,85,.10);

  width:100%;
  margin:0;
  padding:0 0 88px;
  background:var(--cream);
  color:var(--ink);
  overflow:hidden;
}

/* NATURE page only */
body.page-id-390{background:#f4f5f2!important;}
body.page-id-390 #content,
body.page-id-390 #main,
body.page-id-390 .main,
body.page-id-390 .article,
body.page-id-390 .entry-content{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding-left:0!important;
  padding-right:0!important;
  background:transparent!important;
  box-shadow:none!important;
  border:0!important;
}
body.page-id-390 #sidebar,
body.page-id-390 .entry-title,
body.page-id-390 .date-tags,
body.page-id-390 .post-date,
body.page-id-390 .post-update,
body.page-id-390 .author-info,
body.page-id-390 .sns-share,
body.page-id-390 .sns-follow,
body.page-id-390 .footer-meta,
body.page-id-390 .breadcrumb,
body.page-id-390 .article-footer,
body.page-id-390 .post-navi,
body.page-id-390 .related-entry-heading,
body.page-id-390 .related-list,
body.page-id-390 .mobile-menu-buttons,
body.page-id-390 .mobile-footer-menu-buttons,
body.page-id-390 #mobile-menu-buttons,
body.page-id-390 .menu-mobile,
body.page-id-390 .mobile-button-fmb{
  display:none!important;
}

/* ---------- TOP ---------- */
.pilimals-amami-map__top{
  max-width:1360px;
  margin:0 auto;
  padding:88px 40px 78px;
  display:grid;
  grid-template-columns:minmax(360px,0.82fr) minmax(650px,1.18fr);
  gap:62px;
  align-items:center;
}

.pilimals-amami-map__hero{
  margin:0;
  padding:0;
  text-align:left;
}
.pilimals-amami-map__hero-kicker{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:12px;
  margin-bottom:20px;
}
.pilimals-amami-map__hero-number,
.pilimals-amami-map__hero-label{
  font-size:11px;
  letter-spacing:.2em;
  color:var(--accent);
}
.pilimals-amami-map__hero-number{
  padding-right:12px;
  border-right:1px solid rgba(130,168,157,.34);
}
.pilimals-amami-map__hero h1{
  max-width:590px;
  margin:0 0 24px;
  font-size:clamp(50px,4.3vw,72px);
  line-height:1.1;
  letter-spacing:.02em;
  color:var(--ink);
}
.pilimals-amami-map__hero-lead{
  max-width:520px;
  margin:0;
  font-size:14px;
  line-height:2;
  color:var(--muted);
}
.pilimals-amami-map__hero::after{
  content:"";
  display:block;
  width:62px;
  height:1px;
  margin-top:28px;
  background:rgba(130,168,157,.28);
}

/* ---------- MAP ---------- */
.pilimals-amami-map__map-section{
  position:relative;
  margin:0;
  padding:26px 30px 24px;
  border:1px solid var(--line);
  border-radius:28px;
  background:
    radial-gradient(circle at 13% 16%,rgba(205,230,220,.24) 0 95px,transparent 96px),
    linear-gradient(145deg,#f8fbfa,#edf7f3);
  box-shadow:0 20px 48px rgba(49,79,68,.07);
  overflow:hidden;
}
.pilimals-amami-map__map-label{
  text-align:left;
  margin:0 0 8px 4px;
}
.pilimals-amami-map__map-label span{
  display:block;
  font-size:11px;
  letter-spacing:.2em;
  color:var(--accent);
}
.pilimals-amami-map__map-label p{
  margin:5px 0 0;
  font-size:12px;
  color:var(--muted);
}
.pilimals-amami-map__canvas-wrap{
  width:100%;
  margin:0;
}
.pilimals-amami-map__canvas{
  position:relative;
  width:100%;
  aspect-ratio:0.590380227371 / 0.489459094200;
}
.pilimals-amami-map__base{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
.pilimals-amami-map__pins{
  position:absolute;
  inset:0;
}
.pilimals-amami-map__pin-svg{
  display:block;
  width:100%;
  height:100%;
  overflow:visible;
  pointer-events:none;
}
.pilimals-amami-map__pin{
  pointer-events:auto;
  cursor:pointer;
  outline:none;
  transform-box:fill-box;
  transform-origin:center;
}
.pilimals-amami-map__pin-hit{
  fill:transparent;
  pointer-events:all;
}
.pilimals-amami-map__pin-shape{
  fill:#ef4f7f;
  filter:drop-shadow(0 3px 3px rgba(45,70,62,.20));
  transition:transform .16s ease;
  transform-origin:0 0;
}
.pilimals-amami-map__pin-hole{fill:#fff;}
.pilimals-amami-map__pin:hover .pilimals-amami-map__pin-shape,
.pilimals-amami-map__pin:focus .pilimals-amami-map__pin-shape{
  transform:scale(1.12);
}

/* Tarto */
.pilimals-amami-map__guide{
  position:absolute;
  left:18px;
  bottom:14px;
  z-index:10;
  display:flex;
  align-items:flex-end;
  gap:10px;
  width:auto;
  pointer-events:none;
}
.pilimals-amami-map__guide-character{
  width:100px;
  height:auto;
  margin:0;
  filter:drop-shadow(0 10px 14px rgba(49,79,68,.11));
}
.pilimals-amami-map__guide-bubble{
  position:relative;
  left:auto;
  top:auto;
  width:145px;
  margin-bottom:36px;
  padding:11px 13px;
  border:1px solid rgba(73,111,98,.27);
  border-radius:22px;
  background:rgba(255,255,255,.95);
  color:#466b61;
  font-size:10px;
  line-height:1.65;
  text-align:center;
  box-shadow:0 8px 18px rgba(49,79,68,.055);
}
.pilimals-amami-map__guide-bubble strong,
.pilimals-amami-map__guide-bubble span{display:block;}

/* ---------- GALLERY ---------- */
.pilimals-amami-map__gallery-section{
  margin:0;
  padding:68px 40px 86px;
  background:var(--warm);
  border-top:1px solid rgba(64,96,85,.055);
}
.pilimals-amami-map__gallery-head,
.pilimals-amami-map__gallery{
  max-width:1360px;
  margin-left:auto;
  margin-right:auto;
}
.pilimals-amami-map__gallery-head{
  margin-bottom:30px;
  text-align:left;
}
.pilimals-amami-map__gallery-kicker{
  margin:0 0 8px;
  font-size:11px;
  letter-spacing:.2em;
  color:var(--accent);
}
.pilimals-amami-map__gallery-head h2{
  margin:0;
  padding:0!important;
  background:none!important;
  border:0!important;
  box-shadow:none!important;
  font-size:clamp(34px,3vw,48px);
  color:var(--ink);
}
.pilimals-amami-map__gallery{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:34px 24px;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}
.pilimals-amami-map__gallery-card{
  appearance:none;
  border:0;
  background:transparent;
  padding:0;
  text-align:left;
  cursor:pointer;
  min-width:0;
}
.pilimals-amami-map__gallery-image-wrap{
  position:relative;
  display:block;
  overflow:hidden;
  border-radius:20px;
  background:var(--mint);
  box-shadow:0 10px 24px rgba(49,79,68,.06);
}
.pilimals-amami-map__gallery-image{
  display:block;
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  transition:transform .3s ease;
}
.pilimals-amami-map__gallery-card:hover .pilimals-amami-map__gallery-image{
  transform:scale(1.015);
}
.pilimals-amami-map__gallery-badge{
  position:absolute;
  top:12px;
  left:12px;
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  border-radius:50%;
  background:rgba(255,255,255,.95);
  color:var(--ink);
  font-size:10px;
  font-weight:700;
}
.pilimals-amami-map__gallery-meta{
  display:block;
  padding:11px 2px 0;
}
.pilimals-amami-map__gallery-meta strong{
  display:block;
  margin-bottom:4px;
  font-size:15px;
  line-height:1.4;
  color:var(--ink);
}
.pilimals-amami-map__gallery-meta>span{
  display:block;
  font-size:11px;
  line-height:1.55;
  color:#77827e;
}

/* ---------- MODAL ---------- */
.pilimals-amami-map__modal{
  position:fixed;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  z-index:99999;
  opacity:0;
  visibility:hidden;
  transition:opacity .24s ease,visibility .24s ease;
}
.pilimals-amami-map__modal.is-open{opacity:1;visibility:visible;}
.pilimals-amami-map__modal-backdrop{
  position:absolute;
  inset:0;
  border:0;
  background:rgba(17,31,28,.38);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
}
.pilimals-amami-map__dialog{
  position:relative;
  width:min(860px,calc(100vw - 48px));
  max-height:calc(100vh - 48px);
  overflow:auto;
  background:#fffdf8;
  border-radius:28px;
  box-shadow:0 26px 70px rgba(20,43,36,.24);
  transform:translateY(22px) scale(.94);
  opacity:0;
  transition:transform .3s cubic-bezier(.2,.8,.2,1),opacity .24s ease;
  z-index:1;
}
.pilimals-amami-map__modal.is-open .pilimals-amami-map__dialog{
  transform:translateY(0) scale(1);
  opacity:1;
}
.pilimals-amami-map__close{
  position:absolute;
  top:14px;
  right:14px;
  width:40px;
  height:40px;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.93);
  color:#335e70;
  font-size:24px;
  cursor:pointer;
  z-index:3;
}
.pilimals-amami-map__dialog-content{display:block;}
.pilimals-amami-map__photo{
  display:block;
  width:100%;
  height:auto;
  max-height:68vh;
  object-fit:contain;
  background:#f3f5f2;
  border-radius:28px 28px 0 0;
}
.pilimals-amami-map__meta{
  display:block;
  padding:22px 28px 28px;
  border-top:1px solid rgba(65,96,84,.08);
}
.pilimals-amami-map__number{
  margin:0 0 7px;
  font-size:11px;
  letter-spacing:.18em;
  color:var(--accent);
}
.pilimals-amami-map__meta h3{
  margin:0 0 9px;
  font-size:25px;
  line-height:1.35;
  color:var(--ink);
}
.pilimals-amami-map__text{
  margin:0 0 9px;
  line-height:1.85;
  color:var(--muted);
}
.pilimals-amami-map__date{
  margin:0;
  font-size:11px;
  color:#98a49f;
}
body.pilimals-map-modal-open{overflow:hidden;}

/* ---------- TABLET ---------- */
@media(max-width:1050px){
  .pilimals-amami-map__top{
    max-width:900px;
    padding:64px 28px 70px;
    grid-template-columns:1fr;
    gap:38px;
  }
  .pilimals-amami-map__hero{text-align:center;}
  .pilimals-amami-map__hero-kicker{justify-content:center;}
  .pilimals-amami-map__hero h1,
  .pilimals-amami-map__hero-lead{margin-left:auto;margin-right:auto;}
  .pilimals-amami-map__hero::after{margin-left:auto;margin-right:auto;}
  .pilimals-amami-map__gallery-section{padding-left:28px;padding-right:28px;}
  .pilimals-amami-map__gallery{grid-template-columns:repeat(2,minmax(0,1fr));}
}

/* ---------- MOBILE ---------- */
@media(max-width:760px){
  .pilimals-amami-map__top{
    display:block;
    width:100%;
    padding:46px 16px 0;
  }
  .pilimals-amami-map__hero{
    text-align:center;
    padding:0 4px 30px;
  }
  .pilimals-amami-map__hero h1{
    max-width:100%;
    font-size:clamp(32px,10vw,44px);
    line-height:1.23;
  }
  .pilimals-amami-map__hero-lead{
    font-size:13px;
    line-height:1.95;
  }
  .pilimals-amami-map__map-section{
    margin:0 -16px;
    padding:32px 10px 108px;
    border-left:0;
    border-right:0;
    border-radius:0;
    box-shadow:none;
  }
  .pilimals-amami-map__map-label{text-align:center;margin-left:0;}
  .pilimals-amami-map__canvas-wrap{
    width:108%;
    margin-left:-4%;
  }
  .pilimals-amami-map__guide{
    left:8px;
    bottom:7px;
  }
  .pilimals-amami-map__guide-character{width:92px;}
  .pilimals-amami-map__guide-bubble{
    width:118px;
    margin-bottom:32px;
    padding:9px 10px;
    font-size:9.5px;
  }
  .pilimals-amami-map__gallery-section{
    padding:48px 16px 64px;
  }
  .pilimals-amami-map__gallery-head{margin-bottom:22px;}
  .pilimals-amami-map__gallery-head h2{
    font-size:30px;
    line-height:1.35;
  }
  .pilimals-amami-map__gallery{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:24px 12px;
  }
  .pilimals-amami-map__gallery-image-wrap{border-radius:16px;}
  .pilimals-amami-map__gallery-image{aspect-ratio:1/1;}
  .pilimals-amami-map__gallery-badge{
    top:9px;left:9px;width:29px;height:29px;font-size:10px;
  }
  .pilimals-amami-map__gallery-meta{padding:9px 2px 0;}
  .pilimals-amami-map__gallery-meta strong{font-size:13px;}
  .pilimals-amami-map__gallery-meta>span{
    font-size:10.5px;
    line-height:1.5;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .pilimals-amami-map__modal{
    padding:12px;
    align-items:flex-end;
  }
  .pilimals-amami-map__dialog{
    width:100%;
    max-height:88vh;
    border-radius:24px 24px 16px 16px;
    transform:translateY(34px) scale(.98);
  }
  .pilimals-amami-map__photo{
    max-height:66vh;
    border-radius:24px 24px 0 0;
  }
  .pilimals-amami-map__meta{
    padding:18px 20px 22px;
  }
  .pilimals-amami-map__meta h3{font-size:21px;}
}




/* ========================================
   v0.6.7 / ACCURATE FIXED-SIZE MAP PINS
   ======================================== */

/*
 * The geographic coordinate is the BOTTOM CENTER of each button.
 * No rotated shape is used, so the visible pin tip matches that anchor exactly.
 */
.pilimals-amami-map__pins{
  position:absolute !important;
  inset:0 !important;
  overflow:visible !important;
  pointer-events:none !important;
  z-index:20;
}

.pilimals-amami-map__pin-svg{
  display:none !important;
}

.pilimals-amami-map__pin{
  position:absolute !important;
  width:32px !important;
  height:40px !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  cursor:pointer !important;
  pointer-events:auto !important;
  transform:translate(-50%, -100%) !important;
  z-index:20;
}

.pilimals-amami-map__pin-marker{
  position:absolute;
  left:50%;
  bottom:0;
  width:24px;
  height:32px;
  transform:translateX(-50%);
}

.pilimals-amami-map__pin-marker::before{
  content:"";
  position:absolute;
  left:50%;
  top:0;
  width:24px;
  height:24px;
  transform:translateX(-50%);
  border-radius:50%;
  background:#ef4f7f;
  box-shadow:0 4px 8px rgba(54,78,70,.20);
}

.pilimals-amami-map__pin-marker::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:0;
  width:0;
  height:0;
  transform:translateX(-50%);
  border-left:7px solid transparent;
  border-right:7px solid transparent;
  border-top:11px solid #ef4f7f;
}

.pilimals-amami-map__pin:hover .pilimals-amami-map__pin-marker,
.pilimals-amami-map__pin:focus-visible .pilimals-amami-map__pin-marker{
  transform:translateX(-50%) scale(1.10);
  transform-origin:50% 100%;
}

.pilimals-amami-map__pin-marker::before{
  /* white center dot */
  background:
    radial-gradient(circle at center, #fff 0 3.5px, #ef4f7f 3.7px);
}

@media(max-width:760px){
  .pilimals-amami-map__pin{
    width:30px !important;
    height:38px !important;
  }

  .pilimals-amami-map__pin-marker{
    width:22px;
    height:30px;
  }

  .pilimals-amami-map__pin-marker::before{
    width:22px;
    height:22px;
  }

  .pilimals-amami-map__pin-marker::after{
    border-left-width:6px;
    border-right-width:6px;
    border-top-width:10px;
  }
}
