/* PiKori shared stylesheet — used by /service/*, /price/, /works/*, /area/*, /corporate/
   (index.html and business.html keep their own inline styles, unchanged from before) */
:root{
  --blue:#0e7c9d;
  --blue-dark:#0a5e78;
  --blue-light:#e8f6fa;
  --accent:#ffb703;
  --text:#243b45;
  --muted:#5c7480;
  --bg:#ffffff;
  --radius:14px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:"BIZ UDPGothic","Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.9;
  letter-spacing:.01em;
}
/* Headings and heavy-weight display text use Noto Sans JP for a crisp 900-weight render
   (BIZ UDPGothic only ships 400/700, so heavier elements stay on the font that has real black weight) */
h1,h2,h3,.section-title,.page-hero h1,.price-card h3,.gallery-caption h3,.logo,.footer-logo,.phone-cta strong{
  font-family:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  letter-spacing:.02em;
}
a{text-decoration:none;color:inherit;}
img{max-width:100%;display:block;}
.container{max-width:1120px;margin:0 auto;padding:0 20px;}
section{padding:64px 0;}
h1,h2,h3{line-height:1.5;}
p,li{letter-spacing:.01em;}
.eyebrow{
  display:inline-block;color:var(--blue);font-weight:700;font-size:14px;letter-spacing:.08em;
  background:var(--blue-light);padding:4px 14px;border-radius:999px;margin-bottom:14px;
}
.section-title{font-size:clamp(24px,4vw,32px);font-weight:900;color:var(--blue-dark);margin-bottom:16px;}
.section-lead{color:var(--muted);max-width:680px;margin-bottom:40px;line-height:1.9;}
.breadcrumb{font-size:13px;color:var(--muted);margin-bottom:20px;}
.breadcrumb a{color:var(--blue);}
.breadcrumb span{margin:0 6px;}

