/* base.css: リセットとレイアウト最小骨格。詳細スタイルは common.css。 */
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:var(--sans);color:var(--ink);background:var(--white);
  font-weight:400;line-height:1.9;font-size:15.5px;letter-spacing:.01em;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;height:auto;}
a{text-decoration:none;color:inherit;transition:opacity .25s;}
a:hover{opacity:.75;}
.wrap{max-width:1200px;margin:0 auto;padding:0 40px;}
.wrap-narrow{max-width:820px;margin:0 auto;padding:0 40px;}

/* パンくず（テーマ側で追加） */
.breadcrumbs{font-family:var(--en);font-size:11px;letter-spacing:.06em;color:var(--ink-light);margin-top:10px;}
.breadcrumbs .sep{opacity:.5;margin:0 6px;}
.breadcrumbs [aria-current="page"]{color:var(--rose-text);}

/* 汎用のセクション英字ラベル */
.section-en{font-family:var(--serif-en);font-size:13px;letter-spacing:.24em;color:var(--rose-text);text-transform:uppercase;margin-bottom:8px;}
.page-hero{padding:60px 0 30px;background:var(--pink-bg);}
.page-title{font-family:var(--serif-jp);font-size:34px;font-weight:500;color:var(--ink);}
.page-body{padding:80px 0;}

/* studio-info 表 */
.info-table{width:100%;border-collapse:collapse;font-size:14.5px;margin-top:20px;}
.info-table th,.info-table td{padding:16px 12px;border-bottom:1px solid var(--pink-soft);text-align:left;vertical-align:top;}
.info-table th{width:130px;color:var(--ink-light);font-weight:500;}

/* price-table */
.price-table{width:100%;border-collapse:collapse;margin-top:20px;font-size:15px;}
.price-table th,.price-table td{padding:14px 16px;border-bottom:1px solid var(--pink-soft);}
.price-table thead th{background:var(--pink-bg);color:var(--ink-light);font-weight:500;font-size:12px;letter-spacing:.06em;}
.price-table tr.is-recommended td{background:var(--pink-soft);}
.price-table .badge{display:inline-block;margin-left:8px;padding:2px 8px;background:var(--cta);color:#fff;border-radius:999px;font-size:10.5px;letter-spacing:.06em;}

/* archive grid */
.article-grid,.studio-grid,.trainer-grid{display:grid;gap:32px;margin-top:32px;}
.article-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));}
.studio-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));}
.trainer-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));}
@media(max-width:720px){
  .article-grid,.studio-grid,.trainer-grid{grid-template-columns:1fr;}
}
