*{margin:0;padding:0;box-sizing:border-box} :root{ --ink:#07060A; --gold:#B08A52; --gold-hi:#D4A96A; --gold-lo:#6B5028; --olive:#4A4C2E; --olive-hi:#7A7D56; --stone:#EDE6D8; --stone2:#C8C0B2; --stone3:#8A8070; --surface:#0E0C10; --mid:#161318; --charcoal:#1A1720; } html{scroll-behavior:smooth;overflow-x:hidden} body{background:var(--ink);color:var(--stone);font-family:'EB Garamond',serif;overflow-x:hidden;-webkit-font-smoothing:antialiased;font-size:16px} ::selection{background:rgba(176,138,82,.22);color:var(--stone)} ::-webkit-scrollbar{width:2px} ::-webkit-scrollbar-track{background:var(--ink)} ::-webkit-scrollbar-thumb{background:var(--gold-lo)} /* ━━━━ LOADER ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */ #loader{ position:fixed;inset:0;z-index:9999;background:var(--ink); display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0; transition:opacity 1.2s ease,visibility 1.2s ease; } #loader.out{opacity:0;visibility:hidden;pointer-events:none} .ld-emblem{width:100px;height:100px;margin-bottom:32px;animation:lde 4s ease infinite} @keyframes lde{0%,100%{opacity:.5;transform:scale(.97) rotate(-1deg)}50%{opacity:1;transform:scale(1.03) rotate(0deg)}} .ld-title{ font-family:'Cinzel',serif;font-size:clamp(22px,4vw,36px); letter-spacing:.6em;color:var(--gold);line-height:1; animation:rise 1s ease both;text-transform:uppercase; } .ld-bar{ width:0;height:1px; background:linear-gradient(90deg,transparent,var(--gold),transparent); margin:22px 0 18px;animation:lbar 2s cubic-bezier(.4,0,.2,1) .5s forwards; } @keyframes lbar{to{width:180px}} .ld-sub{ font-size:9px;letter-spacing:.6em;text-transform:uppercase;color:var(--stone3); opacity:0;animation:rise .8s ease 1.3s forwards; } @keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}} .ld-punic{ position:absolute;bottom:40px; font-family:'Cinzel Decorative',serif;font-size:11px; letter-spacing:.4em;color:rgba(176,138,82,.2); animation:rise .8s ease 1.8s both; } /* ━━━━ SHARED ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */ .cinzel{font-family:'Cinzel',serif} .cind{font-family:'Cinzel Decorative',serif} .garamond{font-family:'EB Garamond',serif} .container{max-width:1260px;margin:0 auto;padding:0 64px} @media(max-width:700px){.container{padding:0 20px}} .eyebrow{ display:flex;align-items:center;gap:18px; font-family:'Cinzel',serif;font-size:9px;letter-spacing:.55em; text-transform:uppercase;color:var(--gold);margin-bottom:28px; } .eyebrow-line{flex:1;height:1px;background:linear-gradient(90deg,transparent,rgba(176,138,82,.35),transparent)} .eyebrow-diamond{width:5px;height:5px;background:var(--gold);transform:rotate(45deg);flex-shrink:0} .sec-head{ font-family:'Cinzel',serif; font-size:clamp(36px,4.8vw,72px); line-height:.96;letter-spacing:.04em;color:var(--stone); margin-bottom:32px; } .sec-sub{ font-family:'EB Garamond',serif;font-style:italic; font-size:clamp(16px,1.8vw,21px);line-height:1.85;color:var(--stone2); } section{padding:140px 0} /* Reveal */ .rv{opacity:0;transform:translateY(28px);transition:opacity 1s ease,transform 1s ease} .rv.on{opacity:1;transform:none} .d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s} .d4{transition-delay:.4s}.d5{transition-delay:.5s}.d6{transition-delay:.6s} /* Punic pattern strip */ .punic-strip{ width:100%;height:28px;overflow:hidden;opacity:.2; background:repeating-linear-gradient( 90deg, transparent 0px, transparent 6px, rgba(176,138,82,.6) 6px, rgba(176,138,82,.6) 7px, transparent 7px, transparent 14px, rgba(176,138,82,.3) 14px, rgba(176,138,82,.3) 15px, transparent 15px, transparent 22px, rgba(176,138,82,.6) 22px, rgba(176,138,82,.6) 24px, transparent 24px, transparent 32px ); } /* Buttons */ .btn-primary{ display:inline-flex;align-items:center;gap:14px; padding:17px 44px;background:var(--gold);color:var(--ink); font-family:'Cinzel',serif;font-size:9px;letter-spacing:.4em;text-transform:uppercase; text-decoration:none;border:none;cursor:pointer; position:relative;overflow:hidden;transition:transform .3s,box-shadow .4s; } .btn-primary::before{ content:'';position:absolute;inset:0; background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.25) 50%,transparent 65%); transform:translateX(-120%);transition:transform .7s; } .btn-primary:hover::before{transform:translateX(120%)} .btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 40px rgba(176,138,82,.3)} .btn-ghost{ display:inline-flex;align-items:center;gap:14px; padding:16px 44px;border:1px solid rgba(176,138,82,.4);color:var(--gold); font-family:'Cinzel',serif;font-size:9px;letter-spacing:.4em;text-transform:uppercase; text-decoration:none;background:none;cursor:pointer; transition:border-color .3s,background .3s,transform .3s; } .btn-ghost:hover{border-color:var(--gold);background:rgba(176,138,82,.06);transform:translateY(-2px)} .btn-arrow::after{content:'→';font-size:14px;transition:transform .3s} .btn-arrow:hover::after{transform:translateX(4px)} /* ━━━━ NAV ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */ nav{ position:fixed;top:0;left:0;right:0;z-index:1000; height:80px;padding:0 52px; display:flex;align-items:center;justify-content:space-between; transition:all .6s ease;border-bottom:1px solid transparent; } nav.solid{ background:rgba(7,6,10,.96);backdrop-filter:blur(24px); border-bottom-color:rgba(176,138,82,.1); } .brand{text-decoration:none;display:flex;flex-direction:column;gap:4px} .brand-name{font-family:'Cinzel',serif;font-size:15px;letter-spacing:.38em;color:var(--gold);line-height:1} .brand-sub{font-size:7px;letter-spacing:.55em;text-transform:uppercase;color:var(--stone3)} .nav-links{display:flex;align-items:center;gap:44px} .nav-links a{ font-family:'Cinzel',serif;font-size:8px;letter-spacing:.35em;text-transform:uppercase; color:var(--stone3);text-decoration:none;transition:color .3s; position:relative;padding-bottom:3px; } .nav-links a::after{ content:'';position:absolute;bottom:0;left:0;right:0;height:1px; background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .4s; } .nav-links a:hover{color:var(--gold)} .nav-links a:hover::after{transform:scaleX(1)} .nav-cta{ padding:10px 28px;border:1px solid var(--gold); font-family:'Cinzel',serif;font-size:8px;letter-spacing:.35em;text-transform:uppercase; color:var(--gold);text-decoration:none; position:relative;overflow:hidden;transition:color .3s; } .nav-cta::before{ content:'';position:absolute;inset:0;background:var(--gold); transform:scaleX(0);transform-origin:left;transition:transform .35s;z-index:-1; } .nav-cta:hover::before{transform:scaleX(1)} .nav-cta:hover{color:var(--ink)} .hamb{display:none;flex-direction:column;gap:6px;cursor:pointer;padding:6px;background:none;border:none} .hamb span{display:block;width:28px;height:1px;background:var(--gold);transition:all .3s} @media(max-width:960px){ .nav-links{display:none}.hamb{display:flex} nav{padding:0 24px} } /* Mobile overlay */ .mob{ position:fixed;inset:0;z-index:998;background:rgba(7,6,10,.98);backdrop-filter:blur(24px); flex-direction:column;align-items:center;justify-content:center;gap:52px;display:none; } .mob.open{display:flex} .mob a{ font-family:'Cinzel',serif;font-size:30px;letter-spacing:.15em; color:var(--stone);text-decoration:none;transition:color .3s; } .mob a:hover{color:var(--gold)} .mob-x{position:absolute;top:30px;right:28px;background:none;border:none; color:var(--stone3);font-size:30px;cursor:pointer;font-family:'Cinzel',serif} /* ━━━━ HERO ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */ #home{ min-height:100vh;position:relative;overflow:hidden; display:flex;align-items:center;padding:0; } .hero-bg{position:absolute;inset:0} .hero-bg img{ width:100%;height:100%;object-fit:cover;object-position:center 30%; filter:brightness(.45) contrast(1.15) saturate(.7); animation:heroZoom 20s ease-in-out infinite alternate; } @keyframes heroZoom{from{transform:scale(1.06)}to{transform:scale(1.0)}} .hero-overlay{ position:absolute;inset:0; background: linear-gradient(to right, rgba(7,6,10,.94) 0%, rgba(7,6,10,.7) 45%, rgba(7,6,10,.2) 75%, transparent 100%), linear-gradient(to top, rgba(7,6,10,.7) 0%, transparent 50%); } /* Animated gold rays */ .hero-rays{position:absolute;inset:0;pointer-events:none;overflow:hidden;opacity:.05} .hero-rays::before{ content:'';position:absolute; top:50%;left:0; width:200%;height:1px;background:var(--gold); transform:rotate(-15deg) translateY(-50%); box-shadow:0 80px 0 rgba(176,138,82,.3),0 -80px 0 rgba(176,138,82,.3), 0 160px 0 rgba(176,138,82,.15),0 -160px 0 rgba(176,138,82,.15); } .hero-content{ position:relative;z-index:3; width:100%;padding:120px 64px 80px; max-width:800px; } @media(max-width:700px){.hero-content{padding:100px 24px 60px}} .hero-kicker{ display:inline-flex;align-items:center;gap:14px; font-family:'Cinzel',serif;font-size:8px;letter-spacing:.6em; text-transform:uppercase;color:var(--gold);margin-bottom:36px; opacity:0;animation:rise 1s ease .7s forwards; } .hero-kicker-dot{width:4px;height:4px;background:var(--gold);border-radius:50%} .hero-h1{ font-family:'Cinzel',serif; font-size:clamp(52px,8vw,110px); line-height:.92;letter-spacing:.04em; color:var(--stone);margin-bottom:0; opacity:0;animation:rise 1.2s ease .9s forwards; } .hero-h1 .gold{color:var(--gold);display:block} .hero-h1 .italic-line{ font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:300; font-size:clamp(44px,6.5vw,90px);display:block; color:var(--stone2);letter-spacing:.02em; } .hero-divider{ width:80px;height:1px; background:linear-gradient(90deg,var(--gold),transparent); margin:36px 0;opacity:0;animation:rise 1s ease 1.1s forwards; } .hero-sub{ font-family:'EB Garamond',serif;font-style:italic; font-size:clamp(16px,1.8vw,20px);line-height:1.9;color:var(--stone2); max-width:480px;margin-bottom:52px; opacity:0;animation:rise 1s ease 1.2s forwards; } .hero-btns{ display:flex;gap:20px;flex-wrap:wrap; opacity:0;animation:rise 1s ease 1.4s forwards; } /* Scroll cue */ .scroll-cue{ position:absolute;bottom:40px;left:64px;z-index:10; display:flex;flex-direction:column;align-items:center;gap:10px; opacity:0;animation:rise .8s ease 2s forwards; } .scroll-cue span{ font-family:'Cinzel',serif;font-size:7px;letter-spacing:.5em; text-transform:uppercase;color:var(--stone3);writing-mode:vertical-lr; } .scroll-line{ width:1px;height:60px; background:linear-gradient(to bottom,var(--gold),transparent); animation:scroll-pulse 2.5s ease infinite; } @keyframes scroll-pulse{0%,100%{opacity:.3;transform:scaleY(.7)}60%{opacity:1;transform:scaleY(1)}} @media(max-width:700px){.scroll-cue{left:20px}} /* HERO emblem floating */ .hero-emblem{ position:absolute;right:8%;top:50%;transform:translateY(-50%);z-index:4; width:clamp(160px,18vw,280px); opacity:0;animation:rise 1.4s ease 1.6s forwards; filter:drop-shadow(0 0 40px rgba(176,138,82,.15)); } @media(max-width:960px){.hero-emblem{display:none}} /* ━━━━ PUNIC TRANSITION BAND ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */ .band{ padding:36px 0; background:linear-gradient(to right,var(--ink),var(--surface),var(--ink)); border-top:1px solid rgba(176,138,82,.08); border-bottom:1px solid rgba(176,138,82,.08); overflow:hidden;position:relative; } .band-inner{ display:flex;gap:80px;white-space:nowrap; animation:marquee 24s linear infinite; } .band-inner span{ font-family:'Cinzel',serif;font-size:9px;letter-spacing:.5em; text-transform:uppercase;color:rgba(176,138,82,.25);flex-shrink:0; } .band-inner .sep{color:rgba(176,138,82,.5);font-size:12px} @keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}} /* ━━━━ HERITAGE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */ #heritage{background:var(--surface);padding:0;overflow:hidden} .heritage-grid{display:grid;grid-template-columns:1fr 1fr;min-height:90vh} .heritage-visual{position:relative;overflow:hidden} .heritage-visual img{ width:100%;height:100%;object-fit:cover;object-position:center; filter:brightness(.65) contrast(1.15) saturate(.55); transition:transform 14s ease; } .heritage-visual:hover img{transform:scale(1.05)} .heritage-veil{ position:absolute;inset:0; background:linear-gradient(110deg,transparent 40%,var(--surface) 100%); } .heritage-label{ position:absolute;top:48px;left:48px;z-index:2; } .heritage-label-text{ font-family:'Cinzel',serif;font-size:clamp(20px,2.5vw,34px); color:var(--gold);letter-spacing:.1em;line-height:1.3; } .heritage-label-sub{ font-family:'EB Garamond',serif;font-style:italic; font-size:14px;color:var(--stone3);margin-top:10px;letter-spacing:.1em; } .heritage-bottom-quote{ position:absolute;bottom:52px;left:48px;right:32px;z-index:2; padding-top:24px;border-top:1px solid rgba(176,138,82,.2); } .hq-text{ font-family:'Cinzel',serif;font-size:clamp(15px,1.8vw,22px); color:var(--gold);letter-spacing:.06em;line-height:1.4; } .hq-attr{font-size:10px;letter-spacing:.4em;text-transform:uppercase;color:var(--stone3);margin-top:10px} .heritage-text{ padding:100px 80px;display:flex;flex-direction:column;justify-content:center; background:var(--surface); } .h-pillars{margin-top:52px;display:flex;flex-direction:column;gap:0} .hp{ padding:24px 0;border-bottom:1px solid rgba(176,138,82,.1); display:grid;grid-template-columns:52px 1fr;gap:16px; transition:all .35s;cursor:default; } .hp:hover{padding-left:10px;border-bottom-color:rgba(176,138,82,.25)} .hp-rom{ font-family:'Cinzel',serif;font-size:13px; color:rgba(176,138,82,.35);line-height:1.6; } .hp-t{ font-family:'Cinzel',serif;font-size:14px;color:var(--stone); margin-bottom:7px;letter-spacing:.1em; } .hp-b{font-size:14px;line-height:1.85;color:var(--stone3)} @media(max-width:900px){ .heritage-grid{grid-template-columns:1fr} .heritage-visual{min-height:420px} .heritage-text{padding:60px 24px} } /* ━━━━ EXCELLENCE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */ #craftsmanship{background:var(--ink)} .exc-top{display:grid;grid-template-columns:1fr 1.1fr;gap:80px;align-items:center;margin-bottom:100px} @media(max-width:900px){.exc-top{grid-template-columns:1fr;gap:52px}} .exc-img{position:relative;overflow:hidden} .exc-img img{ width:100%;display:block; filter:brightness(.85) contrast(1.1) saturate(.8); transition:transform 12s ease; } .exc-img:hover img{transform:scale(1.04)} .exc-img::after{ content:'';position:absolute;inset:0; background:linear-gradient(to right,transparent 55%,var(--ink) 100%); } .exc-grid{ display:grid;grid-template-columns:repeat(3,1fr); gap:1px;background:rgba(176,138,82,.08); } @media(max-width:900px){.exc-grid{grid-template-columns:1fr 1fr}} @media(max-width:560px){.exc-grid{grid-template-columns:1fr}} .ec{ background:var(--ink);padding:52px 36px; position:relative;overflow:hidden;transition:background .5s; } .ec::before{ content:'';position:absolute;top:0;left:0;right:0;height:2px; background:linear-gradient(90deg,transparent,var(--gold),transparent); transform:scaleX(0);transition:transform .7s; } .ec:hover{background:var(--surface)} .ec:hover::before{transform:scaleX(1)} .ec-icon{width:48px;height:48px;margin-bottom:20px;display:block} .ec-t{ font-family:'Cinzel',serif;font-size:14px;color:var(--stone); margin-bottom:12px;letter-spacing:.12em; } .ec-b{font-size:14px;line-height:1.85;color:var(--stone3)} /* Tasting notes cinematic bar */ .tasting-bar{ margin-top:100px;padding:80px 0; border-top:1px solid rgba(176,138,82,.1); border-bottom:1px solid rgba(176,138,82,.1); } .tasting-label{ font-family:'Cinzel',serif;font-size:9px;letter-spacing:.6em; text-transform:uppercase;color:var(--gold);text-align:center;margin-bottom:60px; } .tasting-notes{ display:grid;grid-template-columns:repeat(4,1fr); gap:1px;background:rgba(176,138,82,.06); } @media(max-width:640px){.tasting-notes{grid-template-columns:1fr 1fr}} .tn{ background:var(--ink);padding:56px 28px;text-align:center; position:relative;overflow:hidden;transition:background .5s; } .tn::after{ content:'';position:absolute;bottom:0;left:0;right:0;height:2px; background:linear-gradient(90deg,transparent,var(--gold),transparent); transform:scaleX(0);transition:transform .7s ease; } .tn:hover{background:var(--surface)} .tn:hover::after{transform:scaleX(1)} .tn-vline{ width:1px;height:48px;margin:0 auto 28px; background:linear-gradient(to bottom,transparent,var(--gold),transparent); transition:height .4s; } .tn:hover .tn-vline{height:64px} .tn-name{ font-family:'Cinzel',serif;font-size:clamp(15px,1.6vw,20px); color:var(--stone);display:block;margin-bottom:10px;letter-spacing:.12em; } .tn-desc{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--stone3)} /* ━━━━ COLLECTION ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */ #collection{background:var(--surface)} .coll-head{text-align:center;max-width:640px;margin:0 auto 80px} .coll-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px} @media(max-width:900px){.coll-grid{grid-template-columns:1fr;max-width:420px;margin:0 auto}} .pc{ background:var(--ink);overflow:hidden; position:relative;transition:transform .5s cubic-bezier(.22,1,.36,1),box-shadow .5s; } .pc:hover{transform:translateY(-8px);box-shadow:0 32px 80px rgba(0,0,0,.7),0 0 0 1px rgba(176,138,82,.1)} .pc-img{aspect-ratio:3/4;overflow:hidden;position:relative} .pc-img img{ width:100%;height:100%;object-fit:cover;object-position:top center; filter:brightness(.85) contrast(1.08); transition:transform 1s cubic-bezier(.22,1,.36,1); } .pc:hover .pc-img img{transform:scale(1.07)} .pc-badge{ position:absolute;top:20px;left:20px;z-index:2; font-family:'Cinzel',serif;font-size:7px;letter-spacing:.4em; text-transform:uppercase;padding:7px 16px; } .badge-gold{background:var(--gold);color:var(--ink)} .badge-outline{border:1px solid var(--gold);color:var(--gold);background:rgba(7,6,10,.4);backdrop-filter:blur(8px)} .pc-shimmer{ position:absolute;inset:0;z-index:1; background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.06) 50%,transparent 65%); transform:translateX(-120%);transition:transform .8s ease; } .pc:hover .pc-shimmer{transform:translateX(120%)} .pc-body{padding:36px 32px 44px} .pc-name{ font-family:'Cinzel',serif;font-size:22px;color:var(--stone); margin-bottom:12px;letter-spacing:.08em; } .pc-meta{display:flex;flex-wrap:wrap;gap:0;margin-bottom:16px} .pcm{ font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--stone3); padding:0 14px;border-right:1px solid rgba(176,138,82,.18); } .pcm:first-child{padding-left:0} .pcm:last-child{border:none} .pc-note{ font-family:'EB Garamond',serif;font-style:italic; font-size:16px;color:var(--olive-hi);margin-bottom:22px; } .pc-price{ font-family:'Cinzel',serif;font-size:36px;color:var(--gold); line-height:1;margin-bottom:28px; } .pc-price sup{font-size:16px;vertical-align:super;color:var(--gold-lo)} .pc-price small{ font-family:'EB Garamond',serif;font-size:13px; color:var(--stone3);letter-spacing:.15em;margin-left:4px; } /* ━━━━ TERROIR ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */ #terroir{background:var(--ink);padding:0;min-height:100vh;position:relative;display:flex;align-items:center;overflow:hidden} .terroir-bg{position:absolute;inset:0} .terroir-bg img{ width:100%;height:100%;object-fit:cover; filter:brightness(.3) contrast(1.15) saturate(.5); } .terroir-bg::after{ content:'';position:absolute;inset:0; background: linear-gradient(to right,rgba(7,6,10,.97) 0%,rgba(7,6,10,.75) 45%,transparent 75%), linear-gradient(to top,rgba(7,6,10,.8) 0%,transparent 50%); } .terroir-inner{position:relative;z-index:2;padding:140px 64px} @media(max-width:700px){.terroir-inner{padding:80px 24px}} .terroir-stats{display:flex;gap:72px;margin-top:56px;flex-wrap:wrap} .ts-item{display:flex;flex-direction:column;gap:8px} .ts-num{ font-family:'Cinzel',serif;font-size:clamp(44px,5.5vw,72px); color:var(--gold);line-height:1; } .ts-lbl{font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--stone3);line-height:1.6} /* ━━━━ RITUAL ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */ #ritual{background:var(--charcoal)} .ritual-top{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;margin-bottom:100px} @media(max-width:900px){.ritual-top{grid-template-columns:1fr;gap:52px}} .ritual-img{overflow:hidden;position:relative} .ritual-img img{ width:100%;display:block; filter:brightness(.75) contrast(1.12) saturate(.65); transition:transform 12s ease; } .ritual-img:hover img{transform:scale(1.05)} .ritual-img::after{ content:'';position:absolute;inset:0; background:linear-gradient(to right,transparent 55%,var(--charcoal) 100%); } .ritual-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(176,138,82,.07)} @media(max-width:640px){.ritual-grid{grid-template-columns:1fr}} .ri{ background:var(--charcoal);padding:60px 44px; transition:background .5s;position:relative;overflow:hidden; } .ri::after{ content:'';position:absolute;top:0;left:0;bottom:0;width:2px; background:linear-gradient(to bottom,transparent,var(--gold),transparent); transform:scaleY(0);transition:transform .6s; } .ri:hover{background:var(--mid)} .ri:hover::after{transform:scaleY(1)} .ri-icon{width:56px;height:56px;margin-bottom:24px;display:block;opacity:.8} .ri-t{font-family:'Cinzel',serif;font-size:16px;color:var(--stone);margin-bottom:14px;letter-spacing:.1em} .ri-b{font-size:14px;line-height:1.9;color:var(--stone3)} /* ━━━━ WHOLESALE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */ #wholesale{background:var(--ink)} .ws-box{ border:1px solid rgba(176,138,82,.12); background:linear-gradient(135deg,rgba(176,138,82,.03) 0%,transparent 60%); padding:80px; } @media(max-width:900px){.ws-box{padding:40px 24px}} .ws-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:start} @media(max-width:900px){.ws-grid{grid-template-columns:1fr;gap:60px}} .wt-list{margin-top:44px} .wt{ padding:18px 0;border-bottom:1px solid rgba(176,138,82,.08); display:flex;align-items:center;gap:20px;transition:all .3s; } .wt:hover{padding-left:10px} .wt-dot{ width:5px;height:5px;background:var(--gold); transform:rotate(45deg);flex-shrink:0; } .wt-t{font-size:15px;color:var(--stone2);letter-spacing:.04em} .ws-certs{display:flex;gap:40px;margin-top:44px;flex-wrap:wrap} .wc-label{font-family:'Cinzel',serif;font-size:8px;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);margin-bottom:6px} .wc-val{font-size:13px;color:var(--stone2)} .form-field{display:flex;flex-direction:column;gap:8px;margin-bottom:24px} .form-label{font-family:'Cinzel',serif;font-size:8px;letter-spacing:.4em;text-transform:uppercase;color:var(--gold)} .form-input{ background:transparent;border:none;border-bottom:1px solid rgba(176,138,82,.18); padding:14px 0;color:var(--stone);font-family:'EB Garamond',serif; font-size:15px;outline:none;transition:border-color .3s;width:100%; } .form-input:focus{border-bottom-color:var(--gold)} .form-input::placeholder{color:rgba(196,189,179,.3);font-style:italic} select.form-input{cursor:pointer;background:var(--ink)} select.form-input option{background:var(--ink)} /* ━━━━ PROOF ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */ #proof{background:var(--surface)} .proof-grid{ display:grid;grid-template-columns:repeat(3,1fr); gap:1px;background:rgba(176,138,82,.07);margin-top:80px; } @media(max-width:640px){.proof-grid{grid-template-columns:1fr 1fr}} .pf{ background:var(--surface);padding:56px 40px;text-align:center; transition:background .4s;position:relative;overflow:hidden; } .pf:hover{background:var(--mid)} .pf-glyph{ font-family:'Cinzel Decorative',serif;font-size:38px; color:rgba(176,138,82,.2);margin-bottom:20px;display:block; transition:color .4s; } .pf:hover .pf-glyph{color:rgba(176,138,82,.5)} .pf-t{font-family:'Cinzel',serif;font-size:15px;color:var(--stone);margin-bottom:10px;letter-spacing:.1em} .pf-b{font-size:13px;color:var(--stone3);line-height:1.75} .markets-row{margin-top:100px;text-align:center} .markets-label{ font-family:'Cinzel',serif;font-size:8px;letter-spacing:.6em; text-transform:uppercase;color:var(--stone3);margin-bottom:44px;display:block; } .markets{display:flex;flex-wrap:wrap;gap:44px;justify-content:center} .mkt{ font-family:'Cinzel',serif;font-size:clamp(17px,2vw,26px); letter-spacing:.12em;color:rgba(232,230,216,.1); transition:color .5s,text-shadow .5s;cursor:default; } .mkt:hover{color:var(--gold);text-shadow:0 0 30px rgba(176,138,82,.3)} /* ━━━━ FAQ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */ #faq{background:var(--ink)} .faq-wrap{max-width:820px;margin-top:80px} .fi{border-bottom:1px solid rgba(176,138,82,.1)} .fq{ padding:30px 0;cursor:pointer;display:flex;justify-content:space-between;align-items:center; font-family:'Cinzel',serif;font-size:clamp(14px,1.7vw,19px); color:var(--stone);letter-spacing:.06em;transition:color .3s; } .fq:hover{color:var(--gold)} .ft{ width:32px;height:32px;border:1px solid rgba(176,138,82,.25); display:flex;align-items:center;justify-content:center; color:var(--gold);font-size:22px;flex-shrink:0;font-family:'Cinzel',serif; transition:transform .4s,background .3s,border-color .3s; } .fi.open .ft{transform:rotate(45deg);background:var(--gold);color:var(--ink);border-color:var(--gold)} .fa{max-height:0;overflow:hidden;transition:max-height .6s ease} .fa-inner{ padding:0 0 28px;font-family:'EB Garamond',serif;font-style:italic; font-size:17px;line-height:1.9;color:var(--stone2); } .fi.open .fa{max-height:360px} /* ━━━━ CLOSING ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */ #closing{ background:var(--ink);min-height:100vh; display:flex;align-items:center;position:relative;overflow:hidden;padding:0; } .closing-bg{position:absolute;inset:0} .closing-bg img{ width:100%;height:100%;object-fit:cover; filter:brightness(.22) contrast(1.15) saturate(.4); animation:heroZoom 24s ease-in-out infinite alternate; } .closing-bg::after{ content:'';position:absolute;inset:0; background:radial-gradient(ellipse 90% 70% at 50% 50%,rgba(176,138,52,.04) 0%,rgba(7,6,10,.75) 100%); } .closing-inner{ position:relative;z-index:2;text-align:center; padding:140px 40px;width:100%; } .closing-punic{ font-family:'Cinzel Decorative',serif;font-size:clamp(36px,5vw,64px); color:rgba(176,138,82,.1);letter-spacing:.4em;display:block; margin-bottom:44px; animation:closing-glow 4s ease infinite alternate; } @keyframes closing-glow{from{color:rgba(176,138,82,.08)}to{color:rgba(176,138,82,.22)}} .closing-vline{ width:1px;height:90px;margin:0 auto 64px; background:linear-gradient(to bottom,transparent,var(--gold),transparent); } .closing-h{ font-family:'Cinzel',serif; font-size:clamp(40px,6vw,84px); line-height:1.02;letter-spacing:.05em;color:var(--stone); max-width:1000px;margin:0 auto 36px; } .closing-h em{color:var(--gold);font-style:normal} .closing-sub{ font-family:'EB Garamond',serif;font-style:italic; font-size:clamp(17px,1.9vw,22px);line-height:1.9;color:var(--stone2); max-width:600px;margin:0 auto 72px; } .closing-rule{ display:flex;align-items:center;gap:24px;max-width:400px;margin:80px auto 0; } .closing-rule-diamond{width:6px;height:6px;background:var(--gold);transform:rotate(45deg)} /* ━━━━ FOOTER ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */ footer{ background:var(--surface); border-top:1px solid rgba(176,138,82,.08); padding:80px 0 44px; } .ft-grid{ display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:60px;margin-bottom:64px; } @media(max-width:900px){.ft-grid{grid-template-columns:1fr 1fr;gap:44px}} @media(max-width:560px){.ft-grid{grid-template-columns:1fr}} .ft-name{font-family:'Cinzel',serif;font-size:16px;letter-spacing:.35em;color:var(--gold);display:block;margin-bottom:14px} .ft-tag{font-size:13px;line-height:1.8;color:var(--stone3);max-width:220px;margin-bottom:28px} .socials{display:flex;gap:12px} .socials a{ width:36px;height:36px;border:1px solid rgba(176,138,82,.2); display:flex;align-items:center;justify-content:center; font-family:'Cinzel',serif;font-size:9px;letter-spacing:.05em; color:var(--stone3);text-decoration:none;transition:all .3s; } .socials a:hover{border-color:var(--gold);color:var(--gold)} .ft-col-title{font-family:'Cinzel',serif;font-size:8px;letter-spacing:.45em;text-transform:uppercase;color:var(--gold);margin-bottom:24px;display:block} .ft-links{display:flex;flex-direction:column;gap:12px} .ft-links a{font-size:13px;color:var(--stone3);text-decoration:none;letter-spacing:.04em;transition:color .3s} .ft-links a:hover{color:var(--stone)} .ft-bottom{ padding-top:36px;border-top:1px solid rgba(176,138,82,.07); display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px; } .ft-copy{font-size:10px;color:rgba(138,128,112,.45);letter-spacing:.08em} .ft-exp{font-family:'Cinzel',serif;font-size:8px;letter-spacing:.45em;text-transform:uppercase;color:var(--gold-lo)} CARTHA OLIVA Tunisia · Extra Virgin · Since Carthage 𐤊 𐤓 𐤈 𐤀 ✕ Home Heritage Collection Craftsmanship Wholesale Contact Order Now CARTHA OLIVA Extra Virgin · Tunisia · Single Estate Home Heritage Collection Craftsmanship Wholesale Contact Order Now  Sfax · Tunisia · Early Harvest 2024 From Carthage To The World Early harvest Tunisian extra virgin olive oil — crafted with Mediterranean precision and three thousand years of civilizational memory. Explore Collection Wholesale Inquiry Discover CARTHA OLIVA◆ Early Harvest 2024◆ Cold Extracted◆ Sfax · Tunisia◆ Single Estate◆ Acidity <0.3%◆ EU Certified◆ Bottled At Origin◆ CARTHA OLIVA◆ Early Harvest 2024◆ Cold Extracted◆ Sfax · Tunisia◆ Single Estate◆ Acidity <0.3%◆ EU Certified◆ Bottled At Origin◆  The Memory Of Carthage 3000 years of olive civilization "If no path exists, we create one." — The Carthaginian Philosophy Heritage & Origin The Memory Of A Civilization Before Rome rewrote history, Carthage was the Mediterranean's supreme civilization — a maritime empire that moved olive oil across every known sea as currency, diplomacy, and light. I Carthage & The Mediterranean Phoenician merchants from Carthage built the first global trade network — carrying Tunisian olive oil to Greece, Rome, and Iberia three millennia ago. II Hannibal — The Elephant Emblem Hannibal's war elephants crossed the Alps — not as symbols of violence, but of an intelligence that created passage where none existed. Our emblem. Our philosophy. III Tunisia as Olive Civilization Over 90 million olive trees. Three millennia of cultivation knowledge. Tunisia is not merely an origin story — it is a living, breathing olive civilization. IV Our Philosophy We stand at the intersection of gastronomy, memory, and craft. Not commodity — a cultural product elevated to where Tunisian olive oil has always belonged.  Product Excellence Crafted With Uncompromising Precision Every decision — harvest timing, extraction temperature, bottling protocol — serves a single purpose: to preserve the exact moment the olive reaches its peak. Nothing accelerated. Nothing compromised. Early Harvest Olives gathered at peak polyphenol concentration — before full ripening — preserving maximum aromatic intensity, antioxidant depth, and the aggressive freshness that defines premium EVOO. Cold Extracted Mechanical extraction below 27°C. No heat. No solvents. No shortcuts. The oil's full aromatic architecture and bioactive compounds remain structurally intact. Single Estate One estate. One harvest. One identity. The Sfax region's mineral soil and sea-wind climate give CARTHA OLIVA a terroir fingerprint impossible to replicate. Full Traceability Grove coordinates. Pressing timestamp. Bottling batch. Laboratory certificate. Every element of the chain documented and available to every buyer worldwide. Low Acidity Free acidity below 0.3% — more than twice as stringent as the 0.8% extra virgin threshold. A reflection of flawless fruit and an unbroken cold chain. Bottled At Origin Sealed in Tunisia. No bulk export. No foreign relabeling. Full Tunisian origin — proudly stated, legally verified, and traceable from grove to glass. — Tasting Notes · Harvest 2024 · Chetoui & Chemlali Cultivars — Green AlmondFresh · Vegetal Opening Fresh GrassHerbaceous · Mid-Palate ArtichokeComplex · Mineral Depth Pepper FinishLong · Pungent Close The Collection Select Your Expression Three editions. One estate. An unbroken commitment to excellence.  Signature Classique 500ml Harvest 2024 Acidity <0.3% 500ml Green almond · Artichoke · Pepper finish €38/ bottle Add to Order  Gift Edition Prestige Gift Box Harvest 2024 Numbered Box + Certificate 500ml · Lacquered box · Silk interior €62/ set Add to Order  Réserve Réserve Edition Harvest 2024 Limited 48h First Press Ultra-low acidity · First press only €89/ bottle Request Access  Tunisia & Terroir A Land Older Than Memory The mineral soils of Sfax carry centuries of organic intelligence — compressed sun, salt winds off the Mediterranean, and the cellular memory of trees that predate most empires. The Chetoui and Chemlali cultivars grown here produce oils impossible to replicate elsewhere. This is not marketing. It is geology, climate, and three thousand years of time. 3000 Years of cultivation 90M+ Olive trees in Tunisia <0.3% Maximum free acidity  The Experience A Ritual, Not A Recipe CARTHA OLIVA is not an ingredient to be hidden. It is a practice — a conscious act of Mediterranean refinement performed at the moment of service, gifted with deliberate intention, and tasted with the focus one gives to great wine. The Tasting Ritual Pour into a dark glass. Warm between your palms. Allow the green almond and fresh grass to emerge before the peppery finish closes — a full sensory experience in under sixty seconds. Bread & Crust Aged sourdough, warm stone bread, or grilled flatbread. Nothing competes. Nothing distracts. The oil becomes the entirety of the experience. Fine Dining Used by Michelin-level kitchens as a finishing oil — drizzled on crudo, burrata, heritage grain risottos at the precise moment of service. Never cooked. Always present. The Gift The Prestige Box arrives sealed and lacquered — a collectible Mediterranean object. Given to those for whom ordinary gifts are insufficient. Professional Partnerships Wholesale & Global Export CARTHA OLIVA is export-ready and EU-compliant. We partner with gourmet retailers, importers, and hospitality groups who understand that the story behind a product is inseparable from its quality. Gourmet & Fine Food Retailers Michelin-Starred Restaurants Luxury Hotel & Resort Groups International Importers & Distributors Airport Duty-Free Boutiques Premium Concept Stores EU Compliance EC 2568/91 · EVOO Shipping Global · Controlled Documentation Full lab certificates Begin A Partnership Request Information Full Name Company Country Inquiry Type Select typeWholesale / DistributionRestaurant / HospitalityRetail PartnershipPrivate Purchase Message Submit Inquiry Recognition & Standards Quality Speaks Without Words Ω Awards In Progress International competition submissions underway for the 2024 harvest. Ξ EU Certified EC Regulation 2568/91 — Extra Virgin standards exceeded at every measure. Λ Lab Verified Independent panel testing. Full chemistry certificates available on request. Δ Sustainable Estate Estate-managed cultivation. Zero waste pressing. Environmental stewardship as practice. Σ Chef Relations Professional kitchen partnerships in active development across France, Germany, the UK. Φ Export Ready Global shipping infrastructure. Full import documentation for every market. Export Horizons FranceGermanyUnited Kingdom United StatesJapanUAE AustraliaSwitzerlandCanada Questions What You May Wish To Know Why choose Tunisian olive oil?+ Tunisia is the world's second-largest olive oil producer and home to some of the oldest cultivated groves on Earth. The Chetoui and Chemlali varieties of Sfax produce oils of exceptional polyphenol concentration, robust flavor intensity, and unparalleled freshness — qualities that consistently outperform more commercially promoted origins in blind tastings. This is not a recent discovery. It is a three-thousand-year-old fact. What makes early harvest premium?+ Early harvest means gathering olives before full ripeness — typically October, not December. At this point, polyphenol content peaks, acidity is at its minimum, and aromatic intensity reaches its maximum. The yield is smaller — sometimes half — but what emerges is incomparably more complex, more stable, and more alive. The difference between a first-press juice and the last squeeze. How is freshness preserved from Tunisia to your table?+ Processed within hours of harvest. Cold-extracted. Filtered and placed immediately in nitrogen-flushed dark glass bottles that block UV degradation. Bottled at origin, sealed with inert caps. We indicate harvest date — not just a "best before" — so you always know the exact age of your oil. Do you ship internationally?+ Yes. CARTHA OLIVA ships to the European Union, United Kingdom, United States, UAE, Japan, Australia, and Canada. All orders include temperature-conscious packaging and full documentation for import compliance. For wholesale and distribution, we offer container-level exports with dedicated logistics coordination. Is the oil fully traceable?+ Completely. Each bottle carries harvest year, estate code, pressing date, and batch number. Laboratory analysis certificates confirm acidity, peroxide value, polyphenol content, and sensory evaluation scores. We encourage every partner and consumer to request these documents. Transparency is the foundation of trust, not a marketing claim.  𐤊 𐤓 𐤈 𐤀 We Do Not Follow Paths. We Create Them. From the groves of Sfax to tables across the world, CARTHA OLIVA carries forward a Mediterranean legacy shaped by courage, craftsmanship, and time. Enter The Collection CARTHA OLIVA Premium extra virgin olive oil from Tunisia. Born of Carthaginian heritage, crafted for the world's finest tables. IG LI FB Navigate HomeHeritage CollectionCraftsmanshipTerroir Company WholesaleFAQ ContactPrivacy Policy Contact contact@carthaoliva.com Sfax, Tunisia Partnership Inquiry Press & Media © 2024 CARTHA OLIVA. All rights reserved. Bottled in Tunisia. From Tunisia · To The World · Since Carthage // Loader window.addEventListener('load',()=>{setTimeout(()=>document.getElementById('loader').classList.add('out'),2600)}) // Nav const nav=document.getElementById('nav') window.addEventListener('scroll',()=>nav.classList.toggle('solid',scrollY>50),{passive:true}) // Mobile menu document.getElementById('hamb').addEventListener('click',()=>document.getElementById('mob').classList.add('open')) document.getElementById('mob-x').addEventListener('click',()=>document.getElementById('mob').classList.remove('open')) function cm(){document.getElementById('mob').classList.remove('open')} // Reveal const obs=new IntersectionObserver(es=>{ es.forEach(e=>{if(e.isIntersecting)e.target.classList.add('on')}) },{threshold:.07,rootMargin:'0px 0px -30px 0px'}) document.querySelectorAll('.rv').forEach(e=>obs.observe(e)) // FAQ function faq(el){ const item=el.parentElement const open=item.classList.contains('open') document.querySelectorAll('.fi').forEach(i=>i.classList.remove('open')) if(!open)item.classList.add('open') } // Parallax hero let ticking=false window.addEventListener('scroll',()=>{ if(!ticking){ requestAnimationFrame(()=>{ const img=document.querySelector('.hero-bg img') if(img)img.style.transform=`scale(1.06) translateY(${scrollY*.025}px)` ticking=false }) ticking=true } },{passive:true})