@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=DM+Sans:wght@300;400;500;600&display=swap');

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-font-smoothing:antialiased;scroll-behavior:smooth;scroll-padding-top:5rem;}
body{min-height:100dvh;line-height:1.6;font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text);background:var(--color-bg);}
img,svg{display:block;max-width:100%;height:auto;}
input,button,textarea,select{font:inherit;color:inherit;}
h1,h2,h3,h4{text-wrap:balance;line-height:1.15;}
p,li{text-wrap:pretty;max-width:72ch;}
button{cursor:pointer;background:none;border:none;}
a{text-decoration:none;color:inherit;}

:root{
  --font-display:'Cormorant Garamond',Georgia,serif;
  --font-body:'DM Sans',system-ui,sans-serif;
  --text-xs:clamp(0.75rem,0.7rem + 0.25vw,0.875rem);
  --text-sm:clamp(0.875rem,0.8rem + 0.35vw,1rem);
  --text-base:clamp(1rem,0.95rem + 0.25vw,1.125rem);
  --text-lg:clamp(1.125rem,1rem + 0.75vw,1.5rem);
  --text-xl:clamp(1.5rem,1.2rem + 1.25vw,2.25rem);
  --text-2xl:clamp(2rem,1.2rem + 2.5vw,3.5rem);
  --text-hero:clamp(3rem,0.5rem + 7vw,7rem);
  --space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;
  --space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;
  --space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;
  --radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-full:9999px;
  --transition:180ms cubic-bezier(0.16,1,0.3,1);
  --content-wide:1200px;
}
:root,[data-theme="light"]{
  --color-bg:#FAF8F4;--color-surface:#FFFFFF;--color-surface-2:#F5F2ED;
  --color-border:#E0DDD6;--color-divider:#E8E5DF;
  --color-text:#1A1814;--color-text-muted:#6B6760;--color-text-faint:#A8A49D;--color-text-inverse:#FAF8F4;
  --color-primary:#18345B;--color-primary-hover:#0F2340;--color-primary-light:#EDF1F7;
  --color-accent:#C4864C;
  --shadow-sm:0 1px 3px rgba(26,24,20,.06);--shadow-md:0 4px 16px rgba(26,24,20,.08);--shadow-lg:0 12px 40px rgba(26,24,20,.12);
}
[data-theme="dark"]{
  --color-bg:#141210;--color-surface:#1C1A17;--color-surface-2:#242220;
  --color-border:#3A3733;--color-divider:#2E2C29;
  --color-text:#E8E5DF;--color-text-muted:#8A867F;--color-text-faint:#5A5752;--color-text-inverse:#141210;
  --color-primary:#7BA3D0;--color-primary-hover:#5A87B8;--color-primary-light:#1C2535;
  --color-accent:#D4985E;
  --shadow-sm:0 1px 3px rgba(0,0,0,.3);--shadow-md:0 4px 16px rgba(0,0,0,.4);--shadow-lg:0 12px 40px rgba(0,0,0,.5);
}

.container{width:100%;max-width:var(--content-wide);margin:0 auto;padding-inline:var(--space-6);}

/* HEADER */
.header{position:fixed;top:0;left:0;right:0;z-index:100;background:color-mix(in srgb,var(--color-bg) 88%,transparent);backdrop-filter:blur(16px);border-bottom:1px solid var(--color-divider);transition:transform .3s cubic-bezier(.16,1,.3,1);}
.header__inner{max-width:var(--content-wide);margin:0 auto;padding:var(--space-3) var(--space-6);display:flex;align-items:center;gap:var(--space-6);}
.logo{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0;}
.logo__img{height:44px;width:auto;object-fit:contain;}
.nav{display:flex;align-items:center;gap:var(--space-6);flex:1;}
.nav__link{font-size:var(--text-sm);font-weight:500;color:var(--color-text-muted);transition:color var(--transition);}
.nav__link:hover{color:var(--color-text);}
.header__right{display:flex;align-items:center;gap:var(--space-3);margin-left:auto;}

.lang-switch{display:flex;background:var(--color-surface-2);border-radius:var(--radius-full);padding:3px;gap:2px;}
.lang-btn{font-size:11px;font-weight:600;letter-spacing:.06em;padding:4px 11px;border-radius:var(--radius-full);color:var(--color-text-muted);background:transparent;border:none;cursor:pointer;transition:all var(--transition);}
.lang-btn.active{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-sm);}

