@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Manrope:wght@300;400;500;600;700;800&display=swap');

:root {
  --brand: #d24a0c;
  --brand-dark: #a83a08;
  --brand-light: #f05a1a;
  --brand-pale: #fff2ec;
  --brand-pale2: #fde8de;

  --bg: #f8f7f5;
  --bg2: #ffffff;
  --bg3: #f2f0ed;
  --card: #ffffff;

  --border: #e5e1db;
  --border2: rgba(210,74,12,0.18);

  --text: #1a1612;
  --text2: #6b6259;
  --text3: #a89f97;
  --white: #ffffff;

  --radius: 12px;
  --radius-lg: 20px;
  --shadow: 0 2px 16px rgba(26,22,18,0.07);
  --shadow-md: 0 8px 40px rgba(26,22,18,0.12);
  --shadow-brand: 0 8px 32px rgba(210,74,12,0.28);
  --font: 'Manrope', sans-serif;
  --font-display: 'Bebas Neue', sans-serif;
  --transition: all 0.3s cubic-bezier(0.4,0,0.2,1);
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:var(--font); background:var(--bg); color:var(--text); font-size:16px; line-height:1.6; overflow-x:hidden; }

::-webkit-scrollbar { width:5px; }
::-webkit-scrollbar-track { background:var(--bg3); }
::-webkit-scrollbar-thumb { background:var(--brand); border-radius:3px; }
::selection { background:var(--brand); color:#fff; }

h1,h2,h3,h4,h5,h6 { font-weight:700; line-height:1.2; color:var(--text); }
h1 { font-size:clamp(2.5rem,6vw,5rem); }
h2 { font-size:clamp(1.8rem,4vw,3rem); }
h3 { font-size:clamp(1.2rem,2.5vw,1.8rem); }
p { color:var(--text2); }
a { color:inherit; text-decoration:none; transition:var(--transition); }
img { max-width:100%; display:block; }

.container { max-width:1280px; margin:0 auto; padding:0 24px; }
.section { padding:100px 0; }
.section-sm { padding:60px 0; }

/* BUTTONS */
.btn { display:inline-flex; align-items:center; gap:8px; padding:14px 32px; border-radius:8px; font-family:var(--font); font-weight:600; font-size:15px; cursor:pointer; border:none; transition:var(--transition); text-decoration:none; white-space:nowrap; }
.btn-primary { background:var(--brand); color:#fff; box-shadow:0 4px 16px rgba(210,74,12,0.3); }
.btn-primary:hover { background:var(--brand-dark); transform:translateY(-2px); box-shadow:0 8px 28px rgba(210,74,12,0.4); }
.btn-outline { background:transparent; color:var(--brand); border:2px solid var(--brand); }
.btn-outline:hover { background:var(--brand); color:#fff; }
.btn-ghost { background:var(--bg3); color:var(--text2); border:1px solid var(--border); }
.btn-ghost:hover { background:var(--border); color:var(--text); }
.btn-sm { padding:9px 18px; font-size:13px; border-radius:7px; }
.btn-lg { padding:18px 44px; font-size:17px; }

/* BADGE */
.badge { display:inline-flex; align-items:center; gap:6px; padding:6px 14px; border-radius:50px; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:0.08em; background:var(--brand-pale); color:var(--brand); border:1px solid rgba(210,74,12,0.2); }

/* SECTION HEADER */
.section-header { margin-bottom:60px; }
.section-header .badge { margin-bottom:16px; }
.section-header h2 { margin-bottom:16px; }
.section-header p { max-width:600px; font-size:18px; color:var(--text2); }
.section-header.center { text-align:center; }
.section-header.center p { margin:0 auto; }

/* CARD */
.card { background:var(--card); border:1px solid var(--border); border-radius:var(--radius-lg); padding:32px; box-shadow:var(--shadow); transition:var(--transition); }
.card:hover { border-color:rgba(210,74,12,0.25); box-shadow:var(--shadow-md); transform:translateY(-3px); }

/* GRID */
.grid-2 { display:grid; grid-template-columns:repeat(2,1fr); gap:32px; }
.grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
.grid-4 { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }

/* HEADER */
.header { position:fixed; top:0; left:0; right:0; z-index:1000; padding:0 40px; display:flex; align-items:center; justify-content:space-between; height:72px; background:rgba(255,255,255,0.93); backdrop-filter:blur(20px); border-bottom:1px solid var(--border); box-shadow:0 1px 0 rgba(26,22,18,0.05); transition:var(--transition); }
.header.scrolled { height:60px; box-shadow:var(--shadow); }
.logo { display:flex; align-items:center; gap:12px; font-weight:800; font-size:20px; color:var(--text); }
.logo img { height:36px; }
.logo span { color:var(--brand); }
.nav { display:flex; align-items:center; gap:2px; }
.nav a { padding:8px 14px; border-radius:8px; font-size:14px; font-weight:500; color:var(--text2); transition:var(--transition); }
.nav a:hover { color:var(--text); background:var(--bg3); }
.nav a.active { color:var(--brand); background:var(--brand-pale); }
.header-actions { display:flex; align-items:center; gap:10px; }

.cart-btn { position:relative; display:flex; align-items:center; gap:8px; padding:8px 16px; border-radius:8px; background:var(--bg3); border:1px solid var(--border); color:var(--text2); font-family:var(--font); font-size:14px; font-weight:500; cursor:pointer; transition:var(--transition); }
.cart-btn:hover { background:var(--border); }
.cart-badge { position:absolute; top:-6px; right:-6px; width:20px; height:20px; border-radius:50%; background:var(--brand); color:#fff; font-size:11px; font-weight:700; display:flex; align-items:center; justify-content:center; }

.burger { display:none; flex-direction:column; gap:5px; padding:8px; background:none; border:none; cursor:pointer; }
.burger span { display:block; width:24px; height:2px; background:var(--text2); border-radius:2px; transition:var(--transition); }
.burger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); background:var(--brand); }
.burger.open span:nth-child(2) { opacity:0; }
.burger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); background:var(--brand); }

