/* =========================================================================
   Razi CV Builder — marketing site (landing, about, privacy, terms, 404)
   ========================================================================= */
:root{
  --bg:#F2F5F0; --panel:#FFFFFF; --ink:#12231D; --ink-2:#465A52; --ink-3:#74867D;
  --line:#DCE3D9; --line-2:#EBF0E8;
  --brand:#1C4F41; --brand-2:#123329; --brand-3:#0C241C; --brand-tint:#E2EEE8;
  --brass:#B8863C; --brass-2:#D9A95B; --brass-tint:#F5EAD1;
  --f-ui:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --f-display:'Fraunces',Georgia,'Times New Roman',serif;
  --wrap:1160px;
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-ui);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;}
img,svg{max-width:100%;}
a{color:var(--brand);text-underline-offset:3px;}
a:hover{color:var(--brand-2);}
:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:6px;}
::selection{background:var(--brass-tint);color:var(--brand-2);}
.skip-link{position:absolute;left:-999px;top:8px;background:var(--brand-2);color:#fff;padding:8px 14px;border-radius:8px;z-index:200;}
.skip-link:focus{left:8px;}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 24px;}
.ico{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:0 22px;border-radius:12px;
  border:1px solid var(--line);background:#fff;color:var(--ink);font:600 15px/1 var(--f-ui);text-decoration:none;white-space:nowrap;
  transition:background .15s,border-color .15s,transform .1s;
}
.btn:hover{border-color:#BFCABB;color:var(--ink);background:#F7FAF5;}
.btn:active{transform:translateY(1px);}
.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff;}
.btn.primary:hover{background:var(--brand-2);border-color:var(--brand-2);color:#fff;}
.btn.brass{background:var(--brass);border-color:var(--brass);color:var(--brand-3);}
.btn.brass:hover{background:var(--brass-2);border-color:var(--brass-2);color:var(--brand-3);}
.btn.lg{min-height:54px;padding:0 28px;font-size:16px;border-radius:14px;}
.btn.sm{min-height:38px;padding:0 16px;font-size:14px;border-radius:10px;}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(242,245,240,.88);backdrop-filter:saturate(1.2) blur(12px);-webkit-backdrop-filter:saturate(1.2) blur(12px);border-bottom:1px solid var(--line);}
.site-header .wrap{display:flex;align-items:center;gap:28px;min-height:68px;}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);}
.brand:hover{color:var(--ink);}
.brand-mark{width:34px;height:34px;border-radius:10px;background:var(--brand-2);color:var(--brass);display:grid;place-items:center;font-family:var(--f-display);font-weight:700;font-size:20px;box-shadow:inset 0 0 0 2px var(--brass);}
.brand-name{font-family:var(--f-display);font-weight:600;font-size:20px;letter-spacing:-.01em;white-space:nowrap;}
.nav{display:flex;gap:26px;margin-left:auto;align-items:center;}
.nav a{color:var(--ink-2);text-decoration:none;font-weight:500;font-size:15px;}
.nav a:hover,.nav a[aria-current="page"]{color:var(--brand);}
.site-header .btn{margin-left:4px;}

/* ---------- Hero ---------- */
.hero{padding:72px 0 88px;overflow:hidden;}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:56px;align-items:center;}
.hero h1{font-family:var(--f-display);font-weight:600;font-size:clamp(38px,4.7vw,58px);line-height:1.06;letter-spacing:-.025em;margin:0 0 22px;color:var(--brand-2);}
.hero .lead{font-size:clamp(17px,1.6vw,20px);line-height:1.6;color:var(--ink-2);max-width:34em;margin:0 0 32px;}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;}
.assure{display:flex;flex-wrap:wrap;gap:8px 24px;list-style:none;margin:30px 0 0;padding:0;color:var(--ink-2);font-size:14.5px;}
.assure li{display:flex;align-items:center;gap:8px;}
.assure .ico{color:var(--brand);width:17px;height:17px;stroke-width:2.4;}

