/* Bersama Co — static site styles. Themed via CSS custom props; EN=default, ID=warm.
   Ported from the approved mockup (design-reference/Bersama Co.dc.html) + made responsive. */

:root {
  --bg:#F6F5F2; --panel:#ECEAE4; --text:#15140F; --muted:#56524A; --label:#9b958a;
  --accent:#8B7355; --line:rgba(0,0,0,.10); --btn:#111110; --btnText:#fff;
  --cardImgH:110px; --missionImgH:238px;
  --img-stairs: url("images/en/hero.webp?v=2") center/cover no-repeat;
  --img-office: url("images/en/office.webp?v=2") center/cover no-repeat;
  --img-vision: url("images/en/vision.webp?v=2") center/cover no-repeat;
  --img-mission: url("images/en/mission.webp?v=2") center/cover no-repeat;
  --img-c1: url("images/en/c1.webp?v=2") center/cover no-repeat;
  --img-c2: url("images/en/c2.webp?v=2") center/cover no-repeat;
  --img-c3: url("images/en/c3.webp?v=2") center/cover no-repeat;
  --img-c4: url("images/en/c4.webp?v=2") center/cover no-repeat;
  --img-group: url("images/en/why.webp?v=2") center/cover no-repeat;
  --img-arch: url("images/en/arch.webp?v=2") center/cover no-repeat;
  --serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --sans: Arial, Helvetica, sans-serif;
  --pad-x: 48px;   /* horizontal section padding, shrinks on small screens */
}
[data-theme="warm"] {
  --bg:#F8F4ED; --panel:#EFE9DC; --text:#1d1810; --muted:#6a6253; --label:#b0a48d;
  --accent:#9a7d52; --line:rgba(60,45,25,.12); --btn:#1a1813; --btnText:#fff;
  --cardImgH:0px; --missionImgH:172px;
  --img-stairs: url("images/id/hero.webp?v=2") center/cover no-repeat;
  --img-office: url("images/id/office.webp?v=2") center/cover no-repeat;
  --img-vision: url("images/id/vision.webp?v=2") center/cover no-repeat;
  --img-mission: url("images/id/mission.webp?v=2") center/cover no-repeat;
  --img-group: url("images/id/group.webp?v=2") center/cover no-repeat;
  --img-arch: url("images/id/arch.webp?v=2") center/cover no-repeat;
}

* { box-sizing: border-box; }
html, body { margin:0; padding:0; }
body { font-family: var(--sans); background: var(--bg); color: var(--text); }
.site { min-height:100%; overflow-x:clip; transition: background .5s ease, color .5s ease; }
img { max-width:100%; }

/* shared type */
.display { font-family: var(--serif); font-weight:500; }
.body { font-size:15px; line-height:1.8; color: var(--muted); margin:0 0 18px; }
.body:last-of-type { margin-bottom:0; }
.label { font-size:12px; letter-spacing:.2em; text-transform:uppercase; color: var(--label); margin-bottom:18px; }
.label.center { text-align:center; letter-spacing:.24em; margin-bottom:48px; }
.rule { width:46px; height:2px; background: var(--accent); margin:30px 0 26px; }
.link { font-size:12px; letter-spacing:.16em; text-transform:uppercase; color: var(--accent); text-decoration:none; border-bottom:1px solid var(--accent); padding-bottom:3px; }
.btn { display:inline-block; background: var(--btn); color: var(--btnText); text-decoration:none; font-size:12px; letter-spacing:.15em; text-transform:uppercase; padding:16px 30px; transition: opacity .2s; }
.btn:hover { opacity:.82; }
.card-title { font-size:15px; letter-spacing:.16em; text-transform:uppercase; margin:0 0 12px; font-weight:bold; }

