/* ==========================================================================
   Hotel Rivel — RESTAURANT template. Scoped to .rivel-restaurant-template.
   Tokens come from global.css. Same construction as Our Story / Coffee Estate.
   ========================================================================== */
.rivel-restaurant-template *,
.rivel-restaurant-template *::before,
.rivel-restaurant-template *::after{ box-sizing:border-box; margin:0; padding:0; }
.rivel-restaurant-template a{ text-decoration:none; color:inherit; }
.rivel-restaurant-template ul{ list-style:none; }
.rivel-restaurant-template button{ border:none; background:none; cursor:pointer; font-family:inherit; }
.rivel-restaurant-template .editorial-italic{ font-family:var(--font-editorial); font-style:italic; font-weight:500; }
.rivel-restaurant-template .text-ivory{ color:var(--clr-warm-ivory); }
.rivel-restaurant-template .text-terracotta{ color:var(--clr-terracotta); }
.rivel-restaurant-template .rr-main{
	overflow-x:clip; --rr-container:1280px;
	--rr-line-light:rgba(24,58,43,.14); --rr-line-dark:rgba(245,242,233,.16); --rr-muted-dark:rgba(245,242,233,.74);
}

.rivel-restaurant-template .rr-section{ padding:8rem 2rem; position:relative; }
.rivel-restaurant-template .rr-light{ background:var(--clr-warm-ivory); color:var(--clr-text-primary); }
.rivel-restaurant-template .rr-cream{ background:var(--clr-soft-cream); color:var(--clr-text-primary); }
.rivel-restaurant-template .rr-dark{ background:var(--clr-deep-green); color:var(--clr-warm-ivory); }
.rivel-restaurant-template .rr-container{ width:100%; max-width:var(--rr-container); margin:0 auto; }

.rivel-restaurant-template .rr-eyebrow{
	display:flex; align-items:center; gap:.5rem; margin-bottom:1rem; font-family:var(--font-primary);
	font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.15em; color:var(--clr-terracotta);
}
.rivel-restaurant-template .rr-h2{
	font-family:var(--font-editorial); font-weight:500; font-size:clamp(2.25rem,4.2vw,3.5rem);
	line-height:1.08; letter-spacing:-.02em; color:var(--clr-primary-green); margin-bottom:1.5rem;
}
.rivel-restaurant-template .rr-dark .rr-h2{ color:var(--clr-warm-ivory); }
.rivel-restaurant-template .rr-lead{ font-family:var(--font-primary); font-size:clamp(1.0625rem,1.5vw,1.25rem); line-height:1.65; margin-bottom:1.5rem; }
.rivel-restaurant-template .rr-dark .rr-lead{ color:var(--clr-warm-ivory); }
.rivel-restaurant-template .rr-body{ font-family:var(--font-primary); font-size:1rem; line-height:1.75; color:var(--clr-text-secondary); }
.rivel-restaurant-template .rr-inline-link{ color:var(--clr-primary-green); border-bottom:1px solid var(--clr-terracotta); }
.rivel-restaurant-template .rr-img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .8s cubic-bezier(.2,.8,.2,1); }

