@font-face {
    font-family: 'Requiem';
    src: url('../fonts/RequiemDisplay-HTF-Roman.woff') format('woff2'),
        url('../fonts/RequiemDisplay-HTF-Roman.woff') format('woff');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}



/* ============================================================ Ransom Ridge — Landing page styles Design tokens match the Figma source. Header structure + responsive breakpoints adapted from the Bright Care Dental reference template (html/). ============================================================ */ 


:root { 
  --cream: #f8f5f0;
   --green-deep: #3a5a40;
   --green-sage: #a3b18a;
   --green-sage-hover: #94a57b;
   --ink: #000000;
   --ink-soft: #4a4a4a;
   --white: #ffffff;
   --black: #000;
   --font-display: "Cormorant Garamond", serif;
   --font-body: "DM Sans", sans-serif;
   --page-max: 1720px;
 } 
 /* -------- reset -------- */ 
 *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; }
body { font-family: "DM Sans", sans-serif; font-size: 16px; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
body.no_overflow { overflow: hidden; }
img { display: block; max-width: 100%; vertical-align: middle; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }
button { font: inherit; cursor: pointer; background: none; border: 0; color: inherit; }
:focus { outline: none; }
/* -------- utility classes (dental-template style) -------- */ 
.clr { clear: both; float: none; display: block; }
.clr:after, .afclr:after { clear: both; float: none; display: block; content: ""; }
.wrapper { width: 100%; max-width: 1400px; padding: 0 20px; margin: 0 auto; }
.outer_block { overflow: hidden; position: relative; }

/* ele  */
.contact_pg_list li.elementor-icon-list-item {width: fit-content}
.contact_pg_list li.elementor-icon-list-item:hover>span.elementor-icon-list-text {color: var(--ink-soft) !important}

/* -------- shared typography -------- */ 
.h-display { font-family: var(--font-display); font-weight: 500; line-height: 1.02; letter-spacing: 0.005em; margin: 0; font-size: 70px; }
.h-display--green { color: var(--green-deep); }
/* -------- buttons -------- */ 
.btn { display: inline-flex; align-items: center; justify-content: center; height: 50px; padding: 0 32px; font-family: var(--font-body); font-size: 16px; letter-spacing: 0.024em; transition: transform 0.15s ease, background 0.2s ease, color 0.2s ease, border-color 0.2s ease; white-space: nowrap; }
.btn:hover { transform: translateY(-1px); }
.btn--sage { background: var(--green-sage); color: var(--white); }
.btn--sage:hover { background: var(--green-sage-hover); }
.btn--lg { padding: 0 37px; font-size: 18px; }
.btn--outline { background: var(--white); color: var(--ink); border: 1px solid var(--ink); }
.btn--outline:hover { background: var(--ink); color: var(--white); }
.btn--ghost { background: transparent; color: var(--white); border: 1px solid var(--white); padding: 0 54px; font-size: 18px; width: 224px; }
.btn--ghost:hover { background: var(--white); color: var(--ink); }
.btn--white { background: var(--white); color: var(--ink); padding: 0 54px; font-size: 18px; width: 224px; }
.btn--white:hover { background: var(--cream); }
.btn--outline-dark { background: var(--green-sage); color: var(--ink); border: 1px solid var(--ink); padding: 0 37px; font-size: 18px; width: 222px; }
.btn--outline-dark:hover { background: var(--ink); color: var(--green-sage); }
/* dental-template primary CTA -- restyled to Ransom Ridge sage */ 
.site_button { 
  padding: 14px 28px;
   text-align: center;
   font-size: 16px;
   font-weight: 400;
   color: var(--white);
   line-height: 1;
   font-family: var(--font-body);
   background-color: var(--green-sage);
   border: 1px solid var(--green-sage);
   border-radius: 0;
   transition: all 0.3s ease;
   cursor: pointer;
   display: inline-block;
   letter-spacing: 0.15%;
   min-width: 150px;
 }
.site_button:hover { 
  background-color: var(--green-deep);
   border-color: var(--green-deep); 
   color: var(--white); 
  }
  .site_btn_white{background: transparent;border-color:var(--white) ;}
  .site_btn_black{background: transparent;border-color:var(--black) ;color: var(--black);}
  
  /* heading  */
  h1,h2,h3,h4,h5,h6{font-family: 'Requiem', sans-serif !important;font-weight: 500;}
  .sub_title span{font-weight: 500; font-size: 14px; letter-spacing: 0.09em; color: var(--ink);position: relative;padding-left: 70px;margin-bottom: 30px;display: inline-block;}
  .sub_title span::after{content: "";position: absolute;width: 60px;height: 1px;top: 0;left: 0;bottom: 0;margin: auto 0;background: var(--black);}
  .heading_02 h2{ line-height: 1; font-size: 54px;margin-bottom: 25px;color: var(--green-deep);}
  .paragraph_pra p {color: var(--ink-soft); font-size: 16px; line-height: 1.6;margin-bottom: 15px;font-weight: 400;}
  .paragraph_pra p:last-child {margin-bottom: 0;}

/* -------- eyebrow / section head -------- */ 
.eyebrow { display: inline-flex; align-items: center; gap: 11px; }
.eyebrow__rule { width: 60px; height: 1px; background: currentColor; color: var(--ink); display: inline-block; }
.eyebrow__label { font-weight: 500; font-size: 14px; letter-spacing: 0.09em; color: var(--ink); }
.section-head { max-width: 720px; margin: 0 auto 60px; }
.section-head .h-display { text-align: center; }

/* ============================================================ HEADER (structure from dental template, Ransom Ridge styling) ============================================================ */
 /* transparent header sitting on top of the hero */ 
.header_sec { position: absolute; top: 0; left: 0; right: 0; display: block; z-index: 50; padding: 24px 0; background-color: transparent; }
.header_inner { display: flex; align-items: center; flex-wrap: wrap; }
.header_img_sec { width: 14%; }
.header_img_sec a { display: inline-block; max-width: 160px; }
.header_img_sec a img { width: 100%; filter: drop-shadow(0 1px 6px rgba(0, 0, 0,0.5)); }
.header_menu_sec { width: 72%; }
.header_btn_sec { width: 14%; display: flex; flex-wrap: wrap; gap: 20px; align-items: center; justify-content: end; }
.header_mobile_menu { display: none; }
/* sticky (scroll) header */ 
.sticky_header { position: fixed; left: 0; right: 0; top: -80px; transition: all 0.5s ease; opacity: 0; visibility: hidden; box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15); background-color: var(--green-deep); }
.sticky_header.header_is_sticky { top: 0; opacity: 1; visibility: visible; z-index: 100; }
.sticky_header_inner { padding: 12px 0; }
.sticky_header_inner .header_img_sec a { max-width: 85px; }
.sticky_header_inner .header_btn_sec .site_button { padding: 12px 24px; }
.sticky_header_inner .header_btn_sec .site_button:hover { background-color: var(--white); border-color: var(--white); color: var(--green-deep); }
.sticky_header .header_img_sec{width: 8%;}
.sticky_header .header_menu_sec{width: 78%;}
/* nav menu */
 .site-menu { display: flex; flex-wrap: wrap; justify-content: center; }
