/* ==========================================================================
   そよ風薬局 松川店 - style.css
   白 × 緑を基調に、そよ風のようなやわらかさを表現
   ========================================================================== */

:root{
  --green-900:#1e4a38;
  --green-800:#245a44;
  --green-700:#2b6e53;
  --green-600:#347f60;
  --green-500:#4a9c78;
  --green-300:#8fc9ac;
  --green-100:#e6f5ee;
  --green-050:#f4faf7;
  --pink-400:#f2a8b8;
  --pink-100:#fdedf1;
  --text:#24322c;
  --text-soft:#4b5a53;
  --white:#ffffff;
  --shadow:0 10px 30px -14px rgba(30,74,56,.35);
  --radius-lg:26px;
  --radius-md:16px;
  --font-jp:'Zen Maru Gothic','Hiragino Maru Gothic ProN','Yu Gothic',sans-serif;
  --font-breeze:'Yomogi','Apple Chancery',var(--font-jp);
  --font-en:'Apple Chancery',var(--font-breeze);
  --ease:cubic-bezier(.22,.7,.32,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  margin:0;
  font-family:var(--font-jp);
  color:var(--text);
  background:var(--white);
  line-height:1.85;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;display:block}
a{color:var(--green-700)}
a:hover{color:var(--green-900)}
h1,h2,h3,h4{font-family:var(--font-breeze);color:var(--green-900);line-height:1.5;margin:0}
p{margin:0}
ul{margin:0;padding:0;list-style:none}
table{border-collapse:collapse;width:100%}

:focus-visible{outline:3px solid var(--pink-400);outline-offset:3px;border-radius:4px}

.visually-hidden{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

.skip-link{
  position:absolute;left:1rem;top:-4rem;background:var(--green-800);color:var(--white);
  padding:.75rem 1.25rem;border-radius:0 0 10px 10px;z-index:200;transition:top .25s var(--ease);
}
.skip-link:focus{top:0}

/* -------------------- Header -------------------- */
.site-header{
  position:sticky;top:0;z-index:100;background:rgba(255,255,255,.9);
  backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid var(--green-100);
}
.header-inner{
  max-width:1180px;margin:0 auto;padding:.6rem 1.25rem;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;min-width:0}
.brand-logo{width:56px;height:56px;object-fit:contain;flex-shrink:0}
.brand-text{display:flex;flex-direction:column;line-height:1.3;min-width:0}
.brand-name{font-family:var(--font-breeze);font-size:1.15rem;font-weight:700;color:var(--green-900)}
.brand-sub{font-size:.72rem;color:var(--text-soft)}

.nav-toggle{
  display:none;width:44px;height:44px;border:none;background:var(--green-050);
  border-radius:12px;position:relative;cursor:pointer;flex-shrink:0;
}
.nav-toggle-bar,.nav-toggle-bar::before,.nav-toggle-bar::after{
  content:'';position:absolute;left:0;right:0;height:2px;background:var(--green-800);border-radius:2px;transition:transform .25s var(--ease),opacity .25s var(--ease);
}
.nav-toggle-bar{left:11px;right:11px;top:21px}
.nav-toggle-bar::before{top:-7px}
.nav-toggle-bar::after{top:7px}
.nav-toggle[aria-expanded="true"] .nav-toggle-bar{background:transparent}
.nav-toggle[aria-expanded="true"] .nav-toggle-bar::before{transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] .nav-toggle-bar::after{transform:translateY(-7px) rotate(-45deg)}

.site-nav ul{display:flex;gap:1.6rem;flex-wrap:wrap}
.site-nav a{
  text-decoration:none;color:var(--text);font-weight:500;font-size:.95rem;
  padding:.4rem .1rem;border-bottom:2px solid transparent;transition:color .2s,border-color .2s;
}
.site-nav a:hover{color:var(--green-800);border-color:var(--green-500)}

@media (max-width:860px){
  .nav-toggle{display:block}
  .site-nav{
    position:absolute;top:100%;left:0;right:0;background:var(--white);
    border-bottom:1px solid var(--green-100);
    max-height:0;overflow:hidden;transition:max-height .3s var(--ease);
  }
  .site-nav.is-open{max-height:420px}
  .site-nav ul{flex-direction:column;gap:0;padding:.5rem 1.25rem 1.25rem}
  .site-nav a{display:block;padding:.75rem 0;border-bottom:1px solid var(--green-050)}
}

@media (max-width:480px){
  .header-inner{padding:.5rem .9rem;gap:.6rem}
  .brand{gap:.55rem}
  .brand-logo{width:42px;height:42px}
  .brand-name{font-size:1rem}
  .brand-sub{font-size:.64rem}
  .nav-toggle{width:40px;height:40px}
}

/* -------------------- Hero -------------------- */
.hero{position:relative;overflow:hidden;min-height:min(92vh,780px);display:flex;align-items:center}
.hero-bg{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(14,38,28,.35),rgba(14,38,28,.5)),url('IMAGE/外観（修正版）.png') center/cover no-repeat;
}
.hero-leaf{position:absolute;width:220px;height:220px;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.35),transparent 60%);border-radius:50%;filter:blur(2px);opacity:.7;animation:drift 16s linear infinite}
.leaf-a{top:8%;left:-10%;animation-duration:22s}
.leaf-b{bottom:6%;right:-8%;width:280px;height:280px;animation-duration:28s;animation-direction:reverse}
@keyframes drift{
  0%{transform:translateX(0) translateY(0) rotate(0)}
  50%{transform:translateX(6vw) translateY(-2vh) rotate(8deg)}
  100%{transform:translateX(0) translateY(0) rotate(0)}
}
@media (prefers-reduced-motion:reduce){.hero-leaf{animation:none}}

