/*
Theme Name: TOKISAMA
Theme URI: https://haira-corp.com
Author: Haira Corp
Description: HAIRA クリエイタープラットフォーム テーマ
Version: 1.1.0
License: Private
Text Domain: tokisama
*/

/* ===== Reset & Base ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --primary:#00B8CC;
  --primary-dark:#0090A8;
  --primary-light:#33D4E6;
  --accent:#FF6EB4;
  --accent-dark:#E0529A;
  --accent-light:#FFB3D9;
  --orange:#FF9F2F;
  --bg:#FFF5FB;
  --card:#FFFFFF;
  --text:#2D3436;
  --text-light:#636E72;
  --border:#EDD9EC;
  --success:#00B894;
  --warning:#FDCB6E;
  --danger:#E17055;
  --radius:14px;
  --shadow:0 2px 12px rgba(0,184,204,.1);
  --shadow-hover:0 8px 28px rgba(0,184,204,.2);
  --grad-primary:linear-gradient(135deg,#00CED1,#1E90FF);
  --grad-accent:linear-gradient(135deg,#FF9F2F,#FF6EB4);
  --grad-bg:linear-gradient(135deg,#FFECD2 0%,#FFD6EE 60%,#F0C8FF 100%);
}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:'Noto Sans JP','Helvetica Neue',Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.7;min-height:100vh}
a{color:var(--primary);text-decoration:none;transition:color .2s}
a:hover{color:var(--primary-dark)}
img{max-width:100%;display:block}
button,input,select,textarea{font-family:inherit;font-size:inherit}

/* ===== Utility ===== */
.container{max-width:1200px;margin:0 auto;padding:0 20px}
.btn{display:inline-flex;align-items:center;gap:6px;padding:13px 30px;border:none;border-radius:50px;font-weight:700;cursor:pointer;transition:all .25s;font-size:.95rem;letter-spacing:.02em}
.btn-primary{background:var(--grad-primary);color:#fff}
.btn-primary:hover{opacity:.9;transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,184,204,.4);color:#fff}
.btn-accent{background:var(--grad-accent);color:#fff}
.btn-accent:hover{opacity:.9;transform:translateY(-2px);box-shadow:0 6px 20px rgba(255,110,180,.4);color:#fff}
.btn-outline{background:#fff;border:2px solid var(--primary);color:var(--primary)}
.btn-outline:hover{background:var(--primary);color:#fff;transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,184,204,.3)}
.btn-outline-white{background:transparent;border:2px solid rgba(255,255,255,.7);color:#fff}
.btn-outline-white:hover{background:rgba(255,255,255,.15);border-color:#fff;color:#fff;transform:translateY(-2px)}
.btn-sm{padding:8px 20px;font-size:.83rem}
.btn-danger{background:var(--danger);color:#fff;border-radius:8px}
.btn-danger:hover{background:#D63031;transform:translateY(-2px)}
.badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:.75rem;font-weight:700}
.badge-primary{background:rgba(0,184,204,.12);color:var(--primary)}
.badge-accent{background:rgba(255,110,180,.12);color:var(--accent-dark)}
.badge-success{background:rgba(0,184,148,.12);color:var(--success)}
.badge-warning{background:rgba(253,203,110,.25);color:#E67E22}
.badge-danger{background:rgba(225,112,85,.12);color:var(--danger)}
.section-title{font-size:1.8rem;font-weight:900;margin-bottom:.5rem}
.section-sub{color:var(--text-light);margin-bottom:2rem}
.text-center{text-align:center}
.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:2rem}.mt-4{margin-top:3rem}
.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:2rem}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
@media(max-width:900px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}
.highlight{background:var(--grad-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}

/* ===== Header ===== */
.header{background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;box-shadow:0 2px 10px rgba(0,184,204,.08)}
.header-inner{display:flex;align-items:center;justify-content:space-between;padding:10px 0}
.logo{display:flex;align-items:center}
.logo img{height:38px;width:auto;display:block}
.nav{display:flex;align-items:center;gap:20px}
.nav a{color:var(--text);font-weight:600;font-size:.88rem;transition:color .2s}
.nav a:hover{color:var(--primary)}
.nav .btn{font-size:.83rem;padding:8px 20px}
.nav a.btn-primary{color:#fff}
.nav a.btn-outline{color:var(--primary) !important}
.nav a.btn-outline:hover{color:#fff !important}
.btn-ghost{background:transparent;border:none;color:var(--text-light);font-weight:600;font-size:.85rem;padding:8px 14px;cursor:pointer;border-radius:8px;transition:background .2s}
.btn-ghost:hover{background:var(--bg);color:var(--text)}
.header-username{font-size:.82rem;color:var(--text-light);font-weight:600;white-space:nowrap}
.hamburger{display:none;background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--primary)}
@media(max-width:768px){
  .nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;flex-direction:column;padding:20px;border-bottom:1px solid var(--border);box-shadow:0 8px 20px rgba(0,0,0,.08)}
  .nav.active{display:flex}
  .hamburger{display:block}
  .header-username{display:none}
}

/* ===== Hero ===== */
.hero{background:var(--bg);padding:0 0 0}
.hero-image-wrap{width:100%;line-height:0;position:relative}
.hero-img{width:100%;display:block;max-height:80vh;object-fit:cover;object-position:center}
.hero-pc{display:block}
.hero-sp{display:none}
@media(max-width:768px){
  .hero-pc{display:none}
  .hero-sp{display:block}
  .hero-img{max-height:100vw}
}
.hero-cta{padding:28px 20px 40px;text-align:center;background:var(--bg)}
.hero-buttons{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.hero-trust{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:1.25rem}
.hero-trust-item{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--text-light);background:#fff;border-radius:20px;padding:6px 14px;box-shadow:0 1px 8px rgba(0,184,204,.1);font-weight:600;border:1px solid var(--border)}
@media(max-width:480px){.hero-buttons{flex-direction:column;align-items:center}.hero-trust{gap:8px}}

/* ===== Feature Cards ===== */
.features{padding:64px 0;background:#fff}
.feature-card{background:var(--card);border-radius:var(--radius);padding:32px 28px;box-shadow:var(--shadow);transition:all .3s;border:1px solid var(--border)}
.feature-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-hover);border-color:rgba(0,184,204,.2)}
.feature-icon{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin-bottom:16px}
.feature-icon.teal{background:rgba(0,184,204,.12);color:var(--primary)}
.feature-icon.pink{background:rgba(255,110,180,.12);color:var(--accent)}
.feature-icon.orange{background:rgba(255,159,47,.15);color:var(--orange)}
.feature-card h3{font-size:1.1rem;margin-bottom:8px;font-weight:800}
.feature-card p{color:var(--text-light);font-size:.88rem;line-height:1.8}

/* ===== How It Works ===== */
.how-it-works{padding:64px 0;background:var(--bg)}
.steps{display:flex;gap:0;justify-content:center;flex-wrap:wrap;position:relative}
.step{flex:1;min-width:180px;max-width:260px;text-align:center;padding:24px 16px;position:relative}
.step-num{width:46px;height:46px;border-radius:50%;background:var(--grad-primary);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:1.1rem;margin-bottom:12px;box-shadow:0 4px 12px rgba(0,184,204,.3)}
.step-num.orange{background:var(--grad-accent)}
.step h4{margin-bottom:6px;font-weight:700}
.step p{font-size:.83rem;color:var(--text-light)}
.step::after{content:'';position:absolute;top:46px;right:-20px;width:40px;height:2px;background:linear-gradient(to right,var(--primary),transparent)}
.step:last-child::after{display:none}
@media(max-width:600px){.step::after{display:none}}

/* ===== Creator Cards ===== */
.creators{padding:64px 0;background:#fff}
.creator-card{background:var(--card);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:all .3s;color:var(--text);display:block;border:1px solid var(--border)}
.creator-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-hover);color:var(--text);border-color:rgba(0,184,204,.2)}
.creator-banner{height:88px;background:var(--grad-primary)}
.creator-info{padding:16px 18px 20px;text-align:center;position:relative}
.creator-avatar{width:68px;height:68px;border-radius:50%;background:var(--bg);border:3px solid #fff;margin:-46px auto 10px;display:flex;align-items:center;justify-content:center;font-size:1.6rem;font-weight:700;color:var(--primary);box-shadow:0 2px 10px rgba(0,0,0,.1);background-size:cover;background-position:center;background-repeat:no-repeat;overflow:hidden}
.creator-name{font-weight:800;margin-bottom:2px;font-size:.95rem}
.creator-genre{font-size:.78rem;color:var(--text-light);margin-bottom:5px}
.creator-price{font-weight:800;background:var(--grad-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-size:.95rem}
.creator-rating{font-size:.78rem;color:#F59E0B;margin-top:3px}
.creator-tags{display:flex;gap:5px;justify-content:center;flex-wrap:wrap;margin-top:8px}
.creator-no-data{text-align:center;padding:48px 20px;color:var(--text-light);grid-column:1/-1}
.creator-no-data p{margin-bottom:1rem}
.section-cta{margin-top:2.5rem;text-align:center}

/* ===== News ===== */
.news{padding:64px 0;background:var(--bg)}
.news-list{display:flex;flex-direction:column;gap:10px;max-width:800px;margin:0 auto}
.news-item{background:var(--card);border-radius:var(--radius);padding:18px 24px;box-shadow:var(--shadow);display:flex;gap:16px;align-items:flex-start;transition:all .25s;border-left:3px solid transparent;border:1px solid var(--border)}
.news-item:hover{transform:translateX(5px);box-shadow:var(--shadow-hover);border-left-color:var(--primary)}
.news-item a{color:var(--text);display:flex;gap:16px;align-items:flex-start;width:100%}
.news-item a:hover{color:var(--text)}
.news-date{font-size:.78rem;color:var(--text-light);white-space:nowrap;padding-top:3px;min-width:80px}
.news-title{font-weight:600;font-size:.92rem;flex:1}
.news-empty{text-align:center;color:var(--text-light);padding:40px 0}

/* ===== Footer promo ===== */
.footer-promo{padding:56px 0;background:var(--grad-bg);text-align:center}
.footer-promo-logo{max-width:260px;margin:0 auto 24px;display:block}

/* ===== Footer ===== */
.footer{background:#1a1a2e;color:rgba(255,255,255,.65);padding:40px 0 24px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:32px}
@media(max-width:768px){.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.footer-grid{grid-template-columns:1fr}}
.footer h4{color:#fff;margin-bottom:12px;font-size:.88rem}
.footer a{color:rgba(255,255,255,.5);font-size:.83rem;display:block;padding:4px 0;transition:color .2s}
.footer a:hover{color:#fff}
.footer-logo img{height:32px;width:auto;opacity:.85;filter:brightness(1.2)}
.footer-desc{font-size:.83rem;margin-top:8px;color:rgba(255,255,255,.45)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);margin-top:32px;padding-top:20px;text-align:center;font-size:.78rem;color:rgba(255,255,255,.35)}

/* ===== Single Post / Page ===== */
.post-header{padding:48px 0 32px;border-bottom:1px solid var(--border);margin-bottom:40px}
.post-header h1{font-size:1.8rem;font-weight:800;margin-bottom:12px}
.post-meta{color:var(--text-light);font-size:.83rem}
.post-content{max-width:800px;margin:0 auto;line-height:1.9}
.post-content h2{font-size:1.4rem;margin:2rem 0 1rem;padding-bottom:.5rem;border-bottom:2px solid var(--border)}
.post-content h3{font-size:1.15rem;margin:1.5rem 0 .75rem}
.post-content p{margin-bottom:1.2rem}
.post-content ul,.post-content ol{padding-left:1.5rem;margin-bottom:1.2rem}
.post-content li{margin-bottom:.4rem}
.post-content img{border-radius:var(--radius);margin:1.5rem auto}
.post-back{margin-top:48px;padding-top:24px;border-top:1px solid var(--border)}

/* ===== Tabs ===== */
.tabs{display:flex;gap:0;border-bottom:2px solid var(--border);margin-bottom:24px}
.tab{padding:12px 24px;font-weight:600;color:var(--text-light);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s}
.tab.active,.tab:hover{color:var(--primary);border-bottom-color:var(--primary)}

/* ===== Forms ===== */
.form-group{margin-bottom:20px}
.form-group label{display:block;font-weight:600;margin-bottom:6px;font-size:.9rem}
.form-control{width:100%;padding:12px 16px;border:2px solid var(--border);border-radius:10px;font-size:.95rem;transition:border-color .2s;background:#fff}
.form-control:focus{outline:none;border-color:var(--primary)}
textarea.form-control{min-height:120px;resize:vertical}
select.form-control{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23636E72' stroke-width='2' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center}

/* ===== Modal ===== */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:200;align-items:center;justify-content:center}
.modal-overlay.active{display:flex}
.modal{background:#fff;border-radius:var(--radius);padding:32px;max-width:520px;width:90%;max-height:90vh;overflow-y:auto;position:relative}
.modal-close{position:absolute;top:12px;right:16px;background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-light)}
.modal h2{margin-bottom:20px}

/* ===== Profile Page ===== */
.profile-header{display:flex;gap:32px;align-items:flex-start;padding:40px 0;flex-wrap:wrap}
.profile-avatar{width:120px;height:120px;border-radius:50%;background:var(--grad-primary);display:flex;align-items:center;justify-content:center;font-size:3rem;color:#fff;flex-shrink:0}
.profile-details{flex:1;min-width:280px}
.profile-details h1{font-size:1.8rem;margin-bottom:4px}
.profile-stats{display:flex;gap:24px;margin:12px 0}
.profile-stat{text-align:center}
.profile-stat .num{font-size:1.3rem;font-weight:800;background:var(--grad-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:block}
.profile-stat .label{font-size:.75rem;color:var(--text-light)}

/* ===== Request Flow ===== */
.request-panel{background:var(--card);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow)}
.price-display{background:var(--bg);border-radius:10px;padding:16px;text-align:center;margin:16px 0}
.price-display .amount{font-size:2rem;font-weight:900;background:var(--grad-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.price-display .note{font-size:.8rem;color:var(--text-light)}

/* ===== Call UI ===== */
.call-container{max-width:800px;margin:0 auto;padding:40px 20px}
.call-screen{background:#1a1a2e;border-radius:var(--radius);aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.call-screen .avatar-large{width:100px;height:100px;border-radius:50%;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;font-size:2.5rem}
.call-timer{position:absolute;top:16px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.6);color:#fff;padding:6px 20px;border-radius:20px;font-weight:700;font-size:1.1rem}
.call-controls{display:flex;gap:16px;justify-content:center;margin-top:20px}
.call-btn{width:56px;height:56px;border-radius:50%;border:none;font-size:1.3rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}
.call-btn.mic{background:rgba(0,184,204,.15);color:var(--primary)}
.call-btn.cam{background:rgba(99,110,114,.15);color:var(--text-light)}
.call-btn.cam.off{background:rgba(225,112,85,.15);color:var(--danger)}
.call-btn.end{background:var(--danger);color:#fff;width:64px;height:64px}
.call-btn:hover{transform:scale(1.1)}
.waiting-screen{text-align:center;padding:60px 20px}
.waiting-screen .pulse{width:100px;height:100px;border-radius:50%;background:rgba(0,184,204,.1);margin:0 auto 24px;display:flex;align-items:center;justify-content:center;font-size:2.5rem;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(0,184,204,.3)}50%{box-shadow:0 0 0 20px rgba(0,184,204,0)}}

/* ===== Page hero (news/post) ===== */
.page-hero{padding:40px 0 32px;background:linear-gradient(135deg,rgba(0,184,204,.06),rgba(255,110,180,.05));border-bottom:1px solid var(--border);margin-bottom:0}
.page-hero h1{font-size:1.6rem;font-weight:800;margin-bottom:4px}
.page-hero .breadcrumb{font-size:.78rem;color:var(--text-light);margin-bottom:10px}
.page-hero .breadcrumb a{color:var(--text-light)}
.page-hero .breadcrumb a:hover{color:var(--primary)}

/* ===== Pagination ===== */
.nav-links{display:flex;gap:8px;justify-content:center;margin-top:2rem;flex-wrap:wrap}
.nav-links .page-numbers{padding:8px 16px;border-radius:8px;background:#fff;border:1px solid var(--border);color:var(--text);font-size:.9rem;transition:all .2s}
.nav-links .page-numbers:hover,.nav-links .page-numbers.current{background:var(--primary);color:#fff;border-color:var(--primary)}