/* header */
.site-header { position:sticky; top:0; z-index:50; background: color-mix(in srgb, var(--bg) 88%, transparent); backdrop-filter: blur(10px); border-bottom:1px solid var(--line); padding:18px var(--pad-x) 14px; }
.lang-toggle { position:absolute; right: var(--pad-x); top:20px; display:flex; align-items:center; gap:9px; font-size:11px; letter-spacing:.16em; }
.lang-btn { font:inherit; letter-spacing:inherit; background:none; border:0; cursor:pointer; padding:3px 2px; color: var(--muted); text-underline-offset:5px; transition: color .25s; }
.lang-btn.is-active { color: var(--accent); font-weight:700; text-decoration:underline; text-decoration-color: var(--accent); }
.lang-sep { color: var(--line); }
.brand { display:block; text-align:center; text-decoration:none; color:inherit; }
.brand-name { display:block; font-family: var(--serif); font-size:30px; font-weight:500; letter-spacing:.22em; text-transform:uppercase; line-height:1; }
.brand-sub { display:block; font-size:10px; letter-spacing:.42em; text-transform:uppercase; color: var(--muted); margin-top:5px; }
.site-nav { display:flex; justify-content:center; flex-wrap:wrap; gap:30px; margin-top:16px; font-size:11.5px; letter-spacing:.13em; text-transform:uppercase; }
.site-nav a { color: var(--text); text-decoration:none; transition: color .2s; }
.site-nav a:hover { color: var(--accent); }

/* hero */
.hero { display:grid; grid-template-columns: 1fr 1.05fr; min-height:600px; border-bottom:1px solid var(--line); }
.hero-copy { padding:84px 64px; display:flex; flex-direction:column; justify-content:center; background: var(--panel); transition: background .5s ease; }
.hero-copy .display { font-size: clamp(44px,5vw,74px); line-height:1.0; letter-spacing:.005em; text-transform:uppercase; margin:0; }
.hero-sub { font-family: var(--serif); font-style:italic; font-size: clamp(22px,2.4vw,32px); color: var(--muted); margin:14px 0 0; }
.hero-copy .body { max-width:430px; line-height:1.75; }
.hero .btn { margin-top:34px; align-self:flex-start; }
.hero-img { position:relative; background: var(--img-stairs); transition: background .5s ease; min-height:340px; }
.hero-img-veil { position:absolute; inset:0; background: linear-gradient(180deg, transparent 55%, rgba(0,0,0,.18)); }

/* about */
.about { max-width:1120px; margin:0 auto; padding:92px var(--pad-x); display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.about .h2 { font-size:42px; margin:0 0 24px; line-height:1.1; }
.about .link { display:inline-block; margin-top:10px; }
.about-img { height:380px; background: var(--img-office); transition: background .5s ease; }

/* vision & mission */
.vm { border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.vm-inner { max-width:1120px; margin:0 auto; padding:88px var(--pad-x); display:grid; grid-template-columns:1fr 1fr; gap:72px; }
.vm .h3 { font-size:30px; line-height:1.25; margin:0 0 18px; }
.vm-img { height:200px; background: var(--img-vision); transition: background .5s ease; margin-top:6px; }
.mission-img { height: var(--missionImgH); background: var(--img-mission); }
.bullets { list-style:none; padding:0; margin:0 0 24px; }
.bullets li { font-size:14.5px; line-height:1.5; color: var(--muted); padding:9px 0 9px 22px; position:relative; border-bottom:1px solid var(--line); }
.bullets li::before { content:"—"; position:absolute; left:0; top:9px; color: var(--accent); }

/* what we do */
.do { max-width:1180px; margin:0 auto; padding:90px var(--pad-x); }
.do-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:34px; }
.do-card { display:flex; flex-direction:column; }
.icon { height:34px; color: var(--text); margin-bottom:18px; }
.card-body { font-size:13.5px; line-height:1.7; color: var(--muted); margin:0 0 20px; }
.do-img { height: var(--cardImgH); margin-top:auto; overflow:hidden; transition: background .5s ease; }
.img-c1 { background: var(--img-c1); } .img-c2 { background: var(--img-c2); }
.img-c3 { background: var(--img-c3); } .img-c4 { background: var(--img-c4); }

/* why */
.why { border-top:1px solid var(--line); border-bottom:1px solid var(--line); background: var(--panel); transition: background .5s ease; }
.why-inner { max-width:1120px; margin:0 auto; padding:88px var(--pad-x); display:grid; grid-template-columns:.85fr 1.15fr; gap:64px; align-items:center; }
.why-img { height:360px; background: var(--img-group); transition: background .5s ease; }
.why-list .label { margin-bottom:28px; }
.why-item { display:flex; gap:16px; padding:16px 0; border-top:1px solid var(--line); }
.why-item--last { border-bottom:1px solid var(--line); }
.why-icon { flex:none; color: var(--accent); margin-top:2px; }
.why-t { font-weight:bold; font-size:14.5px; margin-bottom:4px; }
.why-d { font-size:13.5px; line-height:1.6; color: var(--muted); }

/* values */
.values { max-width:1180px; margin:0 auto; padding:90px var(--pad-x); }
.values .label.center { margin-bottom:50px; }
.values-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:30px; }
.value { text-align:center; padding:0 6px; }
.value-icon { display:flex; justify-content:center; margin-bottom:18px; color: var(--accent); }
.value .card-title { font-size:13.5px; }
.value-d { font-size:13px; line-height:1.65; color: var(--muted); margin:0; }

