/* The Swiss Edit - shared styles
   Palette: paper, ink, moss, lichen, stone, sand, mist + Swiss red (logo only) */
:root{
  --paper:#F1EFEA; --ink:#1E2420; --muted:#545A51; --moss:#3F4F3F;
  --lichen:#C9D1C0; --stone:#DDD9CF; --sand:#D6CBBB; --mist:#CBD0D0;
  --red:#C8281E; --line:#C7C3B8; --on-dark:#E6E9E1;
  --serif:'Newsreader',Georgia,'Times New Roman',serif;
  --sans:'Hanken Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;
  --pad:clamp(20px,4vw,48px);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.6}
img,svg{max-width:100%}
a{color:inherit;text-underline-offset:4px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:2px solid var(--moss);outline-offset:3px}
h1,h2,h3{font-family:var(--serif);font-weight:400;margin:0;letter-spacing:-0.02em;line-height:1.08}
p{margin:0}
.wrap{max-width:1240px;margin-inline:auto;padding-inline:var(--pad)}
.sec{padding-block:clamp(56px,8vw,112px)}
.sec-top{padding-top:clamp(40px,6vw,80px)}
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--paper);padding:12px 18px;z-index:50}
.skip:focus{left:12px;top:12px}

/* Header */
.site-header{border-bottom:1px solid var(--line);background:var(--paper)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:16px 32px;padding-block:18px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand span{font-family:var(--serif);font-size:1.65rem;letter-spacing:-0.02em}
.nav{display:flex;gap:6px 34px;font-weight:500;font-size:.95rem}
.nav a{text-decoration:none;padding-block:10px;border-bottom:2px solid transparent}
.nav a:hover,.nav a[aria-current="page"]{border-bottom-color:var(--ink)}
.lang{display:flex;gap:2px}
.lang button{min-width:44px;min-height:44px;border:0;background:none;font:inherit;font-size:.9rem;font-weight:500;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent}
.lang button[aria-pressed="true"]{color:var(--ink);border-bottom-color:var(--ink)}
.menu-btn{display:none;min-height:44px;padding:0 16px;border:1px solid var(--ink);background:none;font:inherit;font-weight:500;color:var(--ink);cursor:pointer}
@media (max-width:860px){
  .menu-btn{display:inline-block}
  .nav{display:none;order:5;width:100%;flex-direction:column;gap:0;padding-bottom:8px}
  .nav.open{display:flex}
  .nav a{padding-block:12px;border-bottom:1px solid var(--line)}
}

/* Buttons and links */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 28px;background:var(--moss);color:#fff;border:1px solid var(--moss);border-radius:2px;font:inherit;font-weight:600;text-decoration:none;cursor:pointer}
.btn:hover{background:var(--ink);border-color:var(--ink);text-decoration:none}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--paper)}
.actions{display:flex;flex-wrap:wrap;gap:14px}
.textlink{font-weight:600}

/* Placeholders (replace with real photography) */
.ph{position:relative;background:var(--stone);border-radius:2px;overflow:hidden}
.ph span{position:absolute;left:14px;bottom:12px;font-size:.8rem;color:#444A41}
.ph-a{background:var(--stone)} .ph-b{background:var(--lichen)} .ph-c{background:var(--sand)} .ph-d{background:var(--mist)}
.r45{aspect-ratio:4/5} .r11{aspect-ratio:1/1} .r34{aspect-ratio:3/4} .r43{aspect-ratio:4/3} .r169{aspect-ratio:16/10}

/* Hero */
.hero h1{font-weight:300;font-size:clamp(3.25rem,10.5vw,9rem);line-height:.94;letter-spacing:-0.04em;max-width:11ch}
.hero-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:32px 64px;margin-top:clamp(28px,4vw,56px)}
.lead{font-size:1.25rem;line-height:1.55;max-width:34rem;color:#34392F}
.hero-side{display:flex;flex-direction:column;gap:20px;align-items:flex-start}
.note{font-size:.95rem;color:var(--muted);max-width:26rem}
.hero-tiles{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;align-items:end;margin-top:clamp(40px,6vw,80px)}
.hero-tiles .t1{grid-column:1 / span 5}
.hero-tiles .t2{grid-column:6 / span 4}
.hero-tiles .t3{grid-column:10 / span 3}
@media (max-width:720px){
  .hero-tiles .t1{grid-column:1 / span 12}
  .hero-tiles .t2{grid-column:1 / span 7}
  .hero-tiles .t3{grid-column:8 / span 5}
}

/* Section headings */
.head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:16px 32px;margin-bottom:clamp(28px,4vw,48px)}
.head h2{font-size:clamp(2rem,4.2vw,3.25rem)}
.page-head h1{font-size:clamp(2.75rem,7vw,5.5rem);font-weight:300;letter-spacing:-0.035em;line-height:1}
.page-head .lead{margin-top:20px}