.hero-inner{position:relative;z-index:2;max-width:1180px;margin:0 auto;padding:6rem 1.5rem;color:var(--white)}
.hero-panel{
  max-width:640px;background:rgba(12,34,25,.62);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-lg);padding:2.5rem 2.25rem;
}
.hero-eyebrow{font-family:var(--font-en);letter-spacing:.08em;color:var(--pink-400);margin-bottom:.75rem;font-size:1.05rem}
.hero-title{font-size:clamp(1.9rem,4.4vw,3.1rem);color:var(--white);max-width:18ch}
.hero-text{margin-top:1.5rem;max-width:56ch;font-size:1.02rem;color:#f2f8f5}
.hero-actions{margin-top:2.25rem;display:flex;gap:1rem;flex-wrap:wrap}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.9rem 1.7rem;border-radius:999px;text-decoration:none;font-weight:700;
  transition:transform .2s var(--ease),box-shadow .2s var(--ease),background .2s;
  border:2px solid transparent;font-size:.98rem;
}
.btn-primary{background:var(--green-700);color:var(--white);box-shadow:var(--shadow)}
.btn-primary:hover{background:var(--green-800);transform:translateY(-2px);color:var(--white)}
.btn-outline{border-color:var(--white);color:var(--white)}
.btn-outline:hover{background:rgba(255,255,255,.15);color:var(--white);transform:translateY(-2px)}

/* -------------------- Sections -------------------- */
.section{padding:5.5rem 1.5rem}
.section-inner{max-width:1180px;margin:0 auto}
.section-eyebrow{font-family:var(--font-en);color:var(--green-500);letter-spacing:.1em;margin-bottom:.5rem}
.section-title{font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:1.25rem}
.section-lead{max-width:64ch;color:var(--text-soft);margin-bottom:2.5rem;font-size:1.02rem}

.service-section{background:linear-gradient(180deg,var(--green-050),var(--white))}

.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}
.card{
  background:var(--white);border:1px solid var(--green-100);border-radius:var(--radius-lg);
  padding:2rem 1.6rem;box-shadow:var(--shadow);opacity:0;transform:translateY(18px);
  transition:opacity .6s var(--ease),transform .6s var(--ease);
}
.card.is-visible{opacity:1;transform:translateY(0)}
.card-icon{width:56px;height:56px;object-fit:contain;margin-bottom:1.1rem}
.card h3{font-size:1.08rem;margin-bottom:.6rem;color:var(--green-800)}
.card p{color:var(--text-soft);font-size:.94rem}

/* -------------------- Tables / info -------------------- */
.info-table-wrap{overflow-x:auto;border-radius:var(--radius-md);border:1px solid var(--green-100)}
.info-table th,.info-table td{padding:.9rem 1.1rem;text-align:left;border-bottom:1px solid var(--green-100);font-size:.95rem}
.info-table th{background:var(--green-050);width:15em;color:var(--green-800);font-weight:700;white-space:nowrap}
.info-table tr:last-child th,.info-table tr:last-child td{border-bottom:none}

.legal-details{margin-top:1.75rem;border:1px solid var(--green-100);border-radius:var(--radius-md);padding:.25rem 0;background:var(--green-050)}
.legal-details summary{
  cursor:pointer;padding:1.1rem 1.4rem;font-weight:700;color:var(--green-800);
  list-style:none;display:flex;align-items:center;gap:.6rem;
}
.legal-details summary::before{content:'▸';transition:transform .2s var(--ease);color:var(--green-500)}
.legal-details[open] summary::before{transform:rotate(90deg)}
.legal-details summary::-webkit-details-marker{display:none}
.legal-details > .info-table,.legal-details > .plain-list,.legal-details > .notice-block{margin:0 1.4rem 1.3rem}
.legal-details .info-table-wrap{margin:0 1.4rem 1.3rem;background:var(--white)}

.plain-list li{position:relative;padding:.35rem 0 .35rem 1.3rem;color:var(--text-soft);font-size:.94rem}
.plain-list li::before{content:'';position:absolute;left:0;top:1rem;width:6px;height:6px;border-radius:50%;background:var(--green-500)}

