SOVWINE 醇到暈|香港葡萄酒網店 · 葡萄牙佳釀直送
:root{
--wine:#6e1f2b;
--wine-2:#5c1820;
--plum:#2a0b10;
--plum-2:#1d070a;
--gold:#c9a24b;
--gold-li:#e9cf96;
--cream:#f6efe2;
--cream-2:#efe5d2;
--paper:#fbf7ee;
--ink:#211214;
--mut:#8d7a76;
--line:#e2d3bd;
--rule:rgba(201,162,75,.45);
--serif:'Cormorant Garamond','Noto Serif TC',serif;
--serif-tc:'Noto Serif TC',serif;
--sans:'Noto Sans TC',sans-serif;
--ease:cubic-bezier(.22,.61,.21,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--cream);line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{text-decoration:none;color:inherit}
img{display:block;max-width:100%}
::selection{background:var(--gold);color:var(--plum)}
.wrap{max-width:1280px;margin:0 auto;padding:0 28px}
.gold{color:var(--gold)}
/* Fail-open reveal: only when JS present do elements animate */
.js [data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js [data-reveal].in{opacity:1;transform:none}
.js [data-reveal].d1{transition-delay:.1s}
.js [data-reveal].d2{transition-delay:.22s}
.js [data-reveal].d3{transition-delay:.34s}
@keyframes marq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
/* ---------- Top ticker ---------- */
.ticker{background:var(--plum);color:var(--gold-li);overflow:hidden;border-bottom:1px solid var(--rule);font-size:12.5px;letter-spacing:.06em}
.ticker .track{display:flex;width:max-content;animation:marq 28s linear infinite;white-space:nowrap}
.ticker .track span{padding:9px 34px;display:inline-flex;gap:10px;align-items:center}
.ticker .track i{font-style:normal;color:var(--gold)}
.ticker .track svg{width:12px;height:12px;color:var(--gold);stroke:currentColor;fill:none}
/* ---------- Header ---------- */
header{position:sticky;top:0;z-index:60;background:rgba(251,247,238,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;gap:26px;padding:14px 28px}
.brand{display:flex;align-items:baseline;gap:12px}
.brand .word{font-family:var(--serif);font-weight:600;font-size:27px;letter-spacing:.12em;color:var(--wine)}
.brand .cn{font-family:var(--serif-tc);font-size:13px;letter-spacing:.34em;color:var(--gold)}
.brand .sub{font-family:var(--sans);font-size:9.5px;letter-spacing:.24em;color:var(--mut);text-transform:uppercase}
.nav .links{display:flex;gap:26px;margin-left:auto;list-style:none;font-size:14.5px}
.nav .links a{color:#43302f;font-weight:500;position:relative}
.nav .links a::after{content:"";position:absolute;left:0;bottom:-4px;width:0;height:1.5px;background:var(--gold);transition:width .3s var(--ease)}
.nav .links a:hover::after{width:100%}
.nav .icons{display:flex;gap:10px;align-items:center}
.nav .icons a{position:relative;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:50%;color:var(--wine);transition:.25s var(--ease)}
.nav .icons a:hover{background:var(--wine);color:#fff;border-color:var(--wine)}
.nav .icons svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.6}
.nav .icons .count{position:absolute;top:-3px;right:-3px;background:var(--gold);color:var(--plum);font-size:10px;font-weight:700;width:17px;height:17px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.btn{display:inline-flex;align-items:center;gap:9px;padding:13px 26px;border-radius:999px;font-weight:600;font-size:14.5px;transition:.3s var(--ease);cursor:pointer;line-height:1}
.btn-cta{background:var(--wine);color:#fff}
.btn-cta:hover{background:var(--plum);transform:translateY(-2px);box-shadow:0 14px 26px -14px rgba(43,10,16,.6)}
.btn-cta svg, .btn svg{width:15px;height:15px;stroke:currentColor;fill:none}
.burger{display:none;margin-left:auto;background:none;border:0;font-size:24px;color:var(--wine);cursor:pointer}
@media(max-width:980px){
.nav .links{position:fixed;inset:0 0 0 auto;width:min(360px,86vw);background:var(--paper);flex-direction:column;gap:0;padding:90px 34px 34px;box-shadow:-20px 0 60px -20px rgba(43,10,16,.4);transform:translateX(102%);transition:transform .4s var(--ease);z-index:59}
.nav .links.open{transform:none}
.nav .links li{border-bottom:1px solid var(--line)}
.nav .links a{display:block;padding:16px 0;font-family:var(--serif-tc);font-size:16px;font-weight:600}
.burger{display:block;z-index:61}
.nav .btn-cta{display:none}
}
/* ---------- Hero ---------- */
.hero{position:relative;color:#fff;min-height:100vh;display:flex;align-items:center;overflow:hidden;background:var(--plum)}
.hero .bg{position:absolute;inset:0;background-size:cover;background-position:center 30%;filter:brightness(.36) saturate(1.05)}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,4,7,.92),rgba(20,4,7,.3) 60%,rgba(20,4,7,.1));z-index:1}
.hero::after{content:"ˍ";position:absolute;right:-6vw;top:-2vh;font-family:var(--serif);font-size:70vw;color:rgba(201,162,75,.06);z-index:0;line-height:1;user-select:none}
.hero .inner{position:relative;z-index:2;width:100%;display:grid;grid-template-columns:1.25fr .75fr;gap:40px;align-items:center;padding:90px 28px 130px}
.kicker{display:inline-flex;align-items:center;gap:12px;font-size:12px;letter-spacing:.34em;color:var(--gold);text-transform:uppercase}
.kicker::before{content:"";width:34px;height:1px;background:var(--gold)}
.hero h1{font-family:var(--serif-tc);font-weight:900;font-size:clamp(52px,8.2vw,118px);line-height:1;letter-spacing:.02em;margin:26px 0 8px;color:#fff}
.hero h1 em{font-family:var(--serif);font-style:italic;font-weight:500;color:var(--gold-li);font-size:1.06em;letter-spacing:.02em}
.hero .lede{margin-top:26px;font-size:17px;color:#f0e0cd;font-weight:300;max-width:440px}
.hero .lede strong{color:var(--gold-li);font-weight:600}
.hero .verts{position:absolute;top:24vh;right:-14px;writing-mode:vertical-rl;font-size:11px;letter-spacing:.5em;color:rgba(255,255,255,.28);text-transform:uppercase;z-index:3;font-family:var(--sans)}
.hero .acts{margin-top:38px;display:flex;gap:16px;flex-wrap:wrap}
.btn-gold{background:var(--gold);color:var(--plum)}
.btn-gold:hover{background:var(--gold-li);transform:translateY(-2px);box-shadow:0 14px 30px -12px rgba(201,162,75,.55)}
.btn-ghost{border:1px solid rgba(255,255,255,.55);color:#fff}
.btn-ghost:hover{background:#fff;color:var(--wine)}
.hero-card{background:rgba(251,247,238,.05);border:1px solid rgba(201,162,75,.35);border-radius:22px;padding:30px 26px;backdrop-filter:blur(6px);position:relative}
.hero-card::after{content:"";position:absolute;inset:-14px;border:1px solid rgba(201,162,75,.18);border-radius:30px;z-index:-1}
.hero-card .gl{font-size:11px;letter-spacing:.3em;color:var(--gold);text-transform:uppercase}
.hero-card .numb{font-family:var(--serif);font-size:clamp(44px,5vw,64px);font-weight:600;color:#fff;line-height:1;margin-top:8px}
.hero-card .numb small{font-size:.42em;color:var(--gold-li);font-weight:500}
.hero-card .row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:20px;padding-top:20px;border-top:1px solid rgba(255,255,255,.12)}
.hero-card .mini .lbl{font-size:10.5px;letter-spacing:.22em;color:#c9b39b;text-transform:uppercase}
.hero-card .mini .val{font-family:var(--serif);font-size:22px;color:var(--gold-li)}
.hero-ticket-note{margin-top:22px;font-size:12.5px;color:#cbb39a}
.hero-ticket-note b{color:var(--gold-li)}
@media(max-width:1100px){.hero .inner{grid-template-columns:1fr}.hero-card{max-width:480px}.hero .verts{display:none}}
@media(max-width:640px){.hero .inner{padding:70px 22px 110px}.hero h1{font-size:clamp(46px,17vw,64px)}}
/* ---------- Marquee band ---------- */
.band{background:var(--cream-2);color:var(--wine);overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0;font-family:var(--serif);font-size:26px;font-weight:500}
.band .tr{display:flex;width:max-content;animation:marq 34s linear infinite;white-space:nowrap}
.band .tr span{margin:0 30px;display:inline-flex;align-items:center;gap:26px}
.band .tr i{font-style:normal;color:var(--gold);font-size:14px}
/* ---------- USP ---------- */
.usp{background:var(--paper);padding:64px 0}
.usp .grid{display:grid;grid-template-columns:repeat(4,1fr);gap:44px;border-top:1px solid var(--line)}
.usp .cell{padding-top:26px;position:relative}
.usp .cell::before{content:"";position:absolute;top:-1px;left:0;width:40px;height:2px;background:var(--gold)}
.usp .cell h4{font-family:var(--serif-tc);font-size:17px;font-weight:700;color:var(--wine)}
.usp .cell p{font-size:13.5px;color:var(--mut);margin-top:6px}
@media(max-width:900px){.usp .grid{grid-template-columns:repeat(2,1fr);gap:30px}}
@media(max-width:540px){.usp .grid{grid-template-columns:1fr}}
/* ---------- Section heads ---------- */
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:52px}
.sec-head .lbl{font-size:12px;letter-spacing:.36em;color:var(--gold);text-transform:uppercase;margin-bottom:10px}
.sec-head h2{font-family:var(--serif-tc);font-weight:900;font-size:clamp(28px,4vw,46px);color:var(--wine);line-height:1.12}
.sec-head h2 em{font-family:var(--serif);font-style:italic;color:var(--gold)}
.sec-head p{max-width:400px;color:var(--mut);font-size:14.5px}
@media(max-width:760px){.sec-head{flex-direction:column;align-items:flex-start}}
/* ---------- Categories ---------- */
.cats{background:var(--cream);padding:110px 0}
.cat-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:210px;gap:18px}
.cat{position:relative;overflow:hidden;border-radius:4px;cursor:pointer;box-shadow:0 24px 50px -28px rgba(43,10,16,.5)}
.cat img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease),filter .6s;filter:brightness(.8)}
.cat:hover img{transform:scale(1.07);filter:brightness(.92)}
.cat .tag{position:absolute;left:0;bottom:0;right:0;padding:20px;display:flex;align-items:baseline;gap:10px;color:#fff;background:linear-gradient(180deg,rgba(20,4,7,0),rgba(20,4,7,.72))}
.cat .tag b{font-family:var(--serif-tc);font-size:17px;font-weight:700}
.cat .tag span{font-family:var(--serif);font-style:italic;font-size:13px;color:var(--gold-li)}
.cat.a{grid-column:span 5;grid-row:span 2}
.cat.b{grid-column:span 3;grid-row:span 1}
.cat.c{grid-column:span 4;grid-row:span 1}
.cat.d{grid-column:span 3;grid-row:span 1}
.cat.e{grid-column:span 4;grid-row:span 1}
.cat.f{grid-column:span 5;grid-row:span 2}
@media(max-width:980px){.cat-grid{grid-auto-rows:190px}.cat.a,.cat.f{grid-column:span 12;grid-row:span 2}.cat.b,.cat.c,.cat.d,.cat.e{grid-column:span 6;grid-row:span 1}}
@media(max-width:560px){.cat.a,.cat.f,.cat.b,.cat.c,.cat.d,.cat.e{grid-column:span 12;grid-row:span 1}}
/* ---------- Featured wines ---------- */
.feat{background:var(--cream-2);padding:110px 0}
.f-tabs{display:flex;gap:8px;flex-wrap:wrap}
.f-tabs button,.tab{border:1px solid var(--line);background:#fff;color:#5c3b42;padding:9px 20px;border-radius:999px;font-size:13.5px;cursor:pointer;transition:.25s;font-family:var(--sans)}
.f-tabs button.on,.tab.on{background:var(--wine);border-color:var(--wine);color:#fff;font-weight:600}
.prods{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
@media(max-width:1000px){.prods{grid-template-columns:repeat(3,1fr)}}
@media(max-width:680px){.prods{grid-template-columns:repeat(2,1fr);gap:16px}}
.card{position:relative;background:var(--paper);border-radius:6px;overflow:hidden;box-shadow:0 16px 40px -26px rgba(43,10,16,.4);transition:.35s var(--ease);cursor:pointer;display:flex;flex-direction:column}
.card:hover{transform:translateY(-7px);box-shadow:0 34px 60px -30px rgba(43,10,16,.55)}
.card .ph{position:relative;aspect-ratio:4/4.5;overflow:hidden;background:#e9e0cd}
.card .ph img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.card:hover .ph img{transform:scale(1.06)}
.card .seal{position:absolute;top:14px;left:14px;width:56px;height:56px;border-radius:50%;background:var(--wine);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--serif);font-size:11px;letter-spacing:.02em;line-height:1.05;box-shadow:0 8px 18px -6px rgba(43,10,16,.5);transform:rotate(-12deg)}
.card .seal b{font-family:var(--sans);font-weight:700;font-size:15px}
.card .seal.gold{background:var(--gold);color:var(--plum)}
.card .meta{padding:16px 18px 18px;display:flex;flex-direction:column;flex:1}
.card .kind{font-size:10.5px;letter-spacing:.24em;color:var(--gold);text-transform:uppercase;font-weight:600}
.card h4{font-family:var(--serif-tc);font-size:16.5px;font-weight:700;margin:6px 0 12px;line-height:1.4;min-height:44px}
.card .price{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-top:auto}
.card .price .now{font-family:var(--serif);font-size:26px;font-weight:600;color:var(--wine)}
.card .price .was{color:var(--mut);text-decoration:line-through;font-size:14px}
.card .price .off{background:#f8e5d9;color:var(--wine);font-size:11px;padding:2px 8px;border-radius:99px;font-weight:700}
.card .add{margin-top:14px;background:var(--cream);border:1px solid var(--line);color:var(--wine);border-radius:999px;padding:10px;font-weight:600;font-size:13.5px;cursor:pointer;transition:.25s;font-family:var(--sans)}
.card:hover .add{background:var(--wine);border-color:var(--wine);color:#fff}
/* ---------- Trust band (WooCommerce reassurance) ---------- */
.trust{background:var(--plum);color:#d9c4ac;border-top:1px solid var(--rule)}
.trust .in{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding:34px 0}
.trust .t{display:flex;gap:14px;align-items:flex-start}
.trust .t svg{width:22px;height:22px;stroke:var(--gold);fill:none;stroke-width:1.5;flex:none;margin-top:3px}
.trust .t b{display:block;color:#fff;font-family:var(--serif-tc);font-size:14.5px}
.trust .t span{font-size:12px;color:#bda88f}
@media(max-width:900px){.trust .in{grid-template-columns:repeat(2,1fr)}}
@media(max-width:540px){.trust .in{grid-template-columns:1fr}}
/* ---------- Story (split editorial) ---------- */
.story{background:var(--plum);color:#f0e0cd;position:relative;overflow:hidden}
.story .wrap{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch}
.story .pic{position:relative;min-height:520px}
.story .pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.story .pic .stamp{position:absolute;left:26px;top:26px;width:92px;height:92px;border:1.5px solid var(--gold);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-direction:column;color:var(--gold-li);font-family:var(--serif);font-size:12px;letter-spacing:.08em;text-align:center;background:rgba(20,4,7,.4);transform:rotate(-8deg)}
.story .txt{padding:96px 60px;display:flex;flex-direction:column;justify-content:center}
.story .txt .gl{font-size:12px;letter-spacing:.36em;color:var(--gold);text-transform:uppercase;margin-bottom:20px}
.story .txt h2{font-family:var(--serif-tc);font-weight:900;font-size:clamp(30px,4vw,48px);line-height:1.1;color:#fff}
.story .txt h2 em{font-family:var(--serif);font-style:italic;color:var(--gold-li)}
.story .txt p{margin-top:22px;color:#d9c4ac;font-weight:300;max-width:470px}
.story .txt .big{font-family:var(--serif);font-size:clamp(60px,9vw,120px);line-height:1;font-weight:600;color:var(--gold-li);margin:34px 0 8px}
.story .txt .big small{font-family:var(--serif-tc);font-size:21px;color:#fff;font-weight:600}
@media(max-width:900px){.story .wrap{grid-template-columns:1fr}.story .txt{padding:56px 26px}.story .pic{min-height:320px}}
/* ---------- Sets ---------- */
.sets{background:var(--paper);padding:110px 0}
.set-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media(max-width:900px){.set-grid{grid-template-columns:1fr}}
.set{position:relative;border-radius:6px;overflow:hidden;box-shadow:0 26px 54px -30px rgba(43,10,16,.5)}
.set img{width:100%;aspect-ratio:4/4.6;object-fit:cover}
.set .ov{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:26px;background:linear-gradient(180deg,rgba(20,4,7,.02) 40%,rgba(20,4,7,.84))}
.set .ov .gl{font-size:11px;letter-spacing:.28em;color:var(--gold);text-transform:uppercase}
.set .ov h3{font-family:var(--serif-tc);font-weight:900;font-size:24px;color:#fff;margin:6px 0 4px}
.set .ov p{font-size:13px;color:#e4d4bf}
.set .ov .pr{font-family:var(--serif);font-size:17px;color:var(--gold-li);margin-top:12px;display:flex;align-items:baseline;gap:8px}
.set .ov .pr b{font-size:27px;color:#fff}
.set .ov .pr span{font-family:var(--sans);font-size:12.5px;color:#fff;font-weight:300}
.set .ov .add{margin-top:16px;background:var(--gold);color:var(--plum);border-radius:999px;padding:11px;font-weight:700;font-size:13.5px;text-align:center;font-family:var(--sans)}
.set:hover .ov .add{background:var(--gold-li)}
/* ---------- Membership ---------- */
.club{background:var(--plum-2);color:#f0e0cd;padding:110px 0;overflow:hidden;position:relative}
.club::before{content:"SOV CLUB";position:absolute;top:40px;left:0;right:0;text-align:center;font-family:var(--serif);font-size:14vw;color:rgba(201,162,75,.05);letter-spacing:.06em;user-select:none;line-height:1}
.club .wrap{position:relative}
.club .sec-head h2{color:#fff}
.club .sec-head p{color:#cbb39a}
.club-note{margin-top:-28px;text-align:center;font-size:13px;color:#cbb39a}
.tier{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;max-width:1080px;margin:0 auto}
@media(max-width:900px){.tier{grid-template-columns:1fr;max-width:520px}.club-note{margin-top:26px}}
.tier .box{position:relative;border:1px solid rgba(201,162,75,.28);border-radius:6px;padding:40px 30px;background:rgba(251,247,238,.03);transition:.3s var(--ease);text-align:left}
.tier .box:hover{transform:translateY(-6px)}
.tier .box.hot{border-color:var(--gold);background:linear-gradient(180deg,rgba(201,162,75,.16),rgba(201,162,75,.05));transform:translateY(-14px)}
.tier .box.hot::after{content:"人氣之選";position:absolute;top:18px;right:20px;font-size:10.5px;letter-spacing:.2em;color:var(--plum);background:var(--gold);padding:4px 11px;border-radius:99px;font-weight:700}
.tier .box h3{font-family:var(--serif-tc);font-size:20px;font-weight:700;color:#fff}
.tier .box .pct{font-family:var(--serif);font-size:clamp(56px,6vw,74px);font-weight:600;color:var(--gold);line-height:1;margin:14px 0 2px}
.tier .box.hot .pct{color:var(--gold-li)}
.tier .box .pct sup{font-size:.45em;color:#cbb39a;font-weight:400}
.tier .box .rd{font-size:12.5px;letter-spacing:.1em;color:#cbb39a;text-transform:uppercase}
.tier .box ul{list-style:none;margin-top:20px;font-size:14px;border-top:1px solid rgba(255,255,255,.1);padding-top:18px}
.tier .box ul li{padding:6px 0;display:flex;gap:10px;align-items:baseline;color:#e7d7c1}
.tier .box ul li::before{content:"✳";color:var(--gold);font-size:11px}
/* ---------- Testimonials ---------- */
.words{background:var(--cream);padding:110px 0}
.q-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media(max-width:900px){.q-grid{grid-template-columns:1fr}}
.quote{border-left:3px solid var(--gold);background:var(--paper);padding:30px 30px 26px;border-radius:0 6px 6px 0;box-shadow:0 18px 40px -28px rgba(43,10,16,.35)}
.quote p{font-family:var(--serif-tc);font-size:16px;color:#4a3339;line-height:1.8}
.quote .who{margin-top:20px;display:flex;align-items:center;gap:13px}
.quote .who .av{width:42px;height:42px;border-radius:50%;background:var(--wine);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:600;font-size:16px}
.quote .who b{font-size:13.5px;color:var(--ink)}
.quote .who small{display:block;color:var(--mut);font-size:12px}
/* ---------- Newsletter ---------- */
.signup{background:var(--gold);color:var(--plum);padding:90px 0;text-align:center;position:relative;overflow:hidden}
.signup::after{content:"✳";position:absolute;right:6vw;bottom:-6vh;font-family:var(--serif);font-size:40vh;color:rgba(43,10,16,.08);line-height:1}
.signup .gl{font-size:12px;letter-spacing:.4em;color:var(--plum);text-transform:uppercase;margin-bottom:16px;opacity:.85}
.signup h2{font-family:var(--serif-tc);font-weight:900;font-size:clamp(30px,4.6vw,52px);line-height:1.1}
.signup p{margin:16px auto 30px;max-width:470px;font-size:15px;color:#5c3a1a}
.signup form{display:flex;gap:8px;max-width:540px;margin:0 auto;background:#fff;padding:7px;border-radius:999px;box-shadow:0 20px 44px -22px rgba(43,10,16,.5);position:relative;z-index:2}
.signup input{flex:1;border:0;outline:0;background:transparent;padding:12px 20px;font-size:15px;font-family:var(--sans);min-width:0}
.signup button{border:0;background:var(--plum);color:var(--gold-li);border-radius:999px;padding:0 28px;font-weight:600;font-size:15px;cursor:pointer;transition:.25s}
.signup button:hover{background:var(--wine)}
@media(max-width:560px){.signup form{flex-direction:column;border-radius:20px}.signup button{padding:15px}}
/* ---------- Footer ---------- */
footer{background:var(--plum);color:#bda88f;padding:80px 0 36px}
.f-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:44px}
@media(max-width:900px){.f-grid{grid-template-columns:1fr 1fr}}
@media(max-width:540px){.f-grid{grid-template-columns:1fr}}
footer h5{color:#fff;font-family:var(--serif-tc);font-size:15px;letter-spacing:.12em;margin-bottom:16px}
footer ul{list-style:none;font-size:13.5px}
footer ul li{padding:5px 0}
footer ul a:hover{color:#fff}
footer .brand .word{color:#fff}
footer .brand .cn{color:var(--gold)}
footer .about>p{font-size:13.5px;line-height:1.75;margin:16px 0 22px}
.f-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:52px;padding-top:22px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:12px;color:#8f7a63}
全場精選 5 折 進行中
滿 HK$700 免費送貨 · 港九新界
葡萄牙佳釀 · 直入香港
會員免費登記 · 儲分有折扣
葡萄牙佳釀 · 直入香港
一口下去
醇到暈。
由葡萄牙酒莊直入香港嘅美酒,唔使貴、唔使等。而家精選全場 5 折,滿 HK$700 免費送貨到港九新界,WhatsApp 落單即飲。
本週抵飲 · This Week
HK$65 起
樽裝紅酒 HK$65 起 · 清爽白酒 HK$59 起 · 全部直接由酒莊入
Portuguese Wine · Hong Kong
醇滑紅酒套裝✳HK$800✳清爽白酒套裝✳HK$780✳隨心配搭 12 支✳HK$700 起
原瓶直送
酒莊直入香港,品質有保證,唔經中間人抽水。
明碼實價
端午節/新年/家宴,價錢一目了然,特價即時標示。
滿 HK$700 免運
港島九龍新界包送,離島偏遠除外。
由清爽白酒到陳年砵酒,六大類別任你揀——每一支都係我哋親手試過先敢擺上架。
慳50%
珍藏
2015
慳50%
氣泡
甜
慳50%
慳50%
珍藏
氣泡
Brut

SOV
EST.
2022
Our story · 由2022開始
好酒唔使貴。
我哋由葡萄牙搵返嚟
SOVWINE 醇到暈,坐落香港觀塘。我哋唔做中間逐層抽水嘅嘢——由葡萄牙著名產區親自挑選,剔除層層加價,以公道價將好酒直接送到你檯面。
由清爽嘅 Vinho Verde,到醇厚嘅杜羅河谷紅酒,以至珍貴嘅砵酒——逐支試、逐支揀,先敢放入你個購物袋。
2022 年起
唔使諗到頭暈,成套組合又慳錢又體面,最啱聚會同送禮。
紅白酒套裝隨心配搭 12 支
紅白混搭,做節聚餐必備。
定價 HK$700起
加入購物袋
醇滑紅酒套裝醇滑紅酒 12 支
滑身順喉,招待朋友最穩陣。
定價 HK$800起
加入購物袋
清爽白酒套裝清爽白酒 12 支
凍住飲最透心涼,炎夏之選。
定價 HK$780起
加入購物袋
免費登記,每消費 HK$10 賺 10 會員積分+1 禮品積分,可以換禮物、享生日優惠同心水折扣。
白金會員
5%
至抵新酒優先
- 全單 5% 會員折扣
- 新酒上架優先通知
- 儲積分升級換禮
立即免費登記,開始累積你嘅第一分。
「第一次試葡萄牙酒,紅酒好滑好抵飲,HK$65 一支完全冇得輸,隔日就送到屋企。」
「套裝好抵,12 支 800 蚊搞掂,做節請十幾個人飲都夠面,個個話好飲。」
「砵酒好正,配甜品一流。老闆好細心,WhatsApp 介紹啱我口味嘅款式。」
Wine Notes · 訂閱酒頭資訊
第一時間收到新酒同獨家優惠
新酒上架、限時折扣、選酒貼士——直接入你 inbox,冇 spam。
document.body.classList.add('js');
// Fail-open reveal
var io = new IntersectionObserver(function(entries){
entries.forEach(function(e){ if(e.isIntersecting){ e.target.classList.add('in'); io.unobserve(e.target); } });
},{threshold:.14});
document.querySelectorAll('[data-reveal]').forEach(function(el){ io.observe(el); });
// Ticker + band: duplicate content for seamless loop
['tk','band'].forEach(function(id){
var el = document.getElementById(id);
if(el) el.innerHTML += el.innerHTML;
});
// Mobile menu
var burger = document.getElementById('burger'), links = document.getElementById('links');
if(burger && links){ burger.addEventListener('click', function(){ links.classList.toggle('open'); }); }
// Wine filter tabs
var tabs = document.querySelectorAll('#tabs .tab'), cards = document.querySelectorAll('#prods .card');
tabs.forEach(function(t){ t.addEventListener('click', function(){
tabs.forEach(function(x){ x.classList.remove('on'); }); t.classList.add('on');
var k = t.getAttribute('data-t');
cards.forEach(function(c){ c.style.display = (k==='all'||c.getAttribute('data-c')===k) ? '' : 'none'; });
}); });
// Add-to-cart count
var count = 0, badge = document.querySelector('.nav .icons .count');
document.querySelectorAll('.card .add, .set .add').forEach(function(b){
b.addEventListener('click', function(){
count++; if(badge){ badge.textContent = count; }
b.textContent = '已加入 ✓';
var self = b; setTimeout(function(){ self.textContent = '加入購物袋'; }, 1400);
});
});