/*
Theme Name: VINFAYZ Home
Theme URI: https://vinfayz.xyz
Author: VINFAYZ
Description: WordPress theme adapted from the supplied VINFAYZ homepage files.
Version: 1.0.0
*/


:root{
  --white:#FFFFFF; --cream:#FAF7F0; --cream2:#F4EFE3;
  --ink:#141005; --ink2:#0A0812; --body:#3E3A30; --muted:#7A7462;
  --line:#E8E2D5; --line-soft:#EFE9DB;
  --gold:#D4AF37; --gold-deep:#B8921F; --gold-light:#F7D774;
  --violet:#8B5CF6; --violet-deep:#6D28D9; --violet-soft:#F1EBFD;
  --red:#B5121B;
  --serif:"Playfair Display",Georgia,serif;
  --sans:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
  --shadow:0 24px 60px -24px rgba(20,16,5,.22);
  --shadow-sm:0 10px 30px -14px rgba(20,16,5,.18);
  --radius:18px;
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:clip;scroll-padding-top:88px}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{margin:0;font-family:var(--sans);color:var(--body);background:var(--white);font-size:16.5px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden;overflow-x:clip}
::selection{background:var(--gold);color:var(--ink)}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
h1,h2,h3{font-family:var(--serif);color:var(--ink);font-weight:600;line-height:1.08;margin:0;text-wrap:balance}
p{margin:0}
:focus-visible{outline:2px solid var(--gold-deep);outline-offset:3px;border-radius:4px}
.wrap{max-width:1280px;margin:0 auto;padding:0 clamp(24px,6vw,96px)}
section{position:relative}

/* ---------- loader ---------- */
#loader{position:fixed;inset:0;background:var(--cream);z-index:200;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;transition:opacity .6s ease,visibility .6s}
#loader.done{opacity:0;visibility:hidden}
#loader .l-logo{width:64px;height:64px;border-radius:50%}
#loader .l-word{font-family:var(--serif);font-size:26px;letter-spacing:.42em;color:var(--ink);text-indent:.42em}
#loader .l-bar{width:150px;height:1px;background:var(--line);overflow:hidden}
#loader .l-bar i{display:block;height:100%;width:40%;background:var(--gold);animation:load 1s ease-in-out infinite}
@keyframes load{0%{transform:translateX(-110%)}100%{transform:translateX(400%)}}

