/* ===== Цветовые темы ===== */
:root,[data-theme=rose]{
  --bg:#efe3e0; --card:#fffbfa; --text:#3d3233; --muted:#85706f;
  --accent:#b98587; --accent-dark:#a47173; --accent-light:#d9b8b6;
  --soft:#f6ecea; --line:#ecdfdc;
  --cv1:#f3e7e5; --cv2:#e0c5c4; --cv3:#c9a0a1;
  --tag-bg:var(--soft); --tag:var(--accent-dark); --yellow:#e0b55a;
}
[data-theme=sage]{
  --bg:#e8eee6; --card:#fbfcfa; --text:#2f3a33; --muted:#6a786e;
  --accent:#7f9c86; --accent-dark:#62806b; --accent-light:#b9cdbd;
  --soft:#eef3ec; --line:#dfe7dc;
  --cv1:#eef3eb; --cv2:#c9d9c7; --cv3:#9bb5a0;
  --tag-bg:var(--soft); --tag:var(--accent-dark);
}
[data-theme=eucalyptus]{
  --bg:#e5edec; --card:#fafcfc; --text:#2b3837; --muted:#647675;
  --accent:#6f9790; --accent-dark:#567c75; --accent-light:#b4cdc8;
  --soft:#ecf3f2; --line:#dae6e4;
  --cv1:#ebf3f1; --cv2:#c2d7d3; --cv3:#90b3ad;
  --tag-bg:var(--soft); --tag:var(--accent-dark);
}
[data-theme=olive]{
  --bg:#eeeee3; --card:#fdfdf8; --text:#34362b; --muted:#72745e;
  --accent:#8d9a6a; --accent-dark:#6f7b4f; --accent-light:#c9d0ae;
  --soft:#f3f4e9; --line:#e5e7d5;
  --cv1:#f2f3e6; --cv2:#d6dbbd; --cv3:#aab581;
  --tag-bg:var(--soft); --tag:var(--accent-dark);
}
[data-theme=mint]{
  --bg:#f1efe6; --card:#fffefb; --text:#33392f; --muted:#727a6b;
  --accent:#86ab95; --accent-dark:#668d76; --accent-light:#c4dbcb;
  --soft:#f1f6ef; --line:#e6e9de;
  --cv1:#f4f3e9; --cv2:#d3e4d6; --cv3:#a6c6b0;
  --tag-bg:#f6f1e3; --tag:#8a7a52;
}
[data-theme=moss]{
  --bg:#ebeee7; --card:#fcfcfa; --text:#2e352f; --muted:#6b7469;
  --accent:#6b8a6e; --accent-dark:#56745a; --accent-light:#b7c9b5;
  --soft:#eff3ec; --line:#e0e6dc;
  --cv1:#eef2ea; --cv2:#c5d4c2; --cv3:#e3c3c0;
  --tag-bg:#f5e9e7; --tag:#a07070;
}
/* Чистые нежные оттенки */
[data-theme=spring]{
  --bg:#ecf6e9; --card:#fdfffc; --text:#273527; --muted:#5f7560;
  --accent:#7cc08a; --accent-dark:#4e9a5e; --accent-light:#bfe3c5;
  --soft:#eff8ee; --line:#dcefdc;
  --cv1:#f1faee; --cv2:#cdeccf; --cv3:#94d09f;
  --tag-bg:#fdf5dc; --tag:#9a7b1f;
}
[data-theme=pistachio]{
  --bg:#f1f6e6; --card:#fffffa; --text:#2f3624; --muted:#6a7558;
  --accent:#a3c46f; --accent-dark:#759a3f; --accent-light:#d4e6b5;
  --soft:#f4f8ea; --line:#e4edd2;
  --cv1:#f6f9ec; --cv2:#dcebc3; --cv3:#b5d18a;
  --tag-bg:var(--soft); --tag:var(--accent-dark);
}
[data-theme=tendermint]{
  --bg:#e9f6f0; --card:#fcfffd; --text:#253632; --muted:#5d7670;
  --accent:#74c2a5; --accent-dark:#3f9a7a; --accent-light:#bfe6d7;
  --soft:#edf8f3; --line:#d8eee5;
  --cv1:#f0faf6; --cv2:#c9ecdf; --cv3:#8fd3ba;
  --tag-bg:var(--soft); --tag:var(--accent-dark);
}
[data-theme=aqua]{
  --bg:#e7f5f5; --card:#fbfefe; --text:#223737; --muted:#5a7576;
  --accent:#6cc1bd; --accent-dark:#3a9894; --accent-light:#bce5e3;
  --soft:#ecf7f7; --line:#d6ecec;
  --cv1:#eef9f9; --cv2:#c4e8e6; --cv3:#88cfcb;
  --tag-bg:var(--soft); --tag:var(--accent-dark);
}
[data-theme=sky]{
  --bg:#eaf2fb; --card:#fcfdff; --text:#26313f; --muted:#5f6f82;
  --accent:#8ab6e3; --accent-dark:#4f86c0; --accent-light:#c8def4;
  --soft:#eef5fc; --line:#dbe7f4;
  --cv1:#f1f7fd; --cv2:#d2e5f7; --cv3:#9fc5ea;
  --tag-bg:#fdf3dc; --tag:#a07d22;
}
[data-theme=lavender]{
  --bg:#f1eef9; --card:#fdfcff; --text:#322c40; --muted:#706885;
  --accent:#a99ad8; --accent-dark:#7d6bc0; --accent-light:#d8d0f0;
  --soft:#f4f1fb; --line:#e6e0f4;
  --cv1:#f6f3fc; --cv2:#e0d8f4; --cv3:#bfb0e6;
  --tag-bg:var(--soft); --tag:var(--accent-dark);
}
[data-theme=peach]{
  --bg:#fbefe8; --card:#fffdfb; --text:#3d2f29; --muted:#856f64;
  --accent:#efae8f; --accent-dark:#d17e5a; --accent-light:#f6d5c5;
  --soft:#fdf3ee; --line:#f4e2d9;
  --cv1:#fdf5f0; --cv2:#f8dccd; --cv3:#f0b99d;
  --tag-bg:#eef6ec; --tag:#5b8a5f;
}
[data-theme=blush]{
  --bg:#fbeef2; --card:#fffcfd; --text:#3e2d33; --muted:#866b74;
  --accent:#e9a3b6; --accent-dark:#cc7891; --accent-light:#f5d3dd;
  --soft:#fdf2f5; --line:#f4e0e6;
  --cv1:#fdf4f7; --cv2:#f6d8e1; --cv3:#eeb0c2;
  --tag-bg:#eef6ef; --tag:#5b8a62;
}