.mobile-nav { position:fixed; top:0; right:0; bottom:0; width:300px; z-index:1100; background:var(--white); padding:80px 28px 32px; display:flex; flex-direction:column; gap:6px; transform:translateX(100%); transition:transform 0.4s cubic-bezier(0.4,0,0.2,1); border-left:1px solid var(--border); box-shadow:-8px 0 40px rgba(26,22,18,0.12); }
.mobile-nav.open { transform:translateX(0); }
.mobile-nav-overlay { position:fixed; inset:0; z-index:1090; background:rgba(26,22,18,0.4); opacity:0; pointer-events:none; transition:opacity 0.3s; }
.mobile-nav-overlay.open { opacity:1; pointer-events:all; }
.mobile-nav a { padding:13px 16px; border-radius:10px; font-weight:600; font-size:15px; color:var(--text2); border:1px solid transparent; transition:var(--transition); }
.mobile-nav a:hover { color:var(--brand); background:var(--brand-pale); border-color:rgba(210,74,12,0.2); }
.mobile-nav-close { position:absolute; top:20px; right:20px; background:none; border:none; color:var(--text3); font-size:24px; cursor:pointer; }

/* HERO */
.hero { min-height:100vh; display:flex; align-items:center; position:relative; overflow:hidden; padding-top:72px; }
.hero-bg { position:absolute; inset:0; z-index:0; background: radial-gradient(ellipse 70% 60% at 80% 30%, rgba(210,74,12,0.07) 0%, transparent 60%), radial-gradient(ellipse 50% 50% at 10% 80%, rgba(210,74,12,0.04) 0%, transparent 60%), linear-gradient(160deg, #f8f7f5 0%, #fff 50%, #fef6f2 100%); }
.hero-grid-lines { position:absolute; inset:0; background-image:linear-gradient(rgba(210,74,12,0.04) 1px, transparent 1px),linear-gradient(90deg, rgba(210,74,12,0.04) 1px, transparent 1px); background-size:60px 60px; }
.hero-ring { position:absolute; right:-100px; top:50%; transform:translateY(-50%); width:700px; height:700px; border-radius:50%; border:1px solid rgba(210,74,12,0.07); pointer-events:none; }
.hero-ring::before { content:''; position:absolute; inset:80px; border-radius:50%; border:1px solid rgba(210,74,12,0.05); }
.hero-ring::after { content:''; position:absolute; inset:160px; border-radius:50%; border:1px solid rgba(210,74,12,0.09); background:radial-gradient(circle, rgba(210,74,12,0.04) 0%, transparent 70%); }

.hero-content { position:relative; z-index:1; max-width:750px; }
.hero-badge { margin-bottom:24px; }
.hero h1 { font-family:var(--font-display); font-weight:400; letter-spacing:0.02em; margin-bottom:24px; line-height:1; color:var(--text); }
.hero h1 span { color:var(--brand); }
.hero-desc { font-size:clamp(16px,2vw,19px); color:var(--text2); max-width:540px; margin-bottom:40px; line-height:1.7; }
.hero-actions { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:64px; }
.hero-stats { display:flex; gap:48px; flex-wrap:wrap; }
.stat-num { font-family:var(--font-display); font-size:clamp(2rem,4vw,3.2rem); font-weight:400; color:var(--text); line-height:1; }
.stat-num span { color:var(--brand); }
.stat-label { font-size:12px; color:var(--text3); margin-top:4px; text-transform:uppercase; letter-spacing:0.06em; font-weight:600; }

.hero-float { position:absolute; right:4%; top:50%; transform:translateY(-50%); width:390px; z-index:1; }
.hero-card-float { background:var(--white); border:1px solid var(--border); border-radius:var(--radius-lg); padding:28px; box-shadow:var(--shadow-md); animation:floatLight 6s ease-in-out infinite; }
@keyframes floatLight { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-14px)} }
.hero-icon-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:16px; }
.hero-icon-item { background:var(--bg3); border:1px solid var(--border); border-radius:10px; padding:14px; text-align:center; font-size:24px; transition:var(--transition); cursor:default; }
.hero-icon-item:hover { background:var(--brand-pale); border-color:rgba(210,74,12,0.3); transform:scale(1.04); }
.hero-icon-item span { display:block; font-size:10px; color:var(--text3); margin-top:6px; font-weight:700; text-transform:uppercase; letter-spacing:0.04em; }

