/* ==================== HERO (front-page) ==================== */
.hero{position:relative;background:linear-gradient(135deg,#e3f2fd 0%,#ffffff 50%,#fff3e0 100%);overflow:hidden;padding:var(--sp-9) 0}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 20%,rgba(79,195,247,.15),transparent 60%),radial-gradient(circle at 10% 90%,rgba(255,138,60,.1),transparent 50%);pointer-events:none}
.hero__inner{position:relative;z-index:1;display:grid;grid-template-columns:1.1fr 1fr;gap:var(--sp-7);align-items:center}
.hero__copy{max-width:640px}
.hero__eyebrow{display:inline-block;padding:6px 14px;border-radius:var(--radius-pill);background:var(--c-brand);color:#fff;font-size:12px;font-weight:700;letter-spacing:.1em;margin-bottom:var(--sp-4)}
.hero__title{font-size:var(--fz-4xl);color:var(--c-heading);line-height:1.3;margin-bottom:var(--sp-4)}
.hero__title .accent{color:var(--c-brand);background:linear-gradient(transparent 65%,rgba(79,195,247,.4) 65%);padding:0 4px}
.hero__title .accent--orange{color:var(--c-accent);background:linear-gradient(transparent 65%,rgba(255,138,60,.25) 65%)}
.hero__lead{font-size:var(--fz-lg);color:var(--c-text);margin-bottom:var(--sp-5);line-height:1.85}
.hero__cta{display:flex;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-5)}
.hero__usp{display:flex;gap:var(--sp-4);flex-wrap:wrap}
.hero__usp-item{display:flex;align-items:center;gap:8px;font-size:var(--fz-sm);color:var(--c-heading);font-weight:600}
.hero__usp-item::before{content:"✓";display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:var(--c-brand);color:#fff;border-radius:50%;font-size:12px;font-weight:800}
.hero__visual{position:relative}
.hero__visual-frame{position:relative;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;aspect-ratio:5/4}
.hero__visual-img{width:100%;height:100%;object-fit:cover;display:block}
.hero__visual-placeholder{display:flex;align-items:center;justify-content:center;height:100%;color:var(--c-muted);background:linear-gradient(135deg,var(--c-brand-light) 0%,var(--c-brand) 100%);color:#fff;font-size:var(--fz-2xl);font-weight:700;text-align:center;padding:var(--sp-5)}
.hero__badge{position:absolute;top:-15px;right:-15px;width:120px;height:120px;background:var(--c-accent);color:#fff;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:800;text-align:center;box-shadow:var(--shadow);transform:rotate(-8deg);font-size:14px;line-height:1.3;padding:8px}
.hero__badge strong{font-size:24px;display:block}
@media (max-width:1024px){.hero__inner{grid-template-columns:1fr}.hero__visual{display:none}}
@media (max-width:560px){.hero__title{font-size:32px}.hero__cta .btn{width:100%}}

/* ==================== service cards (front) ==================== */
.service-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-5)}
.service-card{position:relative;background:#fff;border:2px solid var(--c-line);border-radius:var(--radius-lg);padding:var(--sp-6) var(--sp-5);text-align:center;transition:transform var(--t-base) var(--ease),border-color var(--t-base) var(--ease),box-shadow var(--t-base) var(--ease);overflow:hidden}
.service-card::before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:linear-gradient(90deg,var(--c-brand) 0%,var(--c-brand-light) 100%)}
.service-card:hover{transform:translateY(-6px);border-color:var(--c-brand);box-shadow:var(--shadow-lg)}
.service-card__icon{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,var(--c-brand) 0%,var(--c-brand-light) 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-size:36px;margin:0 auto var(--sp-4)}
.service-card__title{font-size:var(--fz-2xl);color:var(--c-heading);margin-bottom:var(--sp-3)}
.service-card__price{font-size:var(--fz-base);color:var(--c-muted);margin-bottom:var(--sp-3)}
.service-card__price strong{color:var(--c-accent);font-size:var(--fz-3xl);font-weight:800;display:block;margin-top:4px}
.service-card__desc{color:var(--c-text);font-size:var(--fz-sm);text-align:left;margin-bottom:var(--sp-4);line-height:1.7}
.service-card__more{margin-top:auto;display:inline-block}
@media (max-width:900px){.service-cards{grid-template-columns:1fr}}

/* ==================== reasons (front) ==================== */
.reason-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-5)}
.reason-item{background:#fff;border:1px solid var(--c-line);border-radius:var(--radius-lg);padding:var(--sp-6) var(--sp-5);position:relative;padding-top:var(--sp-7)}
.reason-item__num{position:absolute;top:-20px;left:24px;width:48px;height:48px;background:var(--c-brand);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--fz-xl);font-weight:800;box-shadow:var(--shadow)}
.reason-item__title{font-size:var(--fz-xl);color:var(--c-heading);margin-bottom:var(--sp-3)}
.reason-item__desc{color:var(--c-text);font-size:var(--fz-sm);line-height:1.85}
@media (max-width:900px){.reason-grid{grid-template-columns:1fr}}

/* ==================== service detail page ==================== */
.svc-hero{background:linear-gradient(135deg,#e3f2fd 0%,#ffffff 100%);padding:var(--sp-8) 0;position:relative}
.svc-hero__inner{display:grid;grid-template-columns:1.1fr 1fr;gap:var(--sp-7);align-items:center}
.svc-hero__title{font-size:var(--fz-4xl);color:var(--c-heading);margin-bottom:var(--sp-4);line-height:1.3}
.svc-hero__lead{font-size:var(--fz-lg);color:var(--c-text);margin-bottom:var(--sp-5);line-height:1.85}
.svc-hero__price{display:inline-flex;align-items:baseline;gap:8px;background:#fff;border:2px solid var(--c-accent);border-radius:var(--radius);padding:var(--sp-3) var(--sp-5);margin-bottom:var(--sp-4)}
.svc-hero__price-label{font-size:var(--fz-sm);color:var(--c-muted)}
.svc-hero__price-amount{font-size:var(--fz-3xl);color:var(--c-accent);font-weight:800}
.svc-hero__price-tax{font-size:13px;color:var(--c-muted)}
@media (max-width:900px){.svc-hero__inner{grid-template-columns:1fr}}

.svc-merit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-5)}
.svc-merit{background:#fff;border:1px solid var(--c-line);border-radius:var(--radius-lg);padding:var(--sp-5)}
.svc-merit__head{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3)}
.svc-merit__num{font-size:var(--fz-xl);font-weight:800;color:var(--c-brand);width:40px;height:40px;border:2px solid var(--c-brand);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.svc-merit__title{font-size:var(--fz-lg);color:var(--c-heading);margin:0}
.svc-merit__body{color:var(--c-text);font-size:var(--fz-sm);line-height:1.8}
@media (max-width:768px){.svc-merit-grid{grid-template-columns:1fr}}

/* ==================== single (post / voice / before-after) ==================== */
.single-article{background:#fff;padding:var(--sp-7) 0}
.single-article__head{margin-bottom:var(--sp-6);padding-bottom:var(--sp-5);border-bottom:1px solid var(--c-line)}
.single-article__title{font-size:var(--fz-3xl);color:var(--c-heading);margin-bottom:var(--sp-3);line-height:1.4}
.single-article__meta{display:flex;flex-wrap:wrap;gap:var(--sp-3);font-size:13px;color:var(--c-muted)}
.single-article__meta a{color:var(--c-brand-deep)}
.single-article__thumb{margin-bottom:var(--sp-5);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--c-line)}
.single-article__thumb img{width:100%;height:auto;display:block}
.single-article__body{font-size:var(--fz-base);line-height:1.95}

/* ba single — pair view */
.ba-single__pair{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3);margin-bottom:var(--sp-6)}
.ba-single__pair figure{position:relative;border:1px solid var(--c-line);border-radius:var(--radius);overflow:hidden}
.ba-single__pair figure img{width:100%;height:auto;display:block;aspect-ratio:1/1;object-fit:cover}
.ba-single__pair figcaption{position:absolute;left:0;top:0;background:rgba(12,61,110,.85);color:#fff;font-size:13px;padding:6px 14px;font-weight:700;letter-spacing:.1em}
.ba-single__pair figure:nth-child(2) figcaption{background:rgba(255,138,60,.92)}
.ba-single__meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--sp-2);background:var(--c-bg-alt);padding:var(--sp-4);border-radius:var(--radius);margin-bottom:var(--sp-5)}
.ba-single__meta dt{font-size:11px;color:var(--c-muted);font-weight:700;letter-spacing:.06em}
.ba-single__meta dd{font-size:var(--fz-base);color:var(--c-heading);font-weight:600;margin:0}
@media (max-width:560px){.ba-single__pair{grid-template-columns:1fr}}

/* archive */
.archive-head{background:linear-gradient(135deg,#e3f2fd 0%,#ffffff 100%);padding:var(--sp-7) 0 var(--sp-6);text-align:center}
.archive-head__title{font-size:var(--fz-3xl);color:var(--c-heading);margin-bottom:var(--sp-3)}
.archive-head__lead{color:var(--c-muted);font-size:var(--fz-base);max-width:680px;margin:0 auto}

/* pagination */
.pagination{display:flex;justify-content:center;gap:8px;margin:var(--sp-7) 0;flex-wrap:wrap}
.pagination a,.pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 14px;border-radius:var(--radius);background:#fff;border:1px solid var(--c-line);color:var(--c-heading);font-weight:600;font-size:var(--fz-sm)}
.pagination .current,.pagination a:hover{background:var(--c-brand);color:#fff;border-color:var(--c-brand);text-decoration:none}

/* page header (generic) */
.page-head{background:linear-gradient(135deg,#e3f2fd 0%,#ffffff 100%);padding:var(--sp-7) 0;text-align:center}
.page-head__title{font-size:var(--fz-3xl);color:var(--c-heading);margin-bottom:var(--sp-3)}
.page-head__lead{color:var(--c-muted);max-width:680px;margin:0 auto;font-size:var(--fz-base)}

/* contact info row */
.contact-channels{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-5);margin:var(--sp-6) 0}
.contact-channel{background:#fff;border:1px solid var(--c-line);border-radius:var(--radius-lg);padding:var(--sp-5);text-align:center;transition:box-shadow var(--t-base) var(--ease)}
.contact-channel:hover{box-shadow:var(--shadow)}
.contact-channel__icon{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto var(--sp-3);font-size:26px;color:#fff}
.contact-channel--tel .contact-channel__icon{background:var(--c-accent)}
.contact-channel--mail .contact-channel__icon{background:var(--c-brand)}
.contact-channel--line .contact-channel__icon{background:#06c755}
.contact-channel__title{font-size:var(--fz-lg);color:var(--c-heading);margin-bottom:var(--sp-2)}
.contact-channel__main{font-size:var(--fz-2xl);font-weight:800;color:var(--c-heading);margin-bottom:8px;letter-spacing:.02em}
.contact-channel__main a{color:inherit}
.contact-channel__sub{font-size:13px;color:var(--c-muted)}
@media (max-width:768px){.contact-channels{grid-template-columns:1fr}}

/* 404 */
.not-found{padding:var(--sp-9) 0;text-align:center}
.not-found__code{font-size:120px;font-weight:900;color:var(--c-brand-light);line-height:1;margin-bottom:var(--sp-4)}
.not-found__title{font-size:var(--fz-2xl);color:var(--c-heading);margin-bottom:var(--sp-4)}
.not-found__lead{color:var(--c-muted);max-width:560px;margin:0 auto var(--sp-5)}

/* search form */
.search-form{display:flex;gap:8px;max-width:520px;margin:0 auto}
.search-form input[type=search]{flex:1;padding:12px 16px;border:1px solid var(--c-line);border-radius:var(--radius);font-size:var(--fz-base)}
.search-form input[type=search]:focus{border-color:var(--c-brand);outline:none;box-shadow:0 0 0 3px rgba(30,136,229,.15)}
.search-form .btn{flex-shrink:0}

/* placeholder image (until user uploads) */
.placeholder-img{aspect-ratio:16/9;background:linear-gradient(135deg,var(--c-brand-light) 0%,var(--c-brand) 100%);display:flex;align-items:center;justify-content:center;color:#fff;font-size:var(--fz-lg);font-weight:700;border-radius:var(--radius);text-align:center;padding:var(--sp-5)}
