/*
Theme Name: STYLE OWNERS
Theme URI: https://styleowners.story1005.com/
Author: 株式会社山口一馬
Description: サロン向けAIスタイル写真ストア STYLE OWNERS のテーマ（WooCommerce対応）
Version: 1.2.0
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: style-owners
*/

:root{
  --so-ground:#FAFAF8;
  --so-panel:#F1F0EC;
  --so-white:#FFFFFF;
  --so-ink:#151515;
  --so-body:#3D3D3D;
  --so-muted:#555555;
  --so-line:#E2E0DA;
  --so-line-strong:#CFCCC4;
  --so-accent:#2F5D50;
  --so-hot:#9A2F17;
  --so-radius:16px;
  --so-max:1200px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--so-ground);color:var(--so-ink);font-family:"Noto Sans JP","Inter",system-ui,sans-serif;line-height:1.7;font-size:16px}
img{max-width:100%;height:auto;display:block}
a{color:var(--so-ink)}
a:hover{color:var(--so-accent)}
h1,h2,h3{line-height:1.4;margin:0}
.so-container{max-width:var(--so-max);margin:0 auto;padding:0 24px}
.so-num{font-family:"Inter",sans-serif;font-weight:800}
.so-eyebrow{margin:0;font-family:"Inter",sans-serif;font-size:13px;font-weight:600;letter-spacing:.12em;color:var(--so-accent)}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}

