/* ===== T・リボーン 共通スタイル ===== */
:root{--navy:#1c2e4a;--navy-dark:#0d1a2e;--navy-mid:#243a5e;--gold:#b8966a;--gold-light:#d4b48a;--white:#ffffff;--off-white:#f7f8fb;--gray-100:#f0f2f6;--gray-200:#e4e8ef;--gray-400:#9aa5b5;--gray-600:#5a6878;--gray-800:#2a3848;--text:#1a2536;--sans:'Noto Sans JP',sans-serif;--ease:cubic-bezier(.4,0,.2,1);}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;font-size:16px;}
body{font-family:var(--sans);color:var(--text);background:var(--white);line-height:1.8;-webkit-font-smoothing:antialiased;}
img{display:block;max-width:100%;}
a{text-decoration:none;color:inherit;}
ul{list-style:none;}
.container{max-width:1200px;margin:0 auto;padding:0 60px;}
.sec{padding:100px 0;}
.sec--bg{background:var(--off-white);}
.sec-label{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.sec-label__en{font-size:10px;font-weight:700;letter-spacing:3px;color:var(--gold);text-transform:uppercase;}
.sec-label__line{width:28px;height:1.5px;background:var(--gold);flex-shrink:0;}
.sec-h2{font-size:clamp(26px,3.2vw,40px);font-weight:900;color:var(--navy);line-height:1.35;letter-spacing:.02em;}
.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 34px;font-family:var(--sans);font-size:13px;font-weight:700;letter-spacing:.06em;cursor:pointer;border:2px solid transparent;transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease);}
.btn::after{content:'→';font-size:14px;}
.btn--navy{background:var(--navy);color:var(--white);border-color:var(--navy);}
.btn--navy:hover{background:var(--navy-mid);border-color:var(--navy-mid);}
.btn--outline{background:transparent;color:var(--navy);border-color:var(--navy);}
.btn--outline:hover{background:var(--navy);color:var(--white);}
/* header */
.header{position:fixed;top:0;left:0;right:0;z-index:200;height:80px;display:flex;align-items:center;justify-content:space-between;padding:0 60px;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid rgba(28,46,74,.07);}
.header__logo{display:flex;flex-direction:column;gap:2px;line-height:1;}
.logo__img{height:44px;width:auto;display:block;}
.header__nav{display:flex;align-items:center;gap:38px;}
.nav__link{font-size:13px;font-weight:500;color:var(--gray-800);letter-spacing:.04em;position:relative;padding-bottom:4px;transition:color .2s;}
.nav__link::after{content:'';position:absolute;bottom:0;left:0;width:0;height:1.5px;background:var(--navy);transition:width .3s var(--ease);}
.nav__link:hover{color:var(--navy);}.nav__link:hover::after{width:100%;}
.nav__cta{font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--white);background:var(--navy);padding:11px 26px;transition:background .2s;}
.nav__cta:hover{background:var(--navy-mid);}
.header__hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;}
.header__hamburger span{display:block;width:24px;height:2px;background:var(--navy);}
/* page hero */
.page-hero{background:var(--navy-dark);padding:140px 60px 64px;position:relative;overflow:hidden;}
.page-hero::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(184,150,106,.10) 0%,transparent 55%);}
.page-hero__inner{position:relative;z-index:1;}
.page-hero__label{font-size:10px;font-weight:700;letter-spacing:3px;color:var(--gold);text-transform:uppercase;display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.page-hero__label::before{content:'';width:28px;height:1.5px;background:var(--gold);}
.page-hero__title{font-size:clamp(30px,4.5vw,52px);font-weight:900;color:var(--white);letter-spacing:.04em;line-height:1.25;}
.page-hero__lead{font-size:14px;color:rgba(255,255,255,.6);line-height:2;margin-top:20px;max-width:600px;}
.breadcrumb{display:flex;gap:6px;align-items:center;margin-top:24px;}
.breadcrumb__item{font-size:11px;color:rgba(255,255,255,.4);letter-spacing:.04em;}
.breadcrumb__item a{color:rgba(255,255,255,.4);transition:color .2s;}
.breadcrumb__item a:hover{color:var(--gold);}
.breadcrumb__sep{color:rgba(255,255,255,.2);font-size:10px;margin:0 2px;}

/* ===== お問い合わせCTA・フッター ===== */

/* footer */
.footer{background:var(--navy-dark);color:var(--white);padding:72px 0 32px;border-top:1px solid rgba(255,255,255,.06);}
.footer__inner{display:flex;justify-content:space-between;gap:60px;margin-bottom:56px;}
.footer__logo-img{height:40px;width:auto;display:block;margin-bottom:22px;filter:brightness(0) invert(1);}
.footer__address{font-size:12px;color:rgba(255,255,255,.5);line-height:2;}
.footer__nav-cols{display:flex;gap:52px;}
.footer__nav-list li{margin-bottom:8px;}
.footer__nav-list a{font-size:12px;color:rgba(255,255,255,.5);transition:color .2s;}
.footer__nav-list a:hover{color:var(--white);}
.footer__copy{font-size:11px;color:rgba(255,255,255,.28);border-top:1px solid rgba(255,255,255,.08);padding-top:24px;text-align:center;}

/* ===== レスポンシブ ===== */
@media(max-width:1024px){
.container,.header,.page-hero{padding-left:40px;padding-right:40px;}
}
@media(max-width:768px){
.header{padding:0 20px;height:64px;}.header__nav{display:none;}.header__hamburger{display:flex;}
.container{padding:0 20px;}.sec{padding:70px 0;}
.page-hero{padding:120px 20px 48px;}
.footer__inner{flex-direction:column;gap:40px;}.footer__nav-cols{flex-wrap:wrap;gap:28px;}
}

/* ===== ハンバーガーメニュー ===== */
/* hamburger */
.header__hamburger span{transition:transform .3s ease,opacity .3s ease;}
.header__hamburger.is-open span:nth-child(1){transform:rotate(45deg) translate(5px,5px);}
.header__hamburger.is-open span:nth-child(2){opacity:0;transform:translateX(-6px);}
.header__hamburger.is-open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px);}
@media(max-width:768px){
.header__nav.is-open{display:flex;flex-direction:column;gap:0;position:fixed;top:64px;left:0;right:0;background:rgba(255,255,255,.98);backdrop-filter:blur(16px);padding:8px 0 28px;z-index:199;border-top:1px solid rgba(28,46,74,.07);box-shadow:0 8px 24px rgba(0,0,0,.08);}
.header__nav.is-open .nav__link{display:block;padding:16px 28px;font-size:15px;font-weight:500;color:var(--navy);border-bottom:1px solid var(--gray-200);letter-spacing:.04em;}
.header__nav.is-open .nav__link::after{display:none;}
.header__nav.is-open .nav__cta{display:block;margin:20px 28px 0;text-align:center;padding:14px;font-size:13px;font-weight:700;background:var(--navy);color:var(--white);letter-spacing:.06em;}
}

