:root{
  --coffee-950:#1c1410;
  --coffee-900:#2c1e16;
  --coffee-800:#5c3a21;
  --coffee-600:#8a5a35;
  --coffee-500:#c08267;
  --coffee-200:#e8d5c4;
  --coffee-100:#f2e8e5;
  --coffee-50:#fdf8f6;
  --brand:#3498db;
  --brand-dark:#2678b3;
  --green:#0f9d68;
  --green-soft:#e7f8f1;
  --red:#e0503a;
  --red-soft:#fdece8;
  --ink:#241a14;
  --paper:#fdf8f6;
  --line: rgba(44,30,22,0.10);
  --mono: 'JetBrains Mono', monospace;
  --sans: 'Inter', sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  position:relative;
}
img{max-width:100%;display:block;}
a{color:inherit;}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px;}
@media(max-width:640px){.wrap{padding:0 18px;}}

/* subtle film-grain so flat coffee tones don't look like a flat gradient template */
.grain{
  position:fixed; inset:0; pointer-events:none; z-index:2; opacity:0.035; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- NAV ---------- */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  background:rgba(253,248,246,0.88);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  transition: background .25s ease, border-color .25s ease;
}
.nav.on-cinema{
  background:transparent; border-bottom-color:transparent;
}
.nav.on-cinema .brand-word{ color:#fbfaf3; }
.nav.on-cinema .nav-links{ color:#e4d8c6; }
.nav.on-cinema .nav-cta{ background:rgba(255,255,255,0.12); backdrop-filter:blur(6px); }
.nav.on-cinema .nav-cta:hover{ background:rgba(255,255,255,0.2); }
.nav-inner{display:flex; align-items:center; justify-content:space-between; height:76px;}
.brand{display:flex; align-items:center; gap:10px; cursor:pointer;}
.brand-mark{
  width:38px;height:38px;border-radius:11px;
  background:linear-gradient(155deg, var(--coffee-800), var(--coffee-950));
  display:flex;align-items:center;justify-content:center;
  color:var(--coffee-200); font-size:17px;
  box-shadow: 0 4px 14px rgba(44,30,22,0.28);
}
.brand-word{font-weight:800; font-size:21px; letter-spacing:-0.02em; color:var(--coffee-900);}
.brand-word span{color:var(--coffee-500);}
.nav-links{display:flex; gap:34px; font-weight:600; font-size:14.5px; color:var(--coffee-800);}
.nav-links a{text-decoration:none; opacity:0.75; transition:opacity .15s;}
.nav-links a:hover{opacity:1;}
.nav-cta{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--coffee-900); color:#fff; font-weight:700; font-size:14.5px;
  padding:11px 20px; border-radius:11px; text-decoration:none;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
  box-shadow:0 6px 16px rgba(44,30,22,0.2);
}
.nav-cta:hover{transform:translateY(-1px); background:var(--coffee-950); box-shadow:0 10px 22px rgba(44,30,22,0.28);}
@media(max-width:860px){.nav-links{display:none;}}

/* ---------- SİNEMATİK HERO ---------- */
.cinema-hero{
  position:relative; height:100vh; min-height:640px; max-height:980px;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  overflow:hidden; background:var(--coffee-950);
}
.cinema-bg{position:absolute; inset:0; z-index:0;}
.cinema-bg video{
  width:100%; height:100%; object-fit:cover;
  opacity:0; animation: cinemaFadeIn 1.6s ease 0.1s forwards;
}
.cinema-overlay{
  position:absolute; inset:0;
  background:linear-gradient(135deg, rgba(28,18,12,0.92) 0%, rgba(62,42,32,0.55) 55%, rgba(192,130,103,0.28) 100%);
}
@keyframes cinemaFadeIn{ to{ opacity:1; } }

.cinema-content{
  position:relative; z-index:2; text-align:center; padding:0 24px 56px;
  max-width:920px; margin:0 auto;
}

.cinema-wordmark{
  font-family:var(--mono);
  font-size:clamp(1.4rem, 4vw, 2.6rem);
  font-weight:700;
  letter-spacing:0.28em;
  color:#fbfaf3;
  margin:0 auto 22px;
  text-transform:uppercase;
  text-indent:0.28em; /* letter-spacing sağa kaydırdığı için ortalamayı düzeltir */
}
.wl{
  display:inline-block; opacity:0; transform:translateY(16px);
  animation: letterIn 0.55s ease forwards;
  animation-delay: calc(0.9s + (var(--i) * 0.07s));
  text-shadow:0 0 18px rgba(192,130,103,0.4);
}
@keyframes letterIn{ to{ opacity:1; transform:translateY(0); } }

.cinema-title{
  font-size:clamp(1.7rem, 4.4vw, 3.4rem); line-height:1.12; letter-spacing:-0.03em; font-weight:800;
  color:#fbfaf3; margin:0 0 20px;
}
.cinema-title .hl{ color:var(--coffee-500); }
.cw{
  display:inline-block; opacity:0; transform:translateY(14px);
  animation: wordIn 0.6s ease forwards;
  animation-delay: calc(2.2s + (var(--d) * 0.08s));
}
@keyframes wordIn{ to{ opacity:1; transform:translateY(0); } }

.cinema-cta{
  opacity:0; transform:translateY(10px);
  animation: ctaIn 0.7s ease 3.2s forwards;
}
.cinema-cta p{
  font-size:15.5px; line-height:1.55; color:#e4d8c6; max-width:480px; margin:0 auto 22px;
}
@keyframes ctaIn{ to{ opacity:1; transform:translateY(0); } }

.cinema-scroll{
  position:absolute; left:50%; bottom:20px; transform:translateX(-50%);
  z-index:2; display:flex; flex-direction:column; align-items:center; gap:8px;
  color:#e4d8c6; opacity:0;
  animation: ctaIn 0.7s ease 3.6s forwards;
}
.cinema-scroll span{ font-family:var(--mono); font-size:10px; letter-spacing:0.12em; text-transform:uppercase; opacity:0.75; }
.cinema-scroll svg{ width:18px; height:30px; }
.scroll-dot{ animation: scrollDot 1.8s ease-in-out infinite; }
@keyframes scrollDot{ 0%{ transform:translateY(0); opacity:1; } 60%{ transform:translateY(14px); opacity:0; } 100%{ transform:translateY(0); opacity:0; } }

@media(max-width:640px){
  .cinema-hero{ height:100svh; }
  .cinema-wordmark{ letter-spacing:0.18em; }
}

@media (prefers-reduced-motion: reduce){
  .cinema-bg video, .wl, .cw, .cinema-cta, .cinema-scroll, .cinema-wordmark{
    animation:none !important; opacity:1 !important; transform:none !important;
  }
}

/* ---------- HERO (Panel Önizleme) ---------- */
.hero{
  padding:100px 0 90px; position:relative; overflow:hidden;
  background:
    radial-gradient(ellipse 900px 500px at 12% -10%, rgba(192,130,103,0.16), transparent 60%),
    radial-gradient(ellipse 750px 520px at 105% 5%, rgba(52,152,219,0.12), transparent 55%),
    var(--paper);
}
.hero-grid{display:grid; grid-template-columns: 1.02fr 0.98fr; gap:56px; align-items:center;}
@media(max-width:980px){.hero-grid{grid-template-columns:1fr; gap:52px;}}

.eyebrow{
  display:inline-flex; align-items:center; gap:9px;
  font-family:var(--mono); font-size:12.5px; font-weight:600; letter-spacing:0.02em;
  color:var(--coffee-800); background:#fff; border:1px solid var(--line);
  padding:7px 14px 7px 11px; border-radius:100px; margin-bottom:26px;
  box-shadow:0 2px 8px rgba(44,30,22,0.05);
}
.eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--green); box-shadow:0 0 0 3px var(--green-soft);}