.btn-auth-ghost{font-size:var(--text-sm);font-weight:500;color:var(--color-text-muted);padding:6px 16px;border-radius:var(--radius-full);border:1px solid var(--color-border);background:transparent;cursor:pointer;transition:all var(--transition);display:inline-flex;align-items:center;}
.btn-auth-ghost:hover{color:var(--color-text);border-color:var(--color-text-muted);}
.btn-auth-fill{font-size:var(--text-sm);font-weight:600;color:var(--color-text-inverse);background:var(--color-primary);padding:6px 18px;border-radius:var(--radius-full);border:none;cursor:pointer;transition:all var(--transition);display:inline-flex;align-items:center;text-decoration:none;}
.btn-auth-fill:hover{background:var(--color-primary-hover);}

.theme-toggle{color:var(--color-text-muted);padding:var(--space-2);border-radius:var(--radius-full);transition:all var(--transition);}
.theme-toggle:hover{background:var(--color-surface-2);color:var(--color-text);}
.mobile-menu-btn{display:none;color:var(--color-text);padding:var(--space-2);background:none;border:none;cursor:pointer;border-radius:6px;}

.mobile-nav{position:fixed;inset:0;z-index:200;background:var(--color-bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-10);opacity:0;pointer-events:none;transition:opacity .3s ease;}
.mobile-nav--open{opacity:1;pointer-events:all;}
.mobile-nav__close{position:absolute;top:var(--space-4);right:var(--space-6);color:var(--color-text);padding:var(--space-2);}
.mobile-nav__links{display:flex;flex-direction:column;align-items:center;gap:var(--space-8);}
.mobile-nav__link{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;color:var(--color-text);}
.mobile-nav__link--cta{color:var(--color-primary);}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-body);font-weight:600;font-size:var(--text-sm);letter-spacing:.02em;text-decoration:none;border-radius:var(--radius-full);padding:var(--space-3) var(--space-8);transition:all var(--transition);white-space:nowrap;border:none;cursor:pointer;}
.btn--hero{background:var(--color-primary);color:var(--color-text-inverse);padding:var(--space-4) var(--space-10);font-size:var(--text-base);}
.btn--hero:hover{background:var(--color-primary-hover);box-shadow:var(--shadow-md);}
.btn-block{width:100%;border-radius:var(--radius-md);}
.btn--sm{background:var(--color-primary);color:var(--color-text-inverse);padding:var(--space-2) var(--space-6);}
.btn--sm:hover{background:var(--color-primary-hover);}
.btn--outline{background:transparent;color:var(--color-primary);border:1.5px solid var(--color-primary);}
.btn--outline:hover{background:var(--color-primary);color:var(--color-text-inverse);}

/* HERO */
.hero{position:relative;min-height:100dvh;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.hero__bg{position:absolute;inset:0;z-index:0;}
.hero__bg img{width:100%;height:100%;object-fit:cover;}
.hero__overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,18,16,.3) 0%,rgba(20,18,16,.55) 50%,rgba(20,18,16,.8) 100%);}
.hero__content{position:relative;z-index:1;text-align:center;max-width:800px;padding:var(--space-20) var(--space-6) var(--space-12);}
.hero__tag{font-size:var(--text-xs);font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--color-accent);margin-bottom:var(--space-6);}
.hero__title{font-family:var(--font-display);font-size:var(--text-hero);font-weight:500;color:#FAF8F4;line-height:1.05;margin-bottom:var(--space-6);}
.hero__sub{font-size:var(--text-lg);color:rgba(250,248,244,.8);line-height:1.6;max-width:600px;margin:0 auto var(--space-10);font-weight:300;}
.hero__scroll{position:absolute;bottom:var(--space-8);left:50%;transform:translateX(-50%);z-index:1;color:rgba(250,248,244,.5);animation:float 2.5s ease-in-out infinite;}
@keyframes float{0%,100%{transform:translateX(-50%) translateY(0);}50%{transform:translateX(-50%) translateY(8px);}}

/* SECTION TAG */
.section-tag{font-size:var(--text-xs);font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--color-accent);margin-bottom:var(--space-4);}
.section-tag--center{text-align:center;}

