:root {
  --red: #D63B18;
  --cream: #FAF5EE;
  --dark: #1A1A18;
  --forest: #2B3D2C;
  --gold: #C8A96E;
  --mid: #6B6860;
  --white: #fff;
  --border: rgba(26,26,24,0.12);
}

*, *::before, *::after { margin:0; padding:0;}
html {box-sizing: border-box; scroll-behavior:smooth;}
*, :after, :before {box-sizing: inherit;}
body { background:var(--cream); color:var(--dark); font-family:'DM Sans',sans-serif; font-size:16px; line-height:1.65; overflow-x:hidden; }

img, object, embed, video, iframe {max-width:100%;}
img {height:auto;}

a {color:var(--red);}
a:hover {text-decoration:none;}

/* Forms */
label{font-size:0.75rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--mid); font-weight:600; margin-bottom:8px; display:block;}
input[type=text],
input[type=email],
input[type=tel],
input[type=date],
select,
textarea{width:100%; padding:11px 14px; border:1px solid var(--border); border-radius:2px; font-size:0.9rem; font-family:inherit; transition:border-color 0.2s ease;}
input:focus,
select:focus,
textarea:focus{outline:none; border-color:var(--red);}
textarea{resize:vertical; min-height:100px;}
button{padding:0; border:none; cursor:pointer; background-color:transparent;}
input[type=submit],
.btn{background:var(--red); border:none; border-radius:2px; color:white; cursor:pointer; font-size:0.8rem; font-weight:600; padding:12px 28px; transition:opacity .2s; display:inline-block; letter-spacing:0.14em; text-transform:uppercase;}
input[type=submit]:hover,
.btn:hover{opacity:.8;}
input[type=submit]:disabled,
.btn:disabled {opacity:.6; cursor:not-allowed; }
.cf-panel {}
.cf-panel p{margin-bottom:14px;}
.wpcf7-acceptance .wpcf7-list-item-label {text-transform:none; font-size:0.8rem; font-weight:400; letter-spacing:normal; vertical-align:text-bottom; margin-left:5px;}
.wpcf7-acceptance span.wpcf7-list-item {display:inline-block; margin:0 1em 0 0;}

h1,h2,h3,h4,h5,h6 { font-weight:bold; margin:0 0 1.5rem; line-height:1.15;}
h1 {font-size:3rem;}
h2 {font-size:2.5rem;}
h3 {font-size:2rem;}
h4 {font-size:1.6rem;}
h5 {font-size:1.4rem;}
h6 {font-size:1.2rem;}

ol,ul{list-style:none;}
.entry-content ul, 
.entry-content ol {line-height:2; margin-bottom:20px;}
.entry-content ul li {padding-left:40px; position:relative;}
.entry-content ul li:before {background-color:var(--red); content:""; position:absolute; width:5px; height:5px; border-radius:50%; left:27px; top:12px;}
.entry-content ol {counter-reset:li;}
.entry-content ol li:before {display:inline-block; margin-left:40px; margin-right:5px; counter-increment:li; content:counter(li)"."; font-weight:bold; color:var(--red);}	
.entry-content p {font-size:1rem; color:var(--mid); /* line-height:1.8; */ font-weight:400; margin-bottom:1rem; }
.woocommerce ul.order_details li:before {width:0;}