header{
  position:sticky;top:0;z-index:100;background:rgba(255,255,255,.96);
  backdrop-filter:blur(6px);border-bottom:1px solid #eef2f4;
}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;max-width:1400px;margin:0 auto;gap:16px;flex-wrap:wrap;}
nav{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
nav a.navlink{font-size:14px;font-weight:500;color:var(--text);white-space:nowrap;}
nav a.navlink:hover{color:var(--blue);}
.corp-link{font-size:12px;font-weight:700;color:var(--blue-dark);background:var(--blue-light);padding:8px 14px;border-radius:999px;white-space:nowrap;}
.header-cta{display:flex;align-items:center;gap:12px;flex-shrink:0;}
.mobile-toggle{display:none;margin-left:4px;background:none;border:none;font-size:24px;line-height:1;color:var(--blue-dark);cursor:pointer;padding:4px 8px;}

@media (max-width:960px){
  header{position:relative;}
  nav{
    display:none;position:absolute;top:100%;left:0;right:0;
    flex-direction:column;align-items:flex-start;gap:4px;
    background:#fff;border-bottom:1px solid #eef2f4;box-shadow:0 12px 20px rgba(20,50,60,.08);
    padding:8px 20px 16px;
  }
  nav a.navlink{padding:10px 0;width:100%;}
  header.nav-open nav{display:flex;}
  .mobile-toggle{display:block;}
}

.btn{display:inline-block;padding:13px 28px;border-radius:999px;font-weight:700;font-size:15px;border:none;cursor:pointer;transition:transform .15s ease, box-shadow .15s ease;}
.btn-primary{background:var(--blue);color:#fff;box-shadow:0 8px 20px rgba(14,124,157,.28);}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(14,124,157,.35);}
.btn-line{background:#06C755;color:#fff;box-shadow:0 8px 20px rgba(6,199,85,.28);}
.btn-outline{border:2px solid var(--blue);color:var(--blue);}
.btn-block{display:block;text-align:center;}
.btn-row{display:flex;flex-wrap:wrap;gap:14px;}

.page-hero{background:linear-gradient(135deg,var(--blue-light) 0%, #f6fbfc 60%);padding:56px 0;}
.page-hero h1{font-size:clamp(26px,4.4vw,38px);font-weight:900;color:var(--blue-dark);margin-bottom:14px;}
.page-hero p{color:var(--muted);max-width:640px;}

.card{background:#fff;border:1px solid #eef2f4;border-radius:var(--radius);box-shadow:0 4px 14px rgba(20,50,60,.04);}

/* Price */
.price-groups{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;margin-bottom:28px;}
.price-card{background:#fff;border:1px solid #eef2f4;border-radius:var(--radius);padding:28px;box-shadow:0 4px 14px rgba(20,50,60,.04);}
.price-card h3{color:var(--blue-dark);font-size:17px;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid var(--blue-light);}
.price-card h4{font-size:12px;color:var(--blue);font-weight:700;letter-spacing:.04em;margin:18px 0 6px;}
.price-card h4:first-of-type{margin-top:4px;}
.price-row{display:flex;justify-content:space-between;align-items:baseline;gap:14px;font-size:14px;padding:8px 0;border-bottom:1px dashed #eef2f4;}
.price-row:last-child{border-bottom:none;}
.price-row .item{color:var(--text);}
.price-row .sub{display:block;font-size:12px;color:var(--muted);margin-top:2px;}
.price-row .amount{font-weight:900;color:var(--blue-dark);white-space:nowrap;font-size:15px;}
.price-strike{text-decoration:line-through;color:var(--muted);font-size:12px;font-weight:400;margin-right:6px;}
.price-repeater{background:#fff8e8;border-color:#ffe3a3;}
.price-repeater h3{border-color:#ffe3a3;}
.note-box{background:#fff8e8;border-left:4px solid var(--accent);padding:16px 18px;border-radius:8px;font-size:14px;color:var(--muted);}
@media (max-width:800px){ .price-groups{grid-template-columns:1fr;} }

/* Gallery (Before/After) */
.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;}
.gallery-card{background:#fff;border:1px solid #eef2f4;border-radius:var(--radius);overflow:hidden;box-shadow:0 4px 14px rgba(20,50,60,.04);}
.gallery-compare{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#e4e9eb;}
.ba-item{position:relative;aspect-ratio:3/4;overflow:hidden;background:#eef2f4;}
.ba-item img{width:100%;height:100%;object-fit:contain;display:block;background:#eef2f4;}
.ba-tag{position:absolute;top:10px;left:10px;font-size:11px;font-weight:900;letter-spacing:.05em;padding:4px 10px;border-radius:6px;color:#fff;}
.ba-tag.before{background:rgba(90,100,105,.85);}
.ba-tag.after{background:rgba(14,124,157,.9);}
.gallery-caption{padding:16px 18px;}
.gallery-caption h3{font-size:15px;color:var(--blue-dark);margin-bottom:4px;}
.gallery-caption p{font-size:13px;color:var(--muted);}
.gallery-card a.gallery-link{display:block;}
@media (max-width:720px){ .gallery-grid{grid-template-columns:1fr;} }

/* Service list (used on /service/*) */
.service-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
@media (max-width:900px){ .service-grid-3{grid-template-columns:1fr;} }
.service-mini{background:#fff;border:1px solid #eef2f4;border-radius:var(--radius);padding:20px;text-align:center;box-shadow:0 4px 14px rgba(20,50,60,.04);}
.service-mini.active{border-color:var(--blue);background:var(--blue-light);}
.service-mini h4{font-size:14px;color:var(--blue-dark);margin-top:8px;}

/* Area list */
.area-badges{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin:20px 0;}
.area-badges li{background:#fff;border:1px solid #d7edf3;color:var(--blue-dark);font-weight:700;font-size:14px;padding:8px 16px;border-radius:999px;}
.area-badges a{background:#fff;border:1px solid #d7edf3;color:var(--blue-dark);font-weight:700;font-size:14px;padding:8px 16px;border-radius:999px;display:inline-block;}
.area-badges a:hover{background:var(--blue-light);}

/* Voice */
.voice-card{background:#fff;border:1px solid #eef2f4;border-radius:var(--radius);padding:24px;box-shadow:0 4px 14px rgba(20,50,60,.04);}
.voice-stars{color:var(--accent);font-size:16px;margin-bottom:10px;letter-spacing:2px;}
.voice-card p{font-size:14px;color:var(--text);margin-bottom:14px;}
.voice-name{font-size:13px;color:var(--muted);font-weight:700;}

/* FAQ */
.faq-item{border-bottom:1px solid #eef2f4;}
.faq-q{
  width:100%;text-align:left;background:none;border:none;
  padding:20px 4px;font-size:15px;font-weight:700;color:var(--text);
  display:flex;justify-content:space-between;align-items:center;cursor:pointer;
}
.faq-q .icon{color:var(--blue);font-size:20px;transition:transform .2s ease;}
.faq-item.open .faq-q .icon{transform:rotate(45deg);}
.faq-a{
  max-height:0;overflow:hidden;transition:max-height .25s ease;
  font-size:14px;color:var(--muted);padding:0 4px;
}
.faq-item.open .faq-a{padding-bottom:18px;}

/* Flow (used on /service/*) */
.flow-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;}
.flow-step{background:#fff;border:1px solid #eef2f4;border-radius:var(--radius);padding:24px 18px;text-align:center;}
.flow-num{width:36px;height:36px;border-radius:50%;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;margin:0 auto 14px;}
.flow-step h3{font-size:15px;margin-bottom:6px;}
.flow-step p{font-size:13px;color:var(--muted);}
@media (max-width:960px){ .flow-grid{grid-template-columns:repeat(2,1fr);} }

/* Area page: neighboring links / stub notices */
.area-links{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin-top:12px;}
.area-links a{background:#fff;border:1px solid #d7edf3;color:var(--blue-dark);font-weight:700;font-size:13px;padding:6px 14px;border-radius:999px;display:inline-block;}
.area-links a:hover{background:var(--blue-light);}
.stub-box{background:#fdf6e8;border:1px dashed #e0b84a;border-radius:8px;padding:16px 18px;font-size:13px;color:#7a5c10;}

/* CTA band */
.cta-band{background:linear-gradient(120deg,var(--blue) 0%,var(--blue-dark) 100%);color:#fff;text-align:center;}
.cta-band h2{font-size:clamp(22px,4vw,30px);font-weight:900;margin-bottom:14px;}
.cta-band p{opacity:.9;margin-bottom:30px;}
.cta-band .btn-row{justify-content:center;}
.cta-band .btn-outline{border-color:#fff;color:#fff;}

/* Footer */
footer{background:#0c2a33;color:#cfe4ea;padding:50px 0 24px;font-size:13px;}
.footer-inner{display:flex;justify-content:space-between;flex-wrap:wrap;gap:32px;margin-bottom:32px;}
.footer-logo{font-size:20px;font-weight:900;color:#fff;margin-bottom:10px;}
.footer-col h4{color:#fff;font-size:14px;margin-bottom:14px;}
.footer-col a{display:block;margin-bottom:8px;color:#a9c6ce;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:20px;text-align:center;color:#7f9aa1;}


/* Scroll reveal (controlled by /assets/reveal.js) */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s cubic-bezier(.2,.7,.3,1),transform .7s cubic-bezier(.2,.7,.3,1);}
.reveal.in-view{opacity:1;transform:translateY(0);}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none;}
}

/* Column (お役立ち記事) */
.column-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
@media (max-width:900px){ .column-grid{grid-template-columns:1fr;} }
.column-card{background:#fff;border:1px solid #eef2f4;border-radius:var(--radius);overflow:hidden;box-shadow:0 4px 14px rgba(20,50,60,.04);display:flex;flex-direction:column;transition:transform .3s ease, box-shadow .3s ease;}
.column-card:hover{transform:translateY(-6px);box-shadow:0 16px 30px rgba(20,50,60,.1);}
.column-card-body{padding:22px;display:flex;flex-direction:column;gap:10px;flex:1;}
.column-card-body h3{font-size:16px;color:var(--blue-dark);line-height:1.6;}
.column-meta{font-size:12px;color:var(--muted);}
.column-card-body p{font-size:13px;color:var(--muted);flex:1;}

/* Article body typography (column articles) */
.article-body{max-width:760px;margin:0 auto;}
.article-body h2{font-size:clamp(20px,3.4vw,26px);color:var(--blue-dark);margin:40px 0 16px;}
.article-body h2:first-child{margin-top:0;}
.article-body h3{font-size:17px;color:var(--blue-dark);margin:28px 0 10px;}
.article-body p{margin-bottom:16px;color:var(--text);}
.article-body ul,.article-body ol{margin:0 0 16px 1.4em;}
.article-body li{margin-bottom:8px;}
.article-meta{display:flex;flex-wrap:wrap;gap:16px;font-size:13px;color:var(--muted);margin-bottom:28px;padding-bottom:20px;border-bottom:1px solid #eef2f4;}
.article-meta a{color:var(--blue);font-weight:700;}

/* Seasonal link toggle: add "seasonal-off" alongside "seasonal-link" to hide sitewide once the season ends */
.seasonal-link.seasonal-off{display:none !important;}

/* Gentle "flip/lift" hover for price cards */
.price-card{transition:transform .35s ease, box-shadow .35s ease;}
.price-card:hover{transform:perspective(900px) rotateX(3deg) translateY(-8px);box-shadow:0 22px 40px rgba(20,50,60,.14);}

/* Cards lift softly on hover */
.gallery-card,.voice-card,.service-mini{transition:transform .3s ease, box-shadow .3s ease;}
.gallery-card:hover,.voice-card:hover,.service-mini:hover{transform:translateY(-6px);box-shadow:0 16px 30px rgba(20,50,60,.1);}
@media (prefers-reduced-motion:reduce){
  .price-card:hover,.gallery-card:hover,.voice-card:hover,.service-mini:hover{transform:none;}
}