/* ===== База ===== */
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--text);font:16px/1.6 "Nunito",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;transition:background .3s}
a{color:inherit}
.card{max-width:480px;margin:0 auto;background:var(--card);min-height:100vh;box-shadow:0 0 40px rgba(60,60,50,.07);padding-bottom:84px;overflow:hidden}

/* ===== Шапка-обложка ===== */
.cover{height:150px;position:relative;overflow:hidden;background:linear-gradient(160deg,var(--cv1),var(--cv2));border-radius:0 0 28px 28px}
.cover>*{position:absolute;inset:0;width:100%;height:100%;display:none}
.cover .c1{fill:var(--card)} .cover .c2{fill:var(--cv2)} .cover .c3{fill:var(--cv3)}
.cover .line{fill:none;stroke:var(--accent);stroke-width:2.2;opacity:.6;stroke-linecap:round}
.cover .rays{stroke:var(--card);stroke-width:14;opacity:.55;stroke-linecap:round}

[data-hero=waves] .cover{background:linear-gradient(180deg,var(--cv1),var(--cv2) 70%)}
[data-hero=waves] .h-waves{display:block}
[data-hero=waves] .h-waves .c2{fill:var(--cv3);opacity:.45}
[data-hero=waves] .h-waves .c3{fill:var(--cv3);opacity:.8}
[data-hero=leaves] .h-leaves{display:block}
[data-hero=leaves] .cover{background:linear-gradient(160deg,var(--cv1),var(--cv2) 120%)}
[data-hero=topo] .h-topo{display:block}
[data-hero=topo] .cover{background:var(--cv1)}
[data-hero=topo] .cover .line{opacity:.3;stroke-width:1.5}
[data-hero=sunrise] .h-sunrise{display:block}
[data-hero=sunrise] .cover{background:linear-gradient(180deg,var(--cv1),var(--cv2))}
[data-hero=sunrise] .h-sunrise .c2{fill:var(--cv3);opacity:.5}
[data-hero=sunrise] .h-sunrise .c3{fill:var(--cv3)}
[data-hero=photo] .h-photo{display:block;background:url(../img/cabinet-1.jpg) center 40%/cover;filter:saturate(.7)}
[data-hero=photo] .h-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,color-mix(in srgb,var(--cv1) 15%,transparent),color-mix(in srgb,var(--cv3) 55%,transparent))}
[data-hero=plain] .cover{background:var(--cv2)}