/* Category tiles */
.cats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.cat{text-decoration:none;display:block}
.cat h3{font-size:1.65rem;margin-top:16px;font-weight:500}
.cat p{color:var(--muted);font-size:.97rem;margin-top:4px}
.cat:hover h3{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
@media (max-width:980px){.cats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.cats{grid-template-columns:1fr}}
.typerow{display:flex;flex-wrap:wrap;gap:10px}
.chip{display:inline-flex;align-items:center;min-height:44px;padding:0 20px;border:1px solid var(--line);border-radius:2px;text-decoration:none;font-weight:500;font-size:.95rem;background:transparent;color:var(--ink);font-family:inherit;cursor:pointer}
.chip:hover{border-color:var(--ink);text-decoration:none}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}

/* Featured brand and brand profile */
.split{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px 48px;align-items:center}
.split .media{grid-column:1 / span 6}
.split .copy{grid-column:8 / span 5}
.split.flip .media{grid-column:7 / span 6;grid-row:1}
.split.flip .copy{grid-column:1 / span 5;grid-row:1}
@media (max-width:900px){
  .split .media,.split .copy,.split.flip .media,.split.flip .copy{grid-column:1 / -1;grid-row:auto}
}
.band{background:var(--stone)}
.copy h2{font-size:clamp(2.25rem,4.6vw,3.75rem);line-height:1.04}
.copy .pitch{margin-top:10px;color:var(--muted)}
.copy .body{margin-top:20px;font-size:1.1rem;max-width:32rem}
.badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px;padding:0;list-style:none}
.badges li{padding:5px 14px;border:1px solid #8E9788;border-radius:2px;font-size:.9rem;font-weight:500;color:#2F3A2F}
.badges li.price{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.copy .actions{margin-top:28px;align-items:center;gap:14px 24px}

/* Stories */
.stories{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:32px}
.story{text-decoration:none;display:block}
.story .tag{font-size:.9rem;color:var(--moss);font-weight:600;margin-top:16px}
.story h3{margin-top:6px;font-weight:400}
.story:hover h3{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.stories .lead-story{grid-column:1 / span 7}
.stories .lead-story h3{font-size:clamp(1.9rem,3.4vw,2.75rem)}
.stories .side{grid-column:8 / span 5;display:grid;gap:32px;align-content:start}
.stories .side h3{font-size:1.55rem}
.stories .side .story{display:grid;grid-template-columns:1fr 1.2fr;gap:20px;align-items:start}
.stories .side .tag{margin-top:0}
@media (max-width:900px){
  .stories .lead-story,.stories .side{grid-column:1 / -1}
}
@media (max-width:520px){.stories .side .story{grid-template-columns:1fr}}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 28px}
@media (max-width:900px){.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.grid3{grid-template-columns:1fr}}
.grid3 .story h3{font-size:1.5rem}

/* Impact band */
.dark{background:var(--moss);color:var(--on-dark)}
.dark a{color:#fff}
.dark .lead{color:var(--on-dark)}
.values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;margin-top:clamp(32px,5vw,56px)}
.values div{border-top:1px solid #8C9A8A;padding-top:18px}
.values h3{font-size:1.6rem;font-weight:500}
.values p{margin-top:8px;font-size:.98rem;color:#D5DBCF}
@media (max-width:900px){.values{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.values{grid-template-columns:1fr}}
.dark h2{font-size:clamp(2rem,4.4vw,3.5rem);max-width:20ch}

/* Newsletter */
.news-band{background:var(--stone)}
.news-wrap{display:flex;flex-wrap:wrap;gap:32px 64px;align-items:center;justify-content:space-between}
.news-wrap h2{font-size:clamp(1.9rem,3.6vw,2.75rem);max-width:18ch}
.news-wrap p.sub{margin-top:10px;max-width:30rem}
.news{display:flex;flex-wrap:wrap;gap:12px;align-items:end;flex:1 1 380px;max-width:560px}
.news .field{flex:1 1 220px;display:flex;flex-direction:column;gap:6px}
.news label{font-size:.9rem;font-weight:600}
.news input{height:48px;padding:0 16px;border:1px solid #8E9788;border-radius:2px;background:#fff;font:inherit;color:var(--ink);width:100%}
.news-status{flex-basis:100%;min-height:1.5em;font-size:.95rem;color:var(--muted)}

/* Discover */
.filters{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:20px 16px;padding-block:28px;border-block:1px solid var(--line);margin-top:clamp(32px,5vw,56px)}
.filters .f-search{grid-column:1 / span 4}
.filters .f-type{grid-column:5 / span 8}
.filters .f-sel{grid-column:span 4}
.filters label,.filters .lbl{display:block;font-size:.9rem;font-weight:600;margin-bottom:6px}
.filters input,.filters select{width:100%;height:48px;padding:0 14px;border:1px solid #8E9788;border-radius:2px;background:#fff;font:inherit;color:var(--ink)}
@media (max-width:900px){.filters .f-search,.filters .f-type,.filters .f-sel{grid-column:1 / -1}}
.resbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:28px 0}
.resbar .count{color:var(--muted)}
.linkbtn{background:none;border:0;padding:8px 0;font:inherit;font-weight:600;color:var(--ink);text-decoration:underline;text-underline-offset:4px;cursor:pointer;min-height:44px}
.card{text-decoration:none;display:block}
.card .name{font-family:var(--serif);font-size:1.6rem;margin-top:16px;letter-spacing:-0.015em}
.card:hover .name{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.card .meta{display:flex;flex-wrap:wrap;gap:0 14px;font-size:.9rem;color:var(--muted);margin-top:4px}
.card .meta span+span{border-left:1px solid var(--line);padding-left:14px}
.card .pitch{margin-top:8px;font-size:.98rem}
.card .price{margin-top:8px;font-weight:600;font-size:.95rem}
.empty{padding:48px 0;font-size:1.15rem}
[hidden]{display:none !important}

/* Profile */
.facts{margin:0;padding:0;display:grid;gap:0}
.facts div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--line);font-size:.97rem}
.facts dt{color:var(--muted)}
.facts dd{margin:0;font-weight:500;text-align:right}
.profile-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:40px 48px}
.profile-grid .main{grid-column:1 / span 8}
.profile-grid aside{grid-column:9 / span 4;align-self:start}
@media (max-width:900px){.profile-grid .main,.profile-grid aside{grid-column:1 / -1}}
.block{margin-top:clamp(40px,6vw,72px)}
.block h2{font-size:clamp(1.75rem,3vw,2.4rem);margin-bottom:16px}
.block p{max-width:38rem}
.prods{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.prods p{font-size:.95rem;margin-top:10px}
@media (max-width:900px){.prods{grid-template-columns:repeat(2,minmax(0,1fr))}}
.crumb{font-size:.95rem;margin-bottom:24px}

/* Prose pages */
.prose{max-width:40rem}
.prose h2{font-size:clamp(1.75rem,3vw,2.4rem);margin-top:clamp(40px,6vw,64px);margin-bottom:14px}
.prose p+p{margin-top:16px}
.defs{display:grid;gap:0;margin:0;max-width:44rem}
.defs div{display:grid;grid-template-columns:minmax(0,12rem) 1fr;gap:8px 32px;padding:18px 0;border-bottom:1px solid var(--line)}
.defs dt{font-family:var(--serif);font-size:1.35rem}
.defs dd{margin:0}
@media (max-width:560px){.defs div{grid-template-columns:1fr}}

/* Footer */
.site-footer{background:var(--ink);color:var(--on-dark);margin-top:0}
.site-footer a{color:var(--on-dark)}
.foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:32px 64px;padding-block:56px}
.foot .brand span{color:#fff}
.foot p{max-width:24rem;margin-top:14px;font-size:.97rem;color:#BFC5B9}
.foot nav{display:flex;flex-wrap:wrap;gap:6px 28px;font-size:.97rem;align-content:start}
.foot nav a{display:inline-flex;align-items:center;min-height:44px}
.legal{border-top:1px solid #3A423B;padding-block:20px;font-size:.88rem;color:#AEB5A8}
