/* TRI shared site shell — one source of truth for public-page navigation, footer and floating ribbon. */
/* The homepage hero used to sit underneath a fixed header; with the shared sticky header, reduce the compensating top padding to keep the same visual rhythm. */
.tri-home-page .hero { padding-top:68px !important; }
:root { --tri-ink:#211019; --tri-plum:#2b1b2d; --tri-gold:#c8a45a; --tri-gold-light:#e2c986; --tri-cream:#f7f1e8; --tri-muted:#cfc3d0; }
.tri-shared-header { position:sticky !important; top:0 !important; left:auto !important; right:auto !important; width:100% !important; height:auto !important; min-height:0 !important; padding:0 !important; margin:0 !important; display:block !important; z-index:3000 !important; background:rgba(33,16,25,.97) !important; color:var(--tri-cream) !important; border:0 !important; border-bottom:1px solid rgba(200,164,90,.4) !important; box-shadow:0 8px 24px rgba(0,0,0,.12); backdrop-filter:blur(14px); }
.tri-shared-header * { box-sizing:border-box; }
.tri-shared-header .header-inner { width:min(1280px,94%) !important; max-width:1280px !important; min-height:82px !important; height:auto !important; margin:0 auto !important; padding:9px 0 !important; display:flex !important; align-items:center !important; justify-content:space-between !important; gap:24px !important; }
.tri-shared-header .brand { display:flex !important; align-items:center !important; justify-content:flex-start !important; flex:0 0 auto !important; width:auto !important; max-width:none !important; margin:0 !important; padding:0 !important; text-align:left !important; line-height:1 !important; }
.tri-shared-header .brand img { display:block !important; width:76px !important; height:64px !important; max-width:76px !important; object-fit:contain !important; margin:0 !important; }
.tri-shared-header .menu-toggle { display:none !important; align-items:center !important; justify-content:center !important; background:transparent !important; color:var(--tri-gold-light) !important; border:1px solid rgba(226,201,134,.55) !important; border-radius:8px !important; width:44px !important; height:42px !important; padding:0 !important; margin:0 !important; font-size:24px !important; line-height:1 !important; cursor:pointer !important; }
.tri-shared-header .main-nav { display:flex !important; position:static !important; inset:auto !important; width:auto !important; height:auto !important; margin:0 0 0 auto !important; padding:0 !important; align-items:center !important; justify-content:flex-end !important; flex:1 1 auto !important; gap:clamp(9px,1.5vw,22px) !important; background:transparent !important; border:0 !important; box-shadow:none !important; transform:none !important; visibility:visible !important; opacity:1 !important; }
.tri-shared-header .main-nav > a { display:inline-flex !important; align-items:center !important; justify-content:center !important; width:auto !important; height:auto !important; margin:0 !important; padding:10px 0 !important; border:0 !important; border-bottom:1px solid transparent !important; border-radius:0 !important; background:transparent !important; color:#eee8ef !important; text-decoration:none !important; text-transform:none !important; white-space:nowrap !important; font-family:inherit !important; font-size:13px !important; font-weight:600 !important; line-height:1.35 !important; box-shadow:none !important; transition:color .2s ease,border-color .2s ease !important; }
.tri-shared-header .main-nav > a:hover, .tri-shared-header .main-nav > a.active { color:var(--tri-gold-light) !important; border-bottom-color:var(--tri-gold) !important; }
.tri-shared-header .main-nav > a.nav-cta { padding:10px 17px !important; border:1px solid var(--tri-gold) !important; border-radius:4px !important; color:var(--tri-gold-light) !important; font-weight:700 !important; }
.tri-shared-header .main-nav > a.nav-cta:hover, .tri-shared-header .main-nav > a.nav-cta.active { background:var(--tri-gold-light) !important; color:var(--tri-ink) !important; }
.tri-shared-footer { display:block !important; clear:both !important; width:100% !important; margin:0 !important; padding:52px max(4vw,20px) 18px !important; background:#1d111e !important; color:#d9ceda !important; border-top:1px solid rgba(200,164,90,.35) !important; font-family:inherit !important; }
.tri-shared-footer * { box-sizing:border-box; }
.tri-footer-inner { width:min(1180px,100%); margin:0 auto; display:grid; grid-template-columns:1.55fr .8fr .85fr 1.15fr; gap:38px; align-items:start; }
.tri-footer-brand img { display:block; width:78px; height:70px; object-fit:contain; margin:0 0 15px; }
.tri-footer-brand p { max-width:310px; margin:0; color:#bfb2c1; font-size:13px; line-height:1.75; }
.tri-footer-column { display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
.tri-footer-column h2 { margin:0 0 7px; color:var(--tri-gold-light); font-family:inherit; font-size:12px; line-height:1.4; letter-spacing:1.6px; font-weight:700; text-transform:uppercase; }
.tri-footer-column a { color:#ded4df !important; font-size:13px; line-height:1.5; text-decoration:none !important; transition:color .2s ease; }
.tri-footer-column a:hover { color:var(--tri-gold-light) !important; }
.tri-footer-column p { margin:0 0 4px; color:#bfb2c1; font-size:13px; line-height:1.75; }
.tri-footer-bottom { width:min(1180px,100%); margin:32px auto 0; padding-top:16px; display:flex; align-items:center; justify-content:space-between; gap:14px; border-top:1px solid rgba(255,255,255,.11); color:#9f91a1; font-size:11px; line-height:1.6; }
.tri-social-ribbon { position:fixed !important; right:18px !important; left:auto !important; bottom:16px !important; z-index:5000 !important; display:flex !important; flex-direction:row !important; align-items:center !important; justify-content:center !important; gap:7px !important; width:auto !important; max-width:calc(100vw - 24px) !important; padding:8px !important; border:1px solid rgba(226,201,134,.32) !important; border-radius:999px !important; background:rgba(29,17,30,.94) !important; box-shadow:0 9px 28px rgba(0,0,0,.28) !important; backdrop-filter:blur(16px); }
.tri-social-ribbon a { display:inline-flex !important; flex:0 0 36px !important; align-items:center !important; justify-content:center !important; width:36px !important; height:36px !important; margin:0 !important; padding:0 !important; border:1px solid rgba(226,201,134,.18) !important; border-radius:50% !important; background:rgba(255,255,255,.07) !important; color:#fff !important; text-decoration:none !important; font-size:10px !important; line-height:1 !important; font-weight:800 !important; box-shadow:none !important; transition:background .2s ease,color .2s ease,transform .2s ease !important; }
.tri-social-ribbon a:hover { background:var(--tri-gold-light) !important; color:var(--tri-ink) !important; transform:translateY(-2px); }
.tri-assistant-toggle { display:inline-flex !important; flex:0 0 auto !important; align-items:center !important; justify-content:center !important; gap:8px !important; min-height:36px !important; margin:0 !important; padding:0 13px !important; border:0 !important; border-radius:999px !important; background:var(--tri-gold-light) !important; color:var(--tri-ink) !important; font-family:inherit !important; font-size:12px !important; line-height:1 !important; font-weight:800 !important; cursor:pointer !important; box-shadow:none !important; }
.tri-assistant-toggle:hover { background:#f2daa0 !important; }
.tri-assistant-spark { font-size:17px; line-height:1; }
.tri-assistant-panel[hidden] { display:none !important; }
.tri-assistant-panel { position:fixed !important; right:18px !important; left:auto !important; bottom:76px !important; z-index:5001 !important; display:flex !important; flex-direction:column !important; width:min(370px,calc(100vw - 24px)) !important; height:min(470px,calc(100dvh - 110px)) !important; min-height:300px !important; padding:0 !important; margin:0 !important; overflow:hidden !important; background:#fffdfa !important; color:#302a30 !important; border:1px solid #ded3df !important; border-radius:18px !important; box-shadow:0 20px 60px rgba(0,0,0,.28) !important; font-family:inherit !important; }
.tri-chat-header { min-height:64px; padding:13px 16px; display:flex; align-items:center; justify-content:space-between; gap:16px; color:#fffaf0; background:linear-gradient(120deg,#211019,#3b263d); border-bottom:1px solid rgba(200,164,90,.45); }
.tri-chat-header > div { display:flex; flex-direction:column; gap:3px; }
.tri-chat-eyebrow { color:#e2c986; font-size:9px; font-weight:800; letter-spacing:1.8px; }
.tri-chat-header strong { font-size:15px; font-weight:700; }
.tri-chat-close { flex:0 0 32px; width:32px; height:32px; border:1px solid rgba(255,255,255,.22); border-radius:50%; background:transparent; color:#fff; font-size:22px; line-height:1; cursor:pointer; }
.tri-chat-messages { flex:1; min-height:0; overflow:auto; display:flex; flex-direction:column; align-items:flex-start; gap:10px; padding:16px; background:#fcfaf7; }
.tri-chat-message { max-width:88%; padding:10px 12px; border-radius:12px; font-size:13px; line-height:1.55; overflow-wrap:anywhere; white-space:pre-wrap; }
.tri-chat-message.assistant { background:#eee7ef; color:#3d2d42; border-bottom-left-radius:4px; }
.tri-chat-message.user { align-self:flex-end; background:#332139; color:#fff; border-bottom-right-radius:4px; }
.tri-chat-message.pending { color:#756879; font-style:italic; }
.tri-chat-input { display:flex; align-items:center; gap:8px; padding:11px; background:#fff; border-top:1px solid #e5dce7; }
.tri-chat-input input { min-width:0; flex:1; height:40px; padding:0 11px; margin:0; border:1px solid #ded3df; border-radius:9px; outline:none; background:#fff; color:#302a30; font:inherit; font-size:13px; }
.tri-chat-input input:focus { border-color:#b28c45; box-shadow:0 0 0 3px rgba(200,164,90,.16); }
.tri-chat-input button { flex:0 0 auto; height:40px; padding:0 15px; margin:0; border:0; border-radius:9px; background:var(--tri-gold-light); color:var(--tri-ink); font-size:12px; font-weight:800; cursor:pointer; }
.tri-chat-input button:disabled { opacity:.6; cursor:wait; }
@media (max-width: 960px) {
  .tri-shared-header .header-inner { width:92% !important; min-height:74px !important; gap:14px !important; }
  .tri-shared-header .brand img { width:68px !important; height:58px !important; }
  .tri-shared-header .menu-toggle { display:inline-flex !important; }
  .tri-shared-header .main-nav { display:none !important; position:absolute !important; top:100% !important; left:0 !important; right:0 !important; width:100% !important; max-height:calc(100dvh - 82px) !important; overflow-y:auto !important; padding:12px 5% 20px !important; margin:0 !important; flex-direction:column !important; align-items:stretch !important; justify-content:flex-start !important; gap:0 !important; background:rgba(29,17,30,.99) !important; border-top:1px solid rgba(200,164,90,.25) !important; box-shadow:0 16px 30px rgba(0,0,0,.22) !important; }
  .tri-shared-header .main-nav.open, .tri-shared-header .main-nav.active { display:flex !important; }
  .tri-shared-header .main-nav > a { display:flex !important; justify-content:flex-start !important; width:100% !important; padding:13px 8px !important; border-bottom:1px solid rgba(255,255,255,.08) !important; font-size:14px !important; }
  .tri-shared-header .main-nav > a.nav-cta { margin-top:10px !important; justify-content:center !important; }
  .tri-footer-inner { grid-template-columns:1fr 1fr; gap:28px; }
}
@media (max-width: 560px) {
  .tri-home-page .hero { padding-top:68px !important; }
  .tri-shared-footer { padding:36px 20px 15px !important; }
  .tri-footer-inner { grid-template-columns:1fr 1fr; gap:25px 18px; }
  .tri-footer-brand { grid-column:1 / -1; }
  .tri-footer-brand img { width:68px; height:60px; }
  .tri-footer-bottom { margin-top:24px; flex-direction:column; align-items:flex-start; gap:6px; }
  .tri-social-ribbon { right:50% !important; left:auto !important; bottom:10px !important; transform:translateX(50%); gap:5px !important; padding:6px !important; }
  .tri-social-ribbon a { flex-basis:31px !important; width:31px !important; height:31px !important; font-size:9px !important; }
  .tri-assistant-toggle { min-height:31px !important; gap:5px !important; padding:0 10px !important; font-size:11px !important; }
  .tri-assistant-panel { right:10px !important; left:10px !important; bottom:60px !important; width:auto !important; height:min(440px,calc(100dvh - 84px)) !important; }
}
@media (prefers-reduced-motion: reduce) { .tri-shared-header *, .tri-shared-footer *, .tri-social-ribbon *, .tri-assistant-panel * { transition:none !important; scroll-behavior:auto !important; } }


/* Clickable address/contact links in every public-page footer. */
.tri-footer-address { display:block; max-width:250px; }
.tri-footer-directions { font-weight:700; color:var(--tri-gold-light) !important; }
.tri-footer-contact a[href^="tel:"] { font-weight:700; letter-spacing:.3px; }
.tri-footer-contact a[href^="https://wa.me/"] { color:var(--tri-gold-light) !important; }
.contact-quick-links { padding:22px 5% 0; background:#f7f1e8; }
.contact-quick-links-inner { width:min(1180px,100%); margin:0 auto; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.contact-quick-links-inner > a { min-width:0; display:flex; align-items:center; gap:13px; padding:18px; border:1px solid rgba(107,76,94,.16); border-radius:12px; background:#fffdfa; color:#302a30; text-decoration:none; box-shadow:0 8px 24px rgba(38,22,40,.04); }
.contact-quick-links-inner > a > span:first-child { flex:0 0 38px; width:38px; height:38px; display:grid; place-items:center; border-radius:50%; background:#eee5d2; color:#6b4c2c; font-size:20px; }
.contact-quick-links-inner > a > span:last-child { min-width:0; display:flex; flex-direction:column; gap:4px; }
.contact-quick-links-inner strong { font-size:13px; }
.contact-quick-links-inner small { color:#706471; font-size:11px; line-height:1.5; overflow-wrap:anywhere; }
.contact-quick-links-inner > a:hover { border-color:var(--tri-gold); transform:translateY(-1px); }
@media (max-width:720px) { .contact-quick-links-inner { grid-template-columns:1fr; } .contact-quick-links { padding:18px 20px 0; } }

/* Icon-only floating social ribbon: Instagram + WhatsApp. */
.tri-social-ribbon a svg { width:20px !important; height:20px !important; display:block !important; flex:0 0 auto !important; overflow:visible; }
.tri-social-ribbon a:focus-visible { outline:2px solid var(--tri-gold-light) !important; outline-offset:3px !important; }
@media (max-width:560px) { .tri-social-ribbon a svg { width:18px !important; height:18px !important; } }
