@charset "utf-8";

/* =========================================================
   IASO SHINSAIBASHI | TABLET 768px - 1180px
   PC FIXを変更せず、TB専用責務のみを定義
========================================================= */
:root{
    --shin-navy:#183247;
    --shin-blue:#6e9db8;
    --shin-ivory:#f8f7f3;
    --shin-text:#334652;
    --shin-muted:#71828b;
    --shin-line:#dbe4e9;
    --shin-white:#fff
}

.ShinsaibashiPage{color:var(--shin-text);background:#fff;overflow:hidden}
.ShinsaibashiPage *,.ShinsaibashiPage *::before,.ShinsaibashiPage *::after{box-sizing:border-box}
.ShinsaibashiInner{width:calc(100% - 72px);max-width:1040px;margin:0 auto}
.ShinsaibashiEyebrow{margin:0 0 16px;color:var(--shin-blue);font-size:9px;font-weight:600;line-height:1.4;letter-spacing:.2em}

/* HERO */
.ShinsaibashiHero{position:relative;min-height:590px;overflow:hidden;background:#eef7fa}
.ShinsaibashiHero__media,.ShinsaibashiHero__media picture{position:absolute;inset:0;display:block}
.ShinsaibashiHero__media img{display:block;width:100%;height:100%;object-fit:cover;object-position:center center}
.ShinsaibashiHero__veil{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(255,255,255,.18) 0%,rgba(255,255,255,.03) 36%,rgba(236,248,252,.14) 100%),radial-gradient(ellipse at center,rgba(255,255,255,.27) 0%,rgba(255,255,255,.09) 36%,transparent 64%);pointer-events:none}
.ShinsaibashiHero::after{content:"";position:absolute;left:0;right:0;bottom:0;z-index:2;height:1px;background:rgba(110,157,184,.2)}
.ShinsaibashiHero__inner{position:relative;z-index:2;min-height:590px;display:flex;align-items:center;justify-content:center;padding:72px 0 54px}
.ShinsaibashiHero__copy{width:min(480px,54vw);margin:0 auto;text-align:center;text-shadow:0 1px 18px rgba(255,255,255,.92)}
.ShinsaibashiHero__brand{margin:0 0 19px;color:#456e87;font-family:Georgia,"Times New Roman",serif;font-size:10px;font-weight:400;line-height:1.4;letter-spacing:.29em}
.ShinsaibashiHero__open{display:flex;align-items:baseline;justify-content:center;gap:10px;margin-bottom:19px;color:var(--shin-navy)}
.ShinsaibashiHero__open span,.ShinsaibashiHero__open small{color:#648399;font-size:7px;font-weight:600;letter-spacing:.16em}
.ShinsaibashiHero__open strong{color:#315d7c;font-family:Georgia,"Times New Roman",serif;font-size:34px;font-weight:400;line-height:1;letter-spacing:.04em}
.ShinsaibashiHero h1{margin:0;color:var(--shin-navy);font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;font-size:40px;font-weight:500;line-height:1.5;letter-spacing:.04em}
.ShinsaibashiHero__lead{margin:21px 0 0;color:#315d78;font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;font-size:13px;font-weight:500;line-height:1.8;letter-spacing:.07em}
.ShinsaibashiHero__sub{margin:17px auto 0;padding-top:14px;border-top:1px solid rgba(74,124,153,.28);color:#698596;font-size:6.5px;font-weight:600;line-height:1.6;letter-spacing:.13em}

/* INDEX */
.ShinsaibashiNav{border-top:1px solid var(--shin-line);border-bottom:1px solid var(--shin-line);background:#fff}
.ShinsaibashiNav__inner{width:100%;max-width:none;margin:0;padding:0}
.ShinsaibashiNav__links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));counter-reset:shinsaibashi-index}
.ShinsaibashiNav__links a{position:relative;display:flex;min-height:72px;align-items:center;justify-content:center;gap:9px;padding:17px 10px;border-right:1px solid var(--shin-line);color:var(--shin-navy);font-size:11px;font-weight:500;line-height:1.55;text-align:center;text-decoration:none}
.ShinsaibashiNav__links a:last-child{border-right:0}
.ShinsaibashiNav__links a::before{counter-increment:shinsaibashi-index;content:counter(shinsaibashi-index,decimal-leading-zero);position:static;flex:0 0 auto;color:var(--shin-blue);font-family:Georgia,"Times New Roman",serif;font-size:11px;font-weight:400;line-height:1}
.ShinsaibashiNav__links a:focus-visible{outline:1px solid rgba(110,157,184,.72);outline-offset:-4px;background-color:rgba(110,157,184,.055)}

/* COMMON */
.ShinsaibashiSectionHead{max-width:760px;margin:0 0 44px}
.ShinsaibashiSectionHead h2,.ShinsaibashiConcept h2,.ShinsaibashiMenuGuide h2,.ShinsaibashiOpening h2,.ShinsaibashiBrand h2{margin:0;color:var(--shin-navy);font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;font-weight:500;letter-spacing:.035em}
.ShinsaibashiSectionHead h2{font-size:31px;line-height:1.68}
.ShinsaibashiSectionHead--row{max-width:none;display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,.68fr);gap:44px;align-items:end}
.ShinsaibashiSectionHead--row>p{margin:0;color:var(--shin-muted);font-size:12px;line-height:2}
.ShinsaibashiLead{margin:0;color:var(--shin-navy);font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;font-size:16px;font-weight:500;line-height:2}
.ShinsaibashiText{margin:18px 0 0;color:var(--shin-muted);font-size:14px;line-height:2.1}

/* QUICK */
.ShinsaibashiQuick{padding:96px 0;background:#fff}
.ShinsaibashiFacts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;border:1px solid var(--shin-line);background:var(--shin-line)}
.ShinsaibashiFacts article{min-height:190px;position:relative;padding:25px 24px 24px;background:#fbfcfc}
.ShinsaibashiFacts article>span{display:block;margin-bottom:24px;color:#b7cbd7;font-family:Georgia,"Times New Roman",serif;font-size:23px}
.ShinsaibashiFacts small{display:block;color:var(--shin-blue);font-size:7px;font-weight:600;letter-spacing:.16em}
.ShinsaibashiFacts strong{display:block;margin-top:12px;color:var(--shin-navy);font-family:Georgia,"Times New Roman",serif;font-size:21px;font-weight:400;line-height:1.3}
.ShinsaibashiFacts p{margin:11px 0 0;color:var(--shin-muted);font-size:12px;line-height:1.8}

/* CONCEPT */
.ShinsaibashiConcept{padding:96px 0;background:var(--shin-ivory)}
.ShinsaibashiConcept__grid{display:grid;grid-template-columns:minmax(0,.88fr) minmax(360px,1.12fr);gap:54px}
.ShinsaibashiConcept h2{font-size:31px;line-height:1.72}

/* SERVICES */
.ShinsaibashiServices{padding:96px 0 102px;background:#f5f9fb}
.ShinsaibashiServices__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.ShinsaibashiServiceCard{position:relative;overflow:hidden;border:1px solid var(--shin-line);background:#fff}
.ShinsaibashiServiceCard--feature{grid-column:1 / -1;min-height:0;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(330px,.88fr)}
.ShinsaibashiServiceCard--visual{min-height:0;display:flex;flex-direction:column}
.ShinsaibashiServiceCard__media{position:relative;margin:0;overflow:hidden;background:#eaf1f4}
.ShinsaibashiServiceCard__media::after{content:"";position:absolute;inset:0;border:1px solid rgba(24,50,71,.04);pointer-events:none}
.ShinsaibashiServiceCard__media img{display:block;width:100%;height:100%;object-fit:cover}
.ShinsaibashiServiceCard--feature .ShinsaibashiServiceCard__media{min-height:390px}
.ShinsaibashiServiceCard--feature .ShinsaibashiServiceCard__media img{min-height:390px}
.ShinsaibashiServiceCard--visual .ShinsaibashiServiceCard__media{height:285px}
.ShinsaibashiServiceCard__body{position:relative;padding:28px 28px 31px}
.ShinsaibashiServiceCard--feature .ShinsaibashiServiceCard__body{display:flex;flex-direction:column;justify-content:center;padding:34px 34px 36px}
.ShinsaibashiServiceCard__number{position:absolute;top:25px;right:26px;color:#b5c9d4;font-family:Georgia,"Times New Roman",serif;font-size:26px;font-weight:400;line-height:1}
.ShinsaibashiServiceCard__eyebrow{margin:0 0 13px;padding-right:48px;color:var(--shin-blue);font-size:7.5px;font-weight:600;line-height:1.4;letter-spacing:.16em}
.ShinsaibashiServiceCard h3{margin:0;color:var(--shin-navy);font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif;font-size:21px;font-weight:500;line-height:1.65}
.ShinsaibashiServiceCard__body>p:last-of-type,.ShinsaibashiServiceCard--editorial p:last-of-type{margin:15px 0 0;color:var(--shin-muted);font-size:12px;line-height:2}
.ShinsaibashiServiceCard__spec{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}
.ShinsaibashiServiceCard__spec span{padding:7px 11px;border:1px solid #bcd0da;color:var(--shin-navy);background:#f8fbfc;font-size:8.5px;font-weight:600;letter-spacing:.07em}
.ShinsaibashiServiceCard--editorial{grid-column:1 / -1;min-height:240px;display:grid;grid-template-columns:minmax(250px,.8fr) minmax(0,1.2fr);align-items:end;padding:31px 32px 34px;background:radial-gradient(circle at 88% 18%,rgba(110,157,184,.12),transparent 28%),linear-gradient(145deg,#f9fcfd 0%,#eef6f9 100%)}
.ShinsaibashiServiceCard--editorial::before{content:"";position:absolute;left:32px;right:32px;top:66px;height:1px;background:linear-gradient(90deg,rgba(110,157,184,.22),rgba(110,157,184,.72),rgba(110,157,184,.08))}
.ShinsaibashiServiceCard--editorial .ShinsaibashiServiceCard__number{top:28px;right:29px}
.ShinsaibashiServiceCard--editorial .ShinsaibashiServiceCard__eyebrow{position:absolute;left:32px;top:29px;margin:0}
.ShinsaibashiServiceCard__editorialWord{color:rgba(24,50,71,.09);font-family:Georgia,"Times New Roman",serif;font-size:46px;font-weight:400;line-height:.86;letter-spacing:-.03em}
.ShinsaibashiServiceCard__editorialBody{max-width:520px;padding-left:24px;border-left:1px solid rgba(110,157,184,.24)}

/* MENU GUIDE */
.ShinsaibashiMenuGuide{padding:96px 0 102px;background:#fff}
.ShinsaibashiMenuGuide__head{max-width:680px}
.ShinsaibashiMenuGuide h2{font-size:31px;line-height:1.72}
.ShinsaibashiMenuGuide__head>p:not(.ShinsaibashiEyebrow){margin:21px 0 0;color:var(--shin-muted);font-size:13px;line-height:2.05}
.ShinsaibashiMenuGuide__matrix{margin-top:46px;display:grid;grid-template-columns:180px minmax(0,1fr);border:1px solid var(--shin-line)}
.ShinsaibashiMenuGuide__axis{display:flex;flex-direction:column;justify-content:center;gap:12px;padding:25px 25px;background:var(--shin-navy);color:#fff}
.ShinsaibashiMenuGuide__axis span{color:#93bbcf;font-size:7px;font-weight:600;letter-spacing:.16em}
.ShinsaibashiMenuGuide__axis strong{font-family:Georgia,"Times New Roman",serif;font-size:16px;font-weight:400}
.ShinsaibashiMenuGuide__times{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.ShinsaibashiMenuGuide__times article{min-height:160px;position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;border-left:1px solid var(--shin-line);background:#fbfcfc}
.ShinsaibashiMenuGuide__times article.is-recommended{background:#f0f7fa}
.ShinsaibashiMenuGuide__times em{position:absolute;top:17px;color:var(--shin-blue);font-size:5.5px;font-style:normal;font-weight:700;letter-spacing:.12em}
.ShinsaibashiMenuGuide__times span{color:var(--shin-navy);font-family:Georgia,"Times New Roman",serif;font-size:36px;line-height:1}
.ShinsaibashiMenuGuide__times small{margin-top:7px;color:#81929b;font-size:6.5px;font-weight:600;letter-spacing:.13em}
.ShinsaibashiMenuGuide__options{display:flex;flex-wrap:wrap;gap:9px 18px;margin-top:23px;padding-top:18px;border-top:1px solid var(--shin-line);color:#657b86;font-size:7.5px;font-weight:600;letter-spacing:.1em}
.ShinsaibashiMenuGuide__note{margin:16px 0 0;color:#84959d;font-size:10.5px;line-height:1.8}

/* OPENING */
.ShinsaibashiOpening{padding:96px 0 102px;background:var(--shin-navy)}
.ShinsaibashiOpening__inner{display:grid;grid-template-columns:290px minmax(0,1fr);gap:62px;align-items:center}
.ShinsaibashiOpening__date{position:relative;padding:30px 32px;border:1px solid rgba(255,255,255,.18)}
.ShinsaibashiOpening__date::after{content:"";position:absolute;right:-22px;bottom:-22px;width:72px;height:72px;border:1px solid rgba(151,199,220,.22)}
.ShinsaibashiOpening__date small,.ShinsaibashiOpening__date span{display:block;color:#8fb7ca;font-size:7px;font-weight:600;letter-spacing:.17em}
.ShinsaibashiOpening__date strong{display:block;margin:8px 0;color:#fff;font-family:Georgia,"Times New Roman",serif;font-size:105px;font-weight:400;line-height:.82}
.ShinsaibashiOpening .ShinsaibashiEyebrow{color:#9cc2d4}
.ShinsaibashiOpening h2{color:#fff;font-size:32px;line-height:1.72}
.ShinsaibashiOpening__copy>p:not(.ShinsaibashiEyebrow){max-width:570px;margin:19px 0 0;color:#c7d6dd;font-size:12px;line-height:2.05}

/* BRAND */
.ShinsaibashiBrand{padding:100px 0 106px;background:#fff;text-align:center}
.ShinsaibashiBrand__inner{max-width:820px}
.ShinsaibashiBrand h2{font-size:33px;line-height:1.72}
.ShinsaibashiBrand__inner>p:not(.ShinsaibashiEyebrow){max-width:650px;margin:23px auto 0;color:var(--shin-muted);font-size:13px;line-height:2.05}
.ShinsaibashiBrand__actions{display:flex;justify-content:center;gap:12px;margin-top:32px}

/* Narrow tablet: retain TB identity without collapsing into SP */
@media (max-width:900px){
    .ShinsaibashiInner{width:calc(100% - 56px)}
    .ShinsaibashiHero__copy{width:min(450px,60vw)}
    .ShinsaibashiHero h1{font-size:38px}
    .ShinsaibashiNav__links{grid-template-columns:repeat(2,minmax(0,1fr))}
    .ShinsaibashiNav__links a{min-height:66px}
    .ShinsaibashiNav__links a:nth-child(2){border-right:0}
    .ShinsaibashiNav__links a:nth-child(-n+2){border-bottom:1px solid var(--shin-line)}
    .ShinsaibashiSectionHead--row{grid-template-columns:1fr;gap:20px}
    .ShinsaibashiSectionHead--row>p{max-width:560px}
    .ShinsaibashiConcept__grid{grid-template-columns:1fr;gap:34px}
    .ShinsaibashiConcept__body{max-width:650px}
    .ShinsaibashiServiceCard--feature{grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr)}
    .ShinsaibashiServiceCard--visual .ShinsaibashiServiceCard__media{height:250px}
    .ShinsaibashiMenuGuide__matrix{grid-template-columns:155px minmax(0,1fr)}
    .ShinsaibashiMenuGuide__axis{padding:23px 20px}
    .ShinsaibashiMenuGuide__times article{min-height:150px}
    .ShinsaibashiMenuGuide__times span{font-size:32px}
    .ShinsaibashiOpening__inner{grid-template-columns:250px minmax(0,1fr);gap:48px}
    .ShinsaibashiOpening__date strong{font-size:92px}
}
