/* ─────────────────────────────────────────────
   THE ITALIAN EXIT — v3 luxury HNWI
   Mobile-first · wizard · premium conversion
───────────────────────────────────────────── */

:root {
  --ivory:      #FEFAF4;
  --sand:       #F5EDD8;
  --clay:       #E8D9C0;
  --tc:         #C0563A;
  --tc-dark:    #9E4530;
  --tc-light:   rgba(192,86,58,.06);
  --olive:      #4A6741;
  --charcoal:   #1C1917;
  --muted:      #6B5E54;
  --muted-light:#8C7F73;
  --white:      #FFFFFF;
  --error:      #c0321a;

  --font-d: 'Cormorant Garamond', Georgia, serif;
  --font-s: 'DM Sans', system-ui, sans-serif;

  --max-w:   1140px;
  --gutter:  1.25rem;
  --sec-pad: 3.5rem;
  --radius:  4px;
  --r-card:  10px;
  --shadow:  0 2px 20px rgba(28,25,23,.05);
  --shadow-lg: 0 8px 36px rgba(28,25,23,.10);
  --tr: .3s ease;
}

/* ── Reset ───────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-s);background:var(--ivory);color:var(--charcoal);line-height:1.6;-webkit-font-smoothing:antialiased}
.page-wrap{overflow-x:hidden;width:100%;position:relative}
img{display:block;max-width:100%}
a{color:inherit}
button{font:inherit;cursor:pointer;border:none;background:none}
input,select,textarea{font:inherit}
fieldset{border:none;padding:0}
ol,ul{list-style:none}
.container{max-width:var(--max-w);margin-inline:auto;padding-inline:var(--gutter)}

/* ── Section header ──────────────────────────── */
.section-header{margin-bottom:2rem}
.section-tag{font-size:.68rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--tc);margin-bottom:.6rem}
.section-title{font-family:var(--font-d);font-size:clamp(1.6rem,5vw,2.4rem);font-weight:300;line-height:1.12;letter-spacing:-.01em}

/* ── Buttons ─────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:500;letter-spacing:.04em;padding:.85rem 2rem;border-radius:var(--radius);text-decoration:none;transition:all var(--tr);border:1.5px solid transparent}
.btn:active{transform:scale(.98)}
.btn--primary{background:var(--tc);color:var(--white);border-color:var(--tc);box-shadow:0 2px 8px rgba(192,86,58,.15)}
.btn--primary:hover{background:var(--tc-dark);border-color:var(--tc-dark);transform:translateY(-1px);box-shadow:0 4px 16px rgba(192,86,58,.2)}
.btn--large{padding:1rem 2.5rem;font-size:.95rem}
.btn--full{width:100%}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.btn-link{font-size:.85rem;color:var(--muted);text-decoration:none;padding:.5rem 0;transition:color var(--tr);letter-spacing:.02em}
.btn-link:hover{color:var(--charcoal)}

/* ── Nav ─────────────────────────────────────── */
.nav{position:sticky;top:0;z-index:100;background:var(--ivory);border-bottom:1px solid transparent;transition:border-color var(--tr),box-shadow var(--tr);padding-block:.85rem;position:-webkit-sticky;position:sticky}
.nav--scrolled{border-color:var(--clay);box-shadow:0 1px 10px rgba(28,25,23,.04)}
.nav__inner{max-width:var(--max-w);margin-inline:auto;padding-inline:var(--gutter);display:flex;align-items:center;justify-content:space-between}
.nav__logo{font-family:var(--font-d);font-size:1.1rem;font-weight:400;letter-spacing:.04em;text-decoration:none}
.nav__cta{font-size:.78rem;font-weight:500;color:var(--tc);text-decoration:none;padding:.4rem 1rem;border:1.5px solid var(--tc);border-radius:var(--radius);transition:background var(--tr),color var(--tr);display:none}
.nav__cta:hover{background:var(--tc);color:var(--white)}