/* SERVICES */
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.service-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius-lg); overflow:hidden; transition:var(--transition); cursor:pointer; box-shadow:var(--shadow); }
.service-card:hover { border-color:rgba(210,74,12,0.3); transform:translateY(-6px); box-shadow:var(--shadow-md); }
.service-card-img { aspect-ratio:16/9; overflow:hidden; position:relative; }
.service-card-img img { width:100%; height:100%; object-fit:cover; transition:transform 0.5s ease; }
.service-card:hover .service-card-img img { transform:scale(1.07); }
.service-card-img-placeholder { width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-size:64px; background:linear-gradient(135deg,var(--bg3),var(--bg)); }
.service-card-body { padding:28px; }
.service-card-body h3 { margin-bottom:10px; font-size:18px; }
.service-card-body p { font-size:14px; line-height:1.6; margin-bottom:20px; }
.service-card-link { color:var(--brand); font-weight:700; font-size:14px; display:flex; align-items:center; gap:6px; }
.service-card-link::after { content:'→'; transition:transform 0.3s; }
.service-card:hover .service-card-link::after { transform:translateX(4px); }

/* ABOUT */
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }
.about-img-wrap { position:relative; }
.about-img-badge { position:absolute; bottom:-24px; right:-24px; background:var(--brand); color:#fff; border-radius:var(--radius); padding:24px 32px; text-align:center; box-shadow:var(--shadow-brand); }
.about-img-badge .num { font-family:var(--font-display); font-size:3.5rem; line-height:1; }
.about-img-badge .lbl { font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:0.06em; opacity:0.9; }
.about-features { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:32px 0; }
.about-feature { display:flex; align-items:flex-start; gap:12px; padding:14px; border-radius:10px; background:var(--bg3); border:1px solid var(--border); transition:var(--transition); }
.about-feature:hover { background:var(--brand-pale); border-color:rgba(210,74,12,0.2); }
.about-feature-icon { font-size:22px; flex-shrink:0; }
.about-feature-text { font-size:14px; font-weight:600; color:var(--text); }

/* TIMELINE */
.timeline-years { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:40px; }
.year-btn { padding:8px 18px; border-radius:50px; background:var(--white); border:1px solid var(--border); color:var(--text2); font-family:var(--font); font-size:14px; font-weight:600; cursor:pointer; transition:var(--transition); box-shadow:var(--shadow); }
.year-btn.active, .year-btn:hover { background:var(--brand); color:#fff; border-color:var(--brand); box-shadow:0 4px 16px rgba(210,74,12,0.3); }
.timeline { position:relative; }
.timeline::before { content:''; position:absolute; left:20px; top:0; bottom:0; width:2px; background:linear-gradient(to bottom, var(--brand), transparent); }
.timeline-item { display:flex; gap:32px; padding:20px 0 20px 60px; position:relative; opacity:0; transform:translateX(-20px); animation:slideInLight 0.4s forwards; }
@keyframes slideInLight { to{opacity:1;transform:translateX(0)} }
.timeline-dot { position:absolute; left:12px; top:28px; width:18px; height:18px; border-radius:50%; background:var(--brand); border:3px solid var(--bg); box-shadow:0 0 0 3px rgba(210,74,12,0.2); }
.timeline-year { font-size:12px; font-weight:700; color:var(--brand); text-transform:uppercase; letter-spacing:0.08em; margin-bottom:4px; }
.timeline-title { font-size:15px; font-weight:600; color:var(--text); margin-bottom:4px; }
.timeline-location { font-size:13px; color:var(--text3); }
.map-container { border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--border); box-shadow:var(--shadow); }

/* TEAM */
.team-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.team-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius-lg); padding:32px; text-align:center; transition:var(--transition); box-shadow:var(--shadow); }
.team-card:hover { border-color:rgba(210,74,12,0.3); transform:translateY(-4px); box-shadow:var(--shadow-md); }
.team-avatar { width:100px; height:100px; border-radius:50%; margin:0 auto 20px; background:linear-gradient(135deg,var(--brand),var(--brand-dark)); display:flex; align-items:center; justify-content:center; font-size:36px; font-weight:700; color:#fff; border:4px solid var(--brand-pale); overflow:hidden; }
.team-avatar img { width:100%; height:100%; object-fit:cover; }
.team-name { font-size:18px; font-weight:700; margin-bottom:6px; }
.team-pos { font-size:14px; color:var(--text3); font-weight:500; }

/* REVIEWS */
.reviews-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.review-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius-lg); padding:32px; transition:var(--transition); box-shadow:var(--shadow); }
.review-card:hover { border-color:rgba(210,74,12,0.3); box-shadow:var(--shadow-md); }
.review-stars { color:var(--brand); font-size:18px; margin-bottom:16px; }
.review-text { font-size:15px; color:var(--text2); line-height:1.7; margin-bottom:20px; font-style:italic; }
.review-author { display:flex; align-items:center; gap:12px; }
.review-av { width:44px; height:44px; border-radius:50%; background:var(--brand); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:16px; flex-shrink:0; }
.review-name { font-weight:700; font-size:15px; }
.review-company { font-size:13px; color:var(--text3); }

