/* ===================================
    Custom - Curvatura
====================================== */
/* font */
@font-face {
  font-family: "moholbold";
  src: url("../fonts/mohol-bold-webfont.woff2") format("woff2"),
    url("../fonts/mohol-bold-webfont.woff") format("woff");
  font-weight: normal;
  font-style: normal;
}

/* variable */
:root {
  --base-color: #696056;
  --alt-color: #000;
  --medium-gray: #838383;
  --light-gray: #cbcbcb;
  --custom-gray: #e3e1db;
  --alt-font: "moholbold";
  --primary-font: "Afacad", sans-serif;
}
/* custom cursor */
@media (hover: hover) and (pointer: fine) {
  .custom-cursor .circle-cursor-outer {
    border: 1px solid var(--black);
  }
  .custom-cursor .circle-cursor-inner {
    background: var(--black);
  }
  .custom-cursor .circle-cursor-inner.cursor-link-hover {
    background-color: var(--black);
    width: 10px;
    height: 10px;
    margin-left: -5px;
    margin-top: -5px;
  }
}
body {
  font-size: 18px;
  line-height: 34px;
  background-color: rgba(211, 199, 162, 0.2);
}

.grain-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='a'%3E%3CfeTurbulence baseFrequency='0.9' type='fractalNoise'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)'/%3E%3C/svg%3E");
  background-repeat: repeat;
  pointer-events: none;
  z-index: 999;
  opacity: 0.6;
}

/* header */
header .navbar-brand img {
  max-height: 100px;
  image-rendering: auto;
}
.navbar .navbar-nav .nav-link {
  font-weight: 400;
  padding: 10px 25px;
  font-size: 20px;
}
.navbar .navbar-nav .nav-item:last-child .nav-link {
  padding-right: 0;
}
header .navbar-brand {
  padding: 20px 0;
}
header .container-fluid {
  padding-left: 80px;
  padding-right: 80px;
}

header.sticky .header-light:not(.disable-fixed) , header.sticky.sticky-active  {
  background-color: rgba(255, 255, 255, 0.5);
  box-shadow: none;
}

header.sticky .header-light:not(.disable-fixed) .navbar-brand , header.sticky.sticky-active .navbar-brand {
  padding-top:10px;
  padding-bottom:10px;
}

header.sticky .header-light:not(.disable-fixed) .navbar-brand , header.sticky.sticky-active .navbar-brand {
  padding-top:10px;
  padding-bottom:10px;
}

header.sticky .header-light:not(.disable-fixed) .default-logo, header.sticky.sticky-active .default-logo {
  visibility: hidden;
  opacity: 0;
  width: 0;
}

header.sticky .header-light:not(.disable-fixed).alt-logo, header.sticky.sticky-active .alt-logo {
  visibility: visible;
  opacity: 1;
  width: auto;
}

/* font size */
.fs-210 {
  font-size: 12.75rem;
  line-height: 10.7rem;
}
.fs-220 {
  font-size: 13.75rem;
  line-height: 11.7rem;
}
.fs-280 {
  font-size: 17.5rem;
  line-height: 17.5rem;
}
/* margin */
.mb-50 {
  margin-bottom: 50%;
}
.small-icon li {
  margin: 0 8px;
}
/* btn */
.btn {
  font-family: var(--primary-font);
  font-weight: 800;
}
#showResetPasswordButton, #showLoginButton {
  cursor: pointer !important;
}
/* contact form-style 03 */
input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
  color: var(--black) !important;
  text-overflow: ellipsis;
  opacity: 1;
}
input::-moz-placeholder,
textarea::-moz-placeholder {
  color: var(--black) !important;
  text-overflow: ellipsis;
  opacity: 1;
}
input:-ms-input-placeholder,
textarea:-ms-input-placeholder {
  color: var(--black) !important;
  text-overflow: ellipsis;
  opacity: 1;
}
input,
select,
textarea,
.form-control,
.form-select {
  color: var(--black) !important;
}

