/* IY-HOLIDAYS ASSET VERSION: v7  (2026-09-06)
   If this line does not say "v7" on the live file at
   https://iyholidays.com/wp-content/uploads/iy-holidays.css
   an OLD cached copy is being served.
   Adds: home promise-card mobile fix, services bleed band. */
/* ============================================================
   IY HOLIDAYS — SITE STYLESHEET
   Used by: Home page, Packages page (and any future page)
   Upload to: /wp-content/uploads/iy-holidays.css
   ============================================================ */

/* ------------------------------------------------------------
   1. WORDPRESS / ASTRA THEME OVERRIDES
   Forces full-width layout, removes theme link underlines and
   stops Astra forcing its own colour onto headings.
   ------------------------------------------------------------ */
#page,#content,.site-content,.ast-container,
.site-content .ast-container,.ast-container > .site-content{
  display:block !important;max-width:100% !important;width:100% !important;
  padding:0 !important;margin:0 !important;
}
#primary,.content-area,.site-main,main#main,
article.ast-article-single,.ast-article-single,
.ast-page-builder-template .site-main > article,
.entry-content,.wp-block-post-content,.ast-page-builder-template .entry-content{
  display:block !important;max-width:100% !important;width:100% !important;
  padding:0 !important;margin:0 !important;float:none !important;
  background:transparent !important;box-shadow:none !important;
}
.entry-content a,.wp-block-post-content a,.ast-container a{text-decoration:none !important;}
.entry-content h1,.entry-content h2,.entry-content h3,
.entry-content h4,.entry-content h5,.entry-content h6,
.wp-block-post-content h1,.wp-block-post-content h2,.wp-block-post-content h3,
.wp-block-post-content h4,.wp-block-post-content h5,.wp-block-post-content h6{color:inherit;}

/* ------------------------------------------------------------
   2. BASE / RESET
   ------------------------------------------------------------ */
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:'Source Sans 3',system-ui,sans-serif;color:#4a3f35;
  font-size:18px;line-height:1.65;background:#fff;overflow-x:hidden;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{display:block;max-width:100%;}
a{text-decoration:none;color:inherit;}
h1,h2,h3,h4,p{margin:0;}

/* Material Symbols Rounded icon font */
.msr{
  font-family:'Material Symbols Rounded';font-weight:normal;font-style:normal;
  line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;
  word-wrap:normal;direction:ltr;-webkit-font-feature-settings:'liga';
  font-feature-settings:'liga';-webkit-font-smoothing:antialiased;
}

/* ------------------------------------------------------------
   3. ANIMATIONS
   ------------------------------------------------------------ */
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
/* Reveal is ADDITIVE: the hidden state only applies once JS confirms it can
   un-hide (html.js-reveal). Without JS, or if IntersectionObserver never fires,
   content stays visible instead of being permanently blank. */
.js-reveal .reveal{opacity:0;transform:translateY(22px);
  transition:opacity .55s cubic-bezier(.2,.7,.2,1),transform .55s cubic-bezier(.2,.7,.2,1);}
.js-reveal .reveal.in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){
  .js-reveal .reveal{opacity:1 !important;transform:none !important;transition:none !important;}
  .wa-float{animation:none !important;}
  .metric-card{transition:none !important;}
  .metric-card:hover{transform:none !important;}
}

/* ------------------------------------------------------------
   4. HEADER + NAVIGATION
   ------------------------------------------------------------ */