/* VALUES */
.values{padding:clamp(var(--space-16),8vw,var(--space-24)) 0;background:var(--color-bg);}
.values__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-8);}
.value-card{padding:var(--space-8);border-radius:var(--radius-xl);background:var(--color-surface);border:1px solid var(--color-divider);transition:box-shadow var(--transition);}
.value-card:hover{box-shadow:var(--shadow-md);}
.value-card__icon{color:var(--color-primary);margin-bottom:var(--space-6);}
.value-card__title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;color:var(--color-text);margin-bottom:var(--space-3);}
.value-card__text{font-size:var(--text-base);color:var(--color-text-muted);line-height:1.6;}

/* VOYAGE */
.voyage{padding:clamp(var(--space-16),8vw,var(--space-32)) 0;background:var(--color-surface-2);}
.voyage__layout{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-12);align-items:center;}
.voyage__images{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);}
.voyage__img{border-radius:var(--radius-xl);width:100%;object-fit:cover;}
.voyage__img--main{aspect-ratio:3/4;}
.voyage__img--accent{aspect-ratio:3/4;margin-top:var(--space-8);}
.voyage__heading{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:500;color:var(--color-text);margin-bottom:var(--space-6);}
.voyage__body{font-size:var(--text-base);color:var(--color-text-muted);line-height:1.7;margin-bottom:var(--space-4);}
.voyage__body:last-of-type{margin-bottom:var(--space-8);}

/* STEPS */
.steps{padding:clamp(var(--space-16),8vw,var(--space-24)) 0;background:var(--color-bg);}
.steps__heading{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;color:var(--color-text);text-align:center;margin-bottom:var(--space-12);}
.steps__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-8);}
.step{text-align:center;padding:var(--space-6);}
.step__num{display:block;font-family:var(--font-display);font-size:var(--text-2xl);font-weight:600;color:var(--color-primary);opacity:.3;margin-bottom:var(--space-4);line-height:1;}
.step__title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;color:var(--color-text);margin-bottom:var(--space-3);}
.step__text{font-size:var(--text-base);color:var(--color-text-muted);line-height:1.6;max-width:320px;margin:0 auto;}

/* MENUS */
.menus{padding:clamp(var(--space-16),8vw,var(--space-24)) 0;background:var(--color-surface-2);}
.menus__heading{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;color:var(--color-text);text-align:center;margin-bottom:var(--space-12);}
.menus__gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6);}
.gallery-card{border-radius:var(--radius-xl);overflow:hidden;aspect-ratio:3/4;}
.gallery-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.16,1,.3,1);}
.gallery-card:hover img{transform:scale(1.04);}

/* QUOTE */
.quote-section{padding:clamp(var(--space-16),8vw,var(--space-24)) 0;background:var(--color-bg);text-align:center;}
.pull-quote{margin:0 auto var(--space-8);max-width:640px;}
.pull-quote p{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:400;font-style:italic;color:var(--color-text);line-height:1.3;max-width:none;}
.quote-body{font-size:var(--text-base);color:var(--color-text-muted);max-width:560px;margin:0 auto;line-height:1.7;}

/* CTA FINAL */
.cta-final{padding:clamp(var(--space-16),10vw,var(--space-32)) 0;background:var(--color-primary-light);text-align:center;}
.cta-final__heading{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:500;color:var(--color-text);margin-bottom:var(--space-4);}
.cta-final__sub{font-size:var(--text-lg);color:var(--color-text-muted);margin-bottom:var(--space-10);max-width:none;}

/* FOOTER */
.footer{padding:var(--space-12) 0;background:var(--color-surface);border-top:1px solid var(--color-divider);}
.footer__inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-6);}
.footer__brand{display:flex;flex-direction:column;gap:var(--space-2);}
.footer__copy{font-size:var(--text-xs);color:var(--color-text-faint);}
.footer__links{display:flex;align-items:center;gap:var(--space-6);flex-wrap:wrap;}
.footer__links a{font-size:var(--text-xs);color:var(--color-text-muted);}
.footer__links a:hover{color:var(--color-primary);}

/* REVEAL */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);}
.reveal--visible{opacity:1;transform:translateY(0);}

