/* ============================================================
   global-footer.css — shared large footer adopted from global_footer V12
   Core owns palette/type/container tokens; this file owns footer composition.
   ============================================================ */

.site-footer--large {
    --footer-deep:var(--heading,#15325e);
    --footer-ink:var(--muted,#213a5d);
    --footer-gold:var(--gold,#bb8731);
    --footer-coral:var(--ibis,#df625b);
    --footer-overlap:clamp(86px,7vw,108px);
    position:relative;
    z-index:1;
    overflow:hidden;
    box-sizing:border-box;
    margin:calc(-1 * var(--footer-overlap)) 0 0;
    padding:calc(var(--footer-overlap) + clamp(62px,5.6vw,82px)) 0 0;
    border-top:0;
    scroll-margin-top:120px;
    background:transparent;
    color:var(--footer-ink);
  }
  .site-footer--large *,
  .site-footer--large *::before,
  .site-footer--large *::after { box-sizing:inherit; }
  .site-footer--large .site-footer__surface { position:absolute; inset:0; z-index:-2; width:100%; height:100%; pointer-events:none; }
  .site-footer--large .site-footer__surface-compact { display:none; }
  .site-footer--large .site-footer__wash { position:absolute; inset:var(--footer-overlap) 0 0; z-index:-1; pointer-events:none; }
  .site-footer--large .site-footer__wash::before { content:""; position:absolute; left:-8%; top:10%; width:52%; height:58%; border:1px solid rgba(21,50,94,.08); border-radius:50% 50% 44% 56%; transform:rotate(-7deg); }
  .site-footer--large .site-footer__wash::after { content:""; position:absolute; right:-15%; top:0; width:48%; height:68%; border:1px solid rgba(187,135,49,.11); border-radius:50%; }
  .site-footer--large .site-footer__wash span { position:absolute; top:18px; left:50%; width:52%; height:1px; transform:translateX(-50%); background:linear-gradient(90deg,transparent,rgba(187,135,49,.5),transparent); }
  .site-footer--large .site-footer__wash i { position:absolute; top:12px; left:50%; width:13px; height:13px; transform:translateX(-50%) rotate(45deg); border:1px solid rgba(187,135,49,.5); }
  .site-footer--large a { color:inherit; text-decoration:none; }
  .site-footer--large a:focus-visible,
  .site-footer--large summary:focus-visible { outline:3px solid rgba(223,98,91,.36); outline-offset:4px; }
  .site-footer--large .site-footer__inner { position:relative; z-index:1; display:block; flex-wrap:nowrap; width:min(var(--container-wide,1280px),calc(100% - 64px)); margin:0 auto; padding-block:0; }
  .site-footer--large .site-footer__layout { display:grid; grid-template-columns:minmax(350px,.76fr) minmax(660px,1.24fr); gap:clamp(42px,5vw,72px); align-items:stretch; }
  .site-footer--large .site-footer__office { position:relative; overflow:hidden; display:flex; flex-direction:column; min-height:590px; padding:clamp(38px,4vw,54px); border:1px solid rgba(255,255,255,.86); border-radius:190px 190px 28px 28px; background:rgba(255,251,243,.78); box-shadow:0 24px 58px rgba(32,54,77,.12); }
  .site-footer--large .site-footer__office::before { content:""; position:absolute; inset:12px; border:1px solid rgba(187,135,49,.16); border-radius:180px 180px 20px 20px; pointer-events:none; }
  .site-footer--large .site-footer__glow { position:absolute; left:50%; top:42px; width:260px; height:260px; transform:translateX(-50%); border-radius:50%; background:radial-gradient(circle,rgba(255,228,170,.45),rgba(255,241,210,.2) 48%,transparent 70%); filter:blur(2px); }
  .site-footer--large .site-footer__logo { position:relative; display:block; width:min(300px,90%); height:auto; margin:14px auto 36px; }
  .site-footer--large .site-footer__logo img { display:block; width:100%; height:auto; }
  .site-footer--large .site-footer__welcome { position:relative; text-align:center; }
  .site-footer--large .site-footer__welcome p,
  .site-footer--large .site-footer__heading p,
  .site-footer--large .site-footer__news header p { margin:0 0 7px; color:var(--footer-gold); font-size:.66rem; font-weight:800; letter-spacing:.18em; }
  .site-footer--large .site-footer__welcome p span,
  .site-footer--large .site-footer__heading p span { margin-left:10px; color:#755f3c; letter-spacing:.05em; }
  .site-footer--large .site-footer__welcome h2 { margin:0; color:var(--footer-deep); font-family:var(--font-serif); font-size:clamp(1.42rem,2vw,1.8rem); line-height:1.62; }
  .site-footer--large .site-footer__phone { position:relative; display:grid; grid-template-columns:minmax(0,1fr) 32px; gap:2px 10px; align-items:center; margin:28px 0 0; padding:18px 20px; border-radius:14px; background:var(--footer-deep); color:#fff; box-shadow:0 12px 24px rgba(21,50,94,.14); transition:transform .18s ease; }
  .site-footer--large .site-footer__phone:hover { transform:translateY(-2px); }
  .site-footer--large .site-footer__phone small { color:rgba(255,255,255,.68); font-size:.7rem; }
  .site-footer--large .site-footer__phone strong { color:#fff; font-family:var(--font-serif); font-size:clamp(1.22rem,1.8vw,1.52rem); white-space:nowrap; }
  .site-footer--large .site-footer__phone em { margin-right:4px; font-size:.7em; font-style:normal; }
  .site-footer--large .site-footer__phone > span { grid-column:2; grid-row:1 / 3; display:grid; place-items:center; width:30px; height:30px; border:1px solid rgba(255,255,255,.26); border-radius:50%; }
  .site-footer--large .site-footer__hours { position:relative; display:grid; grid-template-columns:1fr 1fr; margin:16px 0 0; border-top:1px solid rgba(187,135,49,.24); border-bottom:1px solid rgba(187,135,49,.24); }
  .site-footer--large .site-footer__hours div { padding:13px 10px; }
  .site-footer--large .site-footer__hours div + div { border-left:1px solid rgba(187,135,49,.24); }
  .site-footer--large .site-footer__hours dt { color:#725e3c; font-size:.66rem; font-weight:700; }
  .site-footer--large .site-footer__hours dd { margin:4px 0 0; color:#46576d; font-size:.76rem; line-height:1.45; }
  .site-footer--large .site-footer__address { position:relative; display:grid; grid-template-columns:26px minmax(0,1fr); gap:10px; margin:auto 0 0; padding-top:22px; font-style:normal; }
  .site-footer--large .site-footer__address > span { color:var(--footer-gold); }
  .site-footer--large .site-footer__address .tkg-icon { width:20px; height:20px; }
  .site-footer--large .site-footer__address p { margin:0; color:#536176; font-size:.76rem; line-height:1.65; }
  .site-footer--large .site-footer__address a { grid-column:2; min-height:36px; display:inline-flex; align-items:center; color:#8c5d1d; font-size:.74rem; font-weight:700; }
  .site-footer--large .site-footer__guide { display:flex; flex-direction:column; min-width:0; padding:clamp(28px,3vw,42px) 0 0; }
  .site-footer--large .site-footer__heading { display:grid; grid-template-columns:1fr auto; gap:16px; align-items:end; margin-bottom:26px; padding-bottom:18px; border-bottom:1px solid rgba(187,135,49,.25); }
  .site-footer--large .site-footer__heading p { grid-column:1 / -1; margin-bottom:-2px; }
  .site-footer--large .site-footer__heading h2 { margin:0; color:var(--footer-deep); font-family:var(--font-serif); font-size:clamp(1.42rem,2vw,1.78rem); }
  .site-footer--large .site-footer__nav-grid { display:grid; grid-template-columns:1.25fr .8fr .94fr; gap:clamp(22px,3vw,38px); }
  .site-footer--large .site-footer__nav-group { min-width:0; }
  .site-footer--large .site-footer__nav-group summary { display:flex; justify-content:space-between; gap:10px; align-items:center; margin-bottom:14px; color:#95621c; font-size:.86rem; font-weight:800; list-style:none; cursor:default; }
  .site-footer--large .site-footer__nav-group summary::-webkit-details-marker { display:none; }
  .site-footer--large .site-footer__nav-group summary i { display:none; }
  .site-footer--large .site-footer__nav-group ul { display:grid; grid-template-columns:1fr; gap:6px; margin:0; padding:0; list-style:none; }
  .site-footer--large .site-footer__nav-group a { display:flex; justify-content:space-between; gap:10px; align-items:center; min-height:31px; padding-bottom:5px; border-bottom:1px solid rgba(35,53,79,.08); color:#3f4f64; font-size:.8rem; line-height:1.45; }
  .site-footer--large .site-footer__nav-group a:hover { color:var(--footer-coral); }
  .site-footer--large .site-footer__nav-group b { color:var(--footer-gold); font-weight:500; }
  .site-footer--large .site-footer__news { margin-top:auto; padding-top:38px; }
  .site-footer--large .site-footer__news header { display:flex; align-items:end; justify-content:space-between; gap:18px; margin-bottom:14px; }
  .site-footer--large .site-footer__news header h2 { margin:0; color:var(--footer-deep); font-family:var(--font-serif); font-size:1.18rem; }
  .site-footer--large .site-footer__news header a { color:#8c5c1c; font-size:.74rem; font-weight:700; }
  .site-footer--large .site-footer__news ol { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:0; padding:0; list-style:none; }
  .site-footer--large .site-footer__news li a { position:relative; display:grid; grid-template-columns:auto minmax(0,1fr); gap:7px 10px; min-height:108px; padding:16px 38px 16px 18px; border:1px solid rgba(255,255,255,.72); border-radius:14px; background:rgba(255,255,255,.58); box-shadow:0 12px 28px rgba(43,59,78,.06); }
  .site-footer--large .site-footer__news time { color:#687487; font-size:.7rem; }
  .site-footer--large .site-footer__news li span { justify-self:start; padding:2px 7px; border-radius:999px; background:#fff0ed; color:#a54f49; font-size:.61rem; }
  .site-footer--large .site-footer__news strong { grid-column:1 / -1; color:#304159; font-size:.8rem; font-weight:600; line-height:1.5; }
  .site-footer--large .site-footer__news li i { position:absolute; right:16px; top:50%; transform:translateY(-50%); color:var(--footer-gold); font-style:normal; }
  .site-footer--large .site-footer__bottom { display:grid; grid-template-columns:1fr auto 1fr; gap:18px; align-items:center; min-height:82px; margin-top:clamp(48px,5vw,66px); border-top:1px solid rgba(21,50,94,.14); color:#607083; }
  .site-footer--large .site-footer__bottom a { color:var(--footer-deep); font-size:.78rem; }
  .site-footer--large .site-footer__legal { display:flex; flex-wrap:wrap; gap:8px 18px; align-items:center; }
  .site-footer--large .site-footer__bottom small { font-size:.7rem; text-align:center; }
  .site-footer--large .site-footer__pagetop { justify-self:end; display:inline-flex; align-items:center; gap:8px; }
  .site-footer--large .site-footer__pagetop b { display:grid; place-items:center; width:30px; height:30px; border:1px solid rgba(21,50,94,.2); border-radius:50%; }
  @media (max-width:1080px) {
    .site-footer--large { --footer-overlap:94px; padding-top:154px; }
    .site-footer--large .site-footer__surface-desktop { display:none; }
    .site-footer--large .site-footer__surface-compact { display:block; }
    .site-footer--large .site-footer__layout { grid-template-columns:1fr; }
    .site-footer--large .site-footer__office { display:grid; grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr); column-gap:34px; min-height:0; border-radius:34px; }
    .site-footer--large .site-footer__office::before { border-radius:26px; }
    .site-footer--large .site-footer__logo { margin:0; }
    .site-footer--large .site-footer__welcome { text-align:left; }
    .site-footer--large .site-footer__phone,
    .site-footer--large .site-footer__hours,
    .site-footer--large .site-footer__address { grid-column:1 / -1; }
    .site-footer--large .site-footer__address { margin-top:20px; }
    .site-footer--large .site-footer__guide { padding-top:0; }
  }
  @media (max-width:760px) {
    .site-footer--large { --footer-overlap:108px; padding-top:164px; }
    .site-footer--large .site-footer__inner { width:min(100% - 32px,1280px); }
    .site-footer--large .site-footer__layout { gap:34px; }
    .site-footer--large .site-footer__office { display:flex; min-height:0; padding:34px 26px; border-radius:150px 150px 24px 24px; }
    .site-footer--large .site-footer__office::before { border-radius:140px 140px 17px 17px; }
    .site-footer--large .site-footer__logo { width:min(270px,85%); margin:10px auto 26px; }
    .site-footer--large .site-footer__welcome { text-align:center; }
    .site-footer--large .site-footer__phone strong { white-space:normal; }
    .site-footer--large .site-footer__hours { grid-template-columns:1fr; }
    .site-footer--large .site-footer__hours div + div { border-left:0; border-top:1px solid rgba(187,135,49,.24); }
    .site-footer--large .site-footer__address { margin-top:20px; }
    .site-footer--large .site-footer__heading { margin-bottom:10px; }
    .site-footer--large .site-footer__nav-grid { grid-template-columns:1fr; gap:0; }
    .site-footer--large .site-footer__nav-group { border-bottom:1px solid rgba(187,135,49,.24); }
    .site-footer--large .site-footer__nav-group summary { min-height:50px; margin:0; cursor:pointer; }
    .site-footer--large .site-footer__nav-group summary i { position:relative; display:block; width:20px; height:20px; border:1px solid rgba(187,135,49,.36); border-radius:50%; }
    .site-footer--large .site-footer__nav-group summary i::before,
    .site-footer--large .site-footer__nav-group summary i::after { content:""; position:absolute; left:50%; top:50%; width:8px; height:1px; transform:translate(-50%,-50%); background:var(--footer-gold); }
    .site-footer--large .site-footer__nav-group summary i::after { transform:translate(-50%,-50%) rotate(90deg); transition:transform .18s ease; }
    .site-footer--large .site-footer__nav-group[open] summary i::after { transform:translate(-50%,-50%); }
    .site-footer--large .site-footer__nav-group ul { padding:4px 2px 16px; }
    .site-footer--large .site-footer__nav-group a { min-height:36px; }
    .site-footer--large .site-footer__news { padding-top:34px; }
    .site-footer--large .site-footer__news ol { grid-template-columns:1fr; }
    .site-footer--large .site-footer__bottom { grid-template-columns:1fr auto; min-height:0; padding:18px 0; }
    .site-footer--large .site-footer__bottom small { grid-column:1 / -1; grid-row:2; text-align:left; }
    .site-footer--large .site-footer__pagetop { grid-column:2; grid-row:1; }
  }