/* media query responsive */
@media (min-width: 1400px) {
  .container,
  .container-lg,
  .container-md,
  .container-xl,
  .container-xxl {
    max-width: 1440px;
  }

  .container-sm {
    max-width: 1220px;
  }
}
@media (max-width: 1199px) {
  .fs-220 {
    font-size: 12.5rem;
    line-height: 12.5rem;
  }
  .fs-280 {
    font-size: 15rem;
    line-height: 15rem;
  }
}
@media (max-width: 991px) {
  header.sticky .header-light:not(.disable-fixed) .navbar-brand , header.sticky.sticky-active .navbar-brand {
    padding-top:1px;
    padding-bottom:1px;
  }
 
  header.sticky .header-light:not(.disable-fixed) .mobile-logo, header.sticky.sticky-active .mobile-logo {
    visibility: hidden !important;
    opacity: 0 !important;
    width: 0 !important;
  } 
  header.sticky .header-light:not(.disable-fixed) .mobile-alt-logo, header.sticky.sticky-active .mobile-alt-logo {
    visibility: visible !important;
    opacity: 1 !important;
    width: auto !important;
  } 
  header.sticky .header-light:not(.disable-fixed) .mobile-alt-logo, header.sticky.sticky-active .mobile-alt-logo {
    outline: none;
  }
  .navbar.bg-transparent {
    background-color: transparent !important;
  }
  .fs-220 {
    font-size: 10rem;
    line-height: 10rem;
  }
  header .navbar-brand {
    padding: 30px 0;
  }
  .fs-280 {
    font-size: 12rem;
    line-height: 12rem;
  }
  .navbar-collapse-show[data-mobile-nav-style="full-screen-menu"]
    .navbar-full-screen-menu-inner {
    /*background-image: url(../images/ug-bg.svg) !important;
    background-repeat: no-repeat !important;
    background-position: center center !important;*/
  }
  [data-mobile-nav-style="full-screen-menu"]
    .navbar-full-screen-menu-inner
    .navbar-nav {
    text-align: center;
  }
  [data-mobile-nav-style="full-screen-menu"]
    .navbar-full-screen-menu-inner
    .navbar-nav
    > .nav-item {
    border-bottom: 0;
    padding: 0;
  }
  [data-mobile-nav-style="full-screen-menu"]
    .navbar-full-screen-menu-inner
    .navbar-nav
    .nav-item
    .nav-link {
    font-size: 42px;
    line-height: 46px;
  }
  [data-mobile-nav-style="full-screen-menu"]
    .navbar-full-screen-menu-inner
    .navbar-nav
    .nav-item
    .nav-link {
    color: var(--black);
  }
  [data-mobile-nav-style="full-screen-menu"]
    .navbar-full-screen-menu-inner
    .navbar-toggler
    .navbar-toggler-line {
    background-color: var(--black);
  }
  [data-mobile-nav-style="full-screen-menu"]
    .navbar-full-screen-menu-inner
    .navbar-nav
    .nav-item.active
    .nav-link {
    color: var(--black);
    opacity: 0.6;
  }
}
@media (max-width: 575px) {
  header.sticky .header-light:not(.disable-fixed) .navbar-brand , header.sticky.sticky-active .navbar-brand {
    padding-top:10px;
    padding-bottom:1px;
  }
  header.sticky .header-light:not(.disable-fixed) .navbar-brand img, header.sticky.sticky-active .navbar-brand img {
    max-height: 25px;
  }
  header .navbar-brand {
    padding: 15px 0;
  }
  header .navbar-brand img {
    max-height: 75px;
  }
  .fs-210 {
    font-size: 5.625rem;
    line-height: 5.625rem;
  }
  .fs-220 {
    font-size: 5.625rem;
    line-height: 5.625rem;
  }
  .fs-280 {
    font-size: 8rem;
    line-height: 8rem;
  }
}

/* custom ug */
ul.custom-ul {
  padding-left: 1em;
  margin: 0;
  margin-bottom: 25px;
  list-style-type: none;
}

ul.custom-ul li:before {
  content: "–";
  position: absolute;
  /*change margin to move dash around*/
  margin-left: -1em;
}

ul.square-ul {
  margin-bottom: 0;
  padding-left: 2em;
}

ul.square-ul li:before {
  content: "•";
  position: absolute;
  /*change margin to move dash around*/
  margin-left: -1em;
}

ul.custom-ul li, ul.square-ul li {
  padding: 0;
  margin: 0;
  margin-bottom: 10px;
  font-size: 16px;
  color: #000;
  line-height: 1.6;
}


.text-underline {
  text-decoration: underline;
}
.btn-link.noborder {
  border: 0;
}

.custom-font {
  font-family: var(--alt-font);
}

.text-light-gray {
  color: var(--custom-gray);
}