/* FAQ */
.faq-list { max-width:800px; margin:0 auto; }
.faq-item { border:1px solid var(--border); border-radius:var(--radius); margin-bottom:10px; overflow:hidden; transition:var(--transition); background:var(--white); box-shadow:var(--shadow); }
.faq-item.open { border-color:rgba(210,74,12,0.3); }
.faq-q { padding:20px 24px; display:flex; align-items:center; justify-content:space-between; cursor:pointer; font-weight:600; font-size:16px; }
.faq-q::after { content:'+'; font-size:24px; color:var(--brand); transition:transform 0.3s; }
.faq-item.open .faq-q::after { transform:rotate(45deg); }
.faq-item.open .faq-q { color:var(--brand); }
.faq-a { padding:0 24px; max-height:0; overflow:hidden; transition:all 0.3s ease; }
.faq-a p { padding-bottom:20px; font-size:15px; color:var(--text2); }
.faq-item.open .faq-a { max-height:300px; }

/* GALLERY */
.gallery-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.gallery-item { aspect-ratio:1; border-radius:var(--radius); overflow:hidden; cursor:pointer; position:relative; border:1px solid var(--border); }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform 0.4s ease; }
.gallery-item:hover img { transform:scale(1.08); }
.gallery-overlay { position:absolute; inset:0; background:rgba(210,74,12,0.75); display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity 0.3s; font-size:32px; color:#fff; }
.gallery-item:hover .gallery-overlay { opacity:1; }

/* LIGHTBOX */
.lightbox { position:fixed; inset:0; z-index:2000; background:rgba(26,22,18,0.95); display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity 0.3s; }
.lightbox.open { opacity:1; pointer-events:all; }
.lightbox img { max-width:90vw; max-height:90vh; border-radius:var(--radius); box-shadow:var(--shadow-md); }
.lightbox-close { position:fixed; top:20px; right:20px; font-size:32px; color:#fff; background:none; border:none; cursor:pointer; z-index:2001; }

/* LICENSES */
.licenses-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.license-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:20px; text-align:center; transition:var(--transition); cursor:pointer; box-shadow:var(--shadow); }
.license-card:hover { border-color:rgba(210,74,12,0.3); transform:translateY(-4px); box-shadow:var(--shadow-md); }
.license-card img { width:100%; aspect-ratio:3/4; object-fit:cover; border-radius:8px; margin-bottom:12px; }
.license-card-placeholder { width:100%; aspect-ratio:3/4; border-radius:8px; margin-bottom:12px; background:var(--bg3); display:flex; align-items:center; justify-content:center; font-size:48px; }
.license-title { font-size:13px; font-weight:600; }

/* SHOP */
.shop-layout { display:grid; grid-template-columns:260px 1fr; gap:40px; }
.shop-filter-title { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:0.1em; color:var(--text3); margin-bottom:10px; }
.filter-cats { display:flex; flex-direction:column; gap:3px; }
.filter-cat { padding:10px 14px; border-radius:8px; cursor:pointer; font-size:14px; font-weight:500; color:var(--text2); transition:var(--transition); border:1px solid transparent; }
.filter-cat:hover { color:var(--brand); background:var(--brand-pale); }
.filter-cat.active { color:var(--brand); background:var(--brand-pale); border-color:rgba(210,74,12,0.25); font-weight:700; }

.products-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.product-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius-lg); overflow:hidden; transition:var(--transition); box-shadow:var(--shadow); position:relative; }
.product-card:hover { border-color:rgba(210,74,12,0.3); transform:translateY(-4px); box-shadow:var(--shadow-md); }
.product-img { aspect-ratio:4/3; overflow:hidden; }
.product-img img { width:100%; height:100%; object-fit:cover; transition:transform 0.4s; }
.product-card:hover .product-img img { transform:scale(1.06); }
.product-img-ph { width:100%; height:100%; background:var(--bg3); display:flex; align-items:center; justify-content:center; font-size:56px; }
.product-body { padding:20px; }
.product-cat { font-size:12px; font-weight:700; color:var(--brand); text-transform:uppercase; letter-spacing:0.06em; margin-bottom:8px; }
.product-title { font-size:16px; font-weight:700; margin-bottom:8px; }
.product-desc { font-size:14px; color:var(--text2); margin-bottom:16px; line-height:1.5; }
.product-footer { display:flex; align-items:center; justify-content:space-between; }
.product-price { font-size:20px; font-weight:800; }
.product-price .old { font-size:13px; font-weight:400; color:var(--text3); text-decoration:line-through; display:block; }
.product-badge-sale { position:absolute; top:12px; right:12px; background:var(--brand); color:#fff; padding:4px 10px; border-radius:50px; font-size:11px; font-weight:700; }

/* CART */
.cart-modal { position:fixed; inset:0; z-index:1500; pointer-events:none; }
.cart-modal.open { pointer-events:all; }
.cart-bg { position:absolute; inset:0; background:rgba(26,22,18,0.45); opacity:0; transition:opacity 0.3s; }
.cart-modal.open .cart-bg { opacity:1; }
.cart-panel { position:absolute; right:0; top:0; bottom:0; width:420px; background:var(--white); border-left:1px solid var(--border); padding:32px; overflow-y:auto; transform:translateX(100%); transition:transform 0.4s cubic-bezier(0.4,0,0.2,1); box-shadow:-8px 0 40px rgba(26,22,18,0.1); }
.cart-modal.open .cart-panel { transform:translateX(0); }
.cart-item { display:flex; gap:16px; align-items:flex-start; padding:16px 0; border-bottom:1px solid var(--border); }
.cart-item-title { font-size:15px; font-weight:600; margin-bottom:4px; }
.cart-item-price { font-size:14px; color:var(--brand); font-weight:700; }
.cart-qty { display:flex; align-items:center; gap:10px; margin-top:8px; }
.cart-qty button { width:28px; height:28px; border-radius:6px; background:var(--bg3); border:1px solid var(--border); color:var(--text); cursor:pointer; font-size:16px; display:flex; align-items:center; justify-content:center; transition:var(--transition); }
.cart-qty button:hover { background:var(--brand); color:#fff; border-color:var(--brand); }
.cart-total { padding:20px 0; border-top:1px solid var(--border); }
.cart-total-label { font-size:16px; color:var(--text2); }
.cart-total-price { font-size:24px; font-weight:800; }

/* NEWS */
.news-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.news-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius-lg); overflow:hidden; transition:var(--transition); box-shadow:var(--shadow); }
.news-card:hover { border-color:rgba(210,74,12,0.3); transform:translateY(-4px); box-shadow:var(--shadow-md); }
.news-img { aspect-ratio:16/9; overflow:hidden; }
.news-img img { width:100%; height:100%; object-fit:cover; transition:transform 0.4s; }
.news-card:hover .news-img img { transform:scale(1.06); }
.news-img-ph { width:100%; height:100%; background:var(--bg3); display:flex; align-items:center; justify-content:center; font-size:48px; }
.news-body { padding:24px; }
.news-date { font-size:12px; color:var(--text3); margin-bottom:10px; font-weight:700; text-transform:uppercase; letter-spacing:0.06em; }
.news-title { font-size:18px; font-weight:700; margin-bottom:10px; line-height:1.3; }
.news-preview { font-size:14px; color:var(--text2); line-height:1.6; margin-bottom:16px; }
.news-link { font-size:14px; font-weight:700; color:var(--brand); }

