/* page hero */
.page-hero{position:relative;overflow:hidden;padding:60px 20px 70px;text-align:center;background-image:url('../img/aboutus_02.jpg');background-size:cover;background-position:center;}
.hero-overlay{position:absolute;inset:0;background:#000;opacity:.25;z-index:0;}
.blob{position:absolute;border-radius:60% 40% 55% 45%/45% 55% 40% 60%;opacity:.5;z-index:1;}
.blob1{width:220px;height:220px;background:#fff;top:-70px;left:-50px;}
.blob2{width:180px;height:180px;background:var(--header-bg);bottom:-60px;right:-40px;opacity:.35;}
.page-hero-inner{position:relative;z-index:2;max-width:820px;margin:0 auto;}
.page-hero-badge{display:inline-block;background:#fff;color:var(--accent1);font-weight:700;font-size:13px;padding:8px 20px;border-radius:30px;margin-bottom:20px;box-shadow:0 6px 14px rgba(0,0,0,.08);}
.page-hero-title{font-family:'M PLUS Rounded 1c',sans-serif;font-size:2.4rem;font-weight:800;color:#fff;margin-bottom:16px;text-shadow:2px 2px 0 var(--accent1);}
.page-hero-sub{color:#fff;font-weight:500;font-size:.95rem;}

/* sections */
.section{max-width:1160px;margin:0 auto;padding:70px 24px;}
.section-head{text-align:center;margin-bottom:44px;}
.section-title{font-family:'Baloo 2',sans-serif;font-size:2rem;color:var(--accent1);font-weight:800;}
.section-title::before{content:'✿ ';}
.section-title::after{content:' ✿';}

.intro-card{max-width:900px;margin:0 auto;background:#fff;border-radius:30px;padding:44px;text-align:center;box-shadow:0 10px 30px rgba(192,69,98,.08);border:3px solid var(--accent2);}
.intro-card p{font-size:16px;color:#7a5b68;text-align:left;}

/* store name banner */
.store-banner{max-width:1160px;margin:56px auto 0;background:#fff0f5;border-radius:30px;padding:36px;text-align:center;}
.store-banner h2{font-family:'Baloo 2',sans-serif;color:var(--accent1);font-size:1.8rem;margin-bottom:8px;}
.store-banner p{color:#7a5b68;font-size:16px;}

/* map */
.map-wrap{max-width:1160px;margin:0 auto;}
.map-box{border-radius:24px;height:380px;overflow:hidden;border:3px solid var(--accent2);margin-bottom:20px;}
.map-box iframe{width:100%;height:100%;border:0;display:block;}
.map-note{text-align:center;}
.map-note h3{color:var(--accent1);margin-bottom:8px;font-weight:700;}
.map-note p{color:#7a5b68;font-size:16px;}

/* details table */
.details{background:#fff;border-radius:30px;padding:20px 40px;box-shadow:0 10px 30px rgba(192,69,98,.08);}
.info-row{display:flex;gap:20px;padding:20px 0;border-bottom:2px dotted var(--accent2);font-size:16px;}
.info-row:last-child{border-bottom:none;}
.info-row .label{color:var(--accent1);font-weight:700;min-width:100px;}
.info-row .highlight{color:var(--base);font-weight:800;}

/* gallery */
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.gallery-item{position:relative;border-radius:20px;overflow:hidden;border:4px solid #fff;box-shadow:0 10px 24px rgba(0,0,0,.1);transition:.3s;cursor:pointer;}
.gallery-item:hover{transform:translateY(-6px);border-color:var(--accent2);}
.gallery-item img{width:100%;height:200px;object-fit:cover;}
.gallery-caption{position:absolute;left:0;right:0;bottom:0;background:rgba(49,49,101,.75);color:#fff;text-align:center;padding:10px;font-size:.82rem;font-weight:700;}

/* lightbox */
.lightbox{display:none;position:fixed;inset:0;background:rgba(49,49,101,.9);z-index:2000;align-items:center;justify-content:center;padding:40px 20px;}
.lightbox.active{display:flex;}
.lightbox-inner{position:relative;max-width:900px;width:100%;text-align:center;}
.lightbox-inner img{width:100%;max-height:78vh;object-fit:contain;border-radius:16px;border:5px solid #fff;}
.lightbox-caption{color:#fff;margin-top:16px;font-weight:700;font-size:1rem;}
.lightbox-close{position:absolute;top:-46px;right:0;width:38px;height:38px;border-radius:50%;background:#fff;color:var(--accent1);border:none;font-size:20px;font-weight:800;cursor:pointer;line-height:1;}
.lightbox-close:hover{background:var(--accent2);color:#fff;}

@media (max-width:860px){
  .gallery-grid{grid-template-columns:1fr 1fr;}
  .page-hero-title{font-size:1.9rem;}
  .details{padding:16px 22px;}
  .info-row{flex-direction:column;gap:4px;font-size:.92rem;}
  .intro-card p{font-size:.92rem;}
  .store-banner p{font-size:.95rem;}
  .map-note p{font-size:.9rem;}
}
@media (max-width:560px){
  .gallery-grid{grid-template-columns:1fr;}
}