/* Burger */
.nav__burger{display:flex;flex-direction:column;justify-content:center;gap:4.5px;width:2rem;height:2rem;background:none;border:none;cursor:pointer;padding:4px;order:3}
.nav__burger span{display:block;width:100%;height:1.5px;background:var(--charcoal);border-radius:1px;transition:all .3s ease}
.nav__burger.open span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.nav__burger.open span:nth-child(2){opacity:0}
.nav__burger.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* Mobile menu */
.nav__mobile-menu{display:none;position:absolute;top:100%;left:0;right:0;background:var(--ivory);border-bottom:1px solid var(--clay);box-shadow:0 4px 16px rgba(28,25,23,.08);padding:1rem var(--gutter) 1.25rem;flex-direction:column;gap:.25rem}
.nav__mobile-menu.open{display:flex}
.nav__mobile-menu .nav__link{padding:.6rem 0;font-size:.88rem;border-bottom:1px solid rgba(232,217,192,.5)}
.nav__mobile-menu .nav__link:last-of-type{border-bottom:none}
.nav__mobile-menu .nav__cta--mobile{display:inline-flex;align-items:center;justify-content:center;margin-top:.75rem;padding:.7rem 1.25rem;font-size:.85rem;font-weight:500;color:var(--white);background:var(--tc);border:1.5px solid var(--tc);border-radius:var(--radius);text-decoration:none;transition:all var(--tr)}
.nav__mobile-menu .nav__cta--mobile:hover{background:var(--tc-dark);border-color:var(--tc-dark)}

/* ── Hero ────────────────────────────────────── */
.hero{padding-block:4rem 3.5rem;border-bottom:1px solid var(--clay);text-align:center}
.hero__tag{font-size:.65rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--olive);margin-bottom:1.25rem}
.hero__headline{font-family:var(--font-d);font-size:clamp(2.4rem,8vw,5.2rem);font-weight:300;line-height:1.06;letter-spacing:-.02em;margin-bottom:1.35rem}
.hero__sub{font-size:clamp(.88rem,2.5vw,1.02rem);color:var(--muted);max-width:48ch;margin-inline:auto;margin-bottom:2.25rem;line-height:1.75}
.hero__cta{margin-bottom:0}

/* ── Slideshow ───────────────────────────────── */
.properties{padding-block:var(--sec-pad);background:var(--sand);overflow:hidden}
.slideshow{position:relative;overflow:hidden}
.slideshow__track{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:.75rem var(--gutter) 1.75rem}
.slideshow__track::-webkit-scrollbar{display:none}

.property-card{flex:0 0 min(78vw,340px);scroll-snap-align:start;background:var(--white);border-radius:var(--r-card);overflow:hidden;box-shadow:var(--shadow);transition:all .4s cubic-bezier(.25,.46,.45,.94)}
.property-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}

.property-card__img-wrap{position:relative;height:200px;background:var(--clay);overflow:hidden}
.property-card__img-wrap.no-img{display:flex;align-items:center;justify-content:center}
.property-card__img-wrap.no-img::after{content:'Photo coming soon';font-size:.72rem;color:var(--muted-light)}
.property-card__img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.25,.46,.45,.94)}
.property-card:hover .property-card__img{transform:scale(1.05)}
.property-card__badge{position:absolute;top:.75rem;left:.75rem;background:rgba(28,25,23,.65);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--white);font-size:.6rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;padding:.3rem .7rem;border-radius:2px}
.property-card__body{padding:1.15rem 1.25rem 1.25rem}
.property-card__price{font-family:var(--font-d);font-size:1.5rem;font-weight:500;color:var(--tc);line-height:1;margin-bottom:.3rem}
.property-card__location{font-size:.82rem;font-weight:500;margin-bottom:.45rem;letter-spacing:.01em}
.property-card__meta{display:flex;flex-wrap:wrap;gap:.4rem .75rem;font-size:.73rem;color:var(--muted-light);letter-spacing:.02em}

.property-card.skeleton{min-height:320px;animation:pulse 1.4s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}

.slideshow__nav{display:none;position:absolute;top:50%;transform:translateY(-60%);width:2.4rem;height:2.4rem;background:var(--white);border-radius:50%;box-shadow:var(--shadow);font-size:1.2rem;color:var(--charcoal);align-items:center;justify-content:center;z-index:2;transition:all var(--tr)}
.slideshow__nav:hover{box-shadow:var(--shadow-lg);transform:translateY(-60%) scale(1.05)}
.slideshow__nav--prev{left:.6rem}
.slideshow__nav--next{right:.6rem}

/* ── Services ────────────────────────────────── */
.services{padding-block:var(--sec-pad);background:var(--ivory)}
.services__grid{display:grid;gap:1.15rem}
.service-card{padding:1.75rem;border:1px solid var(--clay);border-radius:var(--r-card);background:var(--white);transition:all var(--tr)}
.service-card:hover{border-color:rgba(192,86,58,.3);box-shadow:var(--shadow)}
.service-card__icon{width:42px;height:42px;background:var(--tc-light);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;color:var(--tc);margin-bottom:1rem;line-height:1}
.service-card h3{font-family:var(--font-d);font-size:1.35rem;font-weight:400;margin-bottom:.6rem;line-height:1.2}
.service-card p{font-size:.82rem;color:var(--muted);line-height:1.75}