.notice-block{background:var(--white);border-radius:var(--radius-md);padding:1.2rem 1.4rem;margin-bottom:1rem}
.notice-block:last-child{margin-bottom:0}
.notice-block h4{font-size:1rem;color:var(--green-800);margin-bottom:.6rem}
.notice-block p{color:var(--text-soft);font-size:.93rem;margin-bottom:.6rem}
.notice-block p:last-child{margin-bottom:0}

/* -------------------- Store -------------------- */
.store-section{background:var(--green-900);color:var(--white)}
.store-section .section-title{color:var(--white)}
.store-card{
  background:var(--white);border-radius:var(--radius-lg);overflow:hidden;
  display:grid;grid-template-columns:1fr;box-shadow:0 30px 60px -30px rgba(0,0,0,.5);
}
@media (min-width:960px){.store-card{grid-template-columns:.85fr 1.15fr;align-items:start}}
.store-media{background:var(--green-100);aspect-ratio:1448/1086}
.store-media img{width:100%;height:100%;object-fit:contain}
.store-body{padding:2.25rem 2rem;color:var(--text)}
.store-name{font-size:1.6rem;color:var(--green-900);margin-bottom:1rem}
.store-intro{color:var(--text-soft);margin-bottom:2rem}

.store-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.75rem;margin-bottom:1rem}
.store-item h4{font-size:.9rem;color:var(--green-700);letter-spacing:.03em;margin-bottom:.55rem}
.store-item p{color:var(--text-soft);font-size:.93rem;margin-bottom:.2rem}
.store-access{color:var(--green-700);font-weight:600}
.map-link{display:inline-block;margin-top:.4rem;font-size:.88rem}

.hours-table th,.hours-table td{padding:.25rem .6rem .25rem 0;font-size:.9rem;text-align:left;color:var(--text-soft)}
.hours-table th{color:var(--green-800);font-weight:700;width:2.4em}

.chip-list{display:flex;flex-wrap:wrap;gap:.5rem}
.chip-list li{background:var(--green-050);color:var(--green-800);padding:.35rem .85rem;border-radius:999px;font-size:.85rem}

.icon-chip-list{display:flex;flex-wrap:wrap;gap:.6rem 1rem}
.icon-chip-list li{display:flex;align-items:center;gap:.4rem;font-size:.87rem;color:var(--text-soft)}
.icon-chip-list img{width:22px;height:22px;object-fit:contain}

.store-pdf{margin-top:2rem}

/* -------------------- News -------------------- */
.news-list{display:flex;flex-direction:column;gap:1.1rem;max-width:820px}
.news-item{
  display:grid;grid-template-columns:9em 1fr;gap:1.3rem;padding:1.4rem 1.6rem;
  background:var(--green-050);border-radius:var(--radius-md);border-left:4px solid var(--green-500);
}
.news-date{color:var(--green-700);font-weight:700;font-size:.9rem}
.news-title{color:var(--green-900);font-weight:700;margin-bottom:.4rem}
.news-body{color:var(--text-soft);font-size:.92rem}
@media (max-width:600px){.news-item{grid-template-columns:1fr}}
.news-loading,.news-empty{color:var(--text-soft)}

/* -------------------- Recruit -------------------- */
.recruit-section{background:linear-gradient(180deg,var(--white),var(--pink-100))}
.recruit-box{
  display:flex;align-items:center;gap:1.5rem;background:var(--white);border:1px solid var(--green-100);
  border-radius:var(--radius-lg);padding:2rem;max-width:720px;box-shadow:var(--shadow);
}
.recruit-icon{width:56px;height:56px;object-fit:contain;flex-shrink:0}
.recruit-box p{color:var(--text-soft)}

/* -------------------- Contact -------------------- */
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.5rem;margin-bottom:2rem}
.contact-card{
  display:flex;flex-direction:column;align-items:flex-start;gap:.6rem;text-decoration:none;
  background:var(--green-050);border-radius:var(--radius-md);padding:1.6rem;color:var(--text);
  transition:transform .2s var(--ease),box-shadow .2s var(--ease);border:1px solid transparent;
}
.contact-card:not(.contact-card-static):hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--green-300)}
.contact-label{font-size:.85rem;color:var(--green-700);font-weight:700}
.contact-value{font-size:1.05rem;color:var(--green-900);font-weight:700}
.contact-note{color:var(--text-soft);font-size:.9rem}

/* -------------------- Footer -------------------- */
.site-footer{background:var(--green-900);color:#dcece4;padding:3rem 1.5rem 2rem}
.footer-inner{max-width:1180px;margin:0 auto;display:flex;flex-wrap:wrap;gap:2rem;justify-content:space-between;align-items:center}
.footer-brand{display:flex;align-items:center;gap:.8rem}
.footer-brand img{width:44px;height:44px;object-fit:contain}
.footer-brand small{color:#a9c7ba}
.footer-nav{display:flex;flex-wrap:wrap;gap:1rem 1.4rem}
.footer-nav a{color:#dcece4;text-decoration:none;font-size:.9rem}
.footer-nav a:hover{color:var(--white);text-decoration:underline}
.footer-copy{width:100%;text-align:center;color:#a9c7ba;font-size:.82rem;margin-top:1.5rem}