.nav-menu li { position: relative; display: inline-block; }
.nav-menu > li { margin: 0 0px; }
.nav-menu > li > a { position: relative; font-weight: 400; border-radius: 0; color: var(--ink); font-size: 16px; padding: 8px 12px; line-height: 1.2; transition: all 0.3s ease; display: inline-block; letter-spacing: 0.02em; }
.sticky_header_inner .nav-menu > li > a { color: var(--white); }
.nav-menu > li:hover > a { color: var(--white); background-color: var(--green-sage); }
.nav-menu > li.current-menu-item > a { background-color: var(--green-sage); color: var(--white); }
/* submenu */ 
.nav-menu .sub-menu { position: absolute; top: 100%; left: 0; width: 180px; z-index: 1000; visibility: hidden; opacity: 0; box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18); transform: translateY(20px); transition: all 0.3s ease; background: var(--white); }
.nav-menu .sub-menu li { background: var(--white); border-bottom: 1px solid var(--green-sage); display: block; position: relative; width: 100%; margin: 0; }
.nav-menu .sub-menu li a { text-align: left; font-weight: 400; color: var(--ink); font-size: 15px; line-height: 1.2; display: block; padding: 12px 16px; transition: all 0.3s ease; }
.nav-menu .sub-menu li:hover > a { background: var(--green-sage); color: var(--white); }
.nav-menu .sub-menu li:last-child { border-bottom: none; }
.nav-menu li:hover > .sub-menu { visibility: visible; opacity: 1; transform: translateY(0); }
/* caret on menu-item-has-children */ 
.nav-menu > .menu-item-has-children > a { padding-right: 22px; position: relative; }
.nav-menu > .menu-item-has-children > a::before { position: absolute; content: ""; display: block; height: 8px; width: 8px; right: 8px; top: 13px; border-top: 1px solid currentColor; border-left: 1px solid currentColor; transform: rotate(225deg); transition: all 0.3s ease; }
/* hamburger */ 
.menu_expand { display: none; transition: all 0.2s ease; text-decoration: none; padding: 4px; }
.menu_expand i { height: 2px; background: var(--white); display: block; width: 30px; border-radius: 5px; }
.menu_expand i:nth-child(2) { margin: 8px 0; }
/* mobile drawer helpers */ 
.cross_button { display: none; position: absolute; top: 22px; right: 20px; z-index: 110; }
.cross_button a { position: relative; display: inline-block; width: 35px; height: 35px; border: 1px solid var(--white); border-radius: 3px; }
.m_close_icon:before, .m_close_icon:after { display: block; content: ""; position: absolute; width: 22px; height: 2px; background: var(--white); top: 16px; left: 6px; transform: rotate(45deg); }
.m_close_icon:after { transform: rotate(-45deg); }
.haeder_mobile_menu_bottom, .haeder_mobile_menu_top { display: none; }
.expand_plus { position: absolute; right: 10px; top: 4px; width: 36px; height: 36px; cursor: pointer; z-index: 100; display: none; }
.expand_plus:after { content: ""; position: absolute; top: 50%; left: 50%; width: 8px; height: 8px; box-sizing: border-box; border-top: 2px solid var(--white); border-left: 2px solid var(--white); transform: translate(-50%, -50%) rotate(-135deg); transform-origin: center; transition: transform 0.3s ease; }
.expand_plus.active:after { transform: translate(-50%, -50%) rotate(45deg); }
.nav_menu_overlay { position: fixed; inset: 0; background-color: rgba(0, 0, 0, 0.56); z-index: 20; display: none; opacity: 0; visibility: hidden; }
.nav_menu_overlay.active { display: block; opacity: 1; visibility: visible; }
.header_mobile_logo { max-width: 140px; width: 100%; }
.nav-menu .sub-menu ul { position: absolute; top: 0px; left: 100%; border-top: 0; padding-left: 0px; padding-top: 0; filter: alpha(opacity=0); width: 180px; visibility: hidden; opacity: 0; -webkit-transform: translate(40px, 0); box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.211764); }
/* not home page header */
.nav-menu .sub-menu-toggle{display: none !important;}
.header_sec.not_home_page{background-color: var(--green-deep);position: relative;padding: 10px 0;}
.header_sec.not_home_page .header_img_sec a{max-width: 110px;}
.header_sec.not_home_page .nav-menu > li > a{color: var(--white);}
.haeder_mobile_menu_bottom .site_button:hover,
.header_sec.not_home_page .header_btn:hover{background: var(--white);color: var(--green-deep);}
.nav-menu .sub-menu > .menu-item-has-children > a::before { position: absolute; content: ""; display: block; height: 8px; width: 8px; right: 12px; top: 0; bottom: 0; margin: auto 0; border-top: 1px solid var(--black); border-left: 1px solid var(--black); transition: all 0.5s ease-in-out; transform: rotate(135deg);}
.nav-menu .sub-menu li:hover > a::before{border-color: var(--white);}