/* ---------- cursor (desktop, fine pointer only) ---------- */
#cursorDot,#cursorRing{position:fixed;top:0;left:0;pointer-events:none;z-index:150;border-radius:50%;display:none}
@media(pointer:fine){#cursorDot,#cursorRing{display:block}}
#cursorDot{width:6px;height:6px;background:var(--gold-deep);transform:translate(-50%,-50%)}
#cursorRing{width:34px;height:34px;border:1px solid rgba(184,146,31,.55);transform:translate(-50%,-50%);transition:width .25s,height .25s,border-color .25s,background .25s}
#cursorRing.grow{width:58px;height:58px;background:rgba(212,175,55,.08);border-color:rgba(184,146,31,.9)}

/* ---------- header ---------- */
header{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .35s,box-shadow .35s,border-color .35s;border-bottom:1px solid transparent}
header.scrolled{background:rgba(255,255,255,.9);backdrop-filter:blur(14px);border-color:var(--line-soft)}
.nav{display:flex;align-items:center;gap:28px;height:72px}
.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}
.brand img{width:40px;height:40px;border-radius:50%}
.brand .bname{font-family:var(--serif);font-size:21px;font-weight:700;letter-spacing:.24em;color:var(--ink)}
.brand .bsub{display:block;font-family:var(--sans);font-size:9px;letter-spacing:.18em;color:var(--muted);font-weight:700;margin-top:2px;white-space:nowrap}
.navlinks{display:flex;gap:6px;margin-left:auto}
.navlinks a{padding:10px 13px;font-size:14.5px;font-weight:600;color:var(--body);border-radius:999px;transition:color .2s,background .2s;min-height:40px;display:inline-flex;align-items:center}
.navlinks a:hover,.navlinks a.active{color:var(--ink);background:var(--cream)}
.cartbtn{position:relative;display:inline-flex;align-items:center;gap:8px;background:var(--ink);color:#fff;border:none;border-radius:999px;padding:11px 18px;font-size:14px;font-weight:700;min-height:44px;transition:transform .2s,background .2s}
.cartbtn:hover{background:#2A2410}
.cartbtn .count{background:var(--gold);color:var(--ink);border-radius:999px;min-width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;padding:0 6px}
.burger{display:none;margin-left:auto;background:none;border:1px solid var(--line);border-radius:12px;width:44px;height:44px;align-items:center;justify-content:center}
.burger svg{width:22px;height:22px}
.mobilemenu{display:none;border-top:1px solid var(--line-soft);background:#fff;padding:10px 0 16px}
.mobilemenu.open{display:block}
.mobilemenu a{display:flex;align-items:center;min-height:48px;padding:6px 4px;font-weight:600;color:var(--ink);border-bottom:1px solid var(--line-soft)}
.mobilemenu a:last-child{border-bottom:none}

/* ---------- generic ---------- */
main{padding-top:72px;min-height:70vh}
.view{display:none}
.view.active{display:block;animation:viewin .55s cubic-bezier(.22,.8,.3,1)}
@keyframes viewin{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.kicker{font-size:12px;font-weight:800;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-deep);display:inline-flex;align-items:center;gap:12px}
.kicker::before{content:"";width:34px;height:1px;background:var(--gold)}
.kicker.center::after{content:"";width:34px;height:1px;background:var(--gold)}
.h-display{font-size:clamp(44px,7.2vw,96px);letter-spacing:-.01em}
.h-xl{font-size:clamp(34px,4.6vw,58px)}
.h-lg{font-size:clamp(28px,3.4vw,42px)}
.serif-i{font-style:italic;font-weight:500}
.lede{font-size:clamp(17px,1.6vw,20px);color:var(--body);max-width:620px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:999px;font-weight:700;font-size:15.5px;padding:15px 30px;min-height:52px;border:1px solid transparent;transition:transform .2s,box-shadow .2s,background .2s,color .2s;text-align:center}
.btn-gold{background:var(--gold);color:var(--ink);box-shadow:0 14px 30px -12px rgba(212,175,55,.65)}
.btn-gold:hover{background:var(--gold-light);transform:translateY(-2px)}
.btn-ink{background:var(--ink);color:#fff}
.btn-ink:hover{background:#2A2410;transform:translateY(-2px)}
.btn-ghost{background:transparent;border-color:var(--line);color:var(--ink)}
.btn-ghost:hover{border-color:var(--gold-deep);transform:translateY(-2px)}
.btn-violet{background:var(--violet);color:#fff}
.btn-violet:hover{background:var(--violet-deep);transform:translateY(-2px)}
.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none!important}
.price{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.price .now{font-family:var(--serif);font-size:34px;font-weight:700;color:var(--ink)}
.price .was{font-size:19px;color:var(--muted);text-decoration:line-through}
.offbadge{background:var(--ink);color:var(--gold-light);font-size:12px;font-weight:800;letter-spacing:.08em;padding:5px 10px;border-radius:999px}
.stars{color:var(--gold);letter-spacing:3px;font-size:15px}
.tag{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.muted{color:var(--muted)}
.small{font-size:14px}
.divider{height:1px;background:var(--line);border:none;margin:0}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);align-items:center}
.pad{padding:clamp(64px,9vw,120px) 0}
.pad-sm{padding:clamp(44px,6vw,72px) 0}

/* ---------- hero ---------- */
.hero{background:var(--cream);overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(32px,5vw,80px);align-items:center;padding:clamp(48px,6vw,84px) 0 clamp(64px,7vw,96px)}
#chartCanvas{position:absolute;inset:auto 0 0 0;width:100%;height:46%;opacity:.5;pointer-events:none}
.hero-copy{position:relative;z-index:2}
.hero-copy h1{margin:20px 0 22px}
.hero-copy h1 .gold-i{color:var(--gold-deep)}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}
.hero-note{margin-top:20px;font-size:14px;color:var(--muted);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.bookstage{position:relative;z-index:2;display:flex;justify-content:center;perspective:1200px}
.book3d{position:relative;width:min(360px,78vw);aspect-ratio:2/3;transform-style:preserve-3d;will-change:transform}
.book3d img{width:100%;height:100%;object-fit:cover;border-radius:4px 10px 10px 4px;border:2px solid var(--gold);box-shadow:34px 44px 70px -28px rgba(20,16,5,.45)}
.book3d::before{content:"";position:absolute;top:6px;bottom:6px;right:-16px;width:16px;background:linear-gradient(90deg,#E9E2CE,#FBF8EF);transform:rotateY(38deg);transform-origin:left;border-radius:0 3px 3px 0}
.book3d::after{content:"";position:absolute;left:10px;right:-8px;bottom:-14px;height:14px;background:linear-gradient(180deg,#EFE9DA,#DCD2B8);transform:rotateX(62deg);transform-origin:top;border-radius:3px}
.bookshadow{position:absolute;left:50%;bottom:-58px;transform:translateX(-50%);width:70%;height:26px;background:radial-gradient(ellipse at center,rgba(20,16,5,.32),transparent 70%);filter:blur(4px)}
.floatbadge{position:absolute;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-sm);padding:12px 16px;font-size:13.5px;font-weight:700;color:var(--ink);z-index:3}
.floatbadge small{display:block;font-weight:600;color:var(--muted);font-size:12px}
.fb1{top:6%;left:-4%}
.fb2{bottom:-30px;right:2%}
.trustbar{border-top:1px solid var(--line);background:var(--cream)}
.trustbar .row{display:flex;flex-wrap:wrap;gap:14px 34px;justify-content:center;padding:20px 0}
.trustbar span{display:inline-flex;gap:9px;align-items:center;font-size:14px;font-weight:700;color:var(--ink)}
.trustbar svg{width:17px;height:17px;stroke:var(--gold-deep);flex-shrink:0}

/* ---------- problem / editorial ---------- */
.prob-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-top:48px;background:#fff}
.prob{padding:38px 34px;border-right:1px solid var(--line)}
.prob:last-child{border-right:none}
.prob .num{font-family:var(--serif);font-style:italic;font-size:20px;color:var(--gold-deep)}
.prob h3{font-size:26px;margin:14px 0 10px}
.prob p{font-size:15.5px}

/* ---------- inside ---------- */
.inside{background:var(--ink2);color:#D8D2C2}
.inside h2,.inside h3{color:#fff}
.inside .kicker{color:var(--gold-light)}
.chlist{display:grid;grid-template-columns:1fr 1fr;gap:0 56px;margin-top:14px}
.chrow{display:flex;gap:18px;padding:17px 0;border-bottom:1px solid rgba(255,255,255,.12);align-items:baseline}
.chrow .n{font-family:var(--serif);font-style:italic;color:var(--gold);min-width:82px;font-size:17px}
.chrow b{color:#fff;font-weight:700}
.chrow span{font-size:14.5px;color:#B9B2A0}
.weekgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:26px}
.week{border:1px solid rgba(255,255,255,.16);border-radius:14px;padding:22px 20px;background:rgba(255,255,255,.03)}
.week .w{font-size:11.5px;letter-spacing:.22em;font-weight:800;color:var(--gold-light)}
.week h3{font-size:21px;margin:8px 0 6px}
.week p{font-size:14px;color:#B9B2A0}

/* ---------- cards ---------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.pcard{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .3s,box-shadow .3s}
.pcard:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.pcard .coverbox{background:var(--cream);padding:34px 34px 0;display:block;text-align:center}
.pcard .coverbox img{width:62%;height:auto;object-fit:contain;display:inline-block;vertical-align:top;border-radius:3px 8px 8px 3px;box-shadow:16px 20px 34px -14px rgba(20,16,5,.4)}
.pcard.violet .coverbox{background:var(--violet-soft)}
.pcard .body{padding:26px 28px 30px;display:flex;flex-direction:column;gap:10px;flex:1}
.pcard h3{font-size:25px}
.pcard .sub{font-family:var(--serif);font-style:italic;color:var(--muted);font-size:16px}
.pcard .meta{font-size:13.5px;color:var(--muted);font-weight:600}
.pcard .foot{margin-top:auto;padding-top:14px;display:flex;flex-direction:column;gap:12px}
.reviewcard{background:var(--cream);border:1px solid var(--line-soft);border-radius:var(--radius);padding:32px 30px}
.reviewcard blockquote{font-family:var(--serif);font-style:italic;font-size:19.5px;line-height:1.55;color:var(--ink);margin:14px 0 20px}
.reviewcard .who{display:flex;align-items:center;gap:12px}
.avatar{width:44px;height:44px;border-radius:50%;background:var(--ink);color:var(--gold-light);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:700;font-size:18px}
.verified{color:var(--gold-deep);font-size:12.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}

/* ---------- product page ---------- */
.pd-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(32px,5vw,76px);align-items:start}
.pd-cover{position:sticky;top:104px;background:var(--cream);border:1px solid var(--line-soft);border-radius:var(--radius);padding:clamp(28px,4vw,52px);display:flex;justify-content:center}
.pd-cover img{width:min(340px,80%);height:auto;object-fit:contain;border-radius:4px 10px 10px 4px;box-shadow:24px 30px 50px -20px rgba(20,16,5,.45)}
.pd-cover.violetbg{background:var(--violet-soft)}
.spec{width:100%;border-collapse:collapse;margin-top:8px}
.spec td{padding:12px 4px;border-bottom:1px solid var(--line-soft);font-size:15px;vertical-align:top}
.spec td:first-child{font-weight:800;color:var(--ink);width:38%;padding-right:16px}
.inclist{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.inclist li{display:flex;gap:12px;align-items:flex-start;font-size:15.5px}
.inclist svg{width:19px;height:19px;stroke:var(--gold-deep);flex-shrink:0;margin-top:3px}
.qtyrow{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.qtybox{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.qtybox button{width:44px;height:44px;background:var(--cream);border:none;font-size:18px;color:var(--muted)}
.qtybox .qv{min-width:36px;text-align:center;font-weight:800;color:var(--ink)}
.addon-note{background:#FFF8E1;border:1px solid #EBD98A;border-radius:12px;padding:14px 18px;font-size:14.5px;color:#5C4A08}

/* ---------- faq ---------- */
.faqitem{border-bottom:1px solid var(--line)}
.faqitem button{width:100%;background:none;border:none;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 14px 24px 4px;text-align:left;font-family:var(--serif);font-size:20.5px;font-weight:600;color:var(--ink);min-height:56px}
.faqitem .ans{max-height:0;overflow:hidden;transition:max-height .4s ease}
.faqitem .ans p{padding:0 4px 26px;max-width:760px}
.faqitem .chev{transition:transform .3s;flex-shrink:0;font-family:var(--sans);color:var(--gold-deep);font-size:22px}
.faqitem.open .chev{transform:rotate(45deg)}

/* ---------- blog ---------- */
.bloggrid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}
.blogcard{border:1px solid var(--line);border-radius:var(--radius);padding:34px;background:#fff;transition:transform .3s,box-shadow .3s;display:flex;flex-direction:column;gap:12px}
.blogcard:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.blogcard h3{font-size:27px}
.article{max-width:760px;margin:0 auto}
.article p{margin-bottom:20px;font-size:17.5px}
.article h3{font-size:26px;margin:34px 0 12px}

/* ---------- cart / checkout ---------- */
.cartrow{display:grid;grid-template-columns:86px 1fr auto;gap:20px;padding:24px 0;border-bottom:1px solid var(--line);align-items:center}
.cartrow img{width:86px;height:auto;object-fit:contain;border-radius:3px 6px 6px 3px;box-shadow:var(--shadow-sm)}
.summary{background:var(--cream);border:1px solid var(--line-soft);border-radius:var(--radius);padding:30px}
.summary .line{display:flex;justify-content:space-between;gap:16px;padding:9px 0;font-size:15.5px}
.summary .total{border-top:1px solid var(--line);margin-top:10px;padding-top:16px;font-size:18px;font-weight:800;color:var(--ink)}
.emptybox{text-align:center;padding:70px 24px;border:1px dashed var(--line);border-radius:var(--radius);background:var(--cream)}
.emptybox .ring{width:76px;height:76px;border:1px solid var(--gold);border-radius:50%;margin:0 auto 22px;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-style:italic;font-size:30px;color:var(--gold-deep)}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px}
.step{border:1px solid var(--line);border-radius:var(--radius);padding:28px;background:#fff}
.step .n{width:40px;height:40px;border-radius:50%;background:var(--ink);color:var(--gold-light);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:700;margin-bottom:16px}
.removebtn{background:none;border:none;color:var(--red);font-weight:700;font-size:14px;padding:10px 6px;min-height:40px}

/* ---------- forms ---------- */
.field{display:flex;flex-direction:column;gap:7px;margin-bottom:18px}
.field label{font-size:13.5px;font-weight:800;letter-spacing:.04em;color:var(--ink)}
.field input,.field textarea{border:1px solid var(--line);border-radius:12px;padding:14px 16px;font-family:inherit;font-size:16px;background:#fff;color:var(--ink);min-height:48px}
.field textarea{min-height:130px;resize:vertical}
.field input:focus,.field textarea:focus{outline:2px solid var(--gold);border-color:transparent}

/* ---------- footer ---------- */
footer{background:var(--ink2);color:#B9B2A0;margin-top:0}
footer h4{color:#fff;font-family:var(--sans);font-size:13px;letter-spacing:.22em;text-transform:uppercase;margin:0 0 18px}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding:70px 0 48px}
.foot-grid a{display:block;padding:6px 0;font-size:15px;min-height:36px}
.foot-grid a:hover{color:var(--gold-light)}
.foot-brand{display:flex;gap:14px;align-items:flex-start}
.foot-brand img{width:52px;height:52px;border-radius:50%}
.foot-bottom{border-top:1px solid rgba(255,255,255,.12);padding:24px 0 30px;display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between;font-size:13.5px}

/* ---------- toast ---------- */
#toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,90px);opacity:0;visibility:hidden;pointer-events:none;background:var(--ink);color:#fff;padding:15px 22px;border-radius:999px;font-size:14.5px;font-weight:600;box-shadow:var(--shadow);z-index:160;transition:transform .45s cubic-bezier(.22,.8,.3,1),opacity .3s,visibility 0s .5s;max-width:min(92vw,560px);text-align:center}
#toast.show{transform:translate(-50%,0);opacity:1;visibility:visible;pointer-events:auto;transition:transform .45s cubic-bezier(.22,.8,.3,1),opacity .3s}
#toast a{color:var(--gold-light);text-decoration:underline}

/* ---------- legal ---------- */
.legal{max-width:820px}
.legal h3{font-size:24px;margin:34px 0 10px}
.legal p{margin-bottom:14px}
.draftnote{background:#FFF8E1;border:1px solid #EBD98A;color:#5C4A08;border-radius:12px;padding:14px 18px;font-size:14.5px;margin-bottom:30px}

/* ---------- reveal ---------- */
.rv.in{animation:rvIn .8s cubic-bezier(.22,.8,.3,1) both}
@keyframes rvIn{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}

/* ---------- responsive ---------- */
.splitcart{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(28px,5vw,72px);align-items:start}
.splitcheckout{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,72px);align-items:start}
@media(max-width:1080px){
  .navlinks{display:none}
  .burger{display:inline-flex}
  .hero-grid{grid-template-columns:1fr;padding-top:44px}
  .bookstage{order:-1}
  .book3d{width:min(250px,64vw)}
  .fb1{left:0}.fb2{right:0}
  .cards{grid-template-columns:1fr;max-width:560px;margin:0 auto}
  .prob-grid{grid-template-columns:1fr}
  .prob{border-right:none;border-bottom:1px solid var(--line)}
  .prob:last-child{border-bottom:none}
  .weekgrid{grid-template-columns:repeat(2,1fr)}
  .pd-grid{grid-template-columns:1fr}
  .pd-cover{position:static}
  .grid2{grid-template-columns:1fr}
  .chlist{grid-template-columns:1fr}
  .bloggrid{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  .splitcart,.splitcheckout{grid-template-columns:1fr}
}
@media(max-width:560px){
  .weekgrid{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr}
  .cartrow{grid-template-columns:64px 1fr}
  .cartrow img{width:64px}
  .cartrow .cr-price{grid-column:2}
  .hero-actions .btn{width:100%}
  .floatbadge{display:none}
  .brand .bsub{display:none}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .rv{opacity:1;transform:none}
}