.bg-wine-custom {
  background-color: rgba(211, 199, 162, 0.2);
}

.border-custom-gray {
  border-color: rgba(211, 199, 162, 0.8) !important;
}

.border-custom-black {
  border-color: #000 !important;
}

.border-transparent   {
  border-color: transparent !important;
}

.bg-custom {
  background-color: transparent;
}

.bg-custom-orange {
  background-color: #ee7f4b;
}

.custom-orange {
  color: #ee7f4b;
}

.bg-custom-green {
  background-color: #22ae8a;
}

.bg-custom-blue {
  background-color: #BEDDF1;
}

.bg-custom-yellow {
  background-color: #F6F3A9;
}

.bg-custom-green {
  background-color: #22ae8a;
}

.custom-green {
  color: #22ae8a;
}

.custom-gray {
  color: var(--light-gray);
}

.bg-custom-black {
  background-color: #696056;
}

.bg-custom-gray {
  background-color: #efebdf;
}

.bg-custom-salmon {
  background-color: #F6C1B2;
}

.bg-custom-cream {
  background-color: rgba(211, 199, 162, 0.2)!important;
}


.languages a {
  text-transform: none;
}

.languages .active {
  opacity: 0.6;
}

#close-yes,
#close-no {
  padding: 0 10px;
}

.input-bg-custom {
  background-color: #e3e1db !important;
}

.home-wine span {
  font-size: 16px;
  opacity: 1;
}

.home-wine-image a img {
  width: 130px !important;
}

.footer-navbar .nav-link {
  color:#000;
  font-weight: 400;
  font-size:13px;
}

.footer-navbar .scroll-top {
  color:#000;
  font-weight: 600;
  font-size:13px;
}

.footer-navbar .scroll-top:hover {
  color:#000 !important;
  text-decoration: underline;
}

.form-results.alert-success {
  background-color: #22ae8a !important;
  color: #000 !important;
  border: 0 !important;
  padding: 10px 20px 10px 20px !important;
  border-radius: 0 !important;
}

.form-results.alert-danger {
  background-color: #ee7f4b !important;
  color: #000 !important;
  border: 0 !important;
  padding: 10px 20px 10px 20px !important;
  border-radius: 0 !important;
}

.contact-form-style-03 .form-control, .contact-form-style-03 .form-control.is-invalid, .contact-form-style-03 .was-validated .form-control:invalid  {
  background-position: right 10px center !important; 
}

.contact-form-style-03 label.is-invalid span {
  color: #dc3545 !important;
}

.btn-black.text-green {
  color: #22ae8a !important;
}

.btn-black.text-orange {
  color: #ee7f4b !important;
}

.btn-black.text-green:hover, .btn-black.text-orange:hover {
  color: #000 !important;
}

.account-login-section input:-webkit-autofill,
.account-login-section input:-webkit-autofill:hover, 
.account-login-section input:-webkit-autofill:focus, 
.account-login-section input:-webkit-autofill:active  {
  box-shadow: 0 0 0 1000px #ee7f4b inset !important; /* match your field background */
  -webkit-text-fill-color: #000 !important; /* match your input text color */
  transition: background-color 5000s ease-in-out 0s;
}

.account-login-section .form-control.is-invalid, .account-login-section .was-validated .form-control:invalid {
  border-color: #b5480f !important;
}

.different-ship-box label {
  display: block;
}
.different-ship-box input[type=checkbox] {
  opacity: 0;
  visibility: hidden;
  position: absolute;
  top: 4px;
  left: 0;
}
.different-ship-box input[type=checkbox]:checked + .box:after {
  display: block;
}

.different-ship-box .box {
  position: relative;
  padding-left: 30px;
  cursor: pointer;
  display: inline-block;
}
.different-ship-box .box:before {
  content: "";
  width: 20px;
  height: 20px;
  background-color: transparent;
  border: 1px solid #000;
  position: absolute;
  top: 5px;
  left: 0;
  -webkit-border-radius: 4px;
  border-radius: 4px;
}
.different-ship-box .box:after {
  position: absolute;
  left: 7px;
  top: 9px;
  content: "";
  width: 6px;
  height: 10px;
  display: none;
  border: solid #000;
  border-width: 0 2px 2px 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}

#createButton:disabled {
  color: #838383 !important;
} 

/* custom ug membership area */
.wineclub-member-menu {
  padding: 0;
  margin: 0;
}