/* ---------- top bar & header ---------- */
.so-topbar{background:var(--so-ink);color:#fff;font-size:13px;text-align:center;padding:8px 16px}
.so-header{background:var(--so-white);border-bottom:1px solid var(--so-line);position:sticky;top:0;z-index:50}
.so-header__inner{max-width:var(--so-max);margin:0 auto;padding:12px 24px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px}
.so-logo{text-decoration:none;display:flex;align-items:baseline;gap:8px}
.so-logo__word{font-family:"Inter",sans-serif;font-weight:800;font-size:22px;letter-spacing:.08em}
.so-nav{display:flex;flex-wrap:wrap;align-items:center;gap:4px 20px;font-size:14px}
.so-nav a{text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.so-cart{gap:6px}
.so-cart__count{font-family:"Inter",sans-serif;font-size:12px;background:var(--so-ink);color:#fff;border-radius:999px;min-width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;padding:0 6px}

/* ---------- buttons ---------- */
.so-btn,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce #respond input#submit,.wc-block-components-button{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 28px;border-radius:999px;border:0;
  background:var(--so-accent);color:#fff;font-family:inherit;font-weight:700;font-size:16px;text-decoration:none;cursor:pointer;line-height:1.3}
.so-btn:hover,.woocommerce a.button:hover,.woocommerce button.button:hover{background:#244a40;color:#fff}
.so-btn-outline{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 26px;border-radius:999px;border:1px solid var(--so-ink);background:transparent;color:var(--so-ink);text-decoration:none;font-weight:500}
.so-btn-outline:hover{background:var(--so-ink);color:#fff}
.woocommerce button.button.alt,.woocommerce a.button.alt,.woocommerce #place_order{background:var(--so-accent);color:#fff;width:100%;font-size:17px;min-height:56px}
.woocommerce button.button.alt:hover,.woocommerce #place_order:hover{background:#244a40}
.woocommerce button.button:disabled,.woocommerce button.button.disabled{opacity:.5}

/* ---------- sections ---------- */
.so-section{padding:64px 0}
.so-section--white{background:var(--so-white);border-top:1px solid var(--so-line);border-bottom:1px solid var(--so-line)}
.so-section--panel{background:var(--so-panel)}
.so-section--dark{background:var(--so-ink);color:#fff}
.so-section__head{display:flex;flex-direction:column;gap:8px;margin-bottom:28px}
.so-section__head h2{font-size:30px}
.so-section__head p{margin:0;color:var(--so-body)}

/* hero */
.so-hero{display:flex;flex-wrap:wrap;gap:48px;align-items:center;padding:64px 0 56px}
.so-hero__text{flex:1 1 440px;min-width:0;display:flex;flex-direction:column;gap:20px}
.so-hero__text h1{font-size:44px;line-height:1.35}
.so-hero__lead{margin:0;font-size:17px;color:var(--so-body)}
.so-hero__cta{display:flex;flex-wrap:wrap;gap:12px}
.so-checks{margin:4px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px 20px;font-size:14px;color:var(--so-body)}
.so-checks li{display:flex;align-items:center;gap:6px}
.so-checks svg{flex:0 0 auto}
.so-hero__pics{flex:1 1 480px;min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.so-hero__pics img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:12px;background:#E9E7E1}
.so-hero__pics img:nth-child(1){margin-top:40px}
.so-hero__pics img:nth-child(3){margin-top:64px}

/* owner cards */
.so-tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.so-tier{border:1px solid var(--so-line);border-radius:var(--so-radius);padding:24px;display:flex;flex-direction:column;gap:8px;background:var(--so-white)}
.so-tier--main{border:2px solid var(--so-accent)}
.so-tier--solo{border-color:var(--so-ink)}
.so-tier__name{margin:0;font-weight:700;font-size:18px;display:flex;align-items:center;gap:8px}
.so-tier__tag{font-size:12px;background:var(--so-accent);color:#fff;padding:2px 10px;border-radius:999px}
.so-tier__price{margin:0;font-size:30px}
.so-tier__desc{margin:0;font-size:14px;color:var(--so-body)}
.so-small{font-size:13px;color:var(--so-muted);margin:16px 0 0}

/* category chips */
.so-cats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.so-cats a{display:inline-flex;align-items:center;min-height:44px;padding:8px 18px;border-radius:999px;border:1px solid var(--so-line-strong);background:var(--so-white);text-decoration:none;font-size:14px}
.so-cats a.is-current,.so-cats a:hover{background:var(--so-ink);border-color:var(--so-ink);color:#fff}

/* usage */
.so-usage{display:flex;flex-wrap:wrap;gap:16px}
.so-usage__box{flex:1 1 420px;min-width:0;background:var(--so-white);border-radius:var(--so-radius);padding:28px}
.so-usage__box h3{font-size:18px;margin-bottom:12px}
.so-usage__box ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}
.so-ok{color:var(--so-accent)}
.so-ng{color:var(--so-hot)}

/* steps */
.so-steps{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.so-steps li{background:var(--so-white);border:1px solid var(--so-line);border-radius:var(--so-radius);padding:24px;display:flex;flex-direction:column;gap:6px}
.so-steps__no{font-size:28px;color:var(--so-accent)}
.so-steps b{font-size:16px}
.so-steps span:last-child{font-size:14px;color:var(--so-body)}

/* why */
.so-why{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:32px}
.so-why h3{font-size:18px;margin-bottom:8px}
.so-why p{margin:0;font-size:14px;color:#D6D4CE}

/* faq */
.so-faq{max-width:880px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
.so-faq details{background:var(--so-white);border:1px solid var(--so-line);border-radius:12px;padding:18px 22px}
.so-faq summary{font-weight:700;cursor:pointer}
.so-faq details p{margin:12px 0 0;color:var(--so-body)}

/* footer */
.so-footer{background:var(--so-white);border-top:1px solid var(--so-line);font-size:13px}
.so-footer__inner{max-width:var(--so-max);margin:0 auto;padding:40px 24px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px}
.so-footer__brand{display:flex;flex-direction:column;gap:6px}
.so-footer__nav{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:flex-start}
.so-footer__ai{margin:0;text-align:center;font-size:12px;color:var(--so-muted);padding:0 24px 24px}

/* ---------- page content ---------- */
.so-main{min-height:50vh}
.so-page{max-width:880px;margin:0 auto;padding:48px 24px 72px}
.so-page h1{font-size:30px;margin-bottom:24px}
.so-page h2{font-size:22px;margin:36px 0 12px}
.so-page h3{font-size:18px;margin:24px 0 8px}
.so-page table{width:100%;border-collapse:collapse;font-size:15px;background:var(--so-white)}
.so-page th,.so-page td{border:1px solid var(--so-line);padding:12px;text-align:left;vertical-align:top}
.so-page th{width:30%;background:var(--so-panel);font-weight:500}

/* ---------- WooCommerce: catalog ---------- */
.so-shop{padding:40px 0 72px}
.woocommerce .woocommerce-breadcrumb{font-size:13px;color:var(--so-muted);margin:0 0 16px}
.woocommerce .woocommerce-breadcrumb a{color:var(--so-muted)}
.woocommerce-products-header__title{font-size:30px;margin-bottom:16px}
.woocommerce .woocommerce-result-count{font-size:14px;color:var(--so-muted)}
.woocommerce .woocommerce-ordering select{min-height:44px;border:1px solid var(--so-line-strong);border-radius:10px;padding:0 12px;background:#fff;font-family:inherit}
.woocommerce ul.products{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:28px 16px;margin:0 0 32px!important;padding:0;list-style:none}
.woocommerce ul.products::before,.woocommerce ul.products::after{display:none!important}
.woocommerce ul.products li.product{width:auto!important;margin:0!important;float:none!important;padding:0;display:flex;flex-direction:column;gap:6px}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link{position:relative;display:flex;flex-direction:column;gap:6px;text-decoration:none}
.woocommerce ul.products li.product a img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:12px;margin:0!important;background:#E9E7E1}
.woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:15px!important;font-weight:500;padding:4px 0 0!important;line-height:1.5}
.woocommerce ul.products li.product .price{color:var(--so-ink)!important;font-family:"Inter",sans-serif;font-weight:800;font-size:18px!important;margin:0!important}
.so-badge{position:absolute;top:10px;left:10px;background:var(--so-ink);color:#fff;font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;line-height:1.4;z-index:2}
.so-badge.is-static{position:static}
.so-loop-meta{display:flex;justify-content:space-between;gap:8px;font-size:12px}
.so-sku{font-family:"Inter",sans-serif;color:var(--so-muted)}
.so-left{font-weight:700;color:var(--so-muted)}
.so-left.is-hot{color:var(--so-hot)}
.woocommerce ul.products li.product .so-loop-more{margin-top:4px;min-height:40px;font-size:14px}
.woocommerce span.onsale{display:none}
.woocommerce nav.woocommerce-pagination ul{border:0}
.woocommerce nav.woocommerce-pagination ul li{border:0}

/* ---------- WooCommerce: single ---------- */
.woocommerce div.product{display:flex;flex-wrap:wrap;gap:48px;align-items:flex-start}
.woocommerce div.product div.images{flex:1 1 460px;min-width:0;width:auto!important;float:none!important;margin:0!important}
.woocommerce div.product div.images img{border-radius:var(--so-radius);aspect-ratio:3/4;object-fit:cover}
.woocommerce div.product div.summary{flex:1 1 420px;min-width:0;width:auto!important;float:none!important;margin:0!important;display:flex;flex-direction:column;gap:18px}
.woocommerce div.product .product_title{font-size:30px}
.woocommerce div.product p.price{color:var(--so-ink)!important;font-family:"Inter",sans-serif;font-weight:800;font-size:40px!important;margin:0}
.woocommerce div.product p.price::after{content:"税込";font-family:"Noto Sans JP",sans-serif;font-weight:400;font-size:13px;color:var(--so-muted);margin-left:8px}
.woocommerce div.product form.cart{margin:0!important}
.woocommerce div.product form.cart .button{width:100%;min-height:56px;font-size:17px}
.woocommerce div.product .stock{display:none}
.so-sku-line{font-family:"Inter",sans-serif;font-size:13px;color:var(--so-muted);margin:0}
.so-slotbox{background:var(--so-white);border:1px solid var(--so-line);border-radius:var(--so-radius);padding:20px;display:flex;flex-direction:column;gap:12px}
.so-slotbox__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;font-size:13px;color:var(--so-muted)}
.so-meter{display:grid;grid-template-columns:repeat(auto-fit,minmax(14px,1fr));gap:6px}
.so-meter span{height:10px;border-radius:4px;border:1px solid var(--so-ink);background:#fff}
.so-meter span.is-sold{background:var(--so-ink)}
.so-slotbox__left{margin:0;font-size:14px}
.so-slotbox__left strong{color:var(--so-hot)}
.so-spec{margin:0;border-top:1px solid var(--so-line);font-size:14px}
.so-spec div{display:flex;gap:16px;padding:12px 0;border-bottom:1px solid var(--so-line)}
.so-spec dt{flex:0 0 120px;color:var(--so-muted)}
.so-spec dd{margin:0}
.so-note{font-size:12px;color:var(--so-muted);margin:0}
.woocommerce div.product .related{flex:1 1 100%}
.woocommerce div.product .related > h2{font-size:22px;margin-bottom:16px}
.woocommerce div.product .woocommerce-tabs{display:none}

/* ---------- WooCommerce: notices, forms ---------- */
.woocommerce-message,.woocommerce-info,.woocommerce-error{border-radius:12px;border-top-color:var(--so-accent)!important;background:var(--so-white)!important}
.woocommerce form .form-row{margin:0 0 14px}
.woocommerce form .form-row label{font-size:14px;margin-bottom:6px;display:block}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select{min-height:46px;border:1px solid var(--so-line-strong);border-radius:10px;padding:10px 14px;font-size:16px;font-family:inherit;background:#fff;width:100%}
.woocommerce form .form-row.so-check label{display:flex;gap:10px;align-items:flex-start;font-size:14px}
.woocommerce form .form-row.so-check input{width:20px;height:20px;margin-top:2px;flex:0 0 auto}
.so-consent{background:var(--so-white);border:1px solid var(--so-line);border-radius:12px;padding:16px 18px;margin:0 0 16px}
.woocommerce-checkout #customer_details,.woocommerce-checkout #order_review{background:var(--so-white);border:1px solid var(--so-line);border-radius:var(--so-radius);padding:24px}
.woocommerce-checkout #order_review_heading{font-size:20px;margin:24px 0 12px}
.woocommerce table.shop_table{border-radius:12px;background:#fff}
.woocommerce-account .woocommerce-MyAccount-navigation ul{list-style:none;padding:0;margin:0 0 24px;display:flex;flex-wrap:wrap;gap:8px}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a{display:inline-flex;min-height:44px;align-items:center;padding:8px 20px;border:1px solid var(--so-line-strong);border-radius:999px;text-decoration:none;background:#fff;font-size:14px}
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a{background:var(--so-ink);border-color:var(--so-ink);color:#fff}
.woocommerce-account .woocommerce-MyAccount-navigation,.woocommerce-account .woocommerce-MyAccount-content{float:none!important;width:auto!important}
.so-thanks-note{background:var(--so-white);border:1px solid var(--so-line);border-radius:12px;padding:16px 18px;margin:16px 0}

/* ---------- filters & salon types ---------- */
.so-filters{display:flex;flex-direction:column;gap:12px;margin:0 0 28px;background:var(--so-white);border:1px solid var(--so-line);border-radius:var(--so-radius);padding:16px 20px}
.so-filter{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.so-filter__label{flex:0 0 48px;font-size:13px;font-weight:700;color:var(--so-muted)}
.so-filter__chips{display:flex;flex-wrap:wrap;gap:8px;flex:1 1 300px;min-width:0}
.so-filter__chips a{display:inline-flex;align-items:center;min-height:40px;padding:6px 16px;border-radius:999px;border:1px solid var(--so-line-strong);background:#fff;text-decoration:none;font-size:14px}
.so-filter__chips a.is-current,.so-filter__chips a:hover{background:var(--so-ink);border-color:var(--so-ink);color:#fff}
.so-salontypes{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.so-salontypes a{display:flex;flex-direction:column;gap:4px;padding:20px 22px;border:1px solid var(--so-line);border-radius:var(--so-radius);background:var(--so-ground);text-decoration:none}
.so-salontypes a:hover{border-color:var(--so-accent);color:var(--so-ink)}
.so-salontypes b{font-size:16px}
.so-salontypes span{font-size:13px;color:var(--so-body)}
.so-tags{display:flex;flex-wrap:wrap;gap:6px}
.so-tags a{font-size:12px;border:1px solid var(--so-line-strong);border-radius:999px;padding:2px 10px;text-decoration:none;background:#fff}

@media (max-width:640px){
  .so-hero__text h1{font-size:32px}
  .so-section{padding:48px 0}
  .so-section__head h2{font-size:24px}
  .so-hero__pics img:nth-child(1),.so-hero__pics img:nth-child(3){margin-top:0}
  .so-spec dt{flex-basis:96px}
}
