/* ==========================================================================
   Cerca da Vinha: shared design system
   Recreated from the Claude Design prototypes (Terra direction):
   cream #ece0cd · terracotta #a23b2d · slate blue #3b5d70
   Fonts: Marcellus (display) · Hanken Grotesk (body) · JetBrains Mono (code)
   ========================================================================== */

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:#ece0cd;
  color:#2c2418;
  font-family:'Hanken Grotesk',sans-serif;
  font-weight:300;
  min-height:100vh;
  overflow-x:hidden;
}
::selection{background:#a23b2d;color:#f3ebdc}

img{display:block}

/* Hero rise-in (homepage left panel) */
@keyframes tRise{
  from{opacity:0;transform:translateY(26px)}
  to{opacity:1;transform:translateY(0)}
}

/* Gallery: hide native scrollbar on the carousel track */
.cdv-gal-track::-webkit-scrollbar{display:none}
.cdv-gal-track{scrollbar-width:none;-ms-overflow-style:none}

/* --------------------------------------------------------------------------
   Hover states (the prototype's `style-hover` compiled to real :hover rules)
   -------------------------------------------------------------------------- */
.nav-link{transition:opacity .3s ease}
.nav-link:hover{opacity:1 !important}

.gal-arrow{transition:background .3s ease,border-color .3s ease,color .3s ease,opacity .3s ease}
.gal-arrow:not(:disabled):hover{
  background:#a23b2d !important;
  border-color:#a23b2d !important;
  color:#f4ecdd !important;
}

.room-img{transition:transform 1.1s cubic-bezier(.16,1,.3,1),opacity .22s ease}
.room-img-frame:hover .room-img{transform:scale(1.04)}

.map-link{transition:border-color .3s ease}
.map-link:hover{border-color:#a23b2d !important}

.copy-btn{transition:background .3s ease}
.copy-btn:hover{background:#fff !important}

.pill{transition:background .3s ease}
.pill:hover{background:#7d2c20 !important}

.email-link{transition:border-color .3s ease}
.email-link:hover{border-color:#fff !important}

.foot-link{transition:color .3s ease}
.foot-link:hover{color:#fff !important}

.index-link{transition:color .3s ease}
.index-link:hover{color:#a23b2d !important}

.rules-aside-link:hover{color:#7d2c20 !important}

/* Language switcher dropdown is styled further below. */

/* --------------------------------------------------------------------------
   Nav background state (toggled by enhance.js on scroll past 60px)
   -------------------------------------------------------------------------- */
.cdv-nav{background:transparent;border-bottom:1px solid transparent;transition:background .3s ease,border-color .3s ease}
.cdv-nav--scrolled{background:rgba(236,224,205,.92);border-bottom:1px solid rgba(0,0,0,.07)}

/* Language switcher: compact "PT ▾" disclosure that opens a menu of endonyms.
   (Markup from langLinks(); the nav wrapper sets the inherited text colour.) */
.lang-menu{position:relative;display:inline-block}
.lang-menu > summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:5px;color:inherit;outline-offset:3px}
.lang-menu > summary::-webkit-details-marker{display:none}
.lang-menu > summary::marker{content:""}
.lang-caret{font-size:9px;opacity:.65;transition:transform .25s ease}
.lang-menu[open] > summary .lang-caret{transform:rotate(180deg)}
.lang-list{position:absolute;top:calc(100% + 12px);right:0;z-index:60;min-width:172px;display:flex;flex-direction:column;gap:1px;background:#f3ebdc;border:1px solid rgba(44,36,24,.1);border-radius:9px;padding:7px;box-shadow:0 16px 44px rgba(44,36,24,.2)}
.lang-opt{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:10px 13px;border-radius:6px;white-space:nowrap;font-size:14px;letter-spacing:.01em;text-transform:none;font-weight:300;color:#2c2418;text-decoration:none}
a.lang-opt{transition:background .2s ease}
a.lang-opt:hover,a.lang-opt:focus-visible{background:#e7d9c1}
.lang-opt--current{font-weight:500;color:#a23b2d}
.lang-dot{font-size:8px;line-height:1;color:#a23b2d}

/* Scrollspy active state for index-link elements (guia + regras pages).
   Index links carry class="index-link"; enhance.js adds/removes is-active. */
.index-link.is-active{color:#a23b2d}

/* --------------------------------------------------------------------------
   Copy-confirmation toast + button flash (created/toggled by enhance.js)
   -------------------------------------------------------------------------- */
.cdv-toast{
  position:fixed;left:50%;bottom:32px;z-index:1000;
  transform:translate(-50%,14px);
  max-width:calc(100vw - 32px);
  background:#2c2418;color:#f3ebdc;
  font-family:'Hanken Grotesk',sans-serif;font-size:14px;font-weight:500;letter-spacing:.01em;
  padding:12px 22px;border-radius:999px;white-space:nowrap;
  box-shadow:0 10px 34px rgba(0,0,0,.28);
  opacity:0;pointer-events:none;
  transition:opacity .3s ease,transform .4s cubic-bezier(.16,1,.3,1);
}
.cdv-toast--show{opacity:1;transform:translate(-50%,0)}

/* Brief on-button confirmation while the toast is up. */
.copy-btn--done{background:#a23b2d !important;color:#f3ebdc !important}

@media (prefers-reduced-motion:reduce){
  .cdv-toast{transition:opacity .2s ease;transform:translate(-50%,0)}
}

/* --------------------------------------------------------------------------
   Responsive nav: keep the bar to one tidy line as the 5-language switcher
   widens it. Homepage jump-links collapse first; then the switcher, logo and
   sub-page back-link compact on phones.
   -------------------------------------------------------------------------- */
@media (max-width: 1024px){
  /* Homepage in-page jump links collapse (the page scrolls instead), leaving the
     logo and the compact language switcher. Sub-page back-links use .nav-back,
     not .nav-section, so they always stay. */
  .nav-section{display:none !important}
}
@media (max-width: 600px){
  .cdv-nav{padding:14px 18px !important}
  .cdv-nav > a{font-size:17px !important;letter-spacing:.14em !important}   /* the logo */
  .nav-back-text{display:none}   /* sub-page back-link shrinks to its arrow */
}
@media (max-width: 380px){
  .cdv-nav{padding:12px 14px !important}
}
