/* Tinas Rum 4.0 — a warmer, quieter editorial system. */
:root {
  --tr-forest: #20372e;
  --tr-forest-deep: #16271f;
  --tr-clay: #b97157;
  --tr-clay-dark: #96543f;
  --tr-paper: #f5f0e8;
  --tr-cream: #ebe2d5;
  --tr-white: #fffdfa;
  --tr-ink: #1c2923;
  --tr-ink-soft: #667168;
  --tr-line: rgba(28, 41, 35, .12);
  --trb-lux-shadow: 0 28px 80px rgba(22, 39, 31, .12);
}

html { scroll-behavior: smooth; }
body.trb-luxury { background: var(--tr-white); }
.trb-luxury h1,.trb-luxury h2,.trb-luxury h3 { letter-spacing: -.035em; }
.trb-luxury p { text-wrap: pretty; }
.trb-luxury .tr-eyebrow { letter-spacing: .16em; }
.trb-swipe-hint { display: none; }

/* Header — restrained, tactile and clearly branded. */
.trb-luxury .site-header {
  border-bottom: 1px solid rgba(28,41,35,.07);
  background: rgba(255,253,250,.9);
  box-shadow: 0 8px 35px rgba(22,39,31,.035);
  backdrop-filter: blur(18px) saturate(1.1);
}
.trb-luxury .header-inner { min-height: 86px; }
.trb-luxury .brand { letter-spacing: -.035em; }
.trb-luxury .brand small { letter-spacing: .15em; }
.trb-luxury .site-nav > a,.trb-luxury .nav-dropdown > button { position: relative; }
.trb-luxury .site-nav > a::after,.trb-luxury .nav-dropdown > button::after {
  content:""; position:absolute; right:0; bottom:-10px; left:0; height:1px;
  background:var(--tr-clay); transform:scaleX(0); transform-origin:left; transition:transform .25s ease;
}
.trb-luxury .site-nav > a:hover::after,.trb-luxury .nav-dropdown > button:hover::after { transform:scaleX(1); }
.trb-luxury .site-nav > .tr-btn { box-shadow: 0 10px 26px rgba(32,55,46,.14); }

/* Homepage hero — a full editorial opening instead of a generic banner. */
.trb-luxury-home .tr-hero {
  min-height: calc(100svh - 86px);
  overflow: hidden;
  isolation: isolate;
  background: var(--tr-forest-deep);
}
.trb-luxury-home .tr-hero::before {
  content:""; position:absolute; z-index:1; inset:0;
  background: linear-gradient(90deg, rgba(15,28,22,.92) 0%, rgba(18,31,25,.72) 38%, rgba(18,31,25,.16) 70%, rgba(18,31,25,.06) 100%);
}
.trb-luxury-home .tr-hero::after {
  content:""; position:absolute; z-index:1; inset:auto 0 0; height:40%;
  background:linear-gradient(0deg,rgba(13,24,19,.5),transparent); pointer-events:none;
}
.trb-luxury-home .tr-hero-image { object-position: 65% 40%; filter:saturate(.78) contrast(1.02); transform:scale(1.015); }
.trb-luxury-home .tr-hero .tr-shell { position:relative; z-index:2; }
.trb-luxury-home .tr-hero-copy { width:min(740px,62%); padding:clamp(105px,13vh,165px) 0 120px; }
.trb-luxury-home .tr-hero h1 { max-width:730px; margin:.18em 0 .25em; font-size:clamp(5.1rem,7.2vw,7.8rem); line-height:.84; }
.trb-luxury-home .tr-hero .tr-lead { max-width:600px; color:rgba(255,255,255,.78); font-size:clamp(1.12rem,1.45vw,1.38rem); line-height:1.62; }
.trb-luxury-home .tr-hero .tr-actions { margin-top:35px; }
.trb-luxury-home .tr-hero .tr-btn { min-height:58px; padding-inline:28px; }
.trb-luxury-home .tr-hero-note { z-index:2; right:38px; bottom:27px; color:rgba(255,255,255,.62); }

