/* 全ページ共通CSS（基本・ヘッダー・ナビ・フッター・下層共通パーツ）。ここを変えると全ページに影響します */

/* 基本 */
:root{--main:#f90;--pale:#fc9;--accent:#f60;--gray:#f1f1f1;--blue:#2d4e91}
*,::before,::after{box-sizing:border-box}
body,h1,h2,h3,p,ul,ol,dl{margin:0}
ul,ol{padding:0;list-style:none}
body{border-top:4px solid var(--main);font-family:"Noto Sans JP","Hiragino Sans","Yu Gothic","Meiryo",sans-serif;font-size:16px;font-weight:400;letter-spacing:.04em;line-height:1.75;color:#3d3d3d;text-rendering:optimizeLegibility}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
.wrap{max-width:1140px;margin-inline:auto;padding-inline:15px}

/* ヘッダー */
header{position:relative;box-shadow:0 2px 4px rgba(0,0,0,.1)}
.head{display:flex;justify-content:space-between;align-items:center;padding-block:15px}
.logo img{width:210px}
.tel{font-size:12px;line-height:1.5;text-align:right}
.tel a{display:block;font-size:19px;font-weight:bold}
.tel p{text-wrap:balance}

/* ナビ（PC版） */
nav ul{display:flex}
nav li:where(:not(:last-child)){border-left:1px solid #eee}
nav li:where(:nth-last-child(2)){border-right:1px solid #eee}
nav li:last-child{margin-left:auto}
nav a{display:block;padding:15px 24px;font-size:13px;color:var(--blue)}
nav a:hover{background:#f9f9f9}
nav a[aria-current]{background:var(--gray)}
nav li:last-child a{color:#fff;background:var(--main)}
nav li:last-child a:hover,nav li:last-child a[aria-current]{background:#e68a00}
.sp-tel-block{display:none}

/* スマホ用メニューボタン（PCでは非表示） */
.menu{display:none;position:relative;width:44px;height:44px;border:0;background:none;cursor:pointer}
.menu span,.menu span::before,.menu span::after{position:absolute;width:30px;height:3px;background:#333;transition:.3s}
.menu span{top:20px;left:7px}
.menu span::before,.menu span::after{content:"";left:0}
.menu span::before{top:-10px}
.menu span::after{top:10px}
.open .menu span{background:none}
.open .menu span::before{top:0;transform:rotate(45deg)}
.open .menu span::after{top:0;transform:rotate(-45deg)}

/* 小見出し */
.ttl{margin-bottom:25px;font-size:22px;font-weight:bold;border-bottom:3px solid var(--gray)}
.ttl span{display:inline-block;margin-bottom:-3px;padding-bottom:12px;border-bottom:3px solid var(--main)}

/* 下層ページ */
.title{margin-top:25px;padding-bottom:12px;font-size:22px;border-bottom:3px solid var(--main)}
.crumb{display:flex;gap:6px;padding:6px 8px;font-size:12px;border-bottom:3px solid var(--gray)}
.crumb li+li::before{content:"/";margin-right:6px}
.crumb a{color:var(--blue)}
.text{margin-block:25px 60px}
.text>:not(h2){width:95%;margin-inline:auto}
.text h2{margin:50px 0 15px;padding:6px 14px;font-size:20px;color:#fff;background:repeating-linear-gradient(135deg,transparent 0 3px,rgba(255,255,255,.15) 3px 4px),var(--main);border-radius:3px}
.text h2:first-child{margin-top:0}
.text p,.text ul{margin-bottom:1em}
.text ul{padding-left:1.5em;list-style:disc}
.text ul ul{margin-bottom:0;list-style:circle}
.text a{color:var(--blue)}
.text a:hover{text-decoration:underline}

/* 下層ページ共通パーツ */
.info{display:grid;grid-template-columns:7.5em 1fr;gap:8px 14px;align-items:baseline;margin-bottom:1em;padding:14px 16px;background:#fffaf2;border:1px solid var(--pale);border-radius:3px}
.info dt{padding:2px 0;font-size:12px;font-weight:bold;line-height:1.4;text-align:center;color:#fff;background:var(--main);border-radius:2px}
.info dd{margin:0}
.tel-link{font-size:18px;font-weight:bold}
.tbl{margin-bottom:1em;border-spacing:0;border:1px solid var(--main);border-radius:3px;overflow:hidden}
.tbl th,.tbl td{padding:12px 16px;text-align:left;vertical-align:middle}
.tbl th+th,.tbl td+td{border-left:1px solid var(--main)}
.tbl tbody th,.tbl tbody td{border-top:1px solid var(--main)}
.tbl th{background:var(--pale);width:45%}
.tbl small{display:block;font-size:12px;color:#555}
.text a.map-link{display:inline-block;margin-left:8px;padding:1px 10px;font-size:12px;font-weight:bold;color:#fff;background:var(--blue);border-radius:3px;white-space:nowrap}
.text a.map-link::after{content:" →"}
.text a.map-link:hover{opacity:.85}

/* スマホ下部の固定メニュー（PCでは非表示） */
.fixed{display:none}

/* フッター */
.band{width:100%}
footer{padding:40px 0 20px;background:var(--gray)}
footer .wrap{font-size:12px;line-height:1.8}
.copy{margin-top:30px;text-align:center;font-size:12px;color:#555}

/* スマホ用スタイル */
@media(max-width:768px){
.text h2{font-size:18px}
.info{grid-template-columns:6.5em 1fr;gap:8px 10px;padding:12px;font-size:14px}
.tbl th,.tbl td{padding:10px 12px;font-size:14px}
.tbl small{font-size:11px}

.head{display:grid;grid-template-columns:1fr auto;gap:15px;align-items:center}
.logo img{width:clamp(180px, 55vw, 260px)}
.tel{display:none}
.menu{display:block}

nav{display:none;position:absolute;top:100%;left:0;right:0;z-index:9;background:#fffaf2;padding:25px 0 35px;box-shadow:0 5px 10px rgba(0,0,0,.1)}
.open nav{display:block}
nav ul{display:block;width:calc(100% - 30px);margin:0 auto;background:var(--main);border-radius:10px;overflow:hidden}
nav li{border:none;border-bottom:1px solid rgba(255,255,255,.2)}
nav li:last-child{border:none}
nav ul a,nav ul a:hover,nav ul a[aria-current],nav li:last-child a,nav li:last-child a:hover,nav li:last-child a[aria-current]{display:block;background:var(--main);color:#fff;padding:18px 20px;font-size:16px;font-weight:bold;border-radius:0}

.sp-tel-block{display:block;margin-top:25px;width:calc(100% - 30px);margin-inline:auto;text-align:center}
.sp-tel-block a{display:block;background:var(--blue);color:#fff;border-radius:50px;padding:18px 10px 16px;box-shadow:0 4px 6px rgba(45,78,145,.2);transition:.3s}
.sp-tel-block a:hover{background:#1f3768}
.sp-tel-block a small{display:block;font-size:11px;opacity:.9;margin-bottom:4px}
.sp-tel-block a span{display:flex;justify-content:center;align-items:center;font-size:clamp(24px, 7.5vw, 32px);font-weight:bold;letter-spacing:.05em;line-height:1}
.sp-tel-block a span::before{content:"";display:block;width:24px;height:24px;margin-right:8px;background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E") no-repeat center/contain}
.sp-tel-block p{margin-top:12px;font-size:13px;font-weight:bold;color:#444}

body{padding-bottom:50px}
.fixed{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:9;background:var(--accent);box-shadow:0 -2px 6px rgba(0,0,0,.15)}
.fixed a{flex:1;padding:14px 0;line-height:1.5;text-align:center;font-weight:bold;color:#fff}
.fixed a+a{border-left:1px solid #fff}
}