/* Buttons */
.rivel-restaurant-template .rr-btn-primary,
.rivel-restaurant-template .rr-btn-secondary{
	font-family:var(--font-primary); font-size:.8125rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em;
	border-radius:50px; display:inline-flex; align-items:center; gap:1rem; min-height:48px;
	transition:transform var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast);
}
.rivel-restaurant-template .rr-btn-primary{ background:var(--clr-warm-ivory); color:var(--clr-primary-green); padding:.375rem .375rem .375rem 1.5rem; }
.rivel-restaurant-template .rr-btn-primary:hover{ background:#fff; color:var(--clr-primary-green); transform:translateY(-2px); }
.rivel-restaurant-template .rr-btn-circle{
	width:36px; height:36px; border-radius:50%; background:rgba(24,58,43,.1); border:1px solid rgba(24,58,43,.15);
	display:flex; align-items:center; justify-content:center; transition:transform var(--transition-fast);
}
.rivel-restaurant-template .rr-btn-primary:hover .rr-btn-circle{ transform:translateX(4px); }
.rivel-restaurant-template .rr-btn-secondary{ background:transparent; color:var(--clr-warm-ivory); border:1px solid rgba(245,242,233,.4); padding:.375rem 1.5rem .375rem .375rem; }
.rivel-restaurant-template .rr-btn-secondary:hover{ background:rgba(245,242,233,.1); border-color:var(--clr-warm-ivory); color:var(--clr-warm-ivory); transform:translateY(-2px); }
.rivel-restaurant-template .rr-btn-circle-outline{ width:36px; height:36px; border-radius:50%; border:1px solid rgba(245,242,233,.5); display:flex; align-items:center; justify-content:center; }

/* Hero */
.rivel-restaurant-template .rr-hero{
	position:relative; min-height:80vh; min-height:80dvh; display:flex; align-items:flex-end;
	padding:8rem 2rem 4rem; overflow:hidden; color:var(--clr-warm-ivory); isolation:isolate;
}
.rivel-restaurant-template .rr-hero-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.rivel-restaurant-template .rr-hero-overlay{ position:absolute; inset:0; z-index:-1; background:linear-gradient(210deg,rgba(16,42,32,.10) 0%,rgba(16,42,32,.75) 60%,rgba(10,26,20,.95) 100%); }
.rivel-restaurant-template .rr-hero-container{ width:100%; max-width:var(--rr-container); margin:0 auto; }
.rivel-restaurant-template .rr-hero-content{ display:flex; flex-direction:column; max-width:750px; }
.rivel-restaurant-template .rr-hero-eyebrow{ font-family:var(--font-primary); font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.15em; margin-bottom:1rem; }
.rivel-restaurant-template .rr-hero-title{
	font-family:var(--font-primary); font-size:clamp(1.8rem,4vw,3.5rem); font-weight:700; text-transform:uppercase;
	line-height:.98; letter-spacing:-.035em; margin-bottom:1.25rem;
}
.rivel-restaurant-template .rr-hero-desc{ font-size:clamp(.9rem,1.2vw,1rem); line-height:1.6; color:rgba(245,242,233,.85); max-width:640px; margin-bottom:2.25rem; }
.rivel-restaurant-template .rr-hero-actions{ display:flex; flex-wrap:wrap; align-items:center; gap:1rem; }

/* Heads */
.rivel-restaurant-template .rr-head{ max-width:44rem; margin-bottom:4rem; }
.rivel-restaurant-template .rr-head .rr-h2{ margin-bottom:1rem; }
.rivel-restaurant-template .rr-head--split{ max-width:none; display:flex; justify-content:space-between; align-items:flex-end; gap:3rem; }
.rivel-restaurant-template .rr-head--split .rr-h2{ margin-bottom:0; }
.rivel-restaurant-template .rr-head--split .rr-body{ max-width:28rem; }

/* Signature dishes */
.rivel-restaurant-template .rr-signature{ display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
.rivel-restaurant-template .rr-dish{ background:var(--clr-warm-ivory); border:1px solid var(--rr-line-light); border-radius:16px; overflow:hidden; }
.rivel-restaurant-template .rr-dish-media{ position:relative; aspect-ratio:16/10; overflow:hidden; }
.rivel-restaurant-template .rr-dish:hover .rr-img{ transform:scale(1.04); }
.rivel-restaurant-template .rr-badge{
	position:absolute; top:1rem; right:1rem; background:var(--clr-deep-green); color:var(--clr-warm-ivory);
	font-size:.6875rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding:.45rem .9rem; border-radius:50px;
}
.rivel-restaurant-template .rr-dish-body{ padding:1.75rem 2rem 2rem; }
.rivel-restaurant-template .rr-dish-body h3{ font-family:var(--font-editorial); font-size:1.75rem; font-weight:500; line-height:1.15; color:var(--clr-primary-green); margin-bottom:.625rem; }
.rivel-restaurant-template .rr-dish-body p{ font-size:.9375rem; line-height:1.65; color:var(--clr-text-secondary); margin-bottom:1.25rem; }
.rivel-restaurant-template .rr-dish-foot{ display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.rivel-restaurant-template .rr-price{ font-family:var(--font-editorial); font-size:1.5rem; font-weight:500; color:var(--clr-terracotta); white-space:nowrap; }
.rivel-restaurant-template .rr-tag{
	display:inline-block; font-size:.6875rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
	color:var(--clr-primary-green); border:1px solid var(--rr-line-light); border-radius:50px; padding:.3rem .75rem;
}

/* Menu tabs */
.rivel-restaurant-template .rr-tabs{
	display:flex; flex-wrap:wrap; gap:.625rem; margin-bottom:3rem; padding-bottom:2rem; border-bottom:1px solid var(--rr-line-light);
}
.rivel-restaurant-template .rr-tab{
	min-height:44px; padding:.6rem 1.25rem; border-radius:50px; border:1px solid var(--rr-line-light);
	font-size:.875rem; font-weight:600; color:var(--clr-primary-green); background:transparent;
	transition:background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
}
.rivel-restaurant-template .rr-tab:hover{ border-color:var(--clr-primary-green); }
.rivel-restaurant-template .rr-tab.is-active{ background:var(--clr-deep-green); border-color:var(--clr-deep-green); color:var(--clr-warm-ivory); }
.rivel-restaurant-template .rr-tab:focus-visible{ outline:2px solid var(--clr-terracotta); outline-offset:3px; }

/* Panels: all visible without JS; JS adds .rr-tabs-ready to body */
.rivel-restaurant-template.rr-tabs-ready .rr-panel{ display:none; }
.rivel-restaurant-template.rr-tabs-ready .rr-panel.is-active{ display:block; animation:rrFade .45s ease; }
@keyframes rrFade{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:none; } }
.rivel-restaurant-template .rr-panel + .rr-panel{ margin-top:4rem; }
.rivel-restaurant-template.rr-tabs-ready .rr-panel + .rr-panel{ margin-top:0; }
.rivel-restaurant-template .rr-panel-title{ font-family:var(--font-editorial); font-size:2rem; font-weight:500; color:var(--clr-primary-green); margin-bottom:.5rem; }
.rivel-restaurant-template .rr-panel-note{ font-size:.9375rem; color:var(--clr-text-secondary); margin-bottom:1rem; }
.rivel-restaurant-template .rr-items{ display:grid; grid-template-columns:1fr 1fr; column-gap:4rem; margin-top:1.5rem; border-top:1px solid var(--rr-line-light); }
.rivel-restaurant-template .rr-item{ padding:1.5rem 0; border-bottom:1px solid var(--rr-line-light); }
.rivel-restaurant-template .rr-item-top{ display:flex; justify-content:space-between; align-items:baseline; gap:1rem; }
.rivel-restaurant-template .rr-item h4{ font-family:var(--font-editorial); font-size:1.375rem; font-weight:500; line-height:1.2; color:var(--clr-primary-green); }
.rivel-restaurant-template .rr-item-top .rr-price{ font-size:1.125rem; }
.rivel-restaurant-template .rr-item-tags{ display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.5rem; }
.rivel-restaurant-template .rr-item-tags .rr-tag{ font-size:.625rem; padding:.2rem .6rem; }
.rivel-restaurant-template .rr-item p{ margin-top:.625rem; font-size:.9375rem; line-height:1.65; color:var(--clr-text-secondary); }

/* Dining split */
.rivel-restaurant-template .rr-split{ display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
.rivel-restaurant-template .rr-split-text{ max-width:34rem; }
.rivel-restaurant-template .rr-split-media{ overflow:hidden; border-radius:16px; aspect-ratio:4/5; }
@media (min-width:1025px){ .rivel-restaurant-template .rr-split-media:hover .rr-img{ transform:scale(1.03); } }
.rivel-restaurant-template .rr-facts{ margin:0 0 2.25rem; border-top:1px solid var(--rr-line-dark); }
.rivel-restaurant-template .rr-facts > div{ padding:1.15rem 0; border-bottom:1px solid var(--rr-line-dark); }
.rivel-restaurant-template .rr-facts dt{ font-family:var(--font-editorial); font-size:1.375rem; font-weight:500; margin-bottom:.25rem; }
.rivel-restaurant-template .rr-facts dd{ font-size:.9375rem; line-height:1.6; color:var(--rr-muted-dark); }

/* Reveal */
.rivel-restaurant-template.rr-reveal-ready .reveal-elem{ opacity:0; transform:translateY(24px); transition:opacity .9s ease, transform .9s cubic-bezier(.2,.8,.2,1); }
.rivel-restaurant-template.rr-reveal-ready .reveal-elem.is-visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
	.rivel-restaurant-template.rr-reveal-ready .reveal-elem{ opacity:1; transform:none; transition:none; }
	.rivel-restaurant-template .rr-img,.rivel-restaurant-template .rr-btn-primary,.rivel-restaurant-template .rr-btn-secondary{ transition:none; }
	.rivel-restaurant-template.rr-tabs-ready .rr-panel.is-active{ animation:none; }
	.rivel-restaurant-template .rr-dish:hover .rr-img,.rivel-restaurant-template .rr-split-media:hover .rr-img{ transform:none; }
}

/* Tablet */
@media (max-width:1024px){
	.rivel-restaurant-template .rr-section{ padding:6rem 2rem; }
	.rivel-restaurant-template .rr-head--split{ flex-direction:column; align-items:flex-start; gap:1.25rem; }
	.rivel-restaurant-template .rr-split{ grid-template-columns:1fr; gap:3rem; }
	.rivel-restaurant-template .rr-split-text{ max-width:none; }
	.rivel-restaurant-template .rr-split-media{ aspect-ratio:16/10; }
	.rivel-restaurant-template .rr-items{ column-gap:2.5rem; }
}

/* Mobile */
@media (max-width:767px){
	.rivel-restaurant-template .rr-section{ padding:5rem 1.5rem; }
	.rivel-restaurant-template .rr-hero{ padding:7rem 1.5rem 3rem; min-height:78vh; min-height:78dvh; }
	.rivel-restaurant-template .rr-hero-actions{ flex-direction:column; align-items:stretch; }
	.rivel-restaurant-template .rr-btn-primary{ justify-content:space-between; width:100%; }
	.rivel-restaurant-template .rr-btn-secondary{ justify-content:flex-start; width:100%; }
	.rivel-restaurant-template .rr-head{ margin-bottom:2.5rem; }
	.rivel-restaurant-template .rr-signature{ grid-template-columns:1fr; }
	.rivel-restaurant-template .rr-dish-body{ padding:1.5rem; }
	/* tabs become one swipeable row instead of a tall wrapped block */
	.rivel-restaurant-template .rr-tabs{
		flex-wrap:nowrap; overflow-x:auto; margin:0 -1.5rem 2rem; padding:0 1.5rem 1.25rem;
		scrollbar-width:none; -webkit-overflow-scrolling:touch;
	}
	.rivel-restaurant-template .rr-tabs::-webkit-scrollbar{ display:none; }
	.rivel-restaurant-template .rr-tab{ flex-shrink:0; }
	.rivel-restaurant-template .rr-items{ grid-template-columns:1fr; }
	.rivel-restaurant-template .rr-panel-title{ font-size:1.75rem; }
	.rivel-restaurant-template .rr-split-media{ aspect-ratio:4/3; }
	.rivel-restaurant-template .rr-split .rr-btn-primary{ width:100%; }
}
