/* ===== CARMEL VALLEY: the flagship ===== */
:root{
  --cv-deep:#0E3B43; --cv-teal:#1F6F78; --cv-sage:#8FA89A; --cv-sand:#F2ECE1; --cv-coral:#D9734E; --cv-gold:#C49A5A;
  --cv-line:rgba(14,59,67,.16); --cv-soft:rgba(31,111,120,.08);
}
@media (prefers-color-scheme: dark){
  :root{ --cv-sand:#101A1C; --cv-teal:#6FB3BB; --cv-line:rgba(111,179,187,.2); --cv-soft:rgba(111,179,187,.08); --cv-coral:#E8916F; }
}
.cv-eyebrow{ color:var(--cv-teal) !important; }
.cv-sand{ background:var(--cv-sand); }
.cv-src{ margin-top:18px; font-size:12px; color:var(--text-faint); }
.cv-src a{ text-decoration:underline; }

/* hero: an illustrated valley at golden hour */
.cv-hero{ position:relative; overflow:hidden; background:#0E3B43; color:#fff; padding:0; min-height:88vh; display:flex; align-items:flex-end; }
.cv-hero-img{ position:absolute; inset:-3%; background-size:cover; background-position:center 60%; animation:cvKB 28s ease-in-out infinite alternate; }
@keyframes cvKB{ from{ transform:scale(1.02); } to{ transform:scale(1.09) translate(1%,-1%); } }
@media (prefers-reduced-motion:reduce){ .cv-hero-img{ animation:none; } }
.cv-hero::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(8,28,32,.15) 0%, rgba(8,28,32,.05) 30%, rgba(8,28,32,.6) 64%, rgba(6,20,23,.93) 100%), linear-gradient(90deg, rgba(6,20,23,.45), rgba(6,20,23,0) 60%); }
.cv-hero-cap{ position:absolute; right:28px; bottom:20px; z-index:3; font:11px 'IBM Plex Mono',monospace; letter-spacing:1px; text-transform:uppercase; color:rgba(255,255,255,.75); }
@media (max-width:760px){ .cv-hero{ flex-direction:column; justify-content:flex-end; } .cv-hero-cap{ position:relative; right:auto; bottom:auto; align-self:stretch; padding:0 28px 18px; } .cv-hero .wrap{ padding-bottom:18px; } }
.cv-hero .wrap{ position:relative; z-index:2; padding-top:90px; padding-bottom:60px; width:100%; }
.cv-hero .tag{ display:inline-block; font:11.5px 'IBM Plex Mono',monospace; letter-spacing:2px; text-transform:uppercase; color:#FFE7CF; border:1px solid rgba(255,231,207,.55); background:rgba(14,59,67,.45); padding:6px 14px; border-radius:999px; }
.cv-hero h1{ color:#fff; font-size:clamp(58px,11vw,150px); line-height:.88; letter-spacing:-.025em; font-weight:460; margin-top:20px; }
.cv-hero h1 em{ display:block; font-size:.27em; font-style:italic; font-weight:380; letter-spacing:0; color:#FFD9B3; margin-top:.6em; line-height:1.15; }
.cv-hero .lede{ color:#E3ECEA; max-width:580px; font-size:17px; margin-top:18px; }
.cv-hero .acts{ display:flex; gap:14px; flex-wrap:wrap; margin-top:26px; }
.cv-hero .btn-solid{ background:#FFD9B3; color:#0E3B43; }
.cv-hero .btn-outline{ border-color:rgba(255,255,255,.4); color:#fff; }

/* this week strip */
.cv-week{ padding:0; background:#0A2A30; color:#E3ECEA; }
.cv-week .wrap{ display:flex; gap:28px; align-items:center; padding-top:18px; padding-bottom:18px; flex-wrap:wrap; }
.cv-week .k{ font:10.5px 'IBM Plex Mono',monospace; letter-spacing:1.6px; text-transform:uppercase; color:#FFD9B3; white-space:nowrap; }
.cv-week .items{ display:flex; gap:22px; flex-wrap:wrap; font-size:14px; }
.cv-week .items b{ color:#fff; font-weight:600; }
.cv-week a{ margin-left:auto; font:12px 'IBM Plex Mono',monospace; color:#FFD9B3; }

/* numbers */
.cv-nums{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.cv-num{ padding:28px 22px; border-left:1px solid var(--line-soft); }
.cv-num:first-child{ border-left:0; padding-left:0; }
.cv-num b{ display:block; font-family:'Fraunces',Georgia,serif; font-weight:460; font-size:clamp(40px,5vw,62px); line-height:1; color:var(--cv-deep); }
@media (prefers-color-scheme: dark){ .cv-num b{ color:#FFD9B3; } }
.cv-num span{ display:block; margin-top:10px; font-size:14.5px; color:var(--text-soft); }
@media (max-width:860px){ .cv-nums{ grid-template-columns:repeat(2,1fr); } .cv-num:nth-child(3){ border-left:0; padding-left:0; } .cv-num{ border-top:1px solid var(--line-soft); } .cv-num:nth-child(-n+2){ border-top:0; } }

/* THE HIGHLANDS feature (Steak 48) */
.cv-hl{ background:#14110F; color:#EDE6DA; }
.cv-hl h2, .cv-hl h3{ color:#FFFFFF; }
.cv-hl .section-head p{ color:#BDB3A3; }
.cv-hl-eyebrow{ color:var(--cv-gold) !important; }
.cv-hl-top{ display:grid; grid-template-columns:1.15fr .85fr; gap:28px; }
.cv-steak{ position:relative; border:1px solid rgba(196,154,90,.4); padding:38px 36px; background:radial-gradient(ellipse at 85% 0%, rgba(196,154,90,.22), transparent 55%), #1B1714; overflow:hidden; }
.cv-steak::before{ content:"48"; position:absolute; right:-10px; bottom:-60px; font-family:'Fraunces',Georgia,serif; font-weight:560; font-size:260px; line-height:1; color:rgba(196,154,90,.08); }
.cv-steak .k{ font:10.5px 'IBM Plex Mono',monospace; letter-spacing:1.6px; text-transform:uppercase; color:var(--cv-gold); }
.cv-steak h3{ font-size:clamp(34px,4vw,52px); font-weight:460; margin:10px 0 12px; }
.cv-steak p{ color:#CFC6B7; max-width:520px; position:relative; }
.cv-steak dl{ display:grid; grid-template-columns:auto 1fr; gap:6px 16px; margin:22px 0 0; font-size:14px; position:relative; }
.cv-steak dt{ font:10.5px 'IBM Plex Mono',monospace; letter-spacing:1.2px; text-transform:uppercase; color:#9C9283; padding-top:3px; }
.cv-steak dd{ margin:0; color:#EDE6DA; }
.cv-steak .btns{ display:flex; gap:12px; flex-wrap:wrap; margin-top:26px; position:relative; }
.cv-steak .btn-solid{ background:var(--cv-gold); color:#14110F; }
.cv-steak .btn-outline{ border-color:rgba(196,154,90,.5); color:#EDE6DA; }
.cv-skydeck{ border:1px solid rgba(196,154,90,.25); padding:30px 28px; background:#1B1714; }
.cv-skydeck .k{ font:10.5px 'IBM Plex Mono',monospace; letter-spacing:1.6px; text-transform:uppercase; color:var(--cv-gold); }
.cv-skydeck h3{ font-size:30px; font-weight:460; margin:10px 0 10px; }
.cv-skydeck p{ color:#CFC6B7; font-size:14.5px; }
.cv-skydeck ul{ list-style:none; padding:0; margin:16px 0 0; columns:2; column-gap:18px; }
.cv-skydeck li{ font-size:14px; padding:6px 0; border-bottom:1px solid rgba(196,154,90,.15); break-inside:avoid; color:#EDE6DA; }
.cv-skydeck li small{ display:block; color:#9C9283; font-size:12px; }
.cv-hl-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:28px; }
.cv-hl-box{ border-top:1px solid rgba(196,154,90,.4); padding-top:16px; }
.cv-hl-box .k{ font:10.5px 'IBM Plex Mono',monospace; letter-spacing:1.4px; text-transform:uppercase; color:var(--cv-gold); }
.cv-hl-box h3{ font-size:20px; margin:6px 0 8px; font-weight:560; }
.cv-hl-box p, .cv-hl-box li{ color:#CFC6B7; font-size:14px; }
.cv-hl-box ul{ margin:0; padding:0; list-style:none; }
.cv-hl-box li{ padding:4px 0; }
.cv-hl-box li b{ color:#EDE6DA; font-weight:600; }
@media (max-width:960px){ .cv-hl-top{ grid-template-columns:1fr; } .cv-hl-row{ grid-template-columns:1fr; } }
@media (max-width:520px){ .cv-skydeck ul{ columns:1; } .cv-steak{ padding:30px 22px; } }

/* dining guide */
.cv-chips{ display:flex; flex-wrap:wrap; gap:8px; margin:0 0 22px; }
.cv-chips button{ font:500 13px 'Archivo',sans-serif; padding:8px 15px; border-radius:999px; border:1px solid var(--line); background:transparent; color:var(--text); cursor:pointer; }
.cv-chips button.is-on{ background:var(--cv-deep); color:#fff; border-color:var(--cv-deep); }
@media (prefers-color-scheme: dark){ .cv-chips button.is-on{ background:#FFD9B3; color:#0E3B43; border-color:#FFD9B3; } }
.cv-dine{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--line); }
.cv-dish{ padding:16px 18px 16px 0; border-bottom:1px solid var(--line-soft); display:flex; gap:12px; align-items:baseline; }
.cv-dish h3{ font-size:17px; font-weight:560; margin:0; font-family:'Archivo',sans-serif; }
.cv-dish p{ margin:3px 0 0; font-size:13.5px; color:var(--text-soft); }
.cv-dish .where{ flex:none; font:10px 'IBM Plex Mono',monospace; letter-spacing:1px; text-transform:uppercase; padding:3px 7px; border-radius:3px; background:var(--cv-soft); color:var(--cv-teal); }
.cv-dish .where.op{ background:rgba(217,115,78,.12); color:var(--cv-coral); }
@media (max-width:900px){ .cv-dine{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .cv-dine{ grid-template-columns:1fr; } }

/* One Paseo */
.cv-op{ display:grid; grid-template-columns:.9fr 1.1fr; gap:44px; align-items:start; }
.cv-op-facts{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-top:24px; border-top:1px solid var(--line); }
.cv-op-facts div{ padding:16px 12px 0 0; }
.cv-op-facts b{ display:block; font-family:'Fraunces',Georgia,serif; font-size:34px; font-weight:460; color:var(--cv-coral); line-height:1; }
.cv-op-facts span{ display:block; font-size:13px; color:var(--text-soft); margin-top:6px; }
@media (max-width:900px){ .cv-op{ grid-template-columns:1fr; } }

/* calendar */
.cv-cal{ display:grid; grid-template-columns:1fr 1.6fr; gap:34px; align-items:start; }
.cv-weekly{ display:grid; gap:10px; }
.cv-weekly div{ display:grid; grid-template-columns:54px 1fr; gap:14px; padding:14px 16px; background:var(--bg-card); border:1px solid var(--line-soft); border-radius:10px; }
.cv-weekly .d{ font:600 12px 'IBM Plex Mono',monospace; letter-spacing:1px; text-transform:uppercase; color:var(--cv-coral); padding-top:2px; }
.cv-weekly h3{ font-size:16px; margin:0; font-family:'Archivo',sans-serif; font-weight:600; }
.cv-weekly p{ margin:2px 0 0; font-size:13px; color:var(--text-soft); }
.cv-ev{ display:grid; grid-template-columns:62px 1fr auto; gap:16px; padding:14px 2px; border-bottom:1px solid var(--line-soft); align-items:center; color:inherit; }
.cv-ev:hover{ background:var(--cv-soft); }
.cv-ev .dt{ text-align:center; border:1px solid var(--line); border-radius:10px; padding:5px 0; background:var(--bg-card); }
.cv-ev .dt b{ display:block; font-family:'Fraunces',Georgia,serif; font-size:24px; line-height:1; }
.cv-ev .dt span{ font:10px 'IBM Plex Mono',monospace; text-transform:uppercase; letter-spacing:1px; color:var(--text-faint); }
.cv-ev .tag{ font:10.5px 'IBM Plex Mono',monospace; letter-spacing:1.1px; text-transform:uppercase; color:var(--cv-teal); }
.cv-ev h3{ font-size:17px; margin:3px 0 2px; }
.cv-ev p{ margin:0; font-size:13.5px; color:var(--text-soft); }
.cv-ev .soon{ background:var(--cv-coral); color:#fff; padding:2px 7px; border-radius:3px; margin-left:6px; }
.cv-ev .go{ font:12px 'IBM Plex Mono',monospace; color:var(--cv-teal); }
.cv-empty{ color:var(--text-faint); padding:18px 0; }
@media (max-width:900px){ .cv-cal{ grid-template-columns:1fr; } }
@media (max-width:560px){ .cv-ev{ grid-template-columns:56px 1fr; } .cv-ev .go{ display:none; } }

/* school pathways */
.cv-toggle{ display:inline-flex; border:1px solid var(--line); border-radius:999px; padding:4px; margin-bottom:24px; flex-wrap:wrap; }
.cv-toggle button{ font:500 13.5px 'Archivo',sans-serif; padding:9px 16px; border-radius:999px; border:0; background:transparent; color:var(--text); cursor:pointer; }
.cv-toggle button.is-on{ background:var(--cv-deep); color:#fff; }
@media (prefers-color-scheme: dark){ .cv-toggle button.is-on{ background:#FFD9B3; color:#0E3B43; } }
.cv-ladder{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; position:relative; }
.cv-rung{ padding:26px 24px; border:1px solid var(--line); margin-left:-1px; background:var(--bg-card); position:relative; }
.cv-rung:first-child{ margin-left:0; }
.cv-rung:not(:last-child)::after{ content:"\2192"; position:absolute; right:-14px; top:28px; width:26px; height:26px; border-radius:50%; background:var(--cv-coral); color:#fff; display:flex; align-items:center; justify-content:center; font-size:14px; z-index:2; }
.cv-rung .g{ font-family:'Fraunces',Georgia,serif; font-size:40px; line-height:1; color:var(--cv-deep); }
@media (prefers-color-scheme: dark){ .cv-rung .g{ color:#FFD9B3; } }
.cv-rung .dist{ font:10.5px 'IBM Plex Mono',monospace; letter-spacing:1.3px; text-transform:uppercase; color:var(--cv-teal); margin-top:10px; }
.cv-rung ul{ margin:12px 0 0; padding:0; list-style:none; }
.cv-rung li{ padding:5px 0; border-bottom:1px solid var(--line-soft); font-size:14.5px; }
.cv-rung li small{ color:var(--text-faint); }
.cv-rung p{ font-size:13.5px; color:var(--text-soft); margin:12px 0 0; }
.cv-pane[hidden]{ display:none; }
.cv-note{ margin-top:22px; padding:18px 20px; border-left:3px solid var(--cv-coral); background:var(--bg-card); font-size:14.5px; color:var(--text-soft); }
.cv-note b{ color:var(--text); }
.cv-links{ display:flex; gap:10px; flex-wrap:wrap; margin-top:16px; }
.cv-links a{ font:12px 'IBM Plex Mono',monospace; padding:7px 12px; border:1px solid var(--line); border-radius:999px; }
.cv-links a:hover{ border-color:var(--cv-teal); color:var(--cv-teal); }
@media (max-width:900px){ .cv-ladder{ grid-template-columns:1fr; } .cv-rung{ margin-left:0; margin-top:-1px; } .cv-rung:not(:last-child)::after{ content:"\2193"; right:24px; top:auto; bottom:-14px; } }

/* real monthly cost */
.cv-calc{ display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start; }
.cv-in{ display:grid; grid-template-columns:1fr 1fr; gap:14px 16px; }
.cv-in label{ display:block; font:10.5px 'IBM Plex Mono',monospace; letter-spacing:1.2px; text-transform:uppercase; color:var(--text-faint); margin-bottom:6px; }
.cv-in input{ width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:8px; background:var(--bg-card); color:var(--text); font:500 16px 'Archivo',sans-serif; }
.cv-in .full{ grid-column:1 / -1; }
.cv-in .hint{ font-size:12px; color:var(--text-faint); margin-top:5px; }
.cv-out{ background:#0E3B43; color:#E3ECEA; border-radius:14px; padding:30px 28px; }
.cv-out .k{ font:10.5px 'IBM Plex Mono',monospace; letter-spacing:1.5px; text-transform:uppercase; color:#FFD9B3; }
.cv-out .total{ font-family:'Fraunces',Georgia,serif; font-size:clamp(44px,6vw,64px); line-height:1; color:#fff; margin-top:8px; }
.cv-out .total small{ font-size:.32em; color:#B9CCCB; font-family:'Archivo',sans-serif; margin-left:6px; }
.cv-bar{ display:flex; height:14px; border-radius:999px; overflow:hidden; margin:22px 0 18px; background:rgba(255,255,255,.08); }
.cv-bar span{ display:block; height:100%; transition:width .3s; }
.cv-rows{ display:grid; gap:8px; }
.cv-rows div{ display:grid; grid-template-columns:14px 1fr auto; gap:10px; align-items:center; font-size:14.5px; }
.cv-rows i{ width:12px; height:12px; border-radius:3px; display:block; }
.cv-rows b{ font-weight:600; color:#fff; }
.cv-out .flag{ margin-top:18px; padding-top:16px; border-top:1px solid rgba(255,255,255,.15); font-size:14px; color:#CFE0DE; }
.cv-out .flag b{ color:#FFD9B3; }
@media (max-width:900px){ .cv-calc{ grid-template-columns:1fr; } }
@media (max-width:480px){ .cv-in{ grid-template-columns:1fr; } }

/* sub-areas */
.cv-areas{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.cv-area{ border:1px solid var(--line); padding:22px; background:var(--bg-card); border-radius:12px; }
.cv-area .k{ font:10.5px 'IBM Plex Mono',monospace; letter-spacing:1.3px; text-transform:uppercase; color:var(--cv-coral); }
.cv-area h3{ font-size:22px; margin:8px 0 8px; }
.cv-area p{ font-size:14px; color:var(--text-soft); margin:0; }
@media (max-width:980px){ .cv-areas{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .cv-areas{ grid-template-columns:1fr; } }

/* commute */
.cv-commute{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.cv-commute a{ display:flex; justify-content:space-between; align-items:center; gap:12px; padding:18px 20px; border:1px solid var(--line); border-radius:12px; background:var(--bg-card); transition:border-color .2s, transform .2s; }
.cv-commute a:hover{ border-color:var(--cv-teal); transform:translateY(-2px); }
.cv-commute b{ display:block; font-family:'Fraunces',Georgia,serif; font-size:19px; font-weight:560; }
.cv-commute small{ display:block; color:var(--text-faint); font-size:12.5px; margin-top:2px; }
.cv-commute span.arr{ font:12px 'IBM Plex Mono',monospace; color:var(--cv-teal); white-space:nowrap; }
@media (max-width:900px){ .cv-commute{ grid-template-columns:1fr; } }

/* outdoors */
.cv-out-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.cv-out-grid > div{ border-top:2px solid var(--cv-deep); padding-top:16px; }
@media (prefers-color-scheme: dark){ .cv-out-grid > div{ border-top-color:#FFD9B3; } }
.cv-out-grid h3{ font-size:19px; margin:0 0 6px; }
.cv-out-grid p{ font-size:14px; color:var(--text-soft); margin:0; }
@media (max-width:980px){ .cv-out-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .cv-out-grid{ grid-template-columns:1fr; } }

.cv-form input, .cv-form textarea{ padding:14px 16px; border-radius:8px; border:1px solid rgba(255,217,179,.3); background:#0A2A30; color:#F5F5F3; font-family:Archivo,sans-serif; font-size:15px; }
.cv-form button{ background:#FFD9B3; color:#0E3B43; border:0; cursor:pointer; }
@media (max-width:760px){ .cv-hero::after{ background:linear-gradient(180deg, rgba(8,28,32,.35) 0%, rgba(8,28,32,.55) 35%, rgba(6,20,23,.92) 75%); } .cv-hero h1 em{ font-size:.36em; } }
.cv-areas-3{ grid-template-columns:repeat(3,1fr); }
@media (max-width:900px){ .cv-areas-3{ grid-template-columns:1fr; } }
a.cv-area{ color:inherit; transition:border-color .2s; }
a.cv-area:hover{ border-color:var(--cv-teal); }