#site-header{
  background:transparent;border-bottom:1px solid transparent;box-shadow:none;
  transition:background .35s ease,box-shadow .35s ease,border-color .35s ease;
}
#site-header.scrolled{
  background:rgba(255,255,255,.96);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  border-bottom-color:#f0e6d8;box-shadow:0 4px 20px -14px rgba(60,40,20,.4);
}
/* animated underline on desktop nav links */
.nav-links a{position:relative;}
.nav-links a .ul{
  position:absolute;left:0;bottom:-6px;height:3px;width:0;background:#DC731C;
  border-radius:3px;transition:width .3s ease;
}
.nav-links a:hover .ul{width:100%;}
/* dropdown menus (Trips / Packages) */
.has-menu{position:relative;}
.drop-menu{
  display:none;position:absolute;top:calc(100% + 14px);left:-16px;min-width:230px;
  background:#fff;border:1px solid #f0e6d8;border-radius:14px;padding:10px;
  box-shadow:0 24px 50px -20px rgba(60,40,20,.4);
}
.has-menu:hover .drop-menu{display:block;}
.hov-drop{transition:background .2s,color .2s;}
.hov-drop:hover{background:#FDF3E9 !important;color:#B85A12 !important;}
.hamburger{display:none;}

/* ------------------------------------------------------------
   5. SHARED BUTTON / LINK HOVER STATES
   ------------------------------------------------------------ */
.hov-primary{transition:background .25s,transform .25s;}
.hov-primary:hover{background:#B85A12 !important;transform:translateY(-2px);}
.hov-ghost{transition:background .25s;}
.hov-ghost:hover{background:rgba(255,255,255,.26) !important;}
.hov-wa{transition:filter .25s,transform .25s;}
.hov-wa:hover{filter:brightness(1.06);transform:translateY(-2px);}
.hov-outline{transition:background .25s,color .25s;}
.hov-outline:hover{background:#DC731C !important;color:#fff !important;}
.hov-enquire{transition:background .25s,color .25s,transform .25s;}
.hov-enquire:hover{background:#DC731C !important;color:#fff !important;transform:translateY(-2px);}
.hov-arrow{transition:all .25s;}
.hov-arrow:hover{background:#DC731C !important;color:#fff !important;border-color:#DC731C !important;}
.hov-foot{transition:color .2s;}
.hov-foot:hover{color:#F6B26B !important;}
.hov-social{transition:background .25s,color .25s;}
.hov-social:hover{background:#DC731C !important;color:#fff !important;}

/* ------------------------------------------------------------
   6. CARDS (Home: services, packages, why | Packages: cards)
   ------------------------------------------------------------ */
.liftcard{transition:transform .35s ease,box-shadow .35s ease;}
.liftcard:hover{transform:translateY(-8px);box-shadow:0 22px 48px -18px rgba(60,40,20,.35);}
.zoomcard [data-img]{transition:transform .6s cubic-bezier(.2,.7,.2,1);}
.zoomcard:hover [data-img]{transform:scale(1.07);}
.inc-item{transition:transform .3s ease,box-shadow .3s ease;}
.inc-item:hover{transform:translateY(-5px);box-shadow:0 22px 44px -24px rgba(20,60,66,.6);}
/* Comfortable tap targets for footer links (44px min) on any touch device,
   plus all small screens. Covers phones and tablet portrait alike. */
@media(max-width:1024px),(pointer:coarse){
  footer .hov-foot{display:flex;align-items:center;min-height:44px;}
}

/* About page — reviews: 1 / 2 / 4 columns only, so the four cards never orphan */
.review-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:22px;}
@media(min-width:640px){.review-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(min-width:1100px){.review-grid{grid-template-columns:repeat(4,minmax(0,1fr));}}

/* About page — metric block: explicit column counts so a leftover tile stays
   one column wide instead of stretching across the row (wrapping flex did that). */
.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
@media(min-width:640px){.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(min-width:1024px){.metric-grid{grid-template-columns:repeat(5,minmax(0,1fr));}}

/* About page — metric tiles on a dark surface */
.metric-card{transition:transform .3s ease,background .3s ease;}
.metric-card:hover{transform:translateY(-6px);background:rgba(255,255,255,.1) !important;}

/* ------------------------------------------------------------
   7. HOME PAGE — hero slider + guarantee cutout
   ------------------------------------------------------------ */
.hero-slide{touch-action:pan-y;}
.guarantee-card{position:relative;overflow:visible;}
/* promise card: text + cutout side by side on desktop, single full-width
   column on mobile (the old 1.2fr/.8fr split squeezed the copy and left a
   dead .8fr column of empty space on the right) */
.guarantee-grid{grid-template-columns:minmax(0,1fr);}
.guarantee-grid > .g-spacer{display:none;}
@media(min-width:861px){
  .guarantee-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);}
  .guarantee-grid > .g-spacer{display:block;}
}
.guarantee-img{
  position:absolute;right:clamp(16px,4vw,64px);bottom:0;
  height:calc(100% + 78px);width:auto;max-width:none;pointer-events:none;
  filter:drop-shadow(0 26px 34px rgba(120,60,10,.42));
}
@media(max-width:860px){
  .guarantee-card{padding-bottom:290px !important;}
  .guarantee-img{height:auto;width:min(260px,72%);left:50%;right:auto;transform:translateX(-50%);bottom:0;}
}

/* ------------------------------------------------------------
   8. PACKAGES PAGE — grid, cards, sliders, tabs
   ------------------------------------------------------------ */
#pkg-grid{display:grid;grid-template-columns:1fr;gap:26px;}
@media(min-width:700px){#pkg-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1080px){#pkg-grid{grid-template-columns:repeat(3,1fr);}}
.pkg-card{transition:transform .35s ease,box-shadow .35s ease;}
.pkg-card:hover{transform:translateY(-8px);box-shadow:0 26px 54px -22px rgba(60,40,20,.4);}
.ps{touch-action:pan-y;}
.ps-prev,.ps-next{transition:background .2s,transform .2s;}
.ps-prev:hover,.ps-next:hover{
  background:#DC731C !important;color:#fff !important;
  transform:translateY(-50%) scale(1.08) !important;
}
.pk-toggle{transition:color .2s;}
.pk-toggle:hover{color:#B85A12;}
.pk-tab{transition:background .25s,color .25s,border-color .25s,transform .2s;}
.pk-tab:not(.active):hover{transform:translateY(-2px);background:#FDF3E9 !important;border-color:#DC731C !important;color:#B85A12 !important;}
.pk-tab.active:hover{transform:translateY(-2px);background:#B85A12 !important;color:#fff !important;border-color:#B85A12 !important;}
/* hide the horizontal scrollbar on the category tab strip */


/* ------------------------------------------------------------
   9. RESPONSIVE — mobile navigation breakpoints
   ------------------------------------------------------------ */
@media(max-width:960px){
  .nav-links{display:none !important;}
  .hamburger{display:inline-flex !important;}
  .header-cta{display:none !important;}
}
@media(min-width:961px){
  #mobile-panel{display:none !important;}
}

/* ------------------------------------------------------------
   PACKAGES PAGE — category tab rail (arrows both sides)
   ------------------------------------------------------------ */
.tab-rail{position:relative;display:flex;align-items:center;gap:8px;}
.tab-strip{display:flex;gap:10px;overflow-x:auto;scroll-behavior:smooth;padding:6px 2px 14px;flex:1 1 auto;min-width:0;scrollbar-width:none;}
.tab-strip::-webkit-scrollbar{display:none;}
.tab-arrow{flex:0 0 auto;width:42px;height:42px;border-radius:999px;border:1px solid #ecdfce;background:#fff;color:#2a2018;cursor:pointer;display:none;align-items:center;justify-content:center;transition:background .2s,color .2s,border-color .2s,opacity .2s;box-shadow:0 6px 16px -10px rgba(60,40,20,.5);}
.tab-arrow:hover:not(:disabled){background:#DC731C !important;color:#fff !important;border-color:#DC731C !important;}
.tab-arrow[hidden]{display:none !important;}
.tab-rail.has-overflow .tab-arrow{display:flex;}
.tab-arrow:disabled{opacity:.3;cursor:default;}
.tab-arrow:disabled:hover{background:#fff !important;color:#2a2018 !important;border-color:#ecdfce !important;}
/* soft fade hints at the strip edges */
.tab-rail.has-overflow::before,.tab-rail.has-overflow::after{content:'';position:absolute;top:0;bottom:14px;width:26px;pointer-events:none;z-index:1;}
.tab-rail.has-overflow::before{left:46px;background:linear-gradient(90deg,#fff,rgba(255,255,255,0));}
.tab-rail.has-overflow::after{right:46px;background:linear-gradient(270deg,#fff,rgba(255,255,255,0));}
.tab-rail.at-start::before{opacity:0;}
.tab-rail.at-end::after{opacity:0;}

/* ------------------------------------------------------------
   PACKAGES PAGE — region + country filter bar
   ------------------------------------------------------------ */
.filter-bar{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;margin-bottom:22px;}
.seg{display:inline-flex;background:#FCF7EF;border:1px solid #ecdfce;border-radius:999px;padding:4px;gap:4px;}
.seg-btn{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;background:transparent;color:#52463b;border:none;font-family:'Montserrat',sans-serif;font-weight:700;font-size:14.5px;padding:10px 18px;border-radius:999px;cursor:pointer;white-space:nowrap;transition:background .25s,color .25s;min-height:44px;}
.seg-btn:not(.active):hover{background:#FDF3E9 !important;color:#B85A12 !important;}
.seg-btn.active{background:#DC731C;color:#fff;}
.seg-btn.active:hover{background:#B85A12 !important;color:#fff !important;}
.country-wrap{position:relative;display:inline-flex;align-items:center;}
.country-wrap .msr{position:absolute;left:16px;font-size:21px;color:#DC731C;pointer-events:none;}
.country-wrap .chev{left:auto;right:14px;}
#pkg-country{appearance:none;-webkit-appearance:none;-moz-appearance:none;background:#fff;border:1px solid #ecdfce;border-radius:999px;font-family:'Montserrat',sans-serif;font-weight:700;font-size:14.5px;color:#2a2018;padding:13px 44px 13px 46px;min-height:46px;cursor:pointer;outline:none;transition:border-color .2s,box-shadow .2s;}
#pkg-country:hover{border-color:#DC731C !important;}
#pkg-country:focus{border-color:#DC731C !important;box-shadow:0 0 0 3px rgba(220,115,28,.18) !important;}
/* active-filter chips */
.chip-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.chip{display:inline-flex;align-items:center;gap:7px;background:#FDF3E9;color:#B85A12;border:1px solid #f6ddc3;font-family:'Montserrat',sans-serif;font-weight:700;font-size:13px;padding:8px 12px;border-radius:999px;cursor:pointer;transition:background .2s,color .2s;min-height:36px;}
.chip:hover{background:#DC731C !important;color:#fff !important;border-color:#DC731C !important;}
@media(max-width:600px){
  .filter-bar{flex-direction:column;align-items:stretch;}
  .seg{width:100%;}
  .seg-btn{flex:1 1 0;justify-content:center;padding:10px 8px;}
  #pkg-country{width:100%;}
  .country-wrap{width:100%;}
}

/* ------------------------------------------------------------
   HEADER — dropdown hover bridge (stops the menu vanishing when
   the pointer crosses the gap between the link and the panel)
   ------------------------------------------------------------ */
.has-menu .drop-menu::before{content:'';position:absolute;left:0;right:0;top:-18px;height:18px;}
.has-menu:focus-within .drop-menu{display:block;}
/* mobile menu: parent link stays tappable, chevron is its own button */
.m-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #f4ecdf;}
.m-row > a{flex:1 1 auto;display:flex;align-items:center;padding:16px 6px;font-family:'Montserrat',sans-serif;font-weight:600;font-size:19px;color:#2a2018;min-height:44px;}
.m-sub-toggle{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:52px;min-height:52px;background:none;border:none;cursor:pointer;color:#DC731C;}
.m-sub-toggle .msr{transition:transform .3s ease;}
.m-sub-toggle[aria-expanded="true"] .msr{transform:rotate(180deg);}

/* ------------------------------------------------------------
   GALLERY PAGE — card-deck (coverflow) carousel
   Card transforms are written inline by the script; these rules
   carry the polish, hover states and responsive tuning.
   ------------------------------------------------------------ */
.gal-stage{position:relative;width:100%;height:clamp(340px,50vw,700px);perspective:1600px;transform-style:preserve-3d;touch-action:pan-y;}
.gal-card{position:absolute;top:50%;left:50%;width:clamp(210px,30vw,430px);height:clamp(300px,41vw,590px);margin:calc(-0.5 * clamp(300px,41vw,590px)) 0 0 calc(-0.5 * clamp(210px,30vw,430px));border-radius:22px;overflow:hidden;background:#e9f5f6;box-shadow:0 30px 60px -28px rgba(14,42,45,.55);will-change:transform,opacity;backface-visibility:hidden;}
.gal-card::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,42,45,0) 55%,rgba(14,42,45,.72));opacity:0;transition:opacity .45s ease;}
.gal-card.is-active::after{opacity:1;}
.gal-card-cap{position:absolute;left:0;right:0;bottom:0;padding:20px 22px;color:#fff;z-index:2;opacity:0;transform:translateY(10px);transition:opacity .45s ease,transform .45s ease;}
.gal-card.is-active .gal-card-cap{opacity:1;transform:none;}
.gal-card:not(.is-active){cursor:pointer;}
.gal-card:not(.is-active):hover{filter:brightness(1.06);}

/* pill filters (destinations) */
.gal-pills{display:flex;gap:10px;overflow-x:auto;padding:6px 2px 14px;scrollbar-width:none;}
.gal-pills::-webkit-scrollbar{display:none;}
.gal-pill:not(.active):hover{background:#FDF3E9 !important;border-color:#DC731C !important;color:#B85A12 !important;}
.gal-pill.active:hover{background:#B85A12 !important;border-color:#B85A12 !important;color:#fff !important;}

/* arrows */
.gal-arrow:hover:not(:disabled){background:#DC731C !important;color:#fff !important;border-color:#DC731C !important;transform:translateY(-2px);}
.gal-arrow:disabled{opacity:.35;cursor:default;}

/* counter */
.gal-count{font-variant-numeric:tabular-nums;}

.gal-card{cursor:zoom-in;}
@media(prefers-reduced-motion:reduce){
  .gal-card{transition:none !important;}
}

/* gallery pill row: same rail treatment as the packages page tabs */
.gal-filters{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.gal-rail{position:relative;display:flex;align-items:center;gap:8px;flex:1 1 320px;min-width:0;max-width:100%;}
.gal-rail .gal-pills{flex:1 1 auto;min-width:0;}
.gal-arrow-sm{flex:0 0 auto;width:40px;height:40px;border-radius:999px;border:1px solid #ecdfce;background:#fff;color:#2a2018;cursor:pointer;display:none;align-items:center;justify-content:center;padding:0;transition:background .2s,color .2s,border-color .2s,opacity .2s;box-shadow:0 6px 16px -10px rgba(60,40,20,.5);}
.gal-rail.has-overflow .gal-arrow-sm{display:flex;}
.gal-arrow-sm:hover:not(:disabled){background:#DC731C !important;color:#fff !important;border-color:#DC731C !important;}
.gal-arrow-sm:disabled{opacity:.3;cursor:default;}
.gal-rail.has-overflow::before,.gal-rail.has-overflow::after{content:'';position:absolute;top:0;bottom:14px;width:24px;pointer-events:none;z-index:1;transition:opacity .25s ease;}
.gal-rail.has-overflow::before{left:44px;background:linear-gradient(90deg,#fff,rgba(255,255,255,0));}
.gal-rail.has-overflow::after{right:44px;background:linear-gradient(270deg,#fff,rgba(255,255,255,0));}
.gal-rail.at-start::before{opacity:0;}
.gal-rail.at-end::after{opacity:0;}
.gal-cta:hover{background:#B85A12 !important;border-color:#B85A12 !important;transform:translateY(-2px);}
@media(max-width:620px){
  .gal-filters{flex-direction:column;align-items:stretch;}
  /* column layout: basis governs height, so pin the width explicitly */
  .gal-rail{flex:0 0 auto;width:100%;}
  .gal-cta{justify-content:center;}
}

/* ------------------------------------------------------------
   GALLERY — fullscreen lightbox (double-click / double-tap a card)
   ------------------------------------------------------------ */
.gal-lb{position:fixed;inset:0;z-index:9999;display:none;background:rgba(8,24,28,.96);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);}
.gal-lb.open{display:block;}
.gal-lb-stage{position:absolute;inset:0;overflow:hidden;touch-action:none;cursor:grab;}
.gal-lb-stage.dragging{cursor:grabbing;}
.gal-lb-img{position:absolute;top:50%;left:50%;max-width:none;transform-origin:center center;transition:transform .28s cubic-bezier(.22,.68,.24,1);will-change:transform;user-select:none;-webkit-user-drag:none;}
.gal-lb-img.no-anim{transition:none;}
.gal-lb-btn{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:999px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.12);color:#fff;cursor:pointer;padding:0;transition:background .2s,border-color .2s,transform .2s,opacity .2s;}
.gal-lb-btn:hover:not(:disabled){background:#DC731C !important;border-color:#DC731C !important;transform:translateY(-2px);}
.gal-lb-btn:disabled{opacity:.35;cursor:default;}
@media(max-width:600px){
  .gal-lb-btn{width:44px;height:44px;}
}
@media(prefers-reduced-motion:reduce){
  .gal-lb-img{transition:none !important;}
}

/* ------------------------------------------------------------
   CONTACT PAGE — tab switcher, form fields, validation states
   ------------------------------------------------------------ */
/* form + contact info: stacked on mobile, side by side from 980px */
.ct-layout{grid-template-columns:minmax(0,1fr);}
@media(min-width:980px){
  .ct-layout{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);}
}
.ct-tabs{display:flex;gap:6px;background:#FCF7EF;border:1px solid #ecdfce;border-radius:999px;padding:5px;}
.ct-tab{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:transparent;color:#52463b;border:none;font-family:'Montserrat',sans-serif;font-weight:700;font-size:15px;padding:13px 16px;border-radius:999px;cursor:pointer;min-height:48px;transition:background .25s,color .25s;}
.ct-tab:not(.active):hover{background:#FDF3E9 !important;color:#B85A12 !important;}
.ct-tab.active{background:#DC731C !important;color:#fff !important;}
.ct-tab.active[data-mode="whatsapp"]{background:#25D366 !important;}
.ct-panel[hidden]{display:none !important;}
/* the hidden attribute must win over the display values set above */
.ct-field[hidden],.ct-grid[hidden],.ct-card[hidden],.ct-tabs[hidden],[hidden]{display:none !important;}
.ct-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;}
@media(min-width:620px){
  .ct-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ct-grid .ct-full{grid-column:1 / -1;}
}
.ct-field{display:flex;flex-direction:column;gap:7px;min-width:0;}
.ct-label{font-family:'Montserrat',sans-serif;font-weight:700;font-size:13.5px;color:#2a2018;letter-spacing:.2px;}
.ct-label .req{color:#DC731C;}
.ct-input,.ct-select,.ct-area{width:100%;font-family:'Source Sans 3',system-ui,sans-serif;font-size:16.5px;color:#2a2018;background:#fff;border:1.5px solid #e8dcc9;border-radius:14px;padding:14px 16px;outline:none;transition:border-color .2s,box-shadow .2s;min-height:52px;}
.ct-area{min-height:118px;resize:vertical;line-height:1.55;}
.ct-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding-right:44px;cursor:pointer;}
.ct-selwrap{position:relative;display:flex;flex-direction:column;}
.ct-selwrap > .msr{position:absolute;right:14px;bottom:14px;font-size:22px;color:#DC731C;pointer-events:none;}
.ct-input:hover,.ct-select:hover,.ct-area:hover{border-color:#d8c8ae;}
.ct-input:focus,.ct-select:focus,.ct-area:focus{border-color:#DC731C !important;box-shadow:0 0 0 3px rgba(220,115,28,.16) !important;}
.ct-hint{font-size:13px;color:#8a7c6d;}
.ct-err{display:none;align-items:center;gap:6px;font-size:13.5px;font-weight:600;color:#C4342B;}
.ct-field.invalid .ct-err{display:flex;}
.ct-field.invalid .ct-input,.ct-field.invalid .ct-select,.ct-field.invalid .ct-area{border-color:#C4342B !important;background:#FEF7F6;}
.ct-field.valid .ct-input,.ct-field.valid .ct-select{border-color:#7FB069;}
.ct-hp{position:absolute !important;left:-9999px !important;width:1px !important;height:1px !important;overflow:hidden !important;}
.ct-submit{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;font-family:'Montserrat',sans-serif;font-weight:700;font-size:17.5px;color:#fff;background:#DC731C;border:none;border-radius:999px;padding:17px 30px;cursor:pointer;min-height:56px;transition:background .25s,transform .25s,opacity .2s;box-shadow:0 16px 34px -16px rgba(220,115,28,.9);}
.ct-submit:hover:not(:disabled){background:#B85A12 !important;transform:translateY(-2px);}
.ct-submit.wa{background:#25D366;box-shadow:0 16px 34px -16px rgba(37,211,102,.9);}
.ct-submit.wa:hover:not(:disabled){background:#1FB958 !important;}
.ct-submit:disabled{opacity:.65;cursor:progress;transform:none;}
.ct-note{display:flex;align-items:flex-start;gap:9px;font-size:14px;color:#7a6d5f;line-height:1.5;}
.ct-status{display:none;gap:11px;align-items:flex-start;border-radius:16px;padding:16px 18px;font-size:16px;line-height:1.55;}
.ct-status.show{display:flex;}
.ct-status.ok{background:#EFF7EA;border:1px solid #cfe6c4;color:#2F6B21;}
.ct-status.bad{background:#FEF7F6;border:1px solid #f2d3cf;color:#A62B22;}
.ct-spin{width:20px;height:20px;border:2.5px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:999px;animation:ctspin .7s linear infinite;display:none;}
.ct-submit.busy .ct-spin{display:block;}
.ct-submit.busy .ct-submit-t,.ct-submit.busy > .msr{display:none;}
@keyframes ctspin{to{transform:rotate(360deg)}}
.ct-info{transition:transform .3s ease,box-shadow .3s ease;}
.ct-info:hover{transform:translateY(-5px);box-shadow:0 22px 46px -26px rgba(60,40,20,.45);}
@media(prefers-reduced-motion:reduce){.ct-spin{animation:none}}