.wineclub-member-menu li {
  margin-bottom: 5px;
}

.wineclub-member-menu li a {
  font-weight: 600;
  color: var(--base-gray);
}

.wineclub-member-menu li a:hover {
  color: #000;
}

.wineclub-member-menu li a.active {
  text-decoration: underline;
  color: #000;
}

header .navbar [class*=col-] {
  padding: 0 15px !important;
}

@media (max-width: 767px) {
  .languages a {
    font-size: 16px !important;
  }
}

@media (max-width: 575px) {
  .wineclub-member-menu {
    text-align: center;
  }

  .wineclub-member-menu li {
    display: inline-block;
    margin-right: 10px;
   
  }
}

/* Video Concept */
.html-video {
  pointer-events: none;
}

.html-video::-webkit-media-controls {
  display: none !important;
  -webkit-appearance: none;
}

.html-video::-webkit-media-controls-panel {
  display: none !important;
  -webkit-appearance: none;
}

.html-video::-webkit-media-controls-play-button {
  display: none !important;
  -webkit-appearance: none;
}

.html-video::-webkit-media-controls-start-playback-button {
  display: none !important;
  -webkit-appearance: none;
}

.html-video::-webkit-media-controls-enclosure {
  display: none !important;
  -webkit-appearance: none;
}

/* ===================================
   Curvatura — Design System (páginas internas)
   concept · about · project-lab · wines
   wineclub-overview · wineclub-register · contacts
====================================== */