/* MODALS */
.modal-overlay{position:fixed;inset:0;background:rgba(26,24,20,.6);z-index:300;display:none;align-items:center;justify-content:center;padding:var(--space-6);}
.modal-overlay.active{display:flex;}
.modal{background:var(--color-surface);border-radius:var(--radius-xl);padding:2.5rem;width:100%;max-width:420px;position:relative;box-shadow:var(--shadow-lg);}
.modal-close{position:absolute;top:1.25rem;right:1.25rem;width:32px;height:32px;border-radius:var(--radius-full);border:1px solid var(--color-border);background:transparent;display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--color-text-muted);cursor:pointer;transition:all var(--transition);}
.modal-close:hover{border-color:var(--color-text);color:var(--color-text);}
.modal-title{font-family:var(--font-display);font-size:1.75rem;font-weight:500;color:var(--color-text);margin-bottom:.375rem;}
.modal-sub{font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:1.75rem;}
.modal-form{display:flex;flex-direction:column;gap:1rem;}
.form-field{display:flex;flex-direction:column;gap:5px;}
.form-field label{font-size:var(--text-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);}
.form-field input{padding:11px 14px;border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);color:var(--color-text);background:var(--color-surface);transition:border-color var(--transition);}
.form-field input:focus{outline:none;border-color:var(--color-primary);}
.modal-footer{margin-top:1.25rem;text-align:center;font-size:var(--text-sm);color:var(--color-text-muted);}
.modal-footer a{color:var(--color-primary);font-weight:500;}
.forgot-link{text-align:right;margin-top:-6px;}
.forgot-link a{font-size:var(--text-xs);color:var(--color-text-muted);}
.forgot-link a:hover{color:var(--color-primary);}

/* TOAST */
.toast{position:fixed;bottom:2rem;right:2rem;z-index:400;background:var(--color-text);color:var(--color-text-inverse);padding:.875rem 1.25rem;border-radius:var(--radius-lg);border-left:3px solid var(--color-accent);max-width:300px;transform:translateY(60px);opacity:0;transition:all .35s cubic-bezier(.34,1.56,.64,1);pointer-events:none;}
.toast.show{transform:translateY(0);opacity:1;}
.toast strong{display:block;font-size:13px;font-weight:600;margin-bottom:2px;}
.toast span{font-size:12px;opacity:.65;}

/* MOBILE */
@media(max-width:768px){
  .nav{display:none;}
  .mobile-menu-btn{display:flex;align-items:center;justify-content:center;color:var(--color-text);background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:6px;padding:.35rem .45rem;box-shadow:0 1px 4px rgba(0,0,0,.08);}
  .values__grid,.steps__grid,.menus__gallery{grid-template-columns:1fr;gap:var(--space-4);}
  .voyage__layout{grid-template-columns:1fr;gap:var(--space-8);}
  .voyage__images{grid-template-columns:1fr 1fr;}
  .header__right .btn-auth-ghost{display:none;}
  .header__right .btn-auth-fill{display:none;}
  .header__right .btn-auth-fill[id="nav-cabinet"]{display:none;}
  .header__right .lang-switch{display:none;}
}
@media(max-width:480px){
  .footer__inner{flex-direction:column;align-items:flex-start;}
}
.mobile-nav .lang-switch{display:flex;margin-top:var(--space-4);}

/* ── MENU SLIDER ── */
.menus-slider { position: relative; margin-top: var(--space-6); }
.menus-slider__track { position: relative; width: 100%; aspect-ratio: 16/9; border-radius: var(--radius-xl); overflow: hidden; background: var(--color-surface); }
.menu-slide { position: absolute; inset: 0; opacity: 0; transition: opacity .8s cubic-bezier(.16,1,.3,1); }
.menu-slide--active { opacity: 1; }
.menu-slide img { width: 100%; height: 100%; object-fit: cover; }
.menu-slide__caption { position: absolute; bottom: 0; left: 0; right: 0; padding: var(--space-6) var(--space-8); background: linear-gradient(0deg, rgba(20,18,16,.75) 0%, transparent 100%); font-family: var(--font-display); font-size: var(--text-lg); font-weight: 500; color: #FAF8F4; }
.menus-slider__dots { display: flex; justify-content: center; gap: var(--space-2); margin-top: var(--space-6); }
.menu-dot { width: 8px; height: 8px; border-radius: var(--radius-full); background: var(--color-border); border: none; cursor: pointer; transition: all var(--transition); padding: 0; }
.menu-dot--active { background: var(--color-primary); width: 24px; }
.menu-dot:hover { background: var(--color-text-muted); }
@media(max-width:768px) { .menus-slider__track { aspect-ratio: 4/3; } .menu-slide__caption { font-size: var(--text-base); padding: var(--space-4); } }