/* 白ボタン（物件詳細のサイドバーで使用） */
.btn--white{background:var(--white);color:var(--navy);border-color:var(--white);}
.btn--white:hover{background:var(--gold);color:var(--white);border-color:var(--gold);}

/* ===== お問い合わせ欄（承認済みデザインの3種類） ===== */

/* B：既定（会社概要・新着情報・採用情報・不動産詳細） */
.contact-cta{background:var(--off-white);padding:90px 0;text-align:center;border-top:1px solid var(--gray-200);}
.contact-cta__h2{font-size:clamp(22px,3vw,34px);font-weight:900;color:var(--navy);margin-bottom:16px;}
.contact-cta__sub{font-size:14px;color:var(--gray-600);line-height:2;margin-bottom:28px;}
.contact-cta__tel{font-size:clamp(28px,4vw,42px);font-weight:700;color:var(--navy);letter-spacing:.05em;margin-bottom:8px;}
.contact-cta__note{font-size:12px;color:var(--gray-400);letter-spacing:.06em;margin-bottom:32px;}

/* A：トップページ（背景なし・文字大きめ） */
.contact-cta--front{background:var(--white);border-top:0;padding:110px 0;}
.contact-cta--front .contact-cta__h2{font-size:clamp(24px,3vw,36px);line-height:1.4;margin-bottom:14px;}
.contact-cta--front .contact-cta__sub{margin-bottom:44px;}
.contact-cta--front .contact-cta__tel{font-size:clamp(32px,4.5vw,52px);font-weight:900;letter-spacing:.06em;line-height:1;}
.contact-cta--front .contact-cta__note{letter-spacing:normal;margin-bottom:44px;}
@media(max-width:768px){.contact-cta--front{padding:70px 0;}}

/* C：紺背景（商品・物件の一覧、商品詳細） */
.contact-cta--dark{background:var(--navy-dark);border-top:0;}
.contact-cta--dark .contact-cta__h2{color:var(--white);}
.contact-cta--dark .contact-cta__sub{color:rgba(255,255,255,.6);}
.contact-cta--dark .contact-cta__tel{color:var(--white);}
.contact-cta--dark .contact-cta__note{color:rgba(255,255,255,.4);}

/* ボタンの種類 */
.btn--outline-white{background:transparent;color:var(--white);border-color:rgba(255,255,255,.4);}
.btn--outline-white:hover{background:var(--white);color:var(--navy);border-color:var(--white);}