.mock{--k:.56;position:relative;width:calc(794px * var(--k));height:calc(1123px * var(--k));flex:none;}
.mock > .a4-page{position:absolute;left:0;top:0;transform:scale(var(--k));transform-origin:0 0;box-shadow:0 2px 4px rgba(18,35,29,.08),0 30px 60px -20px rgba(18,35,29,.45);}
.hero-visual{position:relative;height:calc(1123px * .56 + 50px);}
.hero-visual .mock{position:absolute;}
.hero-visual .front{left:2%;top:26px;transform:rotate(-2.2deg);z-index:2;}
.hero-visual .back{left:38%;top:0;transform:rotate(3.4deg);z-index:1;}

/* ---------- Sections ---------- */
.section{padding:88px 0;}
.section-head{max-width:640px;margin:0 0 44px;}
.section h2{font-family:var(--f-display);font-weight:600;font-size:clamp(30px,3.6vw,44px);line-height:1.1;letter-spacing:-.02em;margin:0 0 14px;color:var(--brand-2);}
.section-head p{margin:0;color:var(--ink-2);font-size:18px;}

.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);}
.step{padding:28px 32px 8px 0;}
.step + .step{padding-left:32px;border-left:1px solid var(--line);}
.step .n{font-family:var(--f-display);font-size:44px;line-height:1;color:var(--brass);font-weight:500;}
.step h3{margin:14px 0 8px;font-size:20px;letter-spacing:-.01em;}
.step p{margin:0;color:var(--ink-2);}

.gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;}
.gallery a{text-decoration:none;color:inherit;display:block;}
.gallery figure{margin:0;}
.gallery .frame{position:relative;width:100%;aspect-ratio:794/1123;overflow:hidden;border-radius:2px;}
.gallery .frame .a4-page{position:absolute;left:0;top:0;transform-origin:0 0;box-shadow:0 1px 3px rgba(18,35,29,.1),0 22px 44px -22px rgba(18,35,29,.45);}
.gallery figcaption{margin-top:16px;}
.gallery figcaption b{display:block;font-size:17px;}
.gallery figcaption span{display:block;color:var(--ink-2);font-size:14.5px;margin-top:2px;}