/* ============================================================ HERO banner ============================================================ */ 
.banner_outer_sec{overflow: hidden;}
.banner_section { position: relative; z-index: 10; } 
.banner_image_ab { position: absolute; inset: 0; display: block; z-index: 2; } 
.banner_image_ab > img { width: 100%; height: 100%; object-fit: cover;object-position: center -96px; }
.banner_image_ab > img, .banner_section {min-height: 700px;height: 100vh;} 
.banner_section::after { position: absolute; content: ""; inset: 0; display: block; z-index: 2;background: #00000014;}
.banner_section_inner { position: relative; height: 100%; z-index: 10; } 
.banner_section_inner > .wrapper { height: 100%; display: flex; flex-direction: column; justify-content: center; padding: 290px 20px 150px; } 
.banner_content { padding:40px 30px; max-width: 780px; z-index: 1;margin: 0 auto; text-align: center;background: #0000009C;}
.banner_content_inner{max-width: 90%;margin: 0 auto;}
.hero__title { font-size: 80px; color: var(--white); line-height: 1.2; margin-bottom: 5px;visibility: hidden; } 
.hero__subtitle {margin-bottom: 30px;}
.hero__subtitle p{ font-size: 16px;color: var(--white);}
.banner_btn_sec{display: flex;flex-wrap: wrap;gap: 12px 20px;justify-content: center;}
.banner_btn_sec .site_button{min-width: 200px;}

/* ============================================================ WELCOME ============================================================ */ 
.welcome_sec { background: #F8F5F0;}
.welcome_inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 70px; align-items: start;background: var(--white);padding: 90px 40px;padding: 100px 40px;z-index: 10;position: relative;margin-top: -110px;}
.welcome__img-top, .welcome__img-bot { width: 100%; height: auto; max-height: 521px; object-fit: cover; }
.welcome__img-bot { max-height: 362px; margin-top: 30px;}
.welcome__chef { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; margin-bottom: 30px;}
.welcome__quote { font-size: 17px; line-height: 1.5; font-style: italic; font-weight: 500; margin: 0; color: var(--ink);margin-bottom: 30px; }
.welcome_btn{margin-top: 35px;}

/* ============================================================ EXPLORE THE RIDGE ============================================================ */ 
.explore_sec { padding: 100px 0; text-align: center;background: var(--cream); }
.explore__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 22px; max-width: 1720px; margin: 0 auto; }
.category-card { position: relative; aspect-ratio: 849 / 566; overflow: hidden; color: var(--white); display: block; isolation: isolate; }
.category-card > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
.category-card::after { content: ""; position: absolute; inset: 0; transition: background 0.3s ease; z-index: 1; background: #0000008F;}
.category-card:hover > img { transform: scale(1.05); }
.category-card__inner { position: relative; z-index: 2; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 15px; padding: 100px 40px 40px; text-align: center; }
.category-card__title { font-size: 54px; line-height: 1.05; }
.category-card__desc p{color: var(--white); }
.explore_header{max-width: 720px; margin: 0 auto;}
.explore_title h2{margin-bottom: 45px;}
.explore_cate_btn{visibility: hidden;opacity: 0;transition: all 0.3s ease;transform: translateY(20px);}
.category-card:hover .explore_cate_btn{visibility: visible;opacity: 1;transform: translateX(0);}

/* ============================================================ STAYING ============================================================ */ 
.staying_sec { position: relative; padding: 0 0 120px; display: flex; flex-direction: column; align-items: center;background: var(--cream); }
.staying__bg { width: 100%; height: 776px; object-fit: cover; object-position: center 30%; }
.staying__card { background: var(--white); margin-top: -180px; padding: 60px 20px; text-align: center; position: relative; z-index: 2; }
.staying_title h2{color: var(--black);margin-bottom: 30px;}
.staying_btn {margin-top: 15px;}
.staying_card_inner{max-width: 1100px; margin: 0 auto;}

/* ============================================================ SERVICES ============================================================ */ 
.services_sec { background: var(--green-deep); color: var(--white); padding: 100px 0 ; }
.services__row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 70px 40px; max-width: 1480px; margin: 0 auto; align-items: end; }
.service_box { display: flex; flex-direction: column; align-items: center; gap: 24px; text-align: center; }
.service__icon { width: 100px; height: 100px; }
.service__icon img { width: 100%; height: 100%;object-fit: contain;transition: all 0.5s ease;}
.service_box:hover .service__icon img{transform: rotate(20deg);}
.service__title { font-family: var(--font-display); font-weight: 500; font-size: 30px; line-height: 1.1; max-width: 200px;margin: 0 auto;}

/* ============================================================ GALLERY ============================================================ */ 
.gallery_sec { padding: 100px 0; text-align: center; background: var(--cream); }
.gallery_title h2{margin-bottom: 50px;}
.gallery__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0;background: var(--black); }
.gallery__grid a{display: inline-block;width: 100%;overflow: hidden;}
.gallery__grid img { width: 100%; height: 325px; object-fit: cover; transition: all 0.3s ease;transform: scale(1);}
.gallery__grid a:hover img{transform: scale(1.1);}