/* Варианты с веточками (parts/branches.html) */
.cover>.svg-defs{display:block;width:0;height:0}
[data-hero=eucalyptus] .h-eucalyptus,[data-hero=fern] .h-fern,[data-hero=blossom] .h-blossom,
[data-hero=silhouette] .h-silhouette,[data-hero=vines] .h-vines,[data-hero=wreath] .h-wreath{display:block}
[data-hero=eucalyptus] .cover,[data-hero=fern] .cover,[data-hero=blossom] .cover,
[data-hero=vines] .cover,[data-hero=wreath] .cover{background:linear-gradient(170deg,var(--cv1),var(--cv2) 140%)}
[data-hero=silhouette] .cover{background:linear-gradient(170deg,var(--cv1),var(--cv2))}
.br .st{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;opacity:.7}
.br .ol{fill:none;stroke:var(--accent);stroke-width:1.6;opacity:.75;vector-effect:non-scaling-stroke}
.br .fl{fill:var(--cv3);stroke:var(--accent);stroke-width:1.2;opacity:.85;vector-effect:non-scaling-stroke}
.br .f1{fill:var(--cv3);opacity:.45}
.br .f2{fill:var(--accent-light);opacity:.6}
.flw circle{fill:#fff;opacity:.95}
.flw .mid{fill:var(--yellow)}
[data-hero=wreath] .br .ol{opacity:.6}

/* ===== Профиль ===== */
.hero{text-align:center;padding:0 20px 20px;position:relative}
.avatar{width:150px;height:150px;border-radius:50%;object-fit:cover;margin-top:-80px;border:5px solid var(--card);box-shadow:0 8px 24px rgba(40,50,40,.14);background:var(--soft);position:relative}
h1{font-size:28px;font-weight:800;margin:12px 0 4px}
.role{color:var(--muted);margin:0 0 14px;font-weight:600;font-size:15px}
.tags{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:18px}
.tags span{background:var(--tag-bg);color:var(--tag);border-radius:99px;padding:4px 12px;font-size:13px;font-weight:700}
.quick{display:none}

.actions{display:grid;gap:10px;grid-template-columns:1fr 1fr}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 16px;border-radius:14px;text-decoration:none;border:0;font:inherit;font-weight:700;cursor:pointer;transition:transform .15s,background .15s}
.btn:active{transform:scale(.98)}
.btn-main{background:var(--accent-dark);color:#fff;box-shadow:0 6px 16px color-mix(in srgb,var(--accent-dark) 30%,transparent)}
.btn-main:hover{background:var(--accent)}
.btn-ghost{background:var(--soft);color:var(--accent-dark);border:1.5px solid var(--line)}

/* ===== Блоки ===== */
.block{padding:22px;border-top:1px solid var(--line)}
.block p{margin:0 0 10px}
.block p:last-child{margin-bottom:0}
.lead{font-size:19px;font-weight:700;line-height:1.45}
.muted{color:var(--muted)}
h2{font-size:20px;margin:0 0 12px;font-weight:800}

/* Список «С чем я работаю» со значком */
.list{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.list li{position:relative;padding-left:30px}
.list li::before{content:"";position:absolute;left:0;top:3px;width:20px;height:20px;background:var(--mk,var(--accent));
  -webkit-mask:var(--mk-shape) center/contain no-repeat;mask:var(--mk-shape) center/contain no-repeat}
[data-marker=leaf]{--mk:var(--accent);--mk-shape:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 20C4 10 10 4 21 3c-1 11-7 17-17 17zm2.5-2.2C9 14 12 10.5 16 8c-4.5 1.5-8 5-9.5 9.8z' fill-rule='evenodd'/%3E%3C/svg%3E")}
[data-marker=flower]{--mk:var(--yellow,#e0b55a);--mk-shape:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg%3E%3Cellipse cx='12' cy='5.5' rx='3.6' ry='4.8'/%3E%3Cellipse cx='12' cy='5.5' rx='3.6' ry='4.8' transform='rotate(72 12 12)'/%3E%3Cellipse cx='12' cy='5.5' rx='3.6' ry='4.8' transform='rotate(144 12 12)'/%3E%3Cellipse cx='12' cy='5.5' rx='3.6' ry='4.8' transform='rotate(216 12 12)'/%3E%3Cellipse cx='12' cy='5.5' rx='3.6' ry='4.8' transform='rotate(288 12 12)'/%3E%3C/g%3E%3C/svg%3E")}
[data-marker=flower] .list li::after{content:"";position:absolute;left:7px;top:10px;width:6px;height:6px;border-radius:50%;background:#fff;opacity:.85}
[data-marker=heart]{--mk:var(--accent-light);--mk-shape:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21s-8-5.2-8-11a4.5 4.5 0 0 1 8-2.8A4.5 4.5 0 0 1 20 10c0 5.8-8 11-8 11z'/%3E%3C/svg%3E")}
:root{--yellow:#e0b55a}

.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.shot{padding:0;border:0;background:none;cursor:zoom-in;border-radius:14px;overflow:hidden;aspect-ratio:3/4}
.shot img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.shot:hover img{transform:scale(1.04)}
.viewer{border:0;padding:0;background:transparent;max-width:min(92vw,560px);max-height:90vh}
.viewer::backdrop{background:rgba(30,35,30,.75)}
.viewer img{max-width:100%;max-height:85vh;border-radius:16px;display:block}
.close{position:absolute;top:8px;right:8px;width:38px;height:38px;border-radius:50%;border:0;background:rgba(255,255,255,.9);font-size:24px;line-height:1;cursor:pointer;color:var(--text)}

.steps{list-style:none;padding:0;margin:0;counter-reset:s;display:grid;gap:12px}
.steps li{counter-increment:s;position:relative;padding-left:46px}
.steps li::before{content:counter(s);position:absolute;left:0;top:0;width:32px;height:32px;border-radius:50%;background:var(--soft);color:var(--accent-dark);font-weight:800;display:grid;place-items:center;border:1.5px solid var(--line)}

.principles{display:grid;gap:10px;margin-bottom:14px}
.principles div{display:flex;gap:12px;align-items:flex-start;background:var(--soft);border-radius:14px;padding:12px 14px}
.principles span{font-size:22px;line-height:1.3}
.principles p{margin:0}

details{border:1px solid var(--line);border-radius:14px;padding:0 14px;margin-bottom:8px;background:#fff}
summary{cursor:pointer;font-weight:700;padding:12px 0;list-style:none;position:relative;padding-right:24px}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:0;top:9px;font-size:22px;color:var(--accent)}
details[open] summary::after{content:"−"}
details p{padding-bottom:12px;color:var(--muted)}

.contacts{display:grid;gap:10px}
.contact{display:flex;gap:14px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:14px;text-decoration:none;word-break:break-word;background:#fff}
.contact:hover{border-color:var(--accent-light)}
.contact small{display:block;color:var(--muted);font-size:13px}
.ico{font-size:22px;width:28px;text-align:center;flex:none}
.socials{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.soc{padding:12px;border-radius:14px;text-align:center;text-decoration:none;font-weight:700;background:var(--soft);color:var(--accent-dark);border:1.5px solid var(--line)}
.soc:hover{border-color:var(--accent-light)}

.form{display:grid;gap:10px}
.form input[type=text],.form input[type=tel],.form input[type=email],.form textarea{
  width:100%;padding:13px 14px;border:1.5px solid var(--line);border-radius:12px;font:inherit;background:#fff;color:var(--text)}
.form input:focus,.form textarea:focus{outline:none;border-color:var(--accent)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.consent{display:flex;gap:10px;font-size:13px;color:var(--muted);align-items:flex-start}
.consent input{margin-top:3px;accent-color:var(--accent)}
.note{padding:12px 14px;border-radius:12px;font-weight:600}
.ok{background:#eaf3ec;color:#3f6b4b}.err{background:#f8e9e7;color:#8f3f37}

.foot{padding:20px;text-align:center;color:var(--muted);font-size:13px;border-top:1px solid var(--line)}

.dock{position:fixed;left:0;right:0;bottom:0;z-index:10;display:grid;grid-template-columns:1fr 1fr;gap:10px;
  max-width:480px;margin:0 auto;padding:10px 16px calc(10px + env(safe-area-inset-bottom));
  background:color-mix(in srgb,var(--card) 92%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--line)}

/* ===== Компьютерная версия ===== */
@media (min-width:960px){
  body{padding:32px 24px}
  .card{max-width:1120px;min-height:auto;border-radius:32px;padding-bottom:0;box-shadow:0 20px 60px rgba(40,50,40,.08)}
  .cover{height:240px;border-radius:0}
  .layout{display:grid;grid-template-columns:340px 1fr;gap:0;align-items:start}
  .side{position:sticky;top:24px;padding:0 8px 24px 32px}
  .hero{padding:0 0 8px}
  .avatar{width:180px;height:180px;margin-top:-110px}
  h1{font-size:30px}
  .actions{grid-template-columns:1fr}
  .quick{display:grid;gap:6px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line);font-size:15px;color:var(--muted)}
  .quick a{text-decoration:none}
  .quick a:hover{color:var(--accent-dark);text-decoration:underline}
  .content{padding:12px 40px 24px 32px}
  .content .block{padding:28px 0}
  .content .block:first-child{border-top:0}
  .lead{font-size:24px}
  h2{font-size:24px;margin-bottom:16px}
  .list{grid-template-columns:1fr 1fr;column-gap:28px}
  .principles{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr 1fr;column-gap:28px;row-gap:18px}
  .gallery{gap:14px}
  .contacts{grid-template-columns:repeat(3,1fr)}
  .form{grid-template-columns:1fr 1fr}
  .form textarea,.form .consent,.form button{grid-column:1/-1}
  .form button{justify-self:start;padding-inline:40px}
  .dock{display:none}
  .foot{border-top:1px solid var(--line)}
}

/* ===== Панель выбора оформления (?pick=1) ===== */
.picker{position:fixed;right:16px;top:16px;z-index:20;width:300px;max-height:calc(100vh - 32px);overflow:auto;background:#fff;border-radius:18px;padding:16px;box-shadow:0 12px 40px rgba(0,0,0,.18);font-size:14px;display:grid;gap:12px}
.pick-row>span{display:block;color:#777;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}
.pick-row div{display:flex;flex-wrap:wrap;gap:6px}
.picker button{border:1.5px solid #e4e4e4;background:#fafafa;border-radius:99px;padding:5px 11px;font:inherit;font-size:13px;cursor:pointer;color:#333}
.picker button.on{background:var(--accent-dark);border-color:var(--accent-dark);color:#fff}
.picker small{color:#777}
@media (max-width:959px){
  .picker{top:auto;bottom:84px;left:12px;right:12px;width:auto;max-height:45vh}
}

.doc{padding:24px 22px}
.doc h1{font-size:24px}