.band{background:var(--brand-2);color:#DCE9E2;}
.band .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:center;}
.band h2{color:#fff;}
.band p{color:#B9CFC5;font-size:18px;margin:0 0 16px;}
.band .note{font-size:15px;color:#94B0A3;}
.band ul{list-style:none;margin:0;padding:0;}
.band li{padding:20px 0;border-top:1px solid rgba(255,255,255,.14);display:flex;gap:16px;align-items:flex-start;}
.band li:last-child{border-bottom:1px solid rgba(255,255,255,.14);}
.band li .ico{color:var(--brass-2);margin-top:3px;width:22px;height:22px;}
.band li b{display:block;color:#fff;font-size:17px;margin-bottom:2px;}
.band li span{color:#B9CFC5;font-size:15.5px;}

.features{display:grid;grid-template-columns:1fr 1fr;gap:0 64px;}
.feature{padding:24px 0;border-top:1px solid var(--line);}
.feature h3{margin:0 0 6px;font-size:18px;letter-spacing:-.005em;}
.feature p{margin:0;color:var(--ink-2);}

.faq{max-width:780px;}
.faq details{border-top:1px solid var(--line);}
.faq details:last-child{border-bottom:1px solid var(--line);}
.faq summary{list-style:none;cursor:pointer;padding:22px 40px 22px 0;font-weight:600;font-size:18px;position:relative;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:'';position:absolute;right:6px;top:50%;width:10px;height:10px;border:solid var(--ink-3);border-width:0 2px 2px 0;transform:translateY(-70%) rotate(45deg);transition:transform .2s;}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg);}
.faq details p{margin:0 0 22px;color:var(--ink-2);max-width:42em;}

.final{background:var(--brand-3);color:#fff;text-align:center;padding:88px 0;}
.final h2{font-family:var(--f-display);font-weight:600;font-size:clamp(32px,4.4vw,52px);line-height:1.08;letter-spacing:-.02em;color:#fff;margin:0 auto 12px;max-width:16em;}
.final p{color:#B9CFC5;font-size:18px;margin:0 0 30px;}

/* ---------- Footer ---------- */
.site-footer{background:var(--brand-3);color:#94B0A3;padding:44px 0 36px;font-size:14.5px;border-top:1px solid rgba(255,255,255,.08);}
.site-footer .wrap{display:flex;flex-wrap:wrap;gap:24px 48px;justify-content:space-between;}
.site-footer .brand{color:#fff;}
.site-footer .brand-mark{background:var(--brand-2);}
.site-footer p{margin:10px 0 0;max-width:30em;color:#94B0A3;}
.site-footer nav{display:flex;flex-wrap:wrap;gap:8px 26px;align-items:flex-start;}
.site-footer nav a{color:#C6D8CF;text-decoration:none;}
.site-footer nav a:hover{color:#fff;text-decoration:underline;}
.site-footer .legal{width:100%;padding-top:22px;border-top:1px solid rgba(255,255,255,.1);font-size:13.5px;}

/* ---------- Document pages (about / privacy / terms) ---------- */
.doc{max-width:760px;margin:0 auto;padding:64px 24px 96px;}
.doc h1{font-family:var(--f-display);font-weight:600;font-size:clamp(34px,4.6vw,50px);line-height:1.08;letter-spacing:-.02em;margin:0 0 10px;color:var(--brand-2);}
.doc .meta{color:var(--ink-3);font-size:14px;margin:0 0 34px;}
.doc .lede{font-size:19px;color:var(--ink-2);margin:0 0 28px;}
.doc h2{font-family:var(--f-display);font-weight:600;font-size:24px;letter-spacing:-.01em;margin:40px 0 10px;color:var(--brand-2);}
.doc p,.doc li{color:var(--ink-2);}
.doc ul{padding-left:22px;}
.doc li{margin:6px 0;}
.doc .panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:6px 24px;margin:28px 0;}
.doc code{background:var(--line-2);padding:1px 6px;border-radius:5px;font-size:.92em;}

/* ---------- 404 ---------- */
.nf{min-height:calc(100vh - 68px);display:grid;place-items:center;text-align:center;padding:48px 24px;}
.nf .code{font-family:var(--f-display);font-size:clamp(84px,18vw,160px);line-height:1;color:var(--brass);font-weight:600;letter-spacing:-.04em;}
.nf h1{font-family:var(--f-display);font-weight:600;font-size:clamp(26px,4vw,36px);margin:8px 0 12px;color:var(--brand-2);letter-spacing:-.01em;}
.nf p{color:var(--ink-2);max-width:26em;margin:0 auto 26px;}

/* =========================================================================
   Responsive
   ========================================================================= */
@media (max-width:980px){
  .hero{padding:48px 0 64px;}
  .hero .wrap{grid-template-columns:1fr;gap:36px;}
  .hero-visual{height:calc(1123px * .5 + 40px);max-width:560px;margin:0 auto;width:100%;}
  .hero-visual .mock{--k:.5;}
  .hero-visual .back{left:40%;}
  .gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 24px;}
  .band .wrap{grid-template-columns:1fr;gap:36px;}
  .features{grid-template-columns:1fr;}
  .section{padding:68px 0;}
}
@media (max-width:720px){
  .nav a:not(.btn){display:none;}
  .nav{margin-left:auto;}
  .site-header .wrap{gap:12px;min-height:62px;}
  .steps{grid-template-columns:1fr;}
  .step,.step + .step{padding:24px 0 8px;border-left:0;}
  .step + .step{border-top:1px solid var(--line);}
  .hero-visual{height:calc(1123px * .4 + 34px);}
  .hero-visual .mock{--k:.4;}
  .hero-visual .back{left:44%;}
  .hero-visual .front{left:0;}
  .cta-row .btn{flex:1 1 100%;}
}
@media (max-width:420px){
  .wrap{padding:0 18px;}
  .brand-name{font-size:18px;}
  .hero-visual{height:calc(1123px * .34 + 30px);}
  .hero-visual .mock{--k:.34;}
  .gallery{gap:28px 14px;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{transition:none !important;animation:none !important;}
}