/* ── Reviews ─────────────────────────────────── */
.reviews{padding-block:var(--sec-pad);background:var(--sand);overflow:hidden}
.reviews__track{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:.25rem var(--gutter) .75rem}
.reviews__track::-webkit-scrollbar{display:none}
.review-card{flex:0 0 min(85vw,360px);scroll-snap-align:start;padding:1.75rem;background:var(--white);border:1px solid var(--clay);border-radius:var(--r-card);transition:all var(--tr)}
.review-card:hover{box-shadow:var(--shadow)}
.review-card__stars{font-size:.72rem;color:var(--tc);letter-spacing:.08em;margin-bottom:.75rem}
.review-card blockquote{font-family:var(--font-d);font-size:1.05rem;font-style:italic;line-height:1.65;margin-bottom:.85rem;padding-left:1rem;border-left:2px solid rgba(192,86,58,.2)}
.review-card cite{font-size:.73rem;color:var(--muted-light);font-style:normal;letter-spacing:.06em;text-transform:uppercase}

/* ── FAQ ────────────────────────────────────── */
.faq{padding-block:var(--sec-pad);background:var(--ivory)}
.faq__list{max-width:720px}
.faq__item{border-bottom:1px solid var(--clay);padding-block:1.25rem}
.faq__item:first-child{border-top:1px solid var(--clay)}
.faq__q{font-family:var(--font-d);font-size:1.15rem;font-weight:400;cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:1rem;line-height:1.35;padding-right:.25rem}
.faq__q::-webkit-details-marker{display:none}
.faq__q::after{content:'+';font-family:var(--font-s);font-size:1.2rem;font-weight:300;color:var(--muted);transition:transform .25s ease;flex-shrink:0}
.faq__item[open] .faq__q::after{content:'−'}
.faq__a{padding-top:.85rem;font-size:.85rem;color:var(--muted);line-height:1.8}
.faq__a p{margin-bottom:.5rem}
.faq__a p:last-child{margin-bottom:0}
.faq__a strong{color:var(--charcoal);font-weight:500}
.faq__a em{font-style:italic;color:var(--charcoal)}

/* ── Guides / Blog ──────────────────────────── */
.guides{padding-block:var(--sec-pad);background:var(--sand)}
.guides__grid{display:grid;gap:1.15rem}
.guide-card{display:block;padding:2rem 1.75rem;background:var(--white);border:1px solid var(--clay);border-radius:var(--r-card);text-decoration:none;transition:all var(--tr)}
.guide-card:hover{border-color:rgba(192,86,58,.3);box-shadow:var(--shadow);transform:translateY(-2px)}
.guide-card__number{font-family:var(--font-d);font-size:2.2rem;font-weight:300;color:var(--clay);line-height:1;margin-bottom:.75rem}
.guide-card:hover .guide-card__number{color:var(--tc)}
.guide-card__title{font-family:var(--font-d);font-size:1.25rem;font-weight:400;line-height:1.25;margin-bottom:.6rem}
.guide-card__desc{font-size:.82rem;color:var(--muted);line-height:1.7;margin-bottom:1rem}
.guide-card__link{font-size:.78rem;font-weight:500;color:var(--tc);letter-spacing:.03em;transition:color var(--tr)}
.guide-card:hover .guide-card__link{color:var(--tc-dark)}

/* ── Nav links ──────────────────────────────── */
.nav__links{display:none;gap:1.5rem}
.nav__link{font-size:.78rem;font-weight:500;color:var(--muted);text-decoration:none;letter-spacing:.02em;transition:color var(--tr)}
.nav__link:hover{color:var(--charcoal)}

/* ── Wizard form ─────────────────────────────── */
.form-section{padding-block:var(--sec-pad);background:var(--ivory)}
.wizard{max-width:520px;margin-inline:auto;background:var(--white);border:1px solid var(--clay);border-radius:var(--r-card);overflow:hidden;box-shadow:0 4px 32px rgba(28,25,23,.06)}

.wizard__progress{height:1px;background:var(--clay)}
.wizard__bar{height:2px;margin-top:-1px;background:var(--tc);transition:width .5s cubic-bezier(.4,0,.2,1);width:33.333%}

.wizard__steps-label{display:flex;justify-content:center;gap:.6rem;padding:.85rem 0 0}
.wizard__dot{width:7px;height:7px;border-radius:50%;background:var(--clay);transition:all var(--tr)}
.wizard__dot.active{background:var(--tc);transform:scale(1.15)}
.wizard__dot.done{background:var(--olive)}