/* closing */
.closing { display:grid; grid-template-columns:1fr 1.1fr; border-top:1px solid var(--line); min-height:380px; }
.closing-img { background: var(--img-arch); transition: background .5s ease; min-height:300px; }
.closing-copy { background: var(--panel); transition: background .5s ease; padding:76px 64px; display:flex; flex-direction:column; justify-content:center; }
.closing .h2 { font-size: clamp(30px,3.2vw,42px); line-height:1.12; text-transform:uppercase; letter-spacing:.01em; margin:0 0 22px; }
.closing .body { max-width:440px; line-height:1.75; }
.closing .btn { align-self:flex-start; margin-top:12px; }
.signoff { margin-top:42px; padding-top:26px; border-top:1px solid var(--line); }
.signoff-name { font-family: var(--serif); font-size:24px; letter-spacing:.18em; text-transform:uppercase; }
.signoff-tag { font-family: var(--serif); font-style:italic; font-size:16px; color: var(--accent); margin-top:6px; }

/* footer */
.site-footer { background: var(--btn); color: rgba(255,255,255,.78); padding:40px var(--pad-x); display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:18px; }
.foot-name { font-family: var(--serif); font-size:20px; letter-spacing:.2em; text-transform:uppercase; color:#fff; }
.foot-sub { font-size:10px; letter-spacing:.3em; text-transform:uppercase; margin-top:4px; color: rgba(255,255,255,.55); }
.foot-rights { font-size:11px; letter-spacing:.08em; color: rgba(255,255,255,.55); }

/* latest (blog + events teasers) */
.latest { max-width:1180px; margin:0 auto; padding:90px var(--pad-x); border-top:1px solid var(--line); }
.latest-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:34px; }
.teaser { display:flex; flex-direction:column; text-decoration:none; color:inherit; border:1px solid var(--line); background: var(--panel); transition: background .5s ease; }
.teaser-img { height:180px; background-size:cover; background-position:center; }
.teaser-body { padding:22px 24px 26px; display:flex; flex-direction:column; flex:1; }
.teaser-kind { font-size:11px; letter-spacing:.18em; text-transform:uppercase; color: var(--accent); margin-bottom:12px; }
.teaser-title { font-family: var(--serif); font-size:22px; line-height:1.25; margin:0 0 14px; }
.teaser-date { font-size:12px; letter-spacing:.06em; color: var(--muted); margin-top:auto; }
.teaser:hover .teaser-title { color: var(--accent); }

/* ===== responsive ===== */
@media (max-width: 980px) {
  :root { --pad-x: 32px; }
  .hero, .about, .vm-inner, .why-inner, .closing { grid-template-columns: 1fr; }
  .hero-copy { padding:64px var(--pad-x); order:2; }
  .hero-img { order:1; min-height:300px; }
  .hero .display { font-size: clamp(40px,8vw,60px); }
  .about, .values, .do { padding-top:64px; padding-bottom:64px; }
  .vm-inner, .why-inner { padding:64px var(--pad-x); gap:48px; }
  .why-img { order:2; height:300px; }
  .closing-copy { padding:56px var(--pad-x); }
  .do-grid { grid-template-columns:repeat(2,1fr); gap:28px; }
  .values-grid { grid-template-columns:repeat(3,1fr); gap:28px 20px; }
  .latest-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 560px) {
  :root { --pad-x: 20px; }
  .brand-name { font-size:24px; letter-spacing:.16em; }
  .site-nav { gap:16px 18px; font-size:11px; margin-top:14px; }
  .lang-toggle { top:18px; }
  .hero-copy { padding:48px var(--pad-x); }
  .about .h2 { font-size:34px; }
  .do-grid { grid-template-columns:1fr; }
  .values-grid { grid-template-columns:repeat(2,1fr); }
  .latest-grid { grid-template-columns:1fr; }
  .closing-copy { padding:44px var(--pad-x); }
}
@media (prefers-reduced-motion: reduce) {
  * { transition:none !important; }
}