.hero h1, .hero .hero-h2{
  font-size:clamp(2.4rem, 4.3vw, 3.65rem);
  line-height:1.08; letter-spacing:-0.03em; font-weight:800;
  color:var(--coffee-950); margin:0 0 22px;
}
.hero h1 .hl, .hero .hero-h2 .hl{
  color:var(--brand);
}
.hero p.lead{font-size:18px; line-height:1.65; color:#4a3a30; max-width:540px; margin:0 0 34px;}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:38px;}
.btn-primary{
  display:inline-flex; align-items:center; gap:10px;
  background:var(--brand); color:#fff; font-weight:700; font-size:15.5px;
  padding:15px 26px; border-radius:12px; text-decoration:none;
  box-shadow:0 10px 24px rgba(52,152,219,0.3);
  transition:transform .15s ease, box-shadow .15s ease;
}
.btn-primary:hover{transform:translateY(-2px); box-shadow:0 14px 30px rgba(52,152,219,0.38);}
.btn-ghost{
  display:inline-flex; align-items:center; gap:8px;
  background:#fff; color:var(--coffee-900); font-weight:700; font-size:15.5px;
  padding:15px 24px; border-radius:12px; text-decoration:none;
  border:1.5px solid var(--line);
  transition:border-color .15s ease, transform .15s ease;
}
.btn-ghost:hover{border-color:var(--coffee-500); transform:translateY(-2px);}

.hero-microstats{display:flex; gap:28px; flex-wrap:wrap;}
.hero-microstats div{font-size:13px; color:#6b5a4d;}
.hero-microstats b{display:block; font-size:18px; font-weight:800; color:var(--coffee-900); font-family:var(--mono);}

/* ---- Terminal card (signature visual) ---- */
.hero-visual{position:relative;}
.terminal-card{
  position:relative;
  background:linear-gradient(165deg, var(--coffee-950), var(--coffee-900) 55%, #2a1d14);
  border-radius:22px;
  padding:26px 24px 22px;
  box-shadow: 0 30px 60px -18px rgba(28,20,16,0.5), 0 2px 0 rgba(255,255,255,0.04) inset;
  color:#fff;
}
.terminal-head{display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:10px;}
.term-lbl{font-family:var(--mono); font-size:11.5px; letter-spacing:0.04em; color:var(--coffee-200); opacity:0.8; text-transform:uppercase;}
.term-sub{font-weight:700; font-size:15px; margin-top:4px;}
.term-badge{
  display:inline-flex; align-items:center; gap:6px;
  font-family:var(--mono); font-size:10.5px; font-weight:700; letter-spacing:0.04em;
  color:var(--green); background:rgba(15,157,104,0.16); padding:5px 10px 5px 8px; border-radius:100px;
}
.term-dot{width:6px;height:6px;border-radius:50%;background:var(--green); animation:pulse 1.8s ease-in-out infinite;}
@keyframes pulse{0%,100%{opacity:1;} 50%{opacity:0.35;}}

.term-svg{width:100%; height:auto; margin-top:6px;}
.grid-line{stroke:rgba(255,255,255,0.06); stroke-width:1;}
.trend-area{opacity:0; animation: fadeIn 0.6s ease 0.4s forwards;}
.trend-line{
  fill:none; stroke:#3498db; stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round;
  stroke-dasharray:700; stroke-dashoffset:700;
  animation: drawLine 1.4s cubic-bezier(.65,0,.35,1) 0.15s forwards;
}
.trend-pts circle{ fill:#1c1410; stroke:#3498db; stroke-width:2; r:3.5; opacity:0; animation: fadeIn 0.4s ease forwards; }
.trend-pts circle:nth-child(1){animation-delay:.2s;}
.trend-pts circle:nth-child(2){animation-delay:.42s;}
.trend-pts circle:nth-child(3){animation-delay:.64s;}
.trend-pts circle:nth-child(4){animation-delay:.86s;}
.trend-pts circle:nth-child(5){animation-delay:1.08s;}
.trend-pts circle:nth-child(6){animation-delay:1.3s;}
.trend-pts .pt-now{ fill:#3498db; stroke:#fff; r:5; }
@keyframes drawLine{ to{ stroke-dashoffset:0; } }
@keyframes fadeIn{ to{ opacity:1; } }

.term-months{display:flex; justify-content:space-between; font-family:var(--mono); font-size:10.5px; color:var(--coffee-200); opacity:0.55; padding:0 3px; margin-top:2px;}
.term-stats{display:flex; justify-content:space-between; gap:10px; margin-top:16px; padding-top:14px; border-top:1px solid rgba(255,255,255,0.09);}
.term-stat{display:flex; flex-direction:column; gap:4px;}
.tl{font-family:var(--mono); font-size:10px; text-transform:uppercase; letter-spacing:0.03em; color:var(--coffee-200); opacity:0.7;}
.tv{font-family:var(--mono); font-size:16.5px; font-weight:700; color:#fff;}
.tv.green{color:#4ade9a;}
.tv.red{color:#f0897a;}

.floating-chip{
  position:absolute; background:#fff; border-radius:14px; padding:12px 15px;
  box-shadow:0 16px 34px -10px rgba(44,30,22,0.3); border:1px solid var(--line);
  display:flex; align-items:center; gap:10px; z-index:3;
}
.floating-chip .ic{width:34px;height:34px;border-radius:9px; display:flex;align-items:center;justify-content:center; font-size:15px;}
.floating-chip .t1{font-size:10.5px; color:#8a7a6d; font-weight:600; text-transform:uppercase; letter-spacing:0.03em;}
.floating-chip .t2{font-size:14.5px; font-weight:800; color:var(--coffee-900); font-family:var(--mono);}
.chip-a{ top:-16px; right:-10px; }
.chip-a .ic{background:var(--green-soft); color:var(--green);}
.chip-b{ bottom:-18px; left:-14px; }
.chip-b .ic{background:#e9f4fc; color:var(--brand);}
@media(max-width:980px){ .floating-chip{display:none;} }

/* ---------- TRUST STRIP ---------- */
.strip{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#fff; padding:26px 0;}
.strip-inner{display:flex; align-items:center; justify-content:center; gap:44px; flex-wrap:wrap; font-family:var(--mono); font-size:13px; color:#93857a; font-weight:500;}
.strip-inner i{margin-right:7px; color:var(--coffee-500);}

/* ---------- SECTION HEADS ---------- */
.section{padding:104px 0;}
.section.tight{padding:88px 0;}
.sec-head{max-width:640px; margin:0 0 58px;}
.sec-eyebrow{font-family:var(--mono); font-size:12.5px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--brand); margin-bottom:14px; display:block;}
.sec-eyebrow.light{color:#7cc4f0;}
.sec-head h2{font-size:clamp(1.9rem,3vw,2.6rem); font-weight:800; letter-spacing:-0.025em; color:var(--coffee-950); margin:0 0 16px; line-height:1.15;}
.sec-head p{font-size:17px; line-height:1.6; color:#5c4b3e; margin:0;}
.sec-head p.light{color:#cbbfb4;}
.sec-head.center{margin-left:auto; margin-right:auto; text-align:center;}

/* ---------- POSITIONING (why us) ---------- */
.positioning{background:var(--coffee-50);}
.positioning-grid{display:grid; grid-template-columns:0.85fr 1.15fr; gap:52px; align-items:start;}
@media(max-width:900px){.positioning-grid{grid-template-columns:1fr;}}
.pos-side h2{font-size:clamp(1.7rem,2.6vw,2.15rem); font-weight:800; letter-spacing:-0.02em; color:var(--coffee-950); margin:0; line-height:1.25;}
.pos-cards{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
@media(max-width:640px){.pos-cards{grid-template-columns:1fr;}}
.pos-card{border-radius:18px; padding:26px 24px; border:1.5px solid var(--line);}
.pos-card.dim{background:#fff; opacity:0.72;}
.pos-card.lit{background:var(--coffee-950); border-color:var(--coffee-950); box-shadow:0 26px 50px -20px rgba(44,30,22,0.35);}
.pos-card-top{display:flex; align-items:center; gap:10px; margin-bottom:18px; font-weight:800; font-size:15.5px;}
.pos-card.dim .pos-card-top{color:var(--coffee-900);}
.pos-card.lit .pos-card-top{color:#fff;}
.pos-card-top i{font-size:16px; color:var(--coffee-500);}
.pos-card ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px;}
.pos-card li{display:flex; gap:10px; align-items:flex-start; font-size:14px; line-height:1.5;}
.pos-card.dim li{color:#7a6a5c;}
.pos-card.dim li i{color:#b7a99c; margin-top:3px; font-size:12px;}
.pos-card.dim li.no i{color:#d18b7d;}
.pos-card.lit li{color:#e8ddd3;}
.pos-card.lit li i{color:var(--brand); margin-top:3px; font-size:12px;}

/* ---------- FEATURE GRID ---------- */
.feat-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
@media(max-width:900px){.feat-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.feat-grid{grid-template-columns:1fr;}}
.feat{
  background:#fff; border:1px solid var(--line); border-radius:18px; padding:30px 26px;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.feat:hover{ transform:translateY(-4px); box-shadow:0 20px 40px -18px rgba(44,30,22,0.18); border-color:transparent;}
.feat-ic{width:46px;height:46px;border-radius:13px; display:flex;align-items:center;justify-content:center; font-size:19px; margin-bottom:18px;}
.feat h3{font-size:17.5px; font-weight:700; color:var(--coffee-950); margin:0 0 10px; letter-spacing:-0.01em;}
.feat p{font-size:14.5px; line-height:1.6; color:#6b5a4d; margin:0;}
.ic-green{background:#e7f8f1; color:var(--green);}
.ic-blue{background:#e9f4fc; color:var(--brand);}
.ic-brown{background:var(--coffee-100); color:var(--coffee-800);}
.ic-amber{background:#fef3e2; color:#c9862c;}

/* ---------- B2B SHOWCASE (main narrative) ---------- */
.b2b-section{
  background: var(--coffee-950); color:#fff; position:relative; overflow:hidden;
}
.b2b-glow{
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 800px 460px at 88% -8%, rgba(52,152,219,0.22), transparent 60%),
    radial-gradient(ellipse 600px 400px at 5% 100%, rgba(192,130,103,0.14), transparent 55%);
  pointer-events:none;
}
.b2b-wrap{position:relative;}
.b2b-head{margin-left:auto; margin-right:auto;}
.b2b-showcase{display:grid; grid-template-columns:1.05fr 0.95fr; gap:56px; align-items:center;}
@media(max-width:980px){.b2b-showcase{grid-template-columns:1fr;}}

.b2b-list{display:flex; flex-direction:column; gap:22px; list-style:none; margin:0; padding:0;}
.b2b-list li{display:flex; gap:14px; align-items:flex-start;}
.b2b-list .chk{width:24px;height:24px;border-radius:7px; background:rgba(52,152,219,0.18); color:#7cc4f0; display:flex;align-items:center;justify-content:center; font-size:12px; flex-shrink:0; margin-top:2px;}
.b2b-list strong{display:block; font-size:15.5px; color:#fff; margin-bottom:4px;}
.b2b-list span{font-size:14px; color:#a99a8d; line-height:1.55;}

/* Mock dashboard panel */
.mock{
  background:var(--coffee-50); border-radius:20px; padding:22px;
  box-shadow:0 40px 80px -24px rgba(0,0,0,0.55);
  border:1px solid rgba(255,255,255,0.06);
}
.mock-topbar{display:flex; justify-content:space-between; align-items:center; margin-bottom:18px;}
.mock-title{font-weight:800; font-size:16px; color:var(--coffee-950);}
.mock-badge{
  display:inline-flex; align-items:center; gap:6px;
  font-family:var(--mono); font-size:11px; font-weight:700; color:var(--green); background:var(--green-soft);
  padding:5px 10px; border-radius:100px;
}
.mock-cards{display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-bottom:14px;}
.mock-card{background:#fff; border-radius:13px; padding:14px 16px; border-left:3px solid var(--coffee-500);}
.mock-card.blue{border-left-color:var(--brand);}
.mock-card.red{border-left-color:var(--red);}
.mock-card.green{border-left-color:var(--green);}
.mock-card .lbl{font-size:10px; font-weight:700; letter-spacing:0.03em; text-transform:uppercase; color:#9a8b7d; margin-bottom:6px;}
.mock-card .val{font-family:var(--mono); font-size:19px; font-weight:700; color:var(--coffee-950);}
.mock-card .val small{font-size:11px; font-weight:600; color:#9a8b7d;}
.mock-card .sub{font-size:11px; color:#a2917f; margin-top:3px;}
.mock-table{background:#fff; border-radius:13px; overflow:hidden; border:1px solid var(--line);}
.mock-row{display:grid; grid-template-columns: 1.3fr 0.6fr 0.9fr 0.8fr; gap:8px; padding:11px 14px; font-size:12.5px; align-items:center; border-bottom:1px solid var(--line);}
.mock-row:last-child{border-bottom:none;}
.mock-row.head{background:var(--coffee-50); font-weight:700; color:#8a7a6d; font-size:10.5px; text-transform:uppercase; letter-spacing:0.02em;}
.mock-row .co{font-weight:700; color:var(--coffee-950);}
.mock-row .tag{font-size:10.5px; font-weight:700; padding:3px 8px; border-radius:100px; display:inline-block;}
.tag-open{background:var(--red-soft); color:var(--red);}
.tag-paid{background:var(--green-soft); color:var(--green);}

/* ---------- FLOW / HOW IT WORKS ---------- */
.flow{display:grid; grid-template-columns:repeat(4,1fr); gap:0; position:relative;}
@media(max-width:900px){.flow{grid-template-columns:1fr; gap:36px;}}
.flow-step{position:relative; padding:0 20px 0 0;}
.flow-step:first-child{padding-left:0;}
.flow-num{font-family:var(--mono); font-size:13px; font-weight:700; color:var(--coffee-500); margin-bottom:14px;}
.flow-step h4{font-size:16.5px; font-weight:700; color:var(--coffee-950); margin:0 0 10px;}
.flow-step p{font-size:14px; line-height:1.55; color:#6b5a4d; margin:0;}
.flow-arrow{position:absolute; top:8px; right:-6px; color:var(--coffee-200); font-size:20px;}
@media(max-width:900px){.flow-arrow{display:none;}}

/* ---------- ABOUT ---------- */
.about{ background:var(--coffee-100); }
.about-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center;}
@media(max-width:900px){.about-grid{grid-template-columns:1fr;}}
.about h2{font-size:clamp(1.8rem,2.8vw,2.4rem); font-weight:800; letter-spacing:-0.02em; color:var(--coffee-950); margin:0 0 22px; line-height:1.18;}
.about p{font-size:16.5px; line-height:1.7; color:#5c4b3e; margin:0 0 18px;}
.about-stats{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:32px;}
.about-stat b{display:block; font-family:var(--mono); font-size:26px; font-weight:700; color:var(--coffee-900);}
.about-stat span{font-size:12.5px; color:#7a6a5c; font-weight:600;}
.about-visual{position:relative; border-radius:20px; overflow:hidden; aspect-ratio:4/5; background:var(--coffee-900);}
.about-visual img{width:100%; height:100%; object-fit:cover; opacity:0.85;}
.about-visual .overlay{position:absolute; inset:0; background:linear-gradient(0deg, rgba(28,20,16,0.75), transparent 45%);}
.about-visual .cap{position:absolute; bottom:22px; left:22px; right:22px; color:#fff;}
.about-visual .cap b{display:block; font-size:15px; font-weight:700; margin-bottom:4px;}
.about-visual .cap span{font-size:12.5px; color:var(--coffee-200);}

/* ---------- CONTACT ---------- */
.contact-card{
  background:#fff; border-radius:24px; padding:52px; border:1px solid var(--line);
  box-shadow:0 30px 70px -30px rgba(44,30,22,0.18);
}
@media(max-width:640px){.contact-card{padding:30px 22px;}}
.contact-layout{display:grid; grid-template-columns:1.3fr 1fr; gap:48px;}
@media(max-width:760px){.contact-layout{grid-template-columns:1fr;}}
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:20px;}
@media(max-width:640px){.contact-grid{grid-template-columns:1fr;}}
label{display:block; font-size:13px; font-weight:700; color:var(--coffee-900); margin-bottom:8px;}
input,textarea{
  width:100%; padding:13px 15px; border-radius:11px; border:1.5px solid var(--line);
  font-family:var(--sans); font-size:14.5px; color:var(--ink); background:var(--coffee-50);
  outline:none; transition:border-color .15s ease, background .15s ease;
}
input:focus,textarea:focus{border-color:var(--brand); background:#fff;}
textarea{resize:vertical; min-height:110px;}
.submit-btn{
  width:100%; background:var(--coffee-900); color:#fff; font-weight:700; font-size:15.5px;
  padding:16px; border-radius:12px; border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center; gap:10px;
  transition:background .15s ease, transform .15s ease;
}
.submit-btn:hover{background:var(--coffee-950); transform:translateY(-1px);}
.submit-btn:disabled{opacity:0.7; cursor:default; transform:none;}
.contact-side{display:flex; flex-direction:column; gap:22px; justify-content:center;}
.contact-item{display:flex; gap:14px; align-items:flex-start;}
.contact-item .ic{width:40px;height:40px;border-radius:11px; background:var(--coffee-100); color:var(--coffee-800); display:flex;align-items:center;justify-content:center; flex-shrink:0;}
.contact-item b{display:block; font-size:14.5px; color:var(--coffee-950); margin-bottom:3px;}
.contact-item span{font-size:13.5px; color:#7a6a5c;}

/* ---------- FOOTER ---------- */
footer{background:var(--coffee-950); color:#a99a8d; padding:52px 0 34px;}
.footer-inner{display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap; padding-bottom:30px; border-bottom:1px solid rgba(255,255,255,0.08); margin-bottom:24px;}
.footer-brand{display:flex; align-items:center; gap:10px;}
.footer-brand .brand-mark{background:rgba(255,255,255,0.08); box-shadow:none;}
.footer-brand span{font-weight:800; font-size:19px; color:#fff;}
.social{display:flex; gap:10px;}
.social a{width:38px;height:38px;border-radius:50%; background:rgba(255,255,255,0.06); display:flex;align-items:center;justify-content:center; text-decoration:none; color:#cbbfb4; transition:background .15s ease, color .15s ease;}
.social a:hover{background:var(--brand); color:#fff;}
.footer-bottom{display:flex; justify-content:space-between; font-size:13px; flex-wrap:wrap; gap:10px;}

/* ---------- SCROLL REVEAL ---------- */
[data-reveal]{opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease;}
[data-reveal].in{opacity:1; transform:translateY(0);}

/* reduced motion */
@media (prefers-reduced-motion: reduce){
  *{animation:none !important; transition:none !important;}
  [data-reveal]{opacity:1; transform:none;}
}