/* ============================================================ VISIT & TASTING ============================================================ */ 
.visit_outer{background: var(--cream);}
.visit_sec { padding: 100px 40px 20px; background: var(--white); text-align: center; }
.visit_title h2{margin-bottom: 45px;}
.visit__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; max-width: 1620px; margin: 0 auto; }
.event-card { text-align: left; }
.evenet_card_img{display: inline-block;width: 100%;overflow: hidden;aspect-ratio: 530 / 397;margin-bottom: 15px;}
.evenet_card_img img { width: 100%; height: 100%; object-fit: cover;transition: all 0.3s ease; }
.event-card__title { font-family: var(--font-display); font-weight: 500; font-size: 34px; line-height: 1.05; margin-bottom: 15px;transition: all 0.3s ease;}
.event-card__title a{display: inline-block;color: inherit;font-size: inherit;font-weight: inherit;line-height: inherit;}
.event_card_btn {margin-top: 15px;}
.evenet_card_des p{line-height: 1.5;}
.event_card_btn a:hover{background: var(--green-sage);border-color: var(--green-sage);}
.event-card:hover .evenet_card_img img{transform: scale(1.08);}
.event-card:hover .event-card__title{color: var(--green-deep);}

/* ============================================================ TODAY AT THE RIDGE ============================================================ */ 
.today_outer{background: var(--cream);}
.today_sec { padding: 100px 40px; background: var(--white); }
.today__arrow { flex: 0 0 auto; width: 92px; height: 92px; display: flex; align-items: center; justify-content: center; color: var(--green-deep); border-radius: 50%; transition: background 0.2s ease, color 0.2s ease; }
.today__arrow:hover { background: var(--green-sage); color: var(--white); }
.today__arrow svg { width: 40%; height: 40%; }
.today__content { flex: 1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 80px; align-items: center; }
.today__img{width: 100%;position: relative;padding-top: 80%;}
.today__img img{ width: 100%; height: 100%; object-fit: cover; top: 0;left: 0;position: absolute;}
.today__list li { font-size: 17px; color: var(--ink); line-height: 1.4;position: relative;margin-bottom: 15px;padding-left: 30px;}
.today_title h2{margin-bottom: 35px;}
.today_btn{margin-top: 40px;}
.today__list li:before { content: ""; position: absolute; left: 0; top: 2px; width: 21px; height: 19px; background-image: url('../images/list_icon.svg'); background-position: center; background-repeat: no-repeat; background-size: contain;}
.today_container{position: relative;}
.today_swiper_next::after, .today_swiper_prev::after {display: none;}
.today_swiper_next, .today_swiper_prev {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--white);
    border-radius: 100%;
    width: 65px;
    height: 65px;
    font-weight: 600;
    transition: all 0.3s ease;
    box-shadow: 0px 4px 4px 0px #00000040;
    padding: 5px;
    transition: all 0.3s ease;
}
.today_swiper_next{right: -77px;}
 .today_swiper_prev{left: -77px;}
.today_swiper_next svg, .today_swiper_prev svg{width:100%;color:var(--green-sage);transition: all 0.3s ease;}
.today_swiper_next:hover, .today_swiper_prev:hover {background: var(--green-sage);}
.today_swiper_next:hover svg, .today_swiper_prev:hover svg {color: var(--white);}

/* ============================================================ COMMUNITY CTA ============================================================ */
.community_outer{background: var(--cream);}
 .community_sec { position: relative; padding: 250px 40px;}
