/*
Theme Name: AD-LIB AOMORI
Author: AD-LIB
Version: 4.0
Description: 合同会社AD-LIBオリジナルテーマ（暮らりスタイル）
*/


* { margin:0; padding:0; box-sizing:border-box; }
:root {
  --navy: #1D4E6B;
  --cream: #FAFAF5;
  --warm: #F0EBE0;
  --warm2: #E8E0D0;
  --text: #2a2826;
  --text-sub: #7a7570;
  --adagio-bg: #EDF4F8;
  --andante-bg: #EBF0F5;
  --allegro-bg: #FBF3E8;
  --accent: #BA7517;
}
html { scroll-behavior:smooth; }
body { font-family:'Noto Sans JP',sans-serif; color:var(--text); background:var(--cream); }

/* NAV */
.site-nav {
  position:sticky; top:0; z-index:100;
  background:var(--cream);
  border-bottom:2px solid var(--warm2);
  padding:0 2rem;
  display:flex; align-items:center; justify-content:space-between;
  height:70px;
}
.nav-logo {
  font-family:'Zen Kurenaido',serif;
  font-size:1.6rem; color:var(--navy);
  text-decoration:none; letter-spacing:0.05em;
  line-height:1;
}
.nav-logo small { display:block; font-size:0.55rem; font-family:'Noto Sans JP',sans-serif; font-weight:300; color:var(--text-sub); letter-spacing:0.15em; margin-top:3px; }
.site-nav ul { list-style:none; display:flex; gap:2rem; }
.site-nav ul a { text-decoration:none; color:var(--text-sub); font-size:0.78rem; }
.site-nav ul a:hover { color:var(--navy); }
.nav-recruit { background:var(--navy); color:#fff !important; padding:0.4rem 1rem; font-size:0.72rem !important; }

/* HERO */
.hero {
  background:var(--cream);
  padding:5rem 2rem 4rem;
  text-align:center;
  border-bottom:2px solid var(--warm2);
  position:relative;
}
.hero-deco { font-size:0.72rem; letter-spacing:0.25em; color:var(--text-sub); margin-bottom:2rem; }
.hero h1 {
  font-family:'Zen Kurenaido',serif;
  font-size:3.2rem; line-height:1.7; color:var(--navy);
  margin-bottom:1.5rem;
}
.hero-line {
  width:80px; height:2px;
  background:linear-gradient(90deg, transparent, var(--navy), transparent);
  margin:0 auto 1.8rem;
}
.hero-desc {
  font-size:0.9rem; color:var(--text-sub);
  line-height:2.3; font-weight:300;
  max-width:480px; margin:0 auto 2.5rem;
}
.hero-img {
  max-width:700px; width:100%;
  border-radius:4px; display:block; margin:0 auto;
}

/* SECTION DECO */
.sec-deco {
  text-align:center;
  padding:3rem 2rem 0;
  font-size:1.1rem; color:var(--text-sub);
  letter-spacing:0.15em;
}
.sec-deco h2 { font-family:'Zen Kurenaido',serif; font-size:1.5rem; color:var(--navy); margin:0.5rem 0; }
.sec-deco p { font-size:0.82rem; color:var(--text-sub); font-weight:300; line-height:2; margin-top:0.5rem; }

/* SERVICE SECTIONS */
.svc-section {
  padding:4rem 2rem;
  border-bottom:2px solid var(--warm2);
}
.svc-section:nth-child(odd) { background:#fff; }
.svc-section:nth-child(even) { background:var(--cream); }
.svc-inner { max-width:900px; margin:0 auto; }
.svc-header { display:flex; align-items:center; gap:2rem; margin-bottom:2.5rem; padding-bottom:1.5rem; border-bottom:1px dashed var(--warm2); }
.svc-logo-wrap { width:200px; flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.svc-logo-wrap img { max-height:100px; max-width:180px; object-fit:contain; }
.svc-tag { font-size:0.65rem; letter-spacing:0.15em; color:var(--navy); background:var(--warm); display:inline-block; padding:2px 8px; border-radius:2px; margin-bottom:0.5rem; }
.svc-header h3 { font-family:'Zen Kurenaido',serif; font-size:1.4rem; color:var(--navy); margin:0.3rem 0 0.6rem; line-height:1.5; }
.svc-header p { font-size:0.85rem; color:var(--text-sub); line-height:2; font-weight:300; }
.badge { display:inline-block; font-size:0.62rem; padding:2px 10px; border:1px solid; border-radius:2px; margin-top:0.5rem; }
.badge-open { border-color:var(--navy); color:var(--navy); }
.badge-soon { border-color:var(--accent); color:var(--accent); }

/* TEMPO SECTIONS */
.adagio-svc { background:var(--adagio-bg) !important; }
.andante-svc { background:var(--andante-bg) !important; }
.allegro-svc { background:var(--allegro-bg) !important; }

.tempo-label {
  display:inline-flex; align-items:center; gap:0.8rem;
  background:#fff; border:1px solid var(--warm2);
  border-radius:30px; padding:0.3rem 1rem 0.3rem 0.6rem;
  margin-bottom:1.5rem;
}
.tempo-label .speed { font-size:1.1rem; font-weight:500; color:var(--navy); }
.tempo-label .it { font-size:0.72rem; color:var(--text-sub); font-style:italic; }

/* COMING */
.coming-card {
  background:rgba(255,255,255,0.6);
  border:2px dashed var(--warm2);
  border-radius:8px; padding:3rem;
  text-align:center; color:var(--text-sub);
  font-size:0.85rem; line-height:2;
}

/* NEWS */
.news { padding:4rem 2rem; background:#fff; border-bottom:2px solid var(--warm2); }
.news-inner { max-width:900px; margin:0 auto; }
.news-head { text-align:center; margin-bottom:2rem; }
.news-head h2 { font-family:'Zen Kurenaido',serif; font-size:1.3rem; color:var(--navy); }
.news-list { display:flex; flex-direction:column; }
.news-item { display:flex; gap:1.5rem; padding:1rem 0; border-bottom:1px dashed var(--warm2); text-decoration:none; color:var(--text); align-items:baseline; transition:color 0.2s; }
.news-item:hover { color:var(--navy); }
.news-date { font-size:0.78rem; color:var(--text-sub); min-width:85px; font-weight:300; }
.news-cat { font-size:0.62rem; background:var(--warm); padding:2px 8px; border-radius:2px; color:var(--text-sub); white-space:nowrap; }
.news-title { font-size:0.85rem; line-height:1.6; }

/* RECRUIT */
.recruit {
  padding:5rem 2rem;
  background:var(--navy);
  color:#fff;
  text-align:center;
}
.recruit h2 { font-family:'Zen Kurenaido',serif; font-size:2rem; line-height:1.8; margin:0.5rem 0 1.2rem; }
.recruit p { font-size:0.88rem; color:rgba(255,255,255,0.75); line-height:2.3; font-weight:300; max-width:500px; margin:0 auto 2rem; }
.recruit-btn { display:inline-block; padding:0.9rem 2.5rem; border:1.5px solid #fff; color:#fff; text-decoration:none; font-size:0.82rem; border-radius:2px; transition:all 0.2s; }
.recruit-btn:hover { background:#fff; color:var(--navy); }

/* FOOTER */
footer { background:#2a2826; color:rgba(255,255,255,0.45); padding:3rem 2rem; }
.footer-inner { max-width:900px; margin:0 auto; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1.5rem; }
.footer-logo { font-family:'Zen Kurenaido',serif; font-size:1.5rem; color:#fff; display:block; margin-bottom:0.3rem; }
footer span { font-size:0.72rem; display:block; line-height:1.9; }
.footer-nav { display:flex; flex-direction:column; gap:0.4rem; align-items:flex-end; }
.footer-nav a { color:rgba(255,255,255,0.38); text-decoration:none; font-size:0.72rem; }
.footer-nav a:hover { color:#fff; }

@media(max-width:768px){
  .site-nav ul { display:none; }
  .svc-header { flex-direction:column; align-items:flex-start; gap:1rem; }
  .hero h1 { font-size:2.2rem; }
}

/* ABOUT PAGE */
.about-page-section { padding:5rem 2rem; border-bottom:2px solid var(--warm2); }
.about-page-inner { max-width:860px; margin:0 auto; }
.about-page-label { font-size:0.72rem; letter-spacing:0.2em; color:var(--navy); margin-bottom:0.8rem; }
.about-page-h2 { font-family:'Zen Kurenaido',serif; font-size:2rem; color:var(--navy); line-height:1.7; margin-bottom:1.5rem; }
.about-page-body { font-size:0.9rem; color:var(--text-sub); line-height:2.5; font-weight:300; }

/* TEMPO GRID */
.tempo-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:2rem; }
.tempo-grid-card { background:var(--cream); border:1px solid var(--warm2); padding:2rem; border-radius:4px; }
.tempo-grid-speed { font-size:2rem; font-weight:500; color:var(--navy); line-height:1; margin-bottom:0.3rem; }
.tempo-grid-it { font-size:0.8rem; color:var(--text-sub); font-style:italic; margin-bottom:0.8rem; }
.tempo-grid-card p { font-size:0.82rem; color:var(--text-sub); line-height:1.9; font-weight:300; }

/* PROFILE */
.profile-grid { display:grid; grid-template-columns:1fr 1fr; gap:3rem; margin-top:1.5rem; }
.profile-item { display:flex; gap:0.8rem; margin-bottom:0.8rem; }
.profile-item .mark { color:var(--navy); font-weight:500; flex-shrink:0; }
.profile-item p { font-size:0.85rem; color:var(--text-sub); line-height:1.9; font-weight:300; }
.profile-origin { background:#fff; border-left:3px solid var(--navy); padding:1.5rem 1.8rem; border-radius:0 4px 4px 0; align-self:start; }
.profile-origin p { font-size:0.85rem; color:var(--text-sub); line-height:2.2; font-weight:300; }
.profile-origin strong { color:var(--navy); font-weight:500; }

@media(max-width:768px){
  .tempo-grid { grid-template-columns:1fr; }
  .profile-grid { grid-template-columns:1fr; }
}