.wizard__track{display:flex;transition:transform .4s cubic-bezier(.4,0,.2,1)}
.wizard__track[hidden]{display:none}
.wizard__panel{flex:0 0 100%;min-width:100%;padding:2.25rem 1.75rem 2.5rem}

.wizard__title{font-family:var(--font-d);font-size:1.7rem;font-weight:300;margin-bottom:.45rem;line-height:1.15}
.wizard__sub{font-size:.82rem;color:var(--muted);margin-bottom:1.75rem;line-height:1.65}
.wizard__trust{font-size:.7rem;color:var(--muted-light);text-align:center;margin-top:1.25rem;letter-spacing:.04em}

.wizard__nav-row{display:flex;align-items:center;justify-content:space-between;margin-top:.75rem}

/* Fields inside wizard */
.field{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.1rem}
.field:last-child{margin-bottom:0}
.field>label{font-size:.78rem;font-weight:500;color:var(--charcoal);letter-spacing:.01em}
.req{color:var(--tc)}
.opt{color:var(--muted-light);font-weight:400}
.field input,.field select,.field textarea{width:100%;padding:.75rem 1rem;border:1px solid rgba(192,86,58,.12);border-radius:var(--radius);background:var(--white);color:var(--charcoal);font-size:.85rem;outline:none;transition:all var(--tr);-webkit-appearance:none;appearance:none;box-shadow:inset 0 1px 2px rgba(0,0,0,.02)}
.field input::placeholder,.field textarea::placeholder{color:var(--muted-light);opacity:.85}
.field input:focus,.field select:focus,.field textarea:focus{border-color:rgba(192,86,58,.35);box-shadow:inset 0 1px 2px rgba(0,0,0,.02),0 0 0 4px rgba(192,86,58,.05);background:var(--white)}
.field input.error{border-color:var(--error);box-shadow:inset 0 1px 2px rgba(0,0,0,.02),0 0 0 4px rgba(192,50,26,.06)}
.field textarea{resize:vertical;min-height:78px}
.field select{background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%237C6D60' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.4rem}

.form__row{display:grid;gap:1.1rem;margin-bottom:1.1rem}

/* Pills (region & interest selectors) */
.pills{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.4rem}
.pill{cursor:pointer;user-select:none}
.pill input{position:absolute;opacity:0;width:0;height:0}
.pill span{display:inline-block;padding:.45rem .9rem;font-size:.78rem;font-weight:500;color:var(--muted);border:1px solid var(--clay);border-radius:100px;background:var(--ivory);transition:all var(--tr)}
.pill:hover span{border-color:var(--tc);color:var(--charcoal);transform:scale(1.02)}
.pill input:checked+span{background:transparent;color:var(--tc);border-color:var(--tc);font-weight:500}
.pills--lg .pill span{padding:.55rem 1.1rem;font-size:.82rem}

/* Form error */
.form__error{padding:.65rem .9rem;background:rgba(192,50,26,.05);border:1px solid rgba(192,50,26,.15);border-radius:var(--radius);color:var(--error);font-size:.8rem;margin-bottom:.75rem}

/* Success */
.wizard__success{text-align:center;padding:3.5rem 2rem}
.wizard__success-icon{width:3.25rem;height:3.25rem;background:var(--olive);color:var(--white);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.3rem;margin:0 auto 1.5rem;box-shadow:0 4px 16px rgba(74,103,65,.2)}
.wizard__success h3{font-family:var(--font-d);font-size:1.9rem;font-weight:300;margin-bottom:.6rem}
.wizard__success p{font-size:.85rem;color:var(--muted);line-height:1.75}
.wizard__success a{color:var(--tc);text-underline-offset:3px;transition:color var(--tr)}
.wizard__success a:hover{color:var(--tc-dark)}

/* ── Mobile sticky CTA ──────────────────────── */
.mobile-cta{position:fixed;bottom:0;left:0;right:0;padding:.7rem 1.25rem calc(.7rem + env(safe-area-inset-bottom, 0px));background:rgba(254,250,244,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--clay);z-index:50;transform:translateY(100%);transition:transform .35s cubic-bezier(.4,0,.2,1)}
.mobile-cta.visible{transform:translateY(0)}

/* ── Contact ─────────────────────────────────── */
.contact{padding-block:var(--sec-pad);background:var(--sand);border-top:1px solid var(--clay)}
.contact__inner{max-width:600px;margin-inline:auto}
.contact__text{text-align:center;margin-bottom:1.75rem}
.contact__title{font-family:var(--font-d);font-size:clamp(1.5rem,4vw,2rem);font-weight:300;margin-bottom:.4rem}
.contact__sub{font-size:.82rem;color:var(--muted);line-height:1.6}
.contact__form{display:flex;flex-direction:column;gap:.75rem}
.contact__row{display:grid;gap:.75rem}
.contact__form input,.contact__form textarea{width:100%;padding:.75rem 1rem;border:1px solid rgba(192,86,58,.12);border-radius:var(--radius);background:var(--white);color:var(--charcoal);font-size:.85rem;font-family:var(--font-s);outline:none;transition:all var(--tr);box-shadow:inset 0 1px 2px rgba(0,0,0,.02)}
.contact__form input::placeholder,.contact__form textarea::placeholder{color:var(--muted-light);opacity:.85}
.contact__form input:focus,.contact__form textarea:focus{border-color:rgba(192,86,58,.35);box-shadow:inset 0 1px 2px rgba(0,0,0,.02),0 0 0 4px rgba(192,86,58,.05)}
.contact__form textarea{resize:vertical;min-height:80px}
.contact__form .btn{align-self:flex-start}
.contact__success{font-size:.82rem;color:var(--olive);font-weight:500;letter-spacing:.02em}
@media(min-width:600px){
  .contact__row{grid-template-columns:1fr 1fr}
}

/* ── Footer ──────────────────────────────────── */
.footer{background:var(--charcoal);padding-block:2.5rem}
.footer__inner{display:flex;flex-direction:column;align-items:center;gap:1.25rem;text-align:center}
.footer__col{display:flex;flex-direction:column;align-items:center;gap:.3rem}
.footer__col--end{gap:.5rem}
.footer__logo{font-family:var(--font-d);font-size:1.05rem;font-weight:400;color:var(--white);letter-spacing:.06em}
.footer__copy{font-size:.68rem;color:rgba(255,255,255,.35);letter-spacing:.03em}
.footer__nav{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem 1.25rem}
.footer__nav a{font-size:.72rem;color:rgba(255,255,255,.5);text-decoration:none;letter-spacing:.02em;transition:color var(--tr)}
.footer__nav a:hover{color:var(--white)}
.footer__social{font-size:.72rem;color:rgba(255,255,255,.5);text-decoration:none;letter-spacing:.02em;transition:color var(--tr)}
.footer__social:hover{color:var(--white)}
.footer__email{font-size:.72rem;color:rgba(255,255,255,.45);text-decoration:none;letter-spacing:.02em;transition:color var(--tr)}
.footer__email:hover{color:var(--white)}

/* ─── TABLET ≥ 600px ─────────────────────────── */
@media(min-width:600px){
  :root{--sec-pad:4.5rem;--gutter:1.5rem}
  .form__row--2{grid-template-columns:1fr 1fr}
  .property-card{flex:0 0 45%;max-width:none}
  .review-card{flex:0 0 45%;max-width:none}
  .services__grid{grid-template-columns:repeat(2,1fr)}
  .guides__grid{grid-template-columns:repeat(2,1fr)}
  .footer__inner{flex-direction:row;justify-content:space-between;text-align:left;align-items:flex-start}
  .footer__col{align-items:flex-start}
  .footer__col--end{align-items:flex-end}
  .wizard__panel{padding:2.5rem 2.5rem 2.75rem}
  .wizard{box-shadow:0 6px 40px rgba(28,25,23,.07)}
}

/* ─── DESKTOP ≥ 1024px ───────────────────────── */
@media(min-width:1024px){
  :root{--sec-pad:6rem;--gutter:2rem}
  .property-card{flex:0 0 calc(33.333% - .75rem);max-width:none}
  .slideshow__nav{display:flex}
  .services__grid{grid-template-columns:repeat(3,1fr)}
  .review-card{flex:0 0 calc(33.333% - .75rem);max-width:none}
  .mobile-cta{display:none}
  .hero{padding-block:5.5rem 4.5rem}
  .wizard__panel{padding:3rem 3rem 3.25rem}
  .guides__grid{grid-template-columns:repeat(3,1fr)}
  .nav__links{display:flex}
  .nav__burger{display:none}
  .nav__mobile-menu{display:none!important}
  .nav__cta{display:inline-flex;font-size:.78rem;color:var(--tc);background:transparent;padding:.4rem 1rem;order:unset}
  .nav__cta:hover{background:var(--tc);color:var(--white)}
}