table{border-collapse:collapse; border-spacing:0;}
table {border:none; max-width:100%; overflow:auto; margin-bottom:20px;}
table th,
table td {padding:10px 20px; border:1px solid var(--border);}
table tr:nth-child(2n+1) {background-color:#fafafa;}

/* ── NAV ── */
.header {
  position:fixed; top:0; left:0; right:0; z-index:200;
  height:60px; display:flex; align-items:center; justify-content:space-between;
  padding:0 40px;
  background:rgba(250,245,238,0.94); backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(0,0,0,0.08);
}
body.logged-in.admin-bar .header {top:32px;}
.nav-brand { font-family:'Bebas Neue',sans-serif; font-size:1.45rem; letter-spacing:0.06em; color:var(--dark); text-decoration:none; }
.nav-brand span { color:var(--red); }
.nav-back { display:flex; align-items:center; gap:6px; font-size:0.75rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--mid); text-decoration:none; font-weight:600; }
.nav-back:hover { color:var(--red); }
.nav-links { display:flex; gap:28px; list-style:none; }
.nav-links a { font-size:0.75rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--mid); text-decoration:none; font-weight:600; transition:color .2s; }
.nav-links a:hover { color:var(--red); }
.nav-right { display:flex; align-items:center; gap:20px; }
.nav-lang { display:flex; gap:2px; }
.nav-lang a { font-size:0.68rem; font-weight:600; letter-spacing:0.08em; color:var(--mid); padding:3px 7px; text-decoration:none; transition:color .2s; text-transform: uppercase;}
.nav-lang a.active { color:var(--red); border-bottom:2px solid var(--red); }
.nav-lang a:hover { color:var(--red); }
.nav-cta { background:var(--red); color:#fff; padding:8px 22px; font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase; font-weight:600; text-decoration:none; transition:opacity .2s; }
.nav-cta:hover { opacity:.85; }
.nav-menu-btn { display:none; background:none; border:none; cursor:pointer; padding:4px; }
.nav-menu-btn span { display:block; width:22px; height:2px; background:var(--dark); margin:5px 0; transition:.3s; }

/* ── HERO ── */
.hero {
  margin-top:60px;
  display:grid; grid-template-columns:1fr 1fr;
  min-height:calc(100vh - 60px);
}
.hero-text {
  background:var(--forest);
  padding:64px 56px;
  display:flex; flex-direction:column; justify-content:center;
  position:relative; overflow:hidden;
}
.hero-text::after {
  content:''; position:absolute; top:-60px; right:-60px;
  width:280px; height:280px; border-radius:50%;
  background:radial-gradient(circle, rgba(200,169,110,.12) 0%, transparent 70%);
  pointer-events:none;
}
.hero-eyebrow {
  font-size:0.68rem; letter-spacing:0.22em; text-transform:uppercase;
  color:var(--gold); font-weight:600; margin-bottom:20px;
  display:flex; align-items:center; gap:10px;
}
.hero-eyebrow::before { content:''; display:block; width:32px; height:1px; background:var(--gold); }
.hero-h1 {
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(3.6rem, 6.5vw, 6.5rem);
  line-height:.92; color:#fff; letter-spacing:.03em;
  margin-bottom:10px;
}
.hero-h1 em {
  font-family:'Cormorant Garamond',serif; font-style:italic;
  font-size:.6em; color:var(--gold); display:block; line-height:1.2; letter-spacing:.06em;
}
.hero-desc {
  font-size:1rem; color:rgba(255,255,255,.72); font-weight:300;
  line-height:1.72; max-width:360px; margin:24px 0 40px;
}
.hero-stats {
  display:flex; gap:28px; margin-bottom:40px;
  padding:20px 0; border-top:1px solid rgba(255,255,255,.1); border-bottom:1px solid rgba(255,255,255,.1);
}
.stat-num { font-family:'Bebas Neue',sans-serif; font-size:2.2rem; color:var(--gold); display:block; line-height:1; }
.stat-lbl { font-size:.65rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.45); display:block; margin-top:3px; }
.hero-btns { display:flex; gap:12px; flex-wrap:wrap; }
.btn-solid { background:var(--red); color:#fff; padding:13px 28px; font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; font-weight:600; text-decoration:none; transition:opacity .2s; }
.btn-solid:hover { opacity:.85; }
.btn-ghost { border:1.5px solid rgba(255,255,255,.35); color:rgba(255,255,255,.8); padding:13px 28px; font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; font-weight:600; text-decoration:none; transition:border-color .2s,color .2s; }
.btn-ghost:hover { border-color:var(--gold); color:var(--gold); }

.hero-photos {position:relative;
  display:grid; grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr;
  gap:3px; background:var(--dark);
}
.hero-photos img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s; }
.hero-photos img:hover { transform:scale(1.04); }
.hero-badge-pill {
  position:absolute; top:20px; right:20px;
  background:var(--red); color:#fff; padding:6px 16px;
  font-size:.65rem; letter-spacing:.15em; text-transform:uppercase; font-weight:600;
  z-index:2;
}

/* ── TICKER ── */
.ticker-bar { background:var(--red); overflow:hidden; padding:11px 0; }
.ticker-inner { display:flex; white-space:nowrap; animation:tick 24s linear infinite; }
.ticker-inner span { font-size:.65rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.88); font-weight:600; padding:0 24px; }
.ticker-inner span.sep { color:rgba(255,255,255,.3); padding:0 6px; }
@keyframes tick { from{ transform:translateX(0) } to{ transform:translateX(-50%) } }

/* ── SECTIONS ── */
.sec { padding:80px 80px; }
.sec-sm { padding:64px 80px; }
.top-sec {margin-top:20px;}