.community__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.community_sec::before { content: ""; position: absolute; inset: 0; background: #00000014; z-index: 1; }
.community__card { background: var(--green-deep); color: var(--white); padding: 70px 26px 65px; text-align: center;position: relative;max-width: 950px;margin: 0 auto;z-index: 2; }
.community__title h2{ color: var(--white); }
.community__body { font-size: 18px; line-height: 1.55; margin: 0; max-width: 820px; }
.community__actions { display: flex; gap: 23px; flex-wrap: wrap; justify-content: center;margin-top: 20px; }
.community__actions .site_button{min-width: 180px;}
.community__des p{color: var(--white);}
.comunity_btn1{background: transparent;border-color: var(--white);}
.comunity_btn1:hover{background: var(--green-sage);border-color: var(--green-sage);}
.comunity_btn2:hover{background: transparent;border-color: var(--white);}

/* ============================================================ NEWSLETTER BAR ============================================================ */ 
.newsletter_outer{padding: 100px 0 0;background-image: linear-gradient(0deg, var(--green-deep) 40%, var(--cream) 40%);}
.newsletter_sec { background: var(--green-sage); padding: 90px 40px; max-width: var(--page-max); margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 30px; flex-wrap: wrap;z-index: 1;position: relative;}
.newsletter__text { flex: 1 1 500px; max-width: 850px; }
.newsletter__title h2{ color: var(--black);margin-bottom: 15px;}
.newsletter__actions { display: flex; gap: 24px; flex-wrap: wrap; }

.newsletter__des p{color: var(--black);}
.newsletter__actions .site_button{min-width: 180px;}
.newsletter_btn1{background: var(--white);border-color: var(--white);color: var(--black);}
.newsletter_btn2{background: transparent;border-color: var(--black);color: var(--black);}

/* ============================================================ FOOTER ============================================================ */ 
.footer__container_outer { position: relative; }
.footer__container_top { background: var(--green-deep); }
.footer__bg { width: 100%; }
.footer__bg > img { width: 100%; }
.footer__content { display: flex; justify-content: space-between; margin: 0 auto; position: relative; padding: 100px 0; }
.footer__branding { width: 30%; padding: 0px 35px 0 0; }
.footer__logo img { max-width: 200px; width: 100%; }
.footer__links { display: flex; flex: 1; position: relative; z-index: 2; justify-content: space-between; gap: 10px; width: 70%; flex-wrap: wrap; padding-left: 10px; }
.footer__branding .paragraph_pra { margin-top: 22px; }
.footer__branding .paragraph_pra p { color: var(--white); font-weight: 600; line-height: 1.3; }
.ft_our_facility { margin-top: 20px; }
.footer__column { width: calc(25% - 8px); }
.footer__column:nth-child(1){width: calc(24% - 8px);}
.footer__column:nth-child(2){width: calc(20% - 8px);}
.footer__column:nth-child(3){width: calc(30% - 8px);}
.footer__column:nth-child(4){width: calc(26% - 8px);}
.footer__heading { font-weight: 400; line-height: 1.4; color: var(--white); font-size: 28px; margin-bottom: 24px; }
.footer__column a.tel_ft_size { line-height: 1; display: inline-flex; margin-bottom: 12px; width: fit-content; }
.footer__column a.mailto_ft_size { word-break: break-all; width: fit-content; }
.footer__column ul { list-style: none; padding: 0; }
.footer__column a, .footer__column li { color: var(--white); font-size: 16px; font-weight: 400; text-decoration: none; transition: all 0.3s ease; line-height: 1.4em; width: fit-content; }
.footer__column li { margin-bottom: 10px; }
.footer__column li:last-child { margin-bottom: 0px; }
.footer__column a:hover { color: var(--black); }
.footer__container_bottom { background: var(--green-deep); }
.footer__bottom p { font-size: 15px; padding: 25px 0px 70px; font-weight: 400; color: var(--white); }
.footer__bottom p a { color: var(--white); transition: transform 0.3s ease; }
.footer__bottom p a:hover { color: var(--black); }
.footer__column a {display: inline-flex;}
.footer_ctc_us ul li { display: flex; align-items: start; gap: 10px;}
.footer_ctc_us ul li > span {position: relative;top: 3px;display: inline-flex;align-items: center;justify-content: center;vertical-align: middle;}
.footer_ctc_us ul li > span svg {width: 17px;height: 20px;object-fit: contain;}
.footer__column.footer_ctc_us li {margin-bottom: 20px;}
.footer__column.footer_ctc_us li p{line-height: 1.8;}
.social_links_ft ul { padding: 0; margin: 0; display: flex; align-items: center; gap: 8px;flex-wrap: wrap; }
.social_links_ft ul li { margin: 0; }
.social_links_ft ul li a { width: 43px; height: 43px; border-radius: 50%; padding: 10px; background-color: var(--white); border: 1px solid var(--white); display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; -moz-transition: all 0.3s ease; -ms-transition: all 0.3s ease; -o-transition: all 0.3s ease; }
.social_links_ft ul li a span { display: flex; align-items: center; justify-content: center; }
.social_links_ft ul li a span > img { height: 20px;transition: all 0.3s ease; }
.social_links_ft ul li a:hover { background-color: transparent; }
.social_links_ft ul li a:hover img{filter: brightness(0) invert(1);}

/* error  */ 
.error_pg_sec { padding: 30px 0 80px; text-align: center;background: var(--cream); }
.error_pg_title h1 { font-size: 180px; line-height: 1; color: var(--green-deep); margin-bottom: 5px; }
.error_pg_content { max-width: 600px; margin: 0 auto;}
.error_pg_content p { font-weight: 500;margin-bottom: 4px; }
.error_pg_img { max-width: 400px; margin: 0 auto; }
.error_pg_img img { width: 100%; display: block; }
.error_sub_title{color: var(--ink-soft); font-size: 18px; line-height: 1.6; margin-bottom: 15px; font-weight: 400; letter-spacing: 1px;}
.error_quote{margin-bottom: 10px;font-family: "Dancing Script", cursive;color: var(--green-deep);line-height: 1.1;font-size: 23px;font-weight: 500;}
.error_pg_btn{margin-top: 15px;}

/* common banner  */ 
.common_banner_sec { position: relative; text-align: center; padding: 80px 0 80px; }
.common_banner_img { position: absolute; width: 100%; height: 100%; top: 0; left: 0; }
.common_banner_img img { width: 100%; height: 100%; object-fit: cover;object-position: center 70%; }
.common_banner_overlay { position: absolute; height: 100%; width: 100%; top: 0; left: 0; background: #0000009e; }
.common_banner_innner { position: relative; }
.common_banner_title h1 { font-size: 54px; line-height: 1.2em; color: var(--white); }
/* search  */ 
.search_part_content .page-title { font-weight: 500;  color: var(--green-deep); margin-bottom: 10px; }
.search_part_content article { padding: 15px 0; border-bottom: 1px solid #e7e7e7; }
.search_part_content h2 { font-size: 26px; margin-bottom: 10px; color: var(--black); font-weight: 500; line-height: 1.2; }
.search_part_content h2 a { color: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; display: inline-block; }
.search_part_content img { display: none; }
.search_part_content .pagination svg path { fill: var(--green-deep); }
.search_part_content .nav-prev-text, .search_part_content .nav-next-text { display: none; }
.search_part_content .pagination .nav-links { display: flex; gap: 10px; }
.search_part_content .pagination { padding: 40px 0 0 0; }
.search_part_content .pagination .page-numbers.current { color: var(--green-deep); font-weight: 500; }
.search_part_content .no-results .search-form label { display: none; }
.search_part_content .no-results .search-form { margin: 30px 0; display: flex; width: 80%; gap: 10px; }
.search_part_content .no-results .search-form .search-field { padding: 0 10px; width: 100%; }
.search_part_content { padding: 100px 0 80px 0; }
.search_part_content .entry-footer a, .search_part_content .entry-content a { color: var(--green-deep);text-decoration: underline; }
.search_part_content .search-result-count {margin-bottom: 20px;}

/* contact form  */
.contact_form{width: 100%;}
.contact_form_box{width: 100%;display: flex;gap: 10px;margin-bottom: 12px;}
.contact_form_half{width: 50%;}
.contact_form_full{width: 100%;}
.contact_form_box label{display: block;font-size: 16px;color: #4a4a4a;padding: 4px 15px;font-weight: 400;}
.contact_form_box textarea,
.contact_form_box select,
.contact_form_box input{
  width: 100%;
  border: 1px solid #999999;
  border-radius: 0;
  padding: 14px 15px;
  color: #3A3A3A;
  outline: none;
  appearance: none;
  resize: none;
  font-size: 16px;
  background: transparent;
  line-height: 1em;
  font-family: "DM Sans", sans-serif;
}
.contact_form_box textarea{font-size: 16px;height: 120px;}
.contact_form_box textarea::placeholder,
.contact_form_box input::placeholder{color: #999999;}
.contact_form_btn{margin-top: 25px;}
.contact_form_box select { appearance: none; background-image: url('../images/select_form_arrow.svg'); background-repeat: no-repeat; background-size: 13px; background-position: calc(100% - 12px) 20px; padding-top: 15px; padding-bottom: 15px}
.contact_form_box select option:checked {color: #4a4a4a}
.contact_form_box .wpcf7-not-valid-tip{font-size: 14px;}

/* testimonial  */
.teati_container{}
.testi_box{width: 100%;}
.testi_box_inner{background: var(--white);}
.testi_box_content{}
.testi_box_content p{}
.testi_box_title{}
.testi_box_title h3{}
.testi_quote_icon{}

.wine_club_sec_outer{
  max-width:450px;padding:25px;text-align:center;border-radius:8px;
}
.wine_icon{font-size:36px;margin-bottom:10px;}
.wine_club_sec_outer h3{
    line-height: 1;
    font-size: 40px;
    margin-bottom: 15px;
    color: var(--green-deep);

}
.wine_club_sec_outer p{
    color: var(--ink-soft);
    font-size: 16px;
    line-height: 1.6;
    margin-bottom: 20px;
    font-weight: 400;
}
.year_sec_coming{background:#f8ecec;color:#4a1525;padding:10px 15px;border-radius:5px;font-weight:bold;font-size:14px;display:inline-block;}


.event_card{
    display:flex;
    gap:30px;
    padding:20px;
    border:1px solid #e5e5e5;
    border-radius:8px;
    background:#fff;
    align-items:flex-start;
    transition:.3s;
}

.event_card:hover{
    box-shadow:0 10px 30px rgba(0,0,0,.08);
}

.event_card_image{
    width:300px;
    flex-shrink:0;
}

.event_card_image img{
    width:100%;
    display:block;
    border-radius:6px;
    object-fit:cover;
    aspect-ratio:4/3;
}

.event_card_content{
    flex:1;
}

.event_title{
    font-size:36px;
    line-height:1.2;
    margin:0 0 15px;
    color:#3a5a40;
    font-weight:700;
}

.event_meta{
    display:flex;
    gap:25px;
    flex-wrap:wrap;
    margin-bottom:18px;
    font-size:15px;
    color:#666;
}

.event_desc{
    margin:0 0 25px;
    font-size:17px;
    line-height:1.7;
    color:#555;
}

.event_footer{
    display:flex;
    align-items:center;
    gap:20px;
    margin-bottom:20px;
}

.event_price{
    font-size:24px;
    font-weight:700;
    color:#111;
}

.event_btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:12px 28px;
    background:#A3B18A;
    color:#3a5a40;
    text-decoration:none;
    font-weight:600;
    transition:.3s;
}

.event_btn:hover{
    background:#3a5a40;
    color: #fff;
}

.event_badge{
    display:inline-block;
    padding:8px 16px;
    background:#0c2c63;
    color:#fff;
    border-radius:4px;
    font-size:13px;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.5px;
}

.tribe-common--breakpoint-medium.tribe-common .tribe-common-b1{display: none;}
.tribe-events .tribe-events-c-search__button, .tribe-events button.tribe-events-c-search__button{ background-color:#3A5A40;}
.tribe-events .tribe-events-c-search__button:focus, .tribe-events .tribe-events-c-search__button:hover, .tribe-events button.tribe-events-c-search__button:focus, .tribe-events button.tribe-events-c-search__button:hover{ background-color: #A3B18A;}
.tribe-common .tribe-common-c-btn-border, .tribe-common a.tribe-common-c-btn-border{color:#3A5A40; border-color: #3A5A40;}
.tribe-events .tribe-events-c-subscribe-dropdown .tribe-events-c-subscribe-dropdown__button:hover{ background-color:#3A5A40;}
.event-tickets .tribe-tickets__commerce-checkout-header-link-back-to-event, .event-tickets .tribe-tickets__commerce-checkout-header-link-back-to-event:visited, .tribe-common .tribe-common-c-btn-border{color:#3A5A40;}

/* ============================================================ RESPONSIVE (breakpoints adapted from dental template) ============================================================ */ /* ---------- 1550px ---------- */ 

@media screen and (max-width: 1550px) { 
.heading_02 h2{font-size: 50px;}
.banner_image_ab > img{object-position: top;}
.banner_section_inner > .wrapper { padding: 200px 20px 100px;}
.banner_image_ab > img, .banner_section{min-height: 750px;}
.nav-menu > li > a{font-size: 15px;padding: 8px 10px;}
.hero__title { font-size: 66px; }
.header_sec{padding: 15px 0;}
.banner_content{max-width: 700px;}
.welcome_inner{margin-top: -80px;}
.category-card__title { font-size: 46px; }
.staying__bg{height: 630px;}
.service__title{font-size: 26px;}
.staying_sec{padding: 0 0 120px;}
.visit_sec{padding: 100px 40px 20px;}
.community_sec{padding: 200px 40px;}
.today_swiper_next {right: -50px;}
.today_swiper_prev {left: -49px;}
.today__content { gap: 60px; }
.banner_image_ab > img, .banner_section {height: auto;}
.error_pg_sec{padding: 10px 0 60px;}
.error_pg_img{max-width: 350px;}
}

/* ---------- 1280px ---------- */ 
@media screen and (max-width: 1280px) { 
  .site_button { padding: 13px 22px; }
  .heading_02 h2 { font-size: 44px;}
  .menu_expand { display: inline-block; align-items: center; }
  .nav_menu_container { display: block; position: fixed; top: 0; left: -100%; bottom: 0; z-index: 100; transition: all 0.3s ease; opacity: 0; visibility: hidden; overflow-y: auto; text-align: left; background: var(--green-deep); width: 100%; padding: 20px 0 45px; max-width: 420px; }
  .nav_menu_container.state-active { left: 0; opacity: 1; visibility: visible; }
  .header_img_sec { width: 50%; order: 1; }
  .header_btn_sec { width: 50%; order: 2; gap: 20px; }
  .header_menu_sec { width: auto; }
  .header_img_sec a { max-width: 140px; }
  .haeder_mobile_menu_top { display: inline-block; width: 100%; padding: 0 20px; }
  .expand_plus, .cross_button { display: block; }
  .nav-menu { padding: 30px 0 20px; width: 100%; display: block; }
  .nav-menu li { width: 100%; padding: 0; margin: 0; display: block; }
  .nav-menu a { width: 100%; }
  .nav-menu > li > a, .sticky_header_inner .nav-menu > li > a, .nav-menu .sub-menu li a { padding: 10px 20px; font-size: 16px; line-height: 1.2em; color: var(--white); }
  .nav-menu > li:hover > a, .nav-menu > li.current-menu-item > a, .sticky_header_inner .nav-menu > li:hover > a { background: transparent; color: var(--green-sage); }
  .nav-menu .sub-menu li:hover > a { background: transparent; color: var(--green-sage); }
  .nav-menu .sub-menu li { border: none; background: transparent; }
  .nav-menu > .menu-item-has-children > a::before { display: none; }
  .nav-menu .sub-menu { padding-left: 20px; width: auto; position: relative; display: none; visibility: visible; opacity: 1; box-shadow: none; left: 0; transform: translate(0, 0); top: 0; transition: none; background: transparent; }
  .header_mobile_menu { display: flex; }
  .sticky_header .header_img_sec{width: 50%;}
  .sticky_header_inner {padding: 8px 0;}
.menu-header-menu-container{width: 100%;}
.nav-menu .sub-menu li ul, .nav-menu .sub-menu { padding-left: 20px; width: auto; position: relative; display: none; visibility: visible; opacity: 1; box-shadow: none; left: 0; transform: translate(0, 0); top: 0; transition: none;}
  .hero__title { font-size: 54px; }
  .hero__card { bottom: 60px; padding: 32px 24px; gap: 24px; }
  .gallery_sec ,
  .services_sec,
  .explore_sec{padding: 80px 0;}
  .category-card__title {font-size: 42px;}
  .staying__bg { height: 455px; }
  .staying__card {margin-top: -100px;padding: 50px 20px; }
  .staying_sec { padding-bottom: 80px; }
  .welcome_inner { gap: 30px;padding: 80px 30px;}
  .services__row { gap: 55px 30px; }
  .service__icon { width: 85px; height: 85px; }
  .explore_title h2,
  .visit_title h2,
  .gallery_title h2 {margin-bottom: 35px;}
  .visit_sec{padding: 80px 30px 0;}
  .event-card__title { font-size: 28px; }
  .today_sec { padding: 80px 60px 80px 30px; }
  .today_swiper_next {right: -70px;}
  .today_swiper_prev {left: -40px;}
  .community_sec {padding: 150px 30px;}
  .gallery__grid img { height: 260px; }
  .today__content { gap: 40px; }
  .banner_section_inner > .wrapper { padding: 188px 20px 80px; } 
  .banner_image_ab > img, .banner_section { min-height: 680px; } 
  .newsletter_outer{padding: 80px 0 0;}
  .footer__logo img { max-width: 200px; }
  .footer__column:nth-child(1) {width: calc(29% - 8px);}
  .footer__column:nth-child(2) {width: calc(29% - 8px);}
  .footer__column:nth-child(3) {width: calc(42% - 8px);}
  .footer__column:nth-child(4){width: calc(50% - 8px);}
  .footer__links{gap: 45px 10px;}
  .footer__bottom p {padding: 25px 0px 25px; }
  .common_banner_title h1 {font-size: 52px;}
  .error_pg_title h1{font-size: 150px;}
  .error_sub_title{font-size: 17px;margin-bottom: 10px;}
  .error_pg_img {max-width: 320px;}
  
}

/* ---------- 1100px : collapse desktop nav into drawer ---------- */ 
@media screen and (max-width: 1100px) { 
  .newsletter_sec{flex-direction: column;padding: 60px 20px;}
  .newsletter__text{flex: auto;}
}

/* ---------- 992px ---------- */ 
@media screen and (max-width: 992px) { 
  .sub_title span{margin-bottom: 20px;}
  .heading_02 h2 {font-size: 42px;}
  .banner_image_ab > img, .banner_section { min-height: 650px; }
  .welcome_inner { grid-template-columns: 1fr; gap: 40px; }
  .hero__title {font-size: 52px;}
  .welcome_inner{padding: 70px 20px;}
  .gallery_sec, .services_sec, .explore_sec {padding: 70px 0;}
  .category-card__title { font-size: 34px; }
  .category-card__inner{gap: 10px;padding: 60px 21px 5px;}
  .category-card{aspect-ratio: 849 / 600;}
  .staying__card { padding: 40px 20px; }
  .explore__grid { gap: 16px; }
  .staying_title h2{margin-bottom: 20px;}
  .services__row { grid-template-columns: repeat(2, 1fr); gap: 56px 30px; }
  .service__title { font-size: 24px; }
  .gallery__grid { grid-template-columns: repeat(2, 1fr); }
  .visit_sec {padding: 70px 20px 0;}
  .visit__cards { grid-template-columns: 1fr; gap: 50px; max-width: 600px; }
  .today_container{max-width: 600px;margin: 0 auto;}
  .evenet_card_img{aspect-ratio: 5/3;}
  .today__img{padding-top: 60%;}
  .today_sec { padding: 70px 20px;}
  .today_swiper_next {right: -75px;}
  .today_swiper_prev {left: -75px;}
  .today_title h2 {margin-bottom: 25px;}
  .community_sec {padding: 100px 20px;}
  .today__content { order: 1; grid-template-columns: 1fr; gap: 32px; }
  .community__card { padding: 56px 20px 36px; }
  .newsletter_outer {padding: 70px 0 0;}
  .newsletter_sec{padding: 40px 20px;text-align: center;}
  .footer__heading { font-size: 26px; margin-bottom: 15px;}
  .footer__content{padding: 80px 0 60px;flex-wrap: wrap;gap: 30px;}
  .footer__branding{width: 100%;padding: 0;}
  .footer__links{width: 100%;padding-left: 0;}
  .footer__logo img {max-width: 170px;}
  .common_banner_title h1 { font-size: 42px;}
  .common_banner_sec {padding: 60px 0;}
  .header_sec.not_home_page .header_img_sec a {max-width: 100px;}
  .search_part_content { padding: 70px 0 70px 0; }

    .event_card{
        flex-direction:column;
    }

    .event_card_image{
        width:100%;
    }

    .event_title{
        font-size:28px;
    }

}

/* ---------- 767px ---------- */ 
@media screen and (max-width: 767px) { 
  .site_button { min-width: 130px; padding: 12px 18px; }
  .heading_02 h2 {font-size: 32px;line-height: 1.2;}
  .sticky_header .header_img_sec,
  .header_img_sec { width: 62%; }
  .header_btn_sec { width: 38%; }
  .header_btn { display: none; }
  .header_img_sec a { max-width: 120px; }
  .haeder_mobile_menu_bottom { display: inline-block; width: 100%; padding: 10px 20px 0; }
  .banner_section::after{background: #00000038;}
  .banner_content{padding: 30px 12px 40px;}
  .banner_section_inner > .wrapper {padding: 170px 20px 70px;}
  .banner_image_ab > img, .banner_section {min-height: 620px;}
  .welcome_inner {margin-top: -35px;padding: 60px 20px;}
  .gallery_sec, .services_sec, .explore_sec {padding: 60px 0;}
  .category-card__title { font-size: 30px; }
  .welcome__quote{font-size: 16px;margin-bottom: 20px;}
  .explore_title h2, .visit_title h2, .gallery_title h2 {margin-bottom: 25px;}
  .category-card__inner{padding: 5px 15px 5px;}
  .explore_cate_btn{visibility: visible;opacity: 1;transform: translate(0);}
  .hero__title { font-size: 38px;margin-bottom: 10px;}
  .category-card__desc p{line-height: 1.4;}
  .staying__bg { height: 300px; }
  .staying__card { padding: 30px 20px;margin-top: -80px; }
  .staying_sec { padding-bottom: 70px; }
  .service_box{gap: 15px;}
  .service__title{max-width: 100%;font-size: 22px;}
  .gallery__grid img { height: 140px; }
  .visit_sec {padding: 60px 20px 0;}
  .sub_title span::after{width: 40px;}
  .sub_title span{padding-left: 50px;}
  .event-card__title { font-size: 26px; }
  .today_swiper_next{top: auto;bottom: 0;right: calc(50% - 60px);width: 55px;height: 55px;}
  .today_swiper_prev{top: auto;bottom: 0;left: calc(50% - 60px);width: 55px;height: 55px;}
  .today_container{padding: 0 0 80px 0;}
  .today_sec { padding: 60px 20px; }
  .community_sec {padding: 60px 20px;}
  .explore__grid { grid-template-columns: 1fr; }
  .services__row { grid-template-columns: 1fr; max-width: 360px; margin: 0 auto; gap: 44px; }
  .community__card { padding: 40px 20px 28px; }
  .community__actions { flex-direction: column; width: 100%;gap: 15px; }
  .newsletter_outer {padding: 60px 0 0;}
  .newsletter__actions { flex-direction: column; width: 100%;gap: 15px; }
  .footer__column:nth-child(1) {width: calc(50% - 8px);}
  .footer__column:nth-child(2) {width: calc(50% - 8px);}
  .footer__column:nth-child(3) {width: calc(50% - 8px);}
  .footer__heading { font-size: 24px; }
  .footer__logo img {max-width: 150px;}
  .common_banner_title h1 { font-size: 36px; }
  .search_part_content .no-results .search-form { margin: 30px 0 0; width: 100%; }
  .search_part_content .no-results { padding: 0px 0 0 0; }
  .search_part_content { padding: 100px 0 0px 0; }
  .header_sec.not_home_page .header_img_sec a {max-width: 90px;}
   .search_part_content { padding: 60px 0; }
   .search_part_content h2{font-size: 22px;}
   .error_pg_title h1 {font-size: 120px;}
   .error_sub_title{font-size: 16px;}
   .error_pg_btn {margin-top: 12px;}

       .event_card{
        padding:15px;
        gap:20px;
    }

    .event_title{
        font-size:24px;
    }

    .event_footer{
        flex-direction:column;
        align-items:flex-start;
    }

    .event_btn{
        width:100%;
    }
}

/* ---------- 479px ---------- */ 
@media screen and (max-width: 479px) { 
  .footer__column:nth-child(1) {width: calc(50% - 8px);}
  .footer__column:nth-child(2) {width: calc(50% - 8px);}
  .footer__column:nth-child(3) {width: 100%;}
  .footer__column:nth-child(4) {width: 100%;}
  .footer__links {gap: 40px 10px;}
  .footer__column.footer_ctc_us{margin-bottom: -10px;}
  .footer__logo img{margin: 0 auto;}
  .footer__content{padding: 70px 0 50px;}
  .banner_btn_sec .site_button{width: 100%;}
  .common_banner_sec { padding: 50px 0;}
  .common_banner_title h1 { font-size: 32px;}
  .contact_form_half{width: 100%;}
  .contact_form_box{flex-wrap: wrap;gap: 12px;}
   .today_swiper_next{right: calc(50% - 58px);width: 50px;height: 50px;}
  .today_swiper_prev{left: calc(50% - 58px);width: 50px;height: 50px;}
  .wine_club_sec_outer h3{font-size: 32px;}
  .wine_club_sec_outer p{line-height: 1.4;}
}

@media screen and (max-width: 369px) {
  .footer__column:nth-child(1) {width: 100%;}
  .footer__column:nth-child(2) {width: 100%;}
}