@charset "UTF-8";
/* Re:Design Lab 全ページ共通のヘッダー・フッター（styles.css から自動で抜き出し） */
@font-face{font-family:"Re Lab Serif";src:url("assets/fonts/re-lab-serif-v31.woff") format("woff");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Re Lab Sans";src:url("assets/fonts/re-lab-sans-v29.woff") format("woff");font-weight:400;font-style:normal;font-display:swap}
.rdl-common{--ink:#173849;--muted:#587080;--blue:#1b638b;--sky:#e9f6fc;--line:#d7e3e9;--paper:#f8fbfc;--serif:"Re Lab Serif","Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;--sans:"Re Lab Sans","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;--ease:cubic-bezier(.22,1,.36,1);font:16px/1.9 var(--sans);color:var(--ink);-webkit-font-smoothing:antialiased;text-align:left}
.rdl-common *,.rdl-common *:before,.rdl-common *:after{box-sizing:border-box}
.rdl-common a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}
.rdl-common button{font:inherit;color:inherit;cursor:pointer;background:none;border:0;margin:0;-webkit-tap-highlight-color:transparent}
.rdl-common img{height:auto;border:0}
.rdl-common header,.rdl-common footer,.rdl-common nav{margin:0}
.rdl-common .page-width{width:min(1224px,calc(100% - 112px));margin-inline:auto}
.rdl-common .site-header{position:absolute;left:0;top:0;width:100%;z-index:20;height:106px;padding-inline:44px;display:flex;align-items:center;justify-content:space-between;gap:35px}
.rdl-common .brand{display:inline-flex;flex-direction:column;white-space:nowrap}
.rdl-common .brand-name{font:500 27px/1.15 Arial,sans-serif;letter-spacing:-1.1px}
.rdl-common .brand-name b{font-family:Georgia,serif;font-size:33px;font-style:italic;letter-spacing:-2.8px;font-weight:500;margin-right:6px}
.rdl-common .brand-dot{color:var(--blue)}
.rdl-common .brand-caption{font-size:12px;letter-spacing:.12em;margin-top:8px}
.rdl-common .site-nav{display:flex;align-items:center;gap:29px;font-size:13px}
.rdl-common .site-nav>a{position:relative}
.rdl-common .site-nav>a:not(.nav-contact):after{content:"";position:absolute;bottom:-5px;height:1px;background:var(--ink);left:0;right:100%;transition:right .2s}
.rdl-common .site-nav>a:hover:after{right:0}
.rdl-common .nav-contact{padding:13px 21px;border:1px solid #12304e55;background:#ffffff5c;border-radius:3px}
.rdl-common .nav-contact:hover{background:#fff}
.rdl-common .menu-toggle{display:none}
.rdl-common .site-footer{padding-block:48px;display:flex;justify-content:space-between;gap:40px;align-items:center}
.rdl-common .footer-right{text-align:right}
.rdl-common .footer-right nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:22px;font-size:12px;color:#567085}
.rdl-common .footer-right a:hover{text-decoration:underline}
.rdl-common .footer-right small{font:12px/1.6 Arial,sans-serif;letter-spacing:.04em;color:#658095;display:block;margin-top:18px}
@media(min-width:1600px){.rdl-common .site-nav{gap:20px;font-size:12px}.rdl-common .brand-name{font-size:23px}.rdl-common .brand-name b{font-size:29px}.rdl-common .footer-right nav{gap:15px}}
@media(max-width:960px){.rdl-common .site-header{height:94px}.rdl-common .site-nav{position:absolute;top:83px;left:28px;right:28px;display:none;flex-direction:column;align-items:stretch;background:#fffffff7;backdrop-filter:blur(15px);padding:20px 27px;box-shadow:0 15px 50px #12304e1a;border:1px solid #dbe9f0;gap:0}.rdl-common .site-nav.is-open{display:flex}.rdl-common .site-nav>a{padding:15px 0;font-size:14px}.rdl-common .site-nav>.nav-contact{margin-top:12px;padding:13px 17px;text-align:center}.rdl-common .menu-toggle{display:flex;align-items:center;gap:9px;padding:12px 0;font-size:14px;z-index:21}.rdl-common .menu-lines{width:21px;height:9px;position:relative;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.rdl-common .site-footer{align-items:flex-start;flex-direction:column;gap:28px}.rdl-common .footer-right{text-align:left}.rdl-common .footer-right nav{justify-content:flex-start}}
@media(max-width:820px){.rdl-common .page-width{width:calc(100% - 44px)}.rdl-common .site-header{height:88px;padding-inline:22px;gap:18px}.rdl-common .brand-name{font-size:23px}.rdl-common .brand-name b{font-size:28px}.rdl-common .brand-caption{font-size:12px;letter-spacing:.1em}.rdl-common .site-nav{left:17px;right:17px;top:78px}.rdl-common .site-footer{padding-block:36px;gap:26px}.rdl-common .footer-right nav{font-size:12px;column-gap:15px;row-gap:9px}.rdl-common .footer-right small{font-size:12px;margin-top:18px}}
@media(max-width:359px){.rdl-common .page-width{width:calc(100% - 34px)}.rdl-common .site-header{padding-inline:17px}}
.rdl-common .site-header{padding-inline:max(56px,calc((100vw - 1224px)/2));height:104px}
.rdl-common .brand-name{letter-spacing:-1.05px}
.rdl-common .brand-caption{font-size:11px;letter-spacing:.08em}
.rdl-common .site-nav{gap:27px;font-size:13px}
.rdl-common .nav-contact{border:0;padding:9px 0;background:transparent;border-radius:0}
.rdl-common .nav-contact:hover{background:transparent;color:var(--blue)}
@media(max-width:1190px){.rdl-common .site-header{padding-inline:40px}}
@media(max-width:960px){.rdl-common .site-header{height:92px;padding-inline:40px}}
@media(max-width:820px){.rdl-common .site-header{padding-inline:22px}}
@media(max-width:359px){.rdl-common .site-header{padding-inline:17px}}
.rdl-common .brand-name{display:flex;align-items:baseline;gap:11px;line-height:1;letter-spacing:0}
.rdl-common .brand-name b{font:italic 46px/.95 Georgia,serif;font-weight:400;letter-spacing:-3px;margin:0}
.rdl-common .brand-colon{color:#bb945c;margin-left:1px}
.rdl-common .brand-wordmark{font:400 26px/1.1 Georgia,serif;letter-spacing:-.04em}
.rdl-common .brand-caption{margin-top:10px;font:10px/1.3 Arial,sans-serif;letter-spacing:.23em;padding-left:2px}
@media(max-width:960px){.rdl-common .brand-name b{font-size:43px}.rdl-common .brand-wordmark{font-size:24px}}
@media(max-width:820px){.rdl-common .brand-name{gap:9px}.rdl-common .brand-name b{font-size:39px}.rdl-common .brand-wordmark{font-size:22px}.rdl-common .brand-caption{font-size:9px;margin-top:8px;letter-spacing:.18em}}
.rdl-common .brand .brand-logo{display:block;width:218px;height:auto;max-width:none}
.rdl-common .brand .brand-caption{margin-top:7px;padding-left:2px;font:400 10.5px/1.5 var(--sans);letter-spacing:.06em;color:#486674}
@media(max-width:960px){.rdl-common .brand .brand-logo{width:202px}}
@media(max-width:820px){.rdl-common .brand .brand-logo{width:188px}.rdl-common .brand .brand-caption{margin-top:6px;font-size:10px;letter-spacing:.055em}}
@media(max-width:359px){.rdl-common .brand .brand-logo{width:176px}}
.rdl-common .site-header .brand .brand-logo{width:232px}
.rdl-common .site-header .brand .brand-caption{font-size:10.5px;letter-spacing:.02em;margin-top:4px;line-height:1.45;padding-left:1px}
@media(max-width:960px){.rdl-common .site-header .brand .brand-logo{width:214px}.rdl-common .site-header .brand .brand-caption{font-size:10px}}
@media(max-width:820px){.rdl-common .site-header .brand .brand-logo{width:188px}.rdl-common .site-header .brand .brand-caption{font-size:10px;line-height:1.45;margin-top:3px}.rdl-common .site-header .brand-caption>span{display:block}}
@media(max-width:359px){.rdl-common .site-header .brand .brand-logo{width:176px}}
/* 全ページ用の調整：トップ以外では、ヘッダーを画像の上に重ねず普通に並べる */
.rdl-common-header{position:relative;z-index:1000;background:linear-gradient(180deg,#eaf6fc,#f8fcff);border-bottom:1px solid var(--line)}
.rdl-common .site-header{position:relative}
.rdl-common-footer{background:#fff;border-top:1px solid var(--line)}