.tag {
  font-size:.65rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--red); font-weight:600; display:flex; align-items:center; gap:10px;
  margin-bottom:14px;
}
.tag::after { content:''; display:block; width:32px; height:1px; background:var(--red); }
h2 {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(2rem, 3.5vw, 3rem); font-weight:300; line-height:1.15;
}
h2 strong { font-weight:600; }

/* ── INTRO ── */
.intro { background:#fff; }
.intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:72px; margin-top:48px; align-items:start; }
.intro-grid p { font-size:.97rem; color:var(--mid); line-height:1.78; font-weight:300; margin-bottom:14px; }
.quote-box {
  background:var(--forest); padding:32px; margin-top:28px;
  border-left:4px solid var(--gold);
}
.quote-box p {
  font-family:'Cormorant Garamond',serif; font-style:italic;
  font-size:1.15rem; color:rgba(255,255,255,.88); line-height:1.6; font-weight:300;
}
.quote-box p strong { font-style:normal; color:var(--gold); }

/* features */
.feats {display:flex; flex-direction:column; }
.feats li {border-bottom:1px solid rgba(0,0,0,.07); color:var(--mid); font-size:.85rem;font-weight:300; opacity:0; padding:18px 0 18px 54px; position:relative; transform:translateY(16px); transition:opacity .5s, transform .5s;}
ol.feats {counter-reset:li; }
ol.feats li:before {color:rgba(214,59,24,.18); content:"0"counter(li); counter-increment:li; font-family:'Bebas Neue',sans-serif; font-size:2rem; left:0; line-height:1; min-width:36px; position:absolute; top:20px; }
.feats li.in {opacity:1; transform:translateY(0); }
.feats li strong {color:var(--dark); display:block; font-size:.9rem; font-weight:600; margin-bottom:4px; }