/* CONTACTS */
.contacts-grid { display:grid; grid-template-columns:1fr 1fr; gap:60px; }
.contact-icon { width:52px; height:52px; border-radius:12px; flex-shrink:0; background:var(--brand-pale); border:1px solid rgba(210,74,12,0.2); display:flex; align-items:center; justify-content:center; font-size:22px; }
.contact-item { display:flex; gap:20px; margin-bottom:32px; align-items:flex-start; }
.contact-label { font-size:12px; color:var(--text3); font-weight:700; text-transform:uppercase; letter-spacing:0.06em; margin-bottom:4px; }
.contact-val { font-size:17px; font-weight:600; }
.contact-val a:hover { color:var(--brand); }

/* FORM */
.form-group { margin-bottom:20px; }
.form-label { display:block; font-size:12px; font-weight:700; color:var(--text3); margin-bottom:8px; text-transform:uppercase; letter-spacing:0.06em; }
.form-control { width:100%; padding:13px 16px; border-radius:10px; background:var(--white); border:1px solid var(--border); color:var(--text); font-family:var(--font); font-size:15px; transition:var(--transition); outline:none; box-shadow:0 1px 4px rgba(26,22,18,0.05); }
.form-control:focus { border-color:var(--brand); box-shadow:0 0 0 3px rgba(210,74,12,0.1); }
.form-control::placeholder { color:var(--text3); }
textarea.form-control { resize:vertical; min-height:140px; }