/* ── Cabeçalhos de secção ── */
.cn-section-header { display: flex; align-items: center; gap: 20px; margin-bottom: 36px; }
.cn-section-num { font-family: var(--alt-font); font-size: 13px; letter-spacing: 3px; color: #000; opacity: 0.35; flex-shrink: 0; }
.cn-section-title { font-family: var(--alt-font); font-size: 38px; line-height: 1; letter-spacing: -1px; color: #000; flex-shrink: 0; }
.cn-section-rule { flex: 1; height: 1px; background: rgba(0, 0, 0, 0.12); }

/* ── Layout split ── */
.cn-split { display: grid; grid-template-columns: 1fr 1fr; min-height: 520px; }
.cn-split-img { overflow: hidden; }
.cn-split-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cn-split-body { display: flex; flex-direction: column; justify-content: center; padding: 0px 36px 80px 36px; }
.cn-split-body.bg-tinted { background-color: rgba(211, 199, 162, 0.18); }
.cn-fullbleed { width: 100%; display: block; object-fit: cover; }

/* ── Tipografia ── */
.cn-tag { font-size: 11px; font-weight: 600; letter-spacing: 3px; text-transform: uppercase; color: #000; opacity: 0.45; margin-bottom: 14px; }
.cn-region-name { font-family: var(--alt-font); font-size: 28px; line-height: 1.15; letter-spacing: -0.5px; color: #000; margin-bottom: 28px; }
.cn-body-text { font-size: 17px; line-height: 1.75; color: #000; letter-spacing: 0.03em; }
.cn-body-text + .cn-body-text { margin-top: 22px; }
.cn-pull-quote { font-family: var(--alt-font); font-size: 30px; line-height: 1.35; letter-spacing: -0.5px; color: #000; max-width: 720px; margin: 0 auto; }
.cn-quote-author { display: block; margin-top: 22px; font-size: 11px; letter-spacing: 3px; text-transform: uppercase; opacity: 0.45; }
.cn-closing-note { font-size: 15px; line-height: 1.7; color: #000; opacity: 0.6; letter-spacing: 0.03em; }
.cn-side-label { writing-mode: vertical-rl; transform: rotate(180deg); font-size: 11px; letter-spacing: 3px; text-transform: uppercase; opacity: 0.4; color: #000; }
.cn-region-divider { border: 0; border-top: 1px solid rgba(0,0,0,0.1); margin: 36px 0; }

/* ── CTA strip ── */
.cn-cta-strip { text-align: center; padding: 30px 24px; }
.cn-cta-eyebrow { font-size: 11px; letter-spacing: 3px; text-transform: uppercase; opacity: 0.45; margin-bottom: 20px; }
.cn-cta-heading { font-family: var(--alt-font); font-size: 36px; letter-spacing: -1px; color: #000; margin-bottom: 36px; }

/* ── Placeholder de imagem ── */
.cn-img-placeholder { width: 100%; height: 100%; min-height: 480px; background: #ece6dc; display: flex; align-items: center; justify-content: center; }
.cn-img-placeholder span { font-size: 10px; letter-spacing: 4px; text-transform: uppercase; color: rgba(0,0,0,0.28); border: 1px solid rgba(0,0,0,0.15); padding: 10px 20px; }

/* ── Conceito — vídeo parallax ── */
.cn-video-wrap { position: relative; height: 56vh; min-height: 320px; overflow: hidden; }
.cn-video-wrap video { position: absolute; left: 0; top: 0; width: 100%; height: 100vh; object-fit: cover; pointer-events: none; }

/* ── Sobre — família ── */
.cn-familia-photo { min-height: 62vh; }
.cn-map-col { width: 100%; height: 100%; min-height: 420px; overflow: hidden; }
.cn-map-col img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ── Projecto Lab ── */
.cn-artist-sub { font-size: 13px; letter-spacing: 2px; text-transform: uppercase; opacity: 0.5; margin-bottom: 28px; }

/* ── Vinhos — filtro ── */
.cn-wine-filter { display: flex; gap: 0; border-bottom: 1px solid rgba(0,0,0,0.12); margin-bottom: 36px; }
.cn-wine-filter li { list-style: none; }
.cn-wine-filter li a { display: block; padding: 12px 24px; font-size: 12px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: #000; opacity: 0.4; text-decoration: none; border-bottom: 2px solid transparent; margin-bottom: -1px; transition: opacity 0.2s, border-color 0.2s; }
.cn-wine-filter li.active a,
.cn-wine-filter li a:hover { opacity: 1; border-bottom-color: #000; }

/* ── Vinhos — cards ── */
.cn-wine-card { display: block; cursor: pointer; }
.cn-wine-card-img { overflow: hidden; position: relative; background: #e3e1db; }
.cn-wine-card-img img { width: 100%; display: block; aspect-ratio: 3/4; object-fit: cover; transition: transform 0.6s ease; }
.cn-wine-card:hover .cn-wine-card-img img { transform: scale(1.03); }
.cn-wine-card-overlay { position: absolute; inset: 0; background: rgba(105, 96, 86, 0.0); display: flex; align-items: flex-end; padding: 24px; transition: background 0.3s ease; pointer-events: none; }
.cn-wine-card:hover .cn-wine-card-overlay { background: rgba(105, 96, 86, 0.55); }
.cn-wine-card-actions { display: flex; gap: 10px; opacity: 0; transform: translateY(8px); transition: opacity 0.3s ease, transform 0.3s ease; pointer-events: all; }
.cn-wine-card:hover .cn-wine-card-actions { opacity: 1; transform: translateY(0); }
.cn-wine-card-actions a { display: inline-block; padding: 8px 18px; font-size: 11px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; text-decoration: none; border: 1px solid rgba(255,255,255,0.8); color: #fff; background: transparent; transition: background 0.2s; }
.cn-wine-card-actions a:hover { background: rgba(255,255,255,0.15); color: #fff; }
.cn-wine-caption { padding: 20px 0 10px; }
.cn-wine-brand { font-size: 11px; letter-spacing: 2px; text-transform: uppercase; opacity: 0.45; margin-bottom: 6px; }
.cn-wine-name { font-family: var(--alt-font); font-size: 26px; line-height: 1.1; letter-spacing: -0.5px; color: #000; display: block; text-decoration: none; transition: opacity 0.2s; }
.cn-wine-card:hover .cn-wine-name { opacity: 0.7; }
.cn-wine-type { font-size: 10px; letter-spacing: 3px; text-transform: uppercase; opacity: 0.4; margin-top: 6px; }
.cn-wine-badge { position: absolute; top: 16px; right: 16px; font-size: 9px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; background: #696056; color: #fff; padding: 4px 10px; }

/* ── Vinhos — gamas ── */
.cn-gama-card { padding: 26px 0; border-top: 2px solid #000; height: 100%; }
.cn-gama-label { font-size: 10px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; opacity: 0.35; margin-bottom: 8px; }
.cn-gama-name { font-family: var(--alt-font); font-size: 30px; line-height: 1; letter-spacing: -0.5px; color: #000; margin-bottom: 20px; }
.cn-gama-text { font-size: 16px; line-height: 1.75; color: #000; opacity: 0.75; letter-spacing: 0.02em; }

/* ── Vinhos — páginas individuais ── */
.cn-wine-hero-name { font-family: var(--alt-font); font-size: clamp(40px, 6vw, 80px); line-height: 0.9; letter-spacing: -3px; text-transform: uppercase; color: #000; margin: 0; }
.cn-wine-type-badge { display: inline-block; font-size: 10px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; border: 1px solid rgba(0,0,0,0.2); padding: 5px 14px; margin-top: 20px; color: #000; }
.cn-wine-type-badge.lab { background: #696056; color: #fff; border-color: #696056; }
.cn-cta-group { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; margin: 32px 0; }
.cn-specs-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border-top: 1px solid rgba(0,0,0,0.12); margin-top: 36px; padding-top: 8px; }
.cn-spec-item { padding: 14px 16px 14px 0; border-bottom: 1px solid rgba(0,0,0,0.07); }
.cn-spec-label { display: block; font-size: 10px; letter-spacing: 3px; text-transform: uppercase; opacity: 0.45; margin-bottom: 4px; }
.cn-spec-value { display: block; font-size: 15px; color: #000; line-height: 1.4; }
@media (max-width: 991px) { .cn-specs-grid { grid-template-columns: 1fr; } }

/* ── Clube de Vinhos — planos (overview) ── */
.cn-pricing-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; background: rgba(0,0,0,0.08); }
.cn-plan { background: rgba(246,243,237,0.95); padding: 26px 22px; display: flex; flex-direction: column;  }
.cn-plan-header { min-height: 22px; margin-bottom: 24px; }
.cn-plan-badge { display: inline-block; font-size: 9px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; background: #696056; color: #fff; padding: 4px 12px; }
.cn-plan-name { font-family: var(--alt-font); font-size: 22px; line-height: 1.1; letter-spacing: -0.5px; color: #000; margin-bottom: 6px; text-transform: uppercase; }
.cn-plan-price { font-family: var(--alt-font); font-size: 64px; line-height: 1; letter-spacing: -2px; color: #000; margin: 16px 0 4px; }
.cn-plan-period { font-size: 12px; letter-spacing: 2px; text-transform: uppercase; opacity: 0.5; margin-bottom: 32px; }
.cn-plan-features { list-style: none; padding: 0; margin: 0 0 40px; border-top: 1px solid rgba(0,0,0,0.1); flex: 1; }
.cn-plan-features li { padding: 14px 0; border-bottom: 1px solid rgba(0,0,0,0.07); font-size: 15px; color: #000; line-height: 1.5; display: flex; gap: 12px; align-items: flex-start; }
.cn-plan-features li::before { content: "—"; opacity: 0.3; flex-shrink: 0; }

/* ── Clube de Vinhos — FAQ ── */
.cn-faq-item { border-bottom: 1px solid rgba(0,0,0,0.1); }
.cn-faq-trigger { display: flex; align-items: center; justify-content: space-between; padding: 24px 0; cursor: pointer; gap: 20px; }
.cn-faq-title { font-family: var(--alt-font); font-size: 22px; line-height: 1.1; letter-spacing: -0.5px; color: #000; }
.cn-faq-body { padding-bottom: 28px; }

/* ── Clube de Vinhos — Inscrição (plano selecionado) ── */
.cn-plan-selected-name { font-family: var(--alt-font); font-size: 56px; line-height: 1; letter-spacing: -2px; color: #000; margin-bottom: 8px; }
.cn-plan-selected-price { font-size: 12px; letter-spacing: 3px; text-transform: uppercase; opacity: 0.5; margin-bottom: 28px; }
.cn-plan-benefits { list-style: none; padding: 0; margin: 0; border-top: 1px solid rgba(0,0,0,0.1); }
.cn-plan-benefits li { font-size: 15px; line-height: 1.6; color: #000; padding: 12px 0; border-bottom: 1px solid rgba(0,0,0,0.07); display: flex; gap: 14px; align-items: flex-start; }
.cn-plan-benefits li:last-child { border-bottom: none; }
.cn-plan-benefits li::before { content: "—"; opacity: 0.35; flex-shrink: 0; margin-top: 1px; }
.cn-plan-note { font-size: 14px; line-height: 1.7; color: #000; opacity: 0.55; margin-top: 24px; }
.cn-form-section-label { font-family: var(--alt-font); font-size: 22px; letter-spacing: -0.5px; color: #000; margin-bottom: 28px; padding-bottom: 14px; border-bottom: 1px solid rgba(0,0,0,0.1); }
.cn-field-label { display: block; font-size: 10px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; color: #000; opacity: 0.5; margin-bottom: 6px; }
.cn-field-note { font-size: 13px; color: #000; opacity: 0.5; margin-bottom: 32px; }
.cn-back-link { font-size: 12px; letter-spacing: 2px; text-transform: uppercase; color: #000; opacity: 0.5; text-decoration: none; display: inline-flex; align-items: center; gap: 8px; transition: opacity 0.2s; }
.cn-back-link:hover { opacity: 1; color: #000; }

/* ── Contactos ── */
.cn-contact-items { margin-top: 30px; }
.cn-contact-item { display: flex; align-items: flex-start; gap: 16px; padding: 10px 0; border-bottom: 1px solid rgba(0,0,0,0.08); }
.cn-contact-item:first-child { padding-top: 0; }
.cn-contact-label { font-size: 10px; letter-spacing: 3px; text-transform: uppercase; opacity: 0.45; flex-shrink: 0; width: 80px; padding-top: 3px; }
.cn-contact-value { font-size: 16px; color: #000; line-height: 1.5; }
.cn-contact-value a { color: #000; text-decoration: none; border-bottom: 1px solid rgba(0,0,0,0.2); transition: border-color 0.2s; }
.cn-contact-value a:hover { border-bottom-color: #000; }
.cn-form-heading { font-family: var(--alt-font); font-size: 42px; line-height: 1.1; letter-spacing: -1px; color: #000; margin-bottom: 8px; }
.cn-form-sub { font-size: 15px; opacity: 0.6; margin-bottom: 40px; }

/* ── Responsive ── */
@media (max-width: 991px) {
  .cn-split { grid-template-columns: 1fr; min-height: unset; }
  .cn-split-img { min-height: 320px; order: 0 !important; }
  .cn-split-body { padding: 52px 40px; order: 1 !important; }
  .cn-section-title { font-size: 30px; }
  .cn-pull-quote { font-size: 24px; }
  .cn-cta-heading { font-size: 28px; }
  .cn-img-placeholder { min-height: 320px; }
  .cn-form-heading { font-size: 32px; }
  .cn-pricing-grid { grid-template-columns: 1fr; }
  .cn-plan { padding: 44px 36px; }
  .cn-plan-price { font-size: 52px; }
}
@media (max-width: 767px) {
  .cn-plan-selected-name { font-size: 40px; }
}
@media (max-width: 575px) {
  .cn-split-img { min-height: 260px; }
  .cn-split-body { padding: 40px 24px; }
  .cn-section-title { font-size: 26px; }
  .cn-pull-quote { font-size: 20px; }
  .cn-video-wrap { height: 50vh; }
  .cn-img-placeholder { min-height: 260px; }
  .cn-familia-photo { min-height: 45vh; }
  .cn-map-col { min-height: 260px; height: 260px; }
  .cn-plan { padding: 36px 24px; }
  .cn-wine-filter { flex-wrap: wrap; }
  .cn-wine-filter li a { padding: 10px 14px; font-size: 11px; }
}

/* ── Contactos — mapa Leaflet ── */
#cn-map { width: 100%; height: 100%; min-height: 420px; }
#cn-map .leaflet-tile { filter: grayscale(0.9) sepia(0.3) brightness(1.05) contrast(0.9) !important; }
#cn-map .leaflet-control-zoom a { color: #696056; border-color: rgba(0,0,0,0.12); }
#cn-map .leaflet-control-zoom a:hover { color: #000; }
#cn-map .leaflet-control-attribution { font-size: 10px; opacity: 0.5; background: rgba(255,255,255,0.6); }
#cn-map .leaflet-popup-content-wrapper { border-radius: 0; box-shadow: 0 2px 12px rgba(0,0,0,0.12); }
#cn-map .leaflet-popup-tip-container { display: none; }

/* ── Logo — hover spin (apenas logo principal, não o compacto) ── */
.navbar-brand .default-logo,
.navbar-brand .mobile-logo {
    transform-origin: 38% 50%;
    transition: transform 0.65s cubic-bezier(0.4, 0, 0.2, 1);
}
.navbar-brand:hover .default-logo,
.navbar-brand:hover .mobile-logo {
    transform: rotate(360deg);
}