/* ── GALLERY ── */
.gallery { background:var(--dark); padding:0; }
.gallery-head { padding:56px 80px 36px; }
.gallery-head .tag { color:rgba(255,255,255,.35); }
.gallery-head .tag::after { background:rgba(255,255,255,.2); }
.gallery-head h2 { color:#fff; }
.photo-grid {
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: 220px 220px;
  gap:3px;
}
.photo-grid img {
  width:100%; height:100%; object-fit:cover; display:block;
  filter:brightness(.85); transition:filter .3s, transform .4s;
}
.photo-grid img:hover { filter:brightness(1); transform:scale(1.02); }
.photo-grid .wide { grid-column:span 2; }

/* ── TELC ── */
.telc-sec { background:var(--red); }
.telc-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.telc-grid h2 { color:#fff; margin-bottom:20px; }
.telc-grid h2 strong {color:var(--gold);}
.telc-grid p { font-size:.97rem; color:rgba(255,255,255,.78); line-height:1.75; font-weight:300; margin-bottom:12px; }
.telc-grid p strong{color:rgba(255,255,255,.9);}
.telc-grid .tag {color:rgba(255,255,255,.5); font-size:.65rem;}
.telc-card {
  border:2px solid rgba(255,255,255,.25); padding:40px;
  position:relative; overflow:hidden;
}
.telc-card::before {
  content:'telc'; position:absolute; bottom:-20px; right:-10px;
  font-family:'Bebas Neue',sans-serif; font-size:7rem; color:rgba(255,255,255,.06);
  line-height:1; pointer-events:none; letter-spacing:.1em;
}
.telc-card h3 { font-family:'Cormorant Garamond',serif; font-size:2rem; color:var(--gold); font-weight:400; margin-bottom:14px; }
.telc-card p { font-size:.9rem; color:rgba(255,255,255,.65); font-weight:300; line-height:1.65; }
.level-chips { display:flex; gap:8px; flex-wrap:wrap; margin-top:20px; }
.chip { background:rgba(255,255,255,.15); color:#fff; padding:5px 16px; font-size:.75rem; font-weight:600; letter-spacing:.08em; }
.telc-note { font-size:.72rem; color:rgba(255,255,255,.35); margin-top:20px; padding-top:16px; border-top:1px solid rgba(255,255,255,.12); }

/* ── LOCATION ── */
.loc-sec { background:var(--cream); }
.loc-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; margin-top:52px; align-items:start; }
.loc-photos { display:grid; grid-template-columns:1fr 1fr; gap:6px; }

.loc-photos img {width:100%; height:185px; object-fit:cover; display:block; }
.loc-photos .wide { grid-column:span 2;}
.loc-photos .wide img{height:240px; }
.loc-text p { font-size:.97rem; color:var(--mid); line-height:1.75; font-weight:300; margin-bottom:12px; }
.loc-list { list-style:none; margin-top:24px; display:flex; flex-direction:column; gap:10px; }
.loc-list li { display:flex; gap:12px; font-size:.9rem; align-items:flex-start; }
.loc-list li::before { content:'→'; color:var(--red); font-weight:700; flex-shrink:0; margin-top:1px; }

/* ── WHY ── */
.why-sec { background:var(--forest); }
.why-sec .tag { color:var(--gold); }
.why-sec .tag::after { background:var(--gold); }
.why-sec h2 { color:#fff; margin-bottom:52px; }
.why-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:rgba(255,255,255,.04); }
.why-card {
  background:var(--forest); padding:36px 30px;
  border:1px solid rgba(255,255,255,.05);
  transition:background .2s;
}
.why-card:hover { background:rgba(255,255,255,.03); }
.why-card h3 { font-size:.95rem; font-weight:600; color:var(--gold); margin-bottom:10px; }
.why-card p { font-size:.86rem; color:rgba(255,255,255,.45); line-height:1.65; font-weight:300; }
.why-icon { font-size:1.4rem; display:block; margin-bottom:14px; }

/* ── CTA ── */
.cta-sec {
  background:var(--dark);
  display:grid; grid-template-columns:1fr auto;
  gap:60px; align-items:center;
  padding:80px;
}
.cta-sec h2 { color:#fff; margin-bottom:16px; }
.cta-sec p { font-size:.97rem; color:rgba(255,255,255,.55); font-weight:300; line-height:1.72; max-width:500px; }
.cta-btns { display:flex; flex-direction:column; gap:10px; min-width:220px; }
.cta-btn-main { background:var(--red); color:#fff; padding:14px 24px; text-align:center; font-size:.88rem; font-weight:600; letter-spacing:.04em; text-decoration:none; transition:opacity .2s; }
.cta-btn-main:hover { opacity:.88; }
.cta-btn-sec { border:1.5px solid rgba(255,255,255,.2); color:rgba(255,255,255,.7); padding:14px 24px; text-align:center; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; font-weight:600; text-decoration:none; transition:border-color .2s; }
.cta-btn-sec:hover { border-color:rgba(255,255,255,.5); }
.cta-note { font-size:.68rem; color:rgba(255,255,255,.2); text-align:center; letter-spacing:.06em; }

/* ── FOOTER ── */
footer {
  background:#111; padding:36px 80px;
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px;
}
.foot-brand { font-family:'Bebas Neue',sans-serif; font-size:1.3rem; color:#fff; letter-spacing:.08em; }
.foot-brand span { color:var(--red); }
.foot-links { display:flex; gap:24px; list-style:none; }
.foot-links a { font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.28); text-decoration:none; transition:color .2s; }
.foot-links a:hover { color:rgba(255,255,255,.65); }
.foot-copy { font-size:.68rem; color:rgba(255,255,255,.18); }

/* ── SCROLL ANIM ── */
.fade { opacity:0; transform:translateY(24px); transition:opacity .65s ease, transform .65s ease; }
.fade.in { opacity:1; transform:translateY(0); }

/* ── MOBILE ── */
@media (max-width: 768px) {
  .header { padding:0 20px; }
  .nav-links { display:none; }
  /* .nav-right .nav-lang { display:none; } */

  .hero { grid-template-columns:1fr; min-height:auto; }
  .hero-text { padding:48px 24px; }
  .hero-h1 { font-size:clamp(3rem,14vw,4.5rem); }
  .hero-photos { grid-template-columns:1fr 1fr; grid-template-rows:160px 160px; }

  .ticker-bar { display:none; }

  .sec, .sec-sm { padding:56px 24px; }
  .gallery-head { padding:40px 24px 24px; }

  .intro-grid { grid-template-columns:1fr; gap:36px; }
  .telc-grid { grid-template-columns:1fr; gap:36px; }
  .loc-grid { grid-template-columns:1fr; gap:36px; }
  .why-grid { grid-template-columns:1fr; }
  .cta-sec { grid-template-columns:1fr; gap:36px; padding:56px 24px; }
  footer { padding:32px 24px; flex-direction:column; align-items:flex-start; }

  .photo-grid {
    grid-template-columns:1fr 1fr;
    grid-template-rows:repeat(4, 160px);
  }
  .photo-grid img.wide { grid-column:span 2; }

  .loc-photos { grid-template-columns:1fr; }
  .loc-photos img { height:200px; }
  .loc-photos img.wide { height:220px; grid-column:span 1; }

  .hero-stats { gap:20px; }
  .stat-num { font-size:1.8rem; }
}