/*
Theme Name: Suigou Escort
Theme URI: https://suigouescort.top/
Description: 水郷エスコート公式サイト用オリジナルテーマ。電話番号・営業時間は「外観 → カスタマイズ → 事業所情報」、サービスは「サービス」、FAQは「よくある質問」、お知らせは「投稿」から更新できます。
Version: 1.0.4
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: suigou-escort
*/

:root{
  --navy:#1b4b8f; --navy-d:#123566; --sky:#e8f3fb; --sky2:#cfe6f6; --red:#e60012;
  --text:#333; --muted:#666; --line:#d7e3ef; --bg:#fff; --soft:#f6f9fc;
}
*{box-sizing:border-box}
body{margin:0;font-family:"Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic",Meiryo,sans-serif;color:var(--text);background:var(--bg);line-height:1.8;font-size:16px}
a{color:var(--navy)}
img{max-width:100%}
.wrap{max-width:1120px;margin:0 auto;padding:0 16px}


/* header */
.topinfo{background:var(--navy-d);color:#fff;font-size:12px}
.topinfo .wrap{display:flex;justify-content:space-between;gap:8px;padding:4px 16px;flex-wrap:wrap}
header.site{background:#fff;border-bottom:3px solid var(--navy);position:sticky;top:0;z-index:20}
.hd{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--navy)}
.logo .mark{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,#3aa0dc,#7fc8a9);display:grid;place-items:center;color:#fff;font-weight:bold;font-size:22px}
.logo b{display:block;font-size:20px;line-height:1.2}
.logo small{display:block;font-size:11px;color:var(--muted)}
.hd-cta{display:flex;gap:10px;align-items:center}
.tel{display:flex;flex-direction:column;align-items:flex-end;text-decoration:none;color:var(--red);font-weight:bold;font-size:24px;line-height:1.1}
.tel small{font-size:11px;color:var(--muted);font-weight:normal}
.btn{display:inline-block;background:var(--red);color:#fff;text-decoration:none;padding:10px 18px;border-radius:6px;font-weight:bold;border:0;cursor:pointer;font-size:15px}
.btn.navy{background:var(--navy)}
.btn.ghost{background:#fff;color:var(--navy);border:2px solid var(--navy)}
nav.gnav{background:linear-gradient(#2a62ad,var(--navy))}
nav.gnav ul{list-style:none;margin:0 auto;padding:0;display:flex;max-width:1120px}
nav.gnav li{flex:1}
nav.gnav a{display:block;text-align:center;color:#fff;text-decoration:none;padding:12px 4px;font-size:14px;font-weight:bold;border-right:1px solid rgba(255,255,255,.2)}
nav.gnav a:hover,nav.gnav a.on{background:var(--navy-d)}
.logo .mark{flex:none}
.menu-btn{white-space:nowrap;flex:none;display:none;background:var(--navy);color:#fff;border:0;border-radius:6px;padding:8px 12px;font-size:14px}

/* hero */
.hero{background:linear-gradient(120deg,rgba(18,53,102,.85),rgba(42,98,173,.55)),repeating-linear-gradient(45deg,#7aa6cf 0 12px,#88b2d8 12px 24px);color:#fff;padding:64px 0 56px}
.hero h1{font-size:34px;line-height:1.4;margin:0 0 12px;text-shadow:0 2px 6px rgba(0,0,0,.3)}
.hero p{font-size:17px;margin:0 0 20px}
.hero .badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.hero .badges span{background:#fff;color:var(--navy);font-size:13px;font-weight:bold;padding:4px 10px;border-radius:999px}
.photo-ph{background:repeating-linear-gradient(45deg,#dfe9f3 0 10px,#eaf1f8 10px 20px);border:1px dashed #9db6cf;color:#5b7591;display:grid;place-items:center;font-size:13px;text-align:center;border-radius:8px;min-height:160px;padding:8px}

/* sections */
section{padding:56px 0}
section.alt{background:var(--soft)}
.h2{font-size:26px;color:var(--navy);margin:0 0 8px;text-align:center}
.h2+.lead{text-align:center;color:var(--muted);margin:0 0 32px}
.h2::after{content:"";display:block;width:56px;height:3px;background:var(--red);margin:10px auto 0}
.h3{font-size:20px;color:#fff;background:linear-gradient(var(--navy),var(--navy-d));padding:8px 16px;border-radius:4px;margin:32px 0 16px}
.grid{display:grid;gap:20px}
.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px;box-shadow:0 2px 6px rgba(27,75,143,.06);display:flex;flex-direction:column}
.card h3{margin:8px 0 6px;color:var(--navy);font-size:18px}
.card p{margin:0 0 12px;font-size:14px;color:#555;flex:1}
.card .more{font-size:14px;font-weight:bold;text-decoration:none}
.icon{width:52px;height:52px;border-radius:12px;background:var(--sky);color:var(--navy);display:grid;place-items:center;font-size:26px}
.feat{display:flex;gap:16px;align-items:flex-start;background:#fff;border-left:5px solid var(--navy);padding:18px;border-radius:6px;border:1px solid var(--line);border-left-width:5px}
.feat .num{flex:none;width:54px;text-align:center;border:2px solid var(--navy);border-radius:6px;color:var(--navy);font-size:11px;font-weight:bold;line-height:1.3;padding:4px 0}
.feat .num b{display:block;font-size:22px}
.feat h3{margin:0 0 6px;color:var(--navy)}
.feat p{margin:0;font-size:15px}
.em{color:var(--red);font-weight:bold}
.steps{counter-reset:s;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.steps div{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px;text-align:center;position:relative}
.steps div::before{counter-increment:s;content:"STEP " counter(s);display:block;color:var(--red);font-weight:bold;font-size:13px}
table{width:100%;border-collapse:collapse;background:#fff;font-size:15px}
th,td{border:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top}
th{background:var(--sky);color:var(--navy-d);width:32%;font-weight:bold}
.tbl-wrap{overflow-x:auto}
.news li{display:flex;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);list-style:none;flex-wrap:wrap}
.news ul{padding:0;margin:0}
.news time{color:var(--muted);font-size:14px;min-width:96px}
.tag{font-size:12px;background:var(--navy);color:#fff;padding:1px 8px;border-radius:3px;height:fit-content}
.tag.r{background:var(--red)}
details{background:#fff;border:1px solid var(--line);border-radius:8px;margin-bottom:10px}
summary{cursor:pointer;padding:14px 16px;font-weight:bold;color:var(--navy);list-style:none}
summary::before{content:"Q. ";color:var(--red)}
details div{padding:0 16px 14px}
details div::before{content:"A. ";color:var(--navy);font-weight:bold}
.cta{background:linear-gradient(120deg,var(--navy-d),#2a62ad);color:#fff;padding:40px 0;text-align:center}
.cta h2{margin:0 0 6px;font-size:24px}
.cta .big{font-size:40px;font-weight:bold;color:#fff;text-decoration:none;display:inline-block;margin:6px 0}
.cta p{margin:4px 0}
.notice{background:#fff3f3;border:1px solid #f3b6b6;border-radius:8px;padding:12px 16px;font-size:14px}
.pagehead{background:linear-gradient(var(--sky),#fff);border-bottom:1px solid var(--line);padding:28px 0}
.pagehead h1{margin:0;color:var(--navy);font-size:28px}
.crumb{font-size:12px;color:var(--muted)}
.svc-detail{display:grid;grid-template-columns:1fr 2fr;gap:24px;margin-bottom:28px;align-items:start}
.form{display:grid;gap:12px;max-width:640px;margin:0 auto}
.form label{font-weight:bold;font-size:14px}
.form input,.form select,.form textarea{width:100%;padding:10px;border:1px solid #b9c9da;border-radius:6px;font:inherit}
.req{background:var(--red);color:#fff;font-size:11px;padding:1px 6px;border-radius:3px;margin-left:6px}
footer{background:var(--navy-d);color:#dfe8f3;font-size:14px;padding:40px 0 90px}
footer a{color:#fff;text-decoration:none}
footer .cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:24px}
footer ul{list-style:none;padding:0;margin:0}
footer li{margin:4px 0}
.licence{font-size:12px;color:#b8c8dc;margin-top:16px;border-top:1px solid rgba(255,255,255,.2);padding-top:12px}
.sp-bar{display:none}


@media (max-width:860px){
  .g3,.g4{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  footer .cols{grid-template-columns:1fr}
  .svc-detail{grid-template-columns:1fr}
}
@media (max-width:640px){
  body{font-size:15px}
  .g2,.g3,.g4{grid-template-columns:1fr}
  .hd .tel,.hd .btn{display:none}
  .menu-btn{display:block}
  nav.gnav{display:none}
  nav.gnav.open{display:block}
  nav.gnav ul{flex-direction:column}
  nav.gnav a{text-align:left;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.15)}
  .hero{padding:40px 0}
  .hero h1{font-size:24px}
  .topinfo .wrap span:last-child{display:none}
  .sp-bar{display:grid;grid-template-columns:1fr 1fr;position:fixed;bottom:0;left:0;right:0;z-index:30;box-shadow:0 -2px 8px rgba(0,0,0,.15)}
  .sp-bar a{padding:12px;text-align:center;color:#fff;text-decoration:none;font-weight:bold}
  .sp-bar a:first-child{background:var(--red)}.sp-bar a:last-child{background:var(--navy)}
  .cta .big{font-size:30px}
}

/* ===== WordPress additions ===== */
.entry{padding:40px 0 56px}
.entry-content{max-width:960px;margin:0 auto}
.entry-content h2{font-size:22px;color:#fff;background:linear-gradient(var(--navy),var(--navy-d));padding:8px 16px;border-radius:4px;margin:36px 0 16px}
.entry-content h3{font-size:19px;color:var(--navy);border-left:5px solid var(--navy);padding-left:10px;margin:28px 0 12px}
.entry-content table{margin:12px 0 20px}
.entry-content table td:first-child{background:var(--sky);color:var(--navy-d);font-weight:bold;width:32%}
.entry-content img{height:auto;border-radius:8px}
.entry-content .wp-block-image{margin:16px 0}
.card .thumb{margin:-20px -20px 12px;border-radius:10px 10px 0 0;overflow:hidden;aspect-ratio:16/9;background:var(--sky)}
.card .thumb img{width:100%;height:100%;object-fit:cover;display:block}
.hero.has-img{background-size:cover;background-position:center}
.pager{display:flex;gap:8px;justify-content:center;margin-top:24px}
.pager .page-numbers{padding:6px 12px;border:1px solid var(--line);border-radius:4px;text-decoration:none}
.pager .current{background:var(--navy);color:#fff}
.post-meta{color:var(--muted);font-size:14px;margin-bottom:16px}
.logo img{max-height:52px;width:auto}
.alignwide{max-width:1120px}.alignfull{width:100%}
.screen-reader-text{position:absolute;left:-9999px}
.wpcf7 input:not([type=submit]),.wpcf7 select,.wpcf7 textarea{width:100%;padding:10px;border:1px solid #b9c9da;border-radius:6px;font:inherit}
.wpcf7 input[type=submit]{background:var(--red);color:#fff;border:0;padding:12px 24px;border-radius:6px;font-weight:bold;cursor:pointer}
nav.gnav ul ul{display:none}
.photo-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0 24px}
.photo-row img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;display:block}
@media (max-width:640px){.photo-row{grid-template-columns:1fr 1fr}}
.entry-content .wp-block-image img{max-height:420px;width:auto;max-width:100%}
.entry-content img.wp-post-image{width:100%;max-height:420px;object-fit:cover;margin-bottom:16px}
.sns{display:flex;gap:10px;flex-wrap:wrap}
.sns a{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:#fff;border-radius:999px;padding:8px 16px;font-weight:bold;font-size:14px}
.sns .sns-yt{background:#e60023}
.sns .sns-ig{background:linear-gradient(45deg,#f9a03f,#e1306c 50%,#833ab4)}
.sns-footer{margin-top:12px}
.sns-big{justify-content:center}
.sns-big a{padding:14px 28px;font-size:17px}

/* ===== LP ===== */
.lp-hero{position:relative;color:#fff;padding:72px 0 64px;background:var(--navy-d) center/cover no-repeat}
.lp-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(18,53,102,.92),rgba(42,98,173,.55))}
.lp-hero .wrap{position:relative}
.lp-hero .eyebrow{display:inline-block;background:var(--red);color:#fff;font-weight:bold;font-size:14px;padding:4px 12px;border-radius:4px;margin:0 0 14px}
.lp-hero h1{font-size:36px;line-height:1.4;margin:0 0 14px;text-shadow:0 2px 6px rgba(0,0,0,.3)}
.lp-hero p{font-size:17px;margin:0 0 22px;max-width:720px}
.lp-hero .btn{margin:4px 8px 4px 0}
.lp-sec{padding:56px 0}
.lp-sec.alt{background:var(--soft)}
.lp-sec h2{font-size:26px;color:var(--navy);text-align:center;margin:0 0 8px}
.lp-sec h2::after{content:"";display:block;width:56px;height:3px;background:var(--red);margin:10px auto 0}
.lp-sec .lead{text-align:center;color:var(--muted);margin:0 0 28px}
.lp-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.lp-cards.c2{grid-template-columns:repeat(2,1fr)}.lp-cards.c4{grid-template-columns:repeat(4,1fr)}
.lp-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:22px;box-shadow:0 2px 6px rgba(27,75,143,.06)}
.lp-card h3{color:var(--navy);margin:0 0 8px;font-size:18px}
.lp-card p,.lp-card li{font-size:15px}
.lp-card .num{display:inline-block;background:var(--navy);color:#fff;border-radius:50%;width:32px;height:32px;line-height:32px;text-align:center;font-weight:bold;margin-bottom:8px}
.lp-check{list-style:none;padding:0;margin:0 auto;max-width:760px}
.lp-check li{background:#fff;border:1px solid var(--line);border-left:5px solid var(--red);border-radius:6px;padding:12px 16px;margin-bottom:10px;font-weight:bold}
.lp-check li::before{content:"✓ ";color:var(--red)}
.lp-price{width:100%;max-width:860px;margin:0 auto;border-collapse:collapse;background:#fff}
.lp-price th,.lp-price td{border:1px solid var(--line);padding:12px 14px;text-align:left;vertical-align:top}
.lp-price th{background:var(--sky);color:var(--navy-d);width:40%}
.lp-price td.yen{font-weight:bold;color:var(--red);white-space:nowrap}
.lp-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:28px}
.lp-photos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;display:block}
.lp-cta{background:linear-gradient(120deg,var(--navy-d),#2a62ad);color:#fff;text-align:center;padding:48px 0}
.lp-cta h2{color:#fff;margin:0 0 8px;font-size:26px}
.lp-cta .big{font-size:40px;font-weight:bold;color:#fff;text-decoration:none;display:inline-block;margin:8px 0}
.lp-note{font-size:13px;color:var(--muted);text-align:center;margin-top:12px}
.lp .form{background:#fff;padding:24px;border-radius:10px;border:1px solid var(--line)}
@media (max-width:860px){.lp-cards,.lp-cards.c4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.lp-cards,.lp-cards.c2,.lp-cards.c4,.lp-photos{grid-template-columns:1fr}.lp-hero{padding:44px 0}.lp-hero h1{font-size:25px}.lp-sec{padding:40px 0}.lp-sec h2{font-size:22px}.lp-cta .big{font-size:30px}}
