/* Shared controls: warm Casa Noma colours, existing content and layout. */
body.cn-site :is(.cn-button-primary,.cn-button-secondary,.cn-button-light).et_pb_button,
body.cn-site .cn-contact-button {
  display:inline-flex;align-items:center;justify-content:center;gap:18px;
  min-height:50px;max-width:100%;box-sizing:border-box;
  border-radius:10px!important;padding:14px 22px!important;
  font-size:15px!important;font-weight:600!important;line-height:1.4!important;
  letter-spacing:.01em;text-transform:none;text-decoration:none!important;
  transition:transform 180ms ease,box-shadow 180ms ease,background-color 180ms ease,border-color 180ms ease;
}
body.cn-site .cn-button-primary.et_pb_button,
body.cn-site .cn-contact-button:not(.cn-contact-button--outline) {
  border-color:#71332a!important;
  background:linear-gradient(135deg,#6b2d25,#51211b)!important;
  color:var(--cn-white)!important;
  box-shadow:0 4px 12px rgba(62,24,18,.12),inset 0 1px 0 rgba(255,255,255,.1);
}
body.cn-site .cn-button-secondary.et_pb_button,
body.cn-site .cn-contact-button--outline {
  border-color:rgba(105,70,33,.38)!important;
  background:rgba(255,253,249,.55)!important;color:var(--cn-bronze-dark)!important;
  box-shadow:0 2px 5px rgba(44,36,30,.03);
}
body.cn-site .cn-button-light.et_pb_button {
  border-color:rgba(255,253,249,.5)!important;
  background:rgba(255,253,249,.12)!important;backdrop-filter:blur(8px);
}
body.cn-site :is(.cn-button-primary,.cn-button-secondary,.cn-button-light).et_pb_button::after {
  content:"\2192"!important;display:inline-block!important;position:static!important;
  width:18px;flex:0 0 18px;margin:0!important;opacity:1!important;transform:none;
  font:400 21px/1 var(--cn-sans)!important;transition:transform 180ms ease;
}
body.cn-site .cn-contact-button:hover {filter:none}
body.cn-site :is(.cn-button-primary,.cn-button-secondary,.cn-button-light).et_pb_button:active,
body.cn-site .cn-contact-button:active {transform:translateY(0)!important;box-shadow:none}
body.cn-site :is(.cn-button-primary,.cn-button-secondary,.cn-button-light,.cn-button-quiet).et_pb_button:focus-visible,
body.cn-site .cn-contact-button:focus-visible,
body.cn-site .cn-main-menu a:focus-visible,
body.cn-site .cn-submenu-toggle:focus-visible {
  outline:2px solid var(--cn-bronze);outline-offset:4px;
}
body.cn-site .cn-button-quiet.et_pb_button {
  font-weight:500!important;letter-spacing:0;text-transform:none;
  transition:color 180ms ease,border-color 180ms ease;
}
/* Desktop dropdowns retain their hover and keyboard behaviour. */
@media(min-width:1201px) {
  body.cn-site .cn-main-menu .nav li ul {
    width:300px;padding:9px;border:1px solid rgba(167,122,67,.26);border-radius:13px;
    background:#fffdf9!important;
    box-shadow:0 16px 40px rgba(32,20,14,.15),0 3px 8px rgba(32,20,14,.05);
    transform:translateY(-4px);transform-origin:top center;
    transition:opacity 180ms ease,transform 180ms ease,visibility 180ms ease;
  }
  body.cn-site .cn-main-menu .nav li:hover>ul,
  body.cn-site .cn-main-menu .nav li:focus-within>ul {transform:translateY(0)}
  body.cn-site .cn-main-menu .nav li li {padding:0;width:100%;margin:0}
  body.cn-site .cn-main-menu .nav li li+li {margin-top:2px}
  body.cn-site .cn-main-menu .nav li li a {
    display:block;width:100%;padding:11px 13px;min-height:44px;
    border-radius:7px;font-weight:500;text-shadow:none;
    transition:background-color 160ms ease,color 160ms ease;
  }
  body.cn-site .cn-main-menu .nav li li a:hover,
  body.cn-site .cn-main-menu .nav li li a:focus-visible,
  body.cn-site .cn-main-menu .nav li li.current-menu-item>a {
    background:#f2e9de!important;color:var(--cn-wine)!important;opacity:1;
  }
  body.cn-site .cn-main-menu .et_pb_menu__menu>nav>ul>li>a::before {
    content:"";position:absolute;left:2px;right:2px;bottom:4px;height:1px;
    background:currentColor;opacity:.65;transform:scaleX(0);transform-origin:left;
    transition:transform 180ms ease;
  }
  body.cn-site .cn-main-menu .et_pb_menu__menu>nav>ul>li:hover>a::before,
  body.cn-site .cn-main-menu .et_pb_menu__menu>nav>ul>li:focus-within>a::before {transform:scaleX(1)}
}
/* Mobile controls keep a 44 px touch target. */
@media(max-width:1200px) {
  body.cn-site .cn-main-menu .et_mobile_menu {
    border:1px solid rgba(167,122,67,.3);border-radius:15px;padding:12px;
    background:#fffdf9!important;box-shadow:0 16px 42px rgba(32,20,14,.17);
  }
  body.cn-site .cn-main-menu .et_mobile_menu>li>a {
    min-height:48px;padding:10px 12px;border-radius:8px;font-weight:500;
  }
  body.cn-site .cn-main-menu .et_mobile_menu>li:not(.cn-mobile-menu-actions)+li:not(.cn-mobile-menu-actions)>a {border-top:0}
  body.cn-site .cn-main-menu .et_mobile_menu .menu-item-has-children>a {padding-right:54px}
  body.cn-site .cn-main-menu .et_mobile_menu>li.cn-submenu-open>a {background:#f2e9de;color:var(--cn-wine)!important}
  body.cn-site .cn-main-menu .et_mobile_menu .cn-submenu-ready>.sub-menu {
    padding:4px 4px 8px 13px;margin:4px 0 8px 12px;
    border-left:1px solid rgba(167,122,67,.32);
  }
  body.cn-site .cn-main-menu .et_mobile_menu .sub-menu li {padding:0}
  body.cn-site .cn-main-menu .et_mobile_menu .sub-menu a {
    padding:10px;min-height:44px;border-radius:7px;font-weight:400;
  }
  body.cn-site .cn-main-menu .et_mobile_menu a:hover,
  body.cn-site .cn-main-menu .et_mobile_menu a:focus-visible {background:#f2e9de;opacity:1}
  body.cn-site .cn-main-menu .cn-submenu-toggle {
    top:2px;right:2px;width:44px;height:44px;border-radius:50%;font-weight:400;
    background:radial-gradient(circle,rgba(167,122,67,.12) 52%,transparent 54%);
  }
  body.cn-site .cn-main-menu .cn-submenu-toggle[aria-expanded="true"] {color:var(--cn-wine)}
  body.cn-site .cn-main-menu .cn-mobile-menu-actions {margin:10px 4px 0;padding-top:14px}
  body.cn-site .cn-main-menu .et_mobile_menu .cn-mobile-menu-actions__inner a {
    min-height:44px;border-radius:8px;font-size:13px;font-weight:600;
    text-transform:none;letter-spacing:0;padding:10px 13px;
  }
  body.cn-site .cn-main-menu .et_mobile_menu .cn-mobile-menu-actions__inner a.is-link {border-radius:0}
}
@media(hover:hover) and (pointer:fine) {
  body.cn-site :is(.cn-button-primary,.cn-button-secondary,.cn-button-light).et_pb_button:hover,
  body.cn-site .cn-contact-button:hover {transform:translateY(-2px);box-shadow:0 8px 20px rgba(62,24,18,.16)}
  body.cn-site .cn-button-primary.et_pb_button:hover,
  body.cn-site .cn-contact-button:not(.cn-contact-button--outline):hover {border-color:var(--cn-bronze)!important}
  body.cn-site .cn-button-secondary.et_pb_button:hover,
  body.cn-site .cn-contact-button--outline:hover {background:#f2e9de!important;border-color:var(--cn-bronze)!important}
  body.cn-site :is(.cn-button-primary,.cn-button-secondary,.cn-button-light).et_pb_button:hover::after {transform:translateX(3px)}
}
@media(prefers-reduced-motion:reduce) {
  body.cn-site :is(.cn-button-primary,.cn-button-secondary,.cn-button-light,.cn-button-quiet).et_pb_button,
  body.cn-site :is(.cn-button-primary,.cn-button-secondary,.cn-button-light).et_pb_button::after,
  body.cn-site .cn-contact-button,
  body.cn-site .cn-main-menu .nav li ul,
  body.cn-site .cn-main-menu .et_pb_menu__menu>nav>ul>li>a::before {transition:none!important}
  body.cn-site :is(.cn-button-primary,.cn-button-secondary,.cn-button-light,.cn-button-quiet).et_pb_button:hover,
  body.cn-site :is(.cn-button-primary,.cn-button-secondary,.cn-button-light).et_pb_button:hover::after,
  body.cn-site .cn-contact-button:hover,
  body.cn-site .cn-main-menu .nav li ul {transform:none!important}
}