/* Tina first — personal, confident and concise. */
.trb-luxury-home .trb-personal-intro { padding:clamp(95px,11vw,165px) 0; background:#f1ebe1; }
.trb-luxury-home .trb-personal-inner { grid-template-columns:minmax(330px,.72fr) minmax(0,1fr); gap:clamp(65px,9vw,130px); }
.trb-luxury-home .trb-personal-intro figure { transform:rotate(-1.2deg); }
.trb-luxury-home .trb-personal-intro figure::before { inset:26px -26px -26px 26px; border-color:rgba(32,55,46,.34); }
.trb-luxury-home .trb-personal-intro img { aspect-ratio:4/5.15; box-shadow:0 34px 90px rgba(22,39,31,.18); }
.trb-luxury-home .trb-personal-intro h2 { max-width:660px; font-size:clamp(3.6rem,5.7vw,6.4rem); line-height:.93; }
.trb-luxury-home .trb-personal-intro .tr-lead { max-width:620px; font-size:clamp(1.15rem,1.6vw,1.4rem); }

/* Services become an editorial bento grid on wide screens. */
.trb-luxury-home .tr-section--paper { background:#fffdfa; }
.trb-luxury-home .tr-section--paper .tr-section-head { align-items:end; }
.trb-luxury-home .tr-card-grid { grid-template-columns:repeat(12,1fr); gap:14px; }
.trb-luxury-home .tr-card { grid-column:span 4; min-height:300px; padding:35px; border:0; border-radius:28px; background:#f4efe7; box-shadow:none; transition:transform .35s ease,box-shadow .35s ease; }
.trb-luxury-home .tr-card:nth-child(1),.trb-luxury-home .tr-card:nth-child(5) { grid-column:span 7; background:#20372e; color:#fff; }
.trb-luxury-home .tr-card:nth-child(2),.trb-luxury-home .tr-card:nth-child(6) { grid-column:span 5; }
.trb-luxury-home .tr-card:nth-child(3),.trb-luxury-home .tr-card:nth-child(4) { grid-column:span 6; }
.trb-luxury-home .tr-card:nth-child(1) p,.trb-luxury-home .tr-card:nth-child(5) p { color:rgba(255,255,255,.66); }
.trb-luxury-home .tr-card:nth-child(1) .tr-card-number,.trb-luxury-home .tr-card:nth-child(5) .tr-card-number { color:#d9b29f; }
.trb-luxury-home .tr-card:hover { transform:translateY(-6px); box-shadow:var(--trb-lux-shadow); }
.trb-luxury-home .tr-card h3 { font-size:clamp(1.8rem,3vw,2.7rem); }

/* Existing sections, elevated as one coherent system. */
.trb-luxury .tr-section { padding-block:clamp(90px,10vw,145px); }
.trb-luxury .tr-section-head { gap:clamp(35px,7vw,100px); }
.trb-luxury .tr-section-head h2 { max-width:780px; }
.trb-luxury .tr-split { gap:clamp(65px,9vw,130px); }
.trb-luxury .tr-split-media { overflow:hidden; border-radius:260px 260px 28px 28px; box-shadow:var(--trb-lux-shadow); }
.trb-luxury .tr-split-media img { transition:transform 1s ease; }
.trb-luxury .tr-split-media:hover img { transform:scale(1.025); }
.trb-luxury .tr-banner { min-height:670px; }
.trb-luxury .tr-banner::after { background:linear-gradient(90deg,rgba(16,30,24,.82),rgba(16,30,24,.18)); }
.trb-luxury .tr-session { border:0; border-radius:30px; box-shadow:0 25px 75px rgba(22,39,31,.09); }
.trb-luxury .tr-session:last-child { background:var(--tr-forest); color:#fff; }
.trb-luxury .tr-session:last-child p { color:rgba(255,255,255,.66); }
.trb-luxury .tr-cta { border-radius:36px; background:var(--tr-forest); box-shadow:var(--trb-lux-shadow); }

.trb-luxury .trb-feature { padding:clamp(95px,11vw,160px) 0; }
.trb-luxury .trb-feature-head { margin-bottom:clamp(42px,6vw,78px); }
.trb-luxury .trb-feature-head h2 { line-height:.94; }
.trb-luxury .trb-image-story { padding:clamp(85px,10vw,145px) 0; background:#eae2d7; }
.trb-luxury .trb-image-story-grid { gap:22px; }
.trb-luxury .trb-image-story-item img { filter:saturate(.82); box-shadow:0 30px 80px rgba(22,39,31,.14); }
.trb-luxury .trb-knowledge-grid { gap:18px; }
.trb-luxury .trb-knowledge-grid a { min-height:390px; padding:38px; border:0; border-radius:28px; background:#f5f0e8; box-shadow:none; }
.trb-luxury .trb-knowledge-grid a:nth-child(2n) { background:#e5ece5; }
.trb-luxury .trb-knowledge-grid a:hover { box-shadow:var(--trb-lux-shadow); }
.trb-luxury .trb-faq summary { padding:30px 0; }

/* Subpages: stronger magazine-like opening and image rhythm. */
.trb-luxury:not(.trb-luxury-home) .page-hero { padding:clamp(70px,8vw,115px) 0; background:linear-gradient(135deg,#f3ede4,#faf7f1 68%); }
.trb-luxury:not(.trb-luxury-home) .page-hero-grid { grid-template-columns:minmax(0,.9fr) minmax(380px,.72fr); gap:clamp(60px,9vw,130px); align-items:center; }
.trb-luxury:not(.trb-luxury-home) .page-hero h1 { font-size:clamp(4.5rem,7vw,7.4rem); line-height:.88; }
.trb-luxury:not(.trb-luxury-home) .page-hero-media { height:min(610px,58vw); border-radius:300px 300px 28px 28px; box-shadow:var(--trb-lux-shadow); }
.trb-luxury .content-section { padding-block:clamp(85px,10vw,140px); }
.trb-luxury .trb-deepening { padding:clamp(95px,11vw,160px) 0; }

/* Booking has the feel of a guided private appointment, not a form. */
.trb-luxury.trb-booking-page .booking-wrap { max-width:1060px; margin-inline:auto; border:0; border-radius:38px; background:#fff; box-shadow:0 35px 100px rgba(22,39,31,.1); }
.trb-luxury.trb-booking-page .trb-progress { border:1px solid rgba(32,55,46,.09); border-radius:999px; background:#f5f0e8; }
.trb-luxury.trb-booking-page .trb-service { border-radius:24px; background:#faf7f2; }
.trb-luxury.trb-booking-page .trb-service.is-selected { box-shadow:0 0 0 2px var(--tr-clay),0 20px 50px rgba(22,39,31,.1); }
.trb-luxury.trb-administration-page .trb-dashboard { filter:drop-shadow(0 26px 65px rgba(22,39,31,.1)); }

/* Phone — intentionally designed, not merely collapsed. */
@media (max-width: 720px) {
  body.trb-menu-open { overflow:hidden; }
  .trb-luxury .header-inner { min-height:68px; }
  .trb-luxury .brand strong { font-size:1.28rem; }
  .trb-luxury .brand small { font-size:.48rem; }
  .trb-luxury .nav-toggle { width:43px; height:43px; border-color:rgba(32,55,46,.12); background:#f3eee6; }

  .trb-luxury-home .tr-hero { min-height:calc(100svh - 68px); max-height:790px; }
  .trb-luxury-home .tr-hero::before { background:linear-gradient(0deg,rgba(12,24,18,.94) 0%,rgba(13,25,19,.56) 51%,rgba(13,25,19,.08) 78%); }
  .trb-luxury-home .tr-hero-image { object-position:62% 28%; transform:scale(1.01); }
  .trb-luxury-home .tr-hero-copy { display:flex; width:100%; min-height:calc(100svh - 68px); max-height:790px; flex-direction:column; justify-content:flex-end; padding:92px 0 48px; }
  .trb-luxury-home .tr-hero h1 { max-width:330px; margin:.13em 0 .22em; font-size:clamp(3.75rem,17vw,4.7rem); line-height:.86; }
  .trb-luxury-home .tr-hero .tr-lead { max-width:345px; font-size:1rem; line-height:1.48; }
  .trb-luxury-home .tr-hero .tr-actions { display:grid; grid-template-columns:1fr; gap:7px; margin-top:24px; }
  .trb-luxury-home .tr-hero .tr-btn { min-height:51px; width:100%; font-size:.75rem; }
  .trb-luxury-home .tr-hero .tr-btn--line { min-height:38px; border:0; background:transparent; text-decoration:underline; text-underline-offset:5px; }
  .trb-luxury-home .tr-hero-note { display:none; }

  .trb-luxury .tr-section,.trb-luxury .trb-feature,.trb-luxury .trb-deepening,.trb-luxury .trb-image-story { padding-block:72px; }
  .trb-luxury .tr-section-head { gap:18px; margin-bottom:29px; }
  .trb-luxury .tr-section-head h2,.trb-luxury .trb-feature h2 { font-size:clamp(2.65rem,12.2vw,3.45rem); line-height:.97; }

  .trb-luxury-home .trb-personal-intro { padding:65px 0 73px; }
  .trb-luxury-home .trb-personal-inner { gap:43px; }
  .trb-luxury-home .trb-personal-intro figure { width:82%; margin-inline:auto; }
  .trb-luxury-home .trb-personal-intro figure::before { inset:14px -14px -14px 14px; }
  .trb-luxury-home .trb-personal-intro img { max-height:440px; }
  .trb-luxury-home .trb-personal-intro h2 { font-size:clamp(2.85rem,13vw,3.7rem); }
  .trb-luxury-home .trb-personal-intro .tr-lead { font-size:1.06rem; }
  .trb-luxury-home .trb-signature { margin:14px 0 22px; }

  .trb-swipe-hint { display:block; margin:-5px 0 17px; color:var(--tr-clay-dark); font-size:.65rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
  .trb-luxury-home .tr-card-grid,.trb-luxury .trb-knowledge-grid,.trb-luxury .trb-image-story-grid {
    display:flex; width:auto; margin-right:-15px; gap:12px; overflow-x:auto; overscroll-behavior-inline:contain;
    padding:0 15px 16px 0; scroll-snap-type:x mandatory; scrollbar-width:none;
  }
  /* This gallery is itself a .tr-shell (the other carousels sit inside one).
     Give it the same 15px start gutter without widening the document. */
  .trb-luxury .trb-image-story-grid.tr-shell {
    width:calc(100% - 15px); max-width:calc(100% - 15px); margin-left:15px; margin-right:0;
  }
  .trb-luxury-home .tr-card-grid::-webkit-scrollbar,.trb-luxury .trb-knowledge-grid::-webkit-scrollbar,.trb-luxury .trb-image-story-grid::-webkit-scrollbar { display:none; }
  .trb-luxury-home .tr-card { flex:0 0 82vw; min-height:242px; padding:27px; scroll-snap-align:start; border-radius:24px; }
  .trb-luxury-home .tr-card h3 { font-size:2rem; }
  .trb-luxury-home .tr-card p { margin-bottom:14px; }
  .trb-luxury .trb-knowledge-grid a { flex:0 0 82vw; min-height:330px; padding:29px; scroll-snap-align:start; }
  .trb-luxury .trb-image-story-item { flex:0 0 78vw; scroll-snap-align:start; }
  .trb-luxury .trb-image-story-item img,.trb-luxury .trb-image-story-item--2 img,.trb-luxury .trb-image-story-item--3 img { height:380px; border-radius:180px 180px 22px 22px; }

  .trb-luxury .tr-banner { min-height:590px; }
  .trb-luxury .tr-banner-copy { padding-bottom:35px; }
  .trb-luxury .tr-split { gap:45px; }
  .trb-luxury .tr-split-media { border-radius:180px 180px 22px 22px; }
  .trb-luxury .tr-session { padding:30px 25px; border-radius:24px; }
  .trb-luxury .tr-cta { padding:32px 26px; border-radius:26px; }

  .trb-luxury:not(.trb-luxury-home) .page-hero { padding:48px 0 55px; }
  .trb-luxury:not(.trb-luxury-home) .page-hero-grid { grid-template-columns:1fr; gap:34px; }
  .trb-luxury:not(.trb-luxury-home) .page-hero h1 { font-size:clamp(3.35rem,15vw,4.3rem); line-height:.91; }
  .trb-luxury:not(.trb-luxury-home) .page-hero-media { width:88%; height:390px; margin-inline:auto; border-radius:220px 220px 24px 24px; }
  .trb-luxury .content-section { padding-block:68px; }

  .trb-luxury.trb-booking-page .booking-wrap { margin-inline:-4px; padding:24px 14px; border-radius:26px; box-shadow:none; }
  .trb-luxury.trb-booking-page .trb-progress { top:76px; }

  .trb-luxury .trb-mobile-booking-bar { right:10px; bottom:max(10px,env(safe-area-inset-bottom)); left:10px; min-height:57px; padding:8px 8px 8px 17px; border-radius:17px; transition:opacity .25s ease,transform .25s ease; }
  .trb-luxury .trb-mobile-booking-bar small { display:none; }
  .trb-luxury .trb-mobile-booking-bar strong { font-family:inherit; font-size:.82rem; font-weight:800; letter-spacing:.02em; }
  .trb-luxury .trb-mobile-booking-bar b { flex-basis:40px; height:40px; font-size:1rem; }
  .trb-luxury .trb-mobile-booking-bar.is-suppressed { opacity:0; transform:translateY(20px); pointer-events:none; }
  .trb-luxury:not(.trb-booking-page):not(.trb-administration-page) .site-footer { padding-bottom:92px; }
}

/* Tablet and phone navigation is a calm full-page index. */
@media (max-width: 980px) {
  body.trb-menu-open .site-header {
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
  }
  .trb-luxury .site-nav {
    inset:86px 0 0;
    max-height:none;
    align-content:start;
    gap:2px;
    padding:clamp(32px,6vw,64px) max(24px,calc((100vw - 760px)/2)) 50px;
    background:rgba(245,240,232,.985);
    box-shadow:none;
    overscroll-behavior:contain;
  }
  .trb-luxury .site-nav.is-open {
    display:grid;
    height:calc(100vh - 86px);
    height:calc(100dvh - 86px);
    max-height:calc(100vh - 86px);
    max-height:calc(100dvh - 86px);
    overflow-y:auto;
  }
  .trb-luxury .site-nav > a:not(.tr-btn),.trb-luxury .nav-dropdown > button {
    padding:12px 0;
    border-bottom:1px solid rgba(28,41,35,.1);
    font-family:var(--tr-serif);
    font-size:clamp(1.45rem,4vw,2.1rem);
    font-weight:500;
    letter-spacing:-.025em;
  }
  .trb-luxury .site-nav > a::after,.trb-luxury .nav-dropdown > button::after { display:none; }
  .trb-luxury .nav-dropdown-panel {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0 18px;
    padding:13px 0 18px;
    background:transparent;
  }
  .trb-luxury .nav-dropdown-panel a { padding:7px 0; color:var(--tr-ink-soft); font-size:.82rem; }
  .trb-luxury .site-nav > .tr-btn { width:100%; margin-top:20px; min-height:56px; }
}

@media (max-width: 720px) {
  .trb-luxury .site-nav { inset:68px 0 0; }
  .trb-luxury .site-nav.is-open {
    height:calc(100vh - 68px);
    height:calc(100dvh - 68px);
    max-height:calc(100vh - 68px);
    max-height:calc(100dvh - 68px);
  }
  .trb-luxury .nav-dropdown-panel { grid-template-columns:1fr 1fr; }
}

@media (max-width: 380px) {
  .trb-luxury-home .tr-hero h1 { font-size:3.55rem; }
  .trb-luxury-home .tr-hero .tr-lead { font-size:.94rem; }
  .trb-luxury-home .tr-card,.trb-luxury .trb-knowledge-grid a { flex-basis:86vw; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .trb-luxury * { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; }
}