/* FOOTER */
.footer { background:var(--text); color:#fff; padding:80px 0 0; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:60px; padding-bottom:60px; }
.footer-logo { display:flex; align-items:center; gap:12px; font-weight:800; font-size:20px; margin-bottom:16px; color:#fff; }
.footer-logo img { height:36px; filter:brightness(0) invert(1); }
.footer-desc { font-size:14px; color:rgba(255,255,255,0.5); line-height:1.7; max-width:300px; margin-bottom:24px; }
.footer-socials { display:flex; gap:10px; }
.social-btn { width:40px; height:40px; border-radius:10px; background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.1); display:flex; align-items:center; justify-content:center; font-size:18px; transition:var(--transition); }
.social-btn:hover { background:var(--brand); border-color:var(--brand); transform:translateY(-2px); }
.footer-col h4 { font-size:12px; font-weight:700; color:rgba(255,255,255,0.45); text-transform:uppercase; letter-spacing:0.1em; margin-bottom:20px; }
.footer-col a { display:block; font-size:14px; color:rgba(255,255,255,0.65); margin-bottom:10px; transition:var(--transition); }
.footer-col a:hover { color:#fff; padding-left:4px; }
.footer-col p { font-size:14px; color:rgba(255,255,255,0.5); margin-bottom:8px; }
.footer-bottom { border-top:1px solid rgba(255,255,255,0.08); padding:24px 0; display:flex; align-items:center; justify-content:space-between; font-size:13px; color:rgba(255,255,255,0.3); }

/* PAGE HERO */
.page-hero { padding:160px 0 80px; background:linear-gradient(160deg, #fff 0%, var(--bg) 60%, #fef6f2 100%); border-bottom:1px solid var(--border); position:relative; overflow:hidden; }
.page-hero::before { content:''; position:absolute; right:-100px; top:-100px; width:500px; height:500px; border-radius:50%; border:1px solid rgba(210,74,12,0.07); }
.page-hero::after { content:''; position:absolute; right:40px; top:40px; width:300px; height:300px; border-radius:50%; background:radial-gradient(circle, rgba(210,74,12,0.05) 0%, transparent 70%); }
.page-hero h1 { font-family:var(--font-display); font-weight:400; margin-bottom:16px; }
.page-hero p { font-size:18px; color:var(--text2); max-width:600px; }
.breadcrumb { display:flex; gap:8px; align-items:center; margin-bottom:20px; }
.breadcrumb a, .breadcrumb span { font-size:13px; color:var(--text3); font-weight:500; }
.breadcrumb a:hover { color:var(--brand); }
.breadcrumb .sep { color:var(--border); }

/* CTA */
.cta-section { background:linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%); border-radius:var(--radius-lg); padding:80px; text-align:center; position:relative; overflow:hidden; box-shadow:var(--shadow-brand); }
.cta-section::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 70% 60% at 50% 0%, rgba(255,255,255,0.12) 0%, transparent 60%); }
.cta-section h2, .cta-section p { color:#fff; position:relative; }
.cta-section h2 { margin-bottom:16px; }
.cta-section p { opacity:0.85; font-size:18px; max-width:500px; margin:0 auto 32px; }
.cta-section .btn { position:relative; }
.cta-section .btn-primary { background:#fff; color:var(--brand); }
.cta-section .btn-primary:hover { background:rgba(255,255,255,0.92); }
.cta-section .btn-outline { border-color:rgba(255,255,255,0.6); color:#fff; }
.cta-section .btn-outline:hover { background:rgba(255,255,255,0.15); border-color:#fff; }

/* ALERTS */
.alert { padding:14px 20px; border-radius:10px; font-size:14px; font-weight:600; margin-bottom:20px; display:flex; align-items:center; gap:10px; }
.alert-success { background:#f0fdf4; border:1px solid #bbf7d0; color:#16a34a; }
.alert-error { background:#fef2f2; border:1px solid #fecaca; color:#dc2626; }
.alert-info { background:#eff6ff; border:1px solid #bfdbfe; color:#2563eb; }

/* AUTH */
.auth-page { min-height:100vh; display:flex; align-items:center; justify-content:center; background:linear-gradient(160deg, var(--bg) 0%, #fff 50%, #fef6f2 100%); padding:40px 20px; }
.auth-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius-lg); padding:48px; width:100%; max-width:480px; box-shadow:var(--shadow-md); }
.auth-logo { text-align:center; margin-bottom:32px; }
.auth-title { font-size:28px; font-weight:700; text-align:center; margin-bottom:8px; }
.auth-sub { text-align:center; color:var(--text2); margin-bottom:32px; }

/* SERVICE SINGLE */
.service-single-img { width:100%; aspect-ratio:21/9; object-fit:cover; border-radius:var(--radius-lg); margin-bottom:48px; border:1px solid var(--border); }
.service-content h2 { margin:32px 0 16px; }
.service-content p { margin-bottom:16px; font-size:17px; color:var(--text2); line-height:1.8; }
.service-content ul { margin:16px 0 16px 24px; }
.service-content li { margin-bottom:8px; color:var(--text2); }

/* ADMIN */
.admin-layout { display:flex; min-height:100vh; }
.admin-sidebar { width:260px; flex-shrink:0; background:var(--white); border-right:1px solid var(--border); display:flex; flex-direction:column; position:fixed; top:0; left:0; bottom:0; padding:24px 0; z-index:100; box-shadow:2px 0 20px rgba(26,22,18,0.06); overflow-y:auto; }
.admin-logo { padding:0 24px; margin-bottom:32px; font-weight:800; font-size:20px; color:var(--text); display:flex; align-items:center; gap:10px; }
.admin-logo span { color:var(--brand); }
.admin-nav { flex:1; }
.admin-nav-group { padding:8px 24px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:0.1em; color:var(--text3); margin-top:16px; }
.admin-nav a { display:flex; align-items:center; gap:10px; padding:10px 24px; font-size:14px; font-weight:500; color:var(--text2); transition:var(--transition); border-left:3px solid transparent; }
.admin-nav a:hover { color:var(--text); background:var(--bg3); }
.admin-nav a.active { color:var(--brand); background:var(--brand-pale); border-left-color:var(--brand); }
.admin-main { margin-left:260px; flex:1; padding:32px; background:var(--bg); min-height:100vh; }
.admin-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:32px; }
.admin-header h1 { font-size:28px; }
.admin-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-bottom:32px; }
.admin-stat { background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:24px; transition:var(--transition); box-shadow:var(--shadow); }
.admin-stat:hover { border-color:rgba(210,74,12,0.25); box-shadow:var(--shadow-md); }
.admin-stat-num { font-size:36px; font-weight:800; }
.admin-stat-label { font-size:12px; color:var(--text3); font-weight:700; text-transform:uppercase; letter-spacing:0.06em; margin-top:4px; }
.admin-stat-icon { font-size:32px; margin-bottom:12px; }
.admin-table { width:100%; border-collapse:collapse; }
.admin-table th { padding:12px 16px; text-align:left; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:0.06em; color:var(--text3); border-bottom:1px solid var(--border); background:var(--bg3); }
.admin-table td { padding:14px 16px; font-size:14px; border-bottom:1px solid var(--border); }
.admin-table tr:hover td { background:var(--bg3); }
.status-badge { padding:4px 10px; border-radius:50px; font-size:12px; font-weight:700; }
.status-1 { background:#f0fdf4; color:#16a34a; border:1px solid #bbf7d0; }
.status-0 { background:#fef2f2; color:#dc2626; border:1px solid #fecaca; }
.admin-form-page { max-width:800px; }
.form-section-title { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:0.1em; color:var(--text3); margin:32px 0 16px; padding-bottom:8px; border-bottom:2px solid var(--border); }

/* Admin components */
.editor-toolbar { display:flex; gap:4px; flex-wrap:wrap; padding:10px; background:var(--bg3); border:1px solid var(--border); border-bottom:none; border-radius:10px 10px 0 0; }
.editor-btn { padding:6px 12px; border-radius:6px; background:var(--white); border:1px solid var(--border); color:var(--text); font-size:13px; cursor:pointer; transition:var(--transition); }
.editor-btn:hover { background:var(--brand); border-color:var(--brand); color:#fff; }
.editor-area { min-height:300px; padding:16px; background:var(--white); border:1px solid var(--border); border-radius:0 0 10px 10px; color:var(--text); font-family:var(--font); font-size:15px; line-height:1.7; outline:none; }
.img-preview { width:100%; max-width:300px; border-radius:var(--radius); border:1px solid var(--border); margin-top:12px; }
.toggle { position:relative; display:inline-block; width:48px; height:26px; }
.toggle input { opacity:0; width:0; height:0; }
.toggle-slider { position:absolute; inset:0; border-radius:26px; background:var(--border); cursor:pointer; transition:0.3s; }
.toggle-slider::before { content:''; position:absolute; width:20px; height:20px; border-radius:50%; left:3px; top:3px; background:#fff; transition:0.3s; box-shadow:0 1px 4px rgba(0,0,0,0.2); }
.toggle input:checked + .toggle-slider { background:var(--brand); }
.toggle input:checked + .toggle-slider::before { transform:translateX(22px); }
.file-drop { border:2px dashed var(--border); border-radius:var(--radius); padding:40px; text-align:center; cursor:pointer; transition:var(--transition); background:var(--bg3); }
.file-drop:hover,.file-drop.drag-over { border-color:var(--brand); background:var(--brand-pale); }
.file-drop input[type=file] { display:none; }
.tbl-actions { display:flex; gap:6px; flex-wrap:wrap; }
.tbl-btn { padding:6px 12px; border-radius:6px; font-size:12px; font-weight:600; cursor:pointer; border:1px solid; transition:var(--transition); font-family:var(--font); }
.tbl-btn-edit { background:#eff6ff; color:#2563eb; border-color:#bfdbfe; }
.tbl-btn-edit:hover { background:#2563eb; color:#fff; }
.tbl-btn-del { background:#fef2f2; color:#dc2626; border-color:#fecaca; }
.tbl-btn-del:hover { background:#dc2626; color:#fff; }
.tbl-btn-view { background:#f0fdf4; color:#16a34a; border-color:#bbf7d0; }
.tbl-btn-view:hover { background:#16a34a; color:#fff; }
.admin-table-wrap { background:var(--white); border:1px solid var(--border); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow); }
.confirm-overlay { position:fixed; inset:0; background:rgba(26,22,18,0.55); z-index:9000; display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity 0.3s; }
.confirm-overlay.open { opacity:1; pointer-events:all; }
.confirm-box { background:var(--white); border:1px solid var(--border); border-radius:var(--radius-lg); padding:40px; max-width:400px; width:90%; text-align:center; box-shadow:var(--shadow-md); }
.confirm-box h3 { margin-bottom:12px; }
.confirm-box p { color:var(--text2); margin-bottom:24px; }
.confirm-btns { display:flex; gap:12px; justify-content:center; }

/* ANIMATIONS */
.reveal { opacity:0; transform:translateY(24px); transition:opacity 0.6s ease, transform 0.6s ease; }
.reveal.visible { opacity:1; transform:none; }
.stagger > * { opacity:0; transform:translateY(16px); transition:opacity 0.5s ease, transform 0.5s ease; }
.stagger.visible > *:nth-child(1){opacity:1;transform:none;transition-delay:0s}
.stagger.visible > *:nth-child(2){opacity:1;transform:none;transition-delay:0.08s}
.stagger.visible > *:nth-child(3){opacity:1;transform:none;transition-delay:0.16s}
.stagger.visible > *:nth-child(4){opacity:1;transform:none;transition-delay:0.24s}
.stagger.visible > *:nth-child(5){opacity:1;transform:none;transition-delay:0.32s}
.stagger.visible > *:nth-child(6){opacity:1;transform:none;transition-delay:0.40s}
.counter { display:inline-block; }

/* UTILITY */
.text-brand { color:var(--brand); }
.text-center { text-align:center; }
.hidden { display:none !important; }

/* RESPONSIVE */
@media (max-width:1200px) {
  .footer-grid { grid-template-columns:1fr 1fr; }
  .hero-float { display:none; }
  .hero-ring { display:none; }
}
@media (max-width:1024px) {
  .services-grid,.reviews-grid,.news-grid { grid-template-columns:repeat(2,1fr); }
  .team-grid { grid-template-columns:repeat(2,1fr); }
  .gallery-grid { grid-template-columns:repeat(3,1fr); }
  .licenses-grid { grid-template-columns:repeat(3,1fr); }
  .about-grid,.contacts-grid { grid-template-columns:1fr; gap:40px; }
  .shop-layout { grid-template-columns:1fr; }
  .products-grid { grid-template-columns:repeat(2,1fr); }
  .header { padding:0 20px; }
  .nav { display:none; }
  .burger { display:flex; }
  .admin-stats { grid-template-columns:repeat(2,1fr); }
  .grid-3 { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:768px) {
  .section { padding:60px 0; }
  .grid-2,.grid-3 { grid-template-columns:1fr; }
  .grid-4 { grid-template-columns:repeat(2,1fr); }
  .gallery-grid { grid-template-columns:repeat(2,1fr); }
  .licenses-grid { grid-template-columns:repeat(2,1fr); }
  .reviews-grid,.news-grid,.team-grid,.services-grid { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr; gap:32px; }
  .cta-section { padding:48px 24px; }
  .hero-stats { gap:28px; }
  .admin-layout { flex-direction:column; }
  .admin-sidebar { position:static; width:100%; }
  .admin-main { margin-left:0; padding:20px; }
  .products-grid { grid-template-columns:1fr; }
  .cart-panel { width:100%; }
}
@media (max-width:480px) {
  .container { padding:0 16px; }
  .btn-lg { padding:14px 28px; }
  .hero-actions { flex-direction:column; }
  .about-features { grid-template-columns:1fr; }
}
