  :root { --sage:#6E9A91; --sage-d:#6E9A91; --salmon:#E3A08F; --char:#2E3431; --cream:#F6F3EE; --line:#E6E1D8; --wolt:#00C2E8; }
  * { box-sizing:border-box; }
  html { scroll-behavior:smooth; }
  body { margin:0; background:var(--cream); color:var(--char); font-family:'Outfit',sans-serif; -webkit-font-smoothing:antialiased; text-wrap:pretty; }
  a { color:var(--sage); text-decoration:none; }
  a:hover { color:var(--salmon); }
  img { display:block; max-width:100%; }
  button { font-family:inherit; cursor:pointer; }
  :focus-visible { outline:3px solid var(--sage-d); outline-offset:2px; }
  section[id], #top { scroll-margin-top:var(--hdr,72px); }
  .wrap { max-width:1360px; margin:0 auto; padding-left:clamp(20px,4vw,48px); padding-right:clamp(20px,4vw,48px); }
  .kicker { font-size:13px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--salmon); margin-bottom:10px; }
  h1, h2 { margin:0; }
  .cover { object-fit:cover; width:100%; height:100%; }

  /* header */
  .hdr { position:sticky; top:0; z-index:50; background:rgba(246,243,238,.92); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border-bottom:1px solid #e8e3da; }
  .hdr .wrap { padding-top:14px; padding-bottom:14px; display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; }
  .logo { display:inline-flex; }
  .logo img { height:38px; width:auto; }
  .nav { display:flex; gap:clamp(16px,2.4vw,32px); font-size:15px; font-weight:500; flex-wrap:wrap; }
  .nav a { color:#4a524d; position:relative; padding:6px 0; }
  .nav a.on::after { content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px; background:var(--sage); border-radius:2px; }
  .hdr-r { display:flex; align-items:center; gap:14px; }
  .lang { display:flex; border:1.5px solid #cfd6d1; border-radius:100px; overflow:hidden; }
  .lang button { border:0; background:transparent; padding:7px 13px; font-size:12px; font-weight:600; letter-spacing:.06em; color:var(--sage-d); }
  .lang button[aria-pressed="true"] { background:var(--sage-d); color:#fff; }
  .btn-call { display:inline-flex; align-items:center; gap:10px; background:var(--salmon); color:#fff; font-weight:600; font-size:15px; padding:12px 20px; border-radius:100px; white-space:nowrap; }
  .btn-call:hover { background:#d8907e; color:#fff; }

  /* hero */
  .hero-wrap { padding-top:24px; }
  .hero { position:relative; background:linear-gradient(135deg,#FBFAF8 0%,#EEEBE5 55%,#F4F1EB 100%); border-radius:32px; padding:clamp(32px,5vw,72px); display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr)); gap:clamp(28px,4vw,48px); align-items:center; overflow:hidden; }
  .hero::before { content:""; position:absolute; inset:0; background:radial-gradient(ellipse 60% 40% at 80% 20%, rgba(110,154,145,.10), transparent 70%), radial-gradient(ellipse 50% 40% at 20% 90%, rgba(227,160,143,.12), transparent 70%); pointer-events:none; }
  .hero > div { position:relative; }
  .status { display:inline-flex; align-items:center; gap:10px; background:#fff; border-radius:100px; padding:8px 16px 8px 10px; font-size:13px; font-weight:600; color:var(--sage-d); margin-bottom:26px; box-shadow:0 2px 10px rgba(0,0,0,.05); }
  .status i { width:22px; height:22px; border-radius:50%; background:var(--sage-d); color:#fff; display:inline-flex; align-items:center; justify-content:center; font-size:12px; font-style:normal; }
  .hero h1 { font-size:clamp(40px,5vw,66px); line-height:1.02; font-weight:700; letter-spacing:-.02em; margin-bottom:22px; }
  .hero h1 span { color:var(--sage-d); }
  .hero p { font-size:clamp(16px,1.4vw,19px); line-height:1.55; color:#5c645f; margin:0 0 34px; max-width:520px; }
  .row { display:flex; gap:14px; align-items:center; flex-wrap:wrap; }
  .btn { display:inline-flex; align-items:center; justify-content:center; font-weight:600; font-size:16px; border-radius:100px; }
  .btn-sage { background:var(--sage-d); color:#fff; padding:17px 32px; }
  .btn-sage:hover { background:#5f8a81; color:#fff; }
  .btn-ghost { background:#fff; color:var(--char); padding:17px 28px; border:1.5px solid #dcd7cd; }
  .btn-ghost:hover { border-color:var(--sage); color:var(--char); }
  .stats { display:flex; gap:clamp(20px,3vw,36px); margin-top:40px; font-size:14px; color:#6b736e; flex-wrap:wrap; }
  .stats strong { display:block; font-size:22px; color:var(--char); font-weight:700; }
  .hero-img { position:relative; min-height:420px; height:clamp(420px,36vw,520px); }
  .hero-img .arch { position:absolute; right:0; top:0; width:92%; height:100%; border-radius:260px 260px 32px 32px; overflow:hidden; box-shadow:0 30px 60px -20px rgba(46,52,49,.35); }
  .pop { position:absolute; left:0; bottom:28px; background:#fff; border-radius:20px; padding:14px 16px; display:flex; gap:14px; align-items:center; box-shadow:0 16px 40px -12px rgba(0,0,0,.2); width:min(320px,85%); }
  .pop .th { width:60px; height:60px; border-radius:16px; overflow:hidden; flex:none; }
  .pop .nm { font-weight:600; font-size:15px; }
  .pop .sub { font-size:13px; color:#7a827d; }
  .pop .pr { font-weight:700; color:#E3A08F; font-size:17px; white-space:nowrap; }

  /* section heads */
  .sec { padding-top:clamp(48px,6vw,72px); padding-bottom:16px; }
  .sec-head { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:26px; gap:16px; flex-wrap:wrap; }
  .sec-head .kicker { margin-bottom:8px; }
  .sec-head h2 { font-size:clamp(30px,3vw,40px); font-weight:700; letter-spacing:-.02em; }
  .link-u { font-weight:600; color:var(--sage-d); font-size:15px; border-bottom:2px solid var(--sage-d); padding-bottom:2px; }

  .cat-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:18px; }
  .cat-card { border-radius:24px; overflow:hidden; background:#fff; box-shadow:0 8px 24px -12px rgba(0,0,0,.12); display:block; color:var(--char); transition:transform .15s; }
  .cat-card:hover { transform:translateY(-3px); color:var(--char); }
  .cat-card .im { height:160px; background:#eee9e0; }
  .cat-card .tx { padding:16px 18px 18px; }
  .cat-card .tx b { display:block; font-weight:600; font-size:17px; }
  .cat-card .tx span { display:block; font-size:13px; color:#7a827d; margin-top:2px; }

  .how { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); gap:18px; padding-top:clamp(40px,5vw,56px); padding-bottom:clamp(48px,6vw,72px); }
  .how > div { border-radius:28px; padding:clamp(28px,3vw,36px); display:flex; flex-direction:column; color:#fff; }
  .how .k { font-size:13px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; margin-bottom:18px; }
  .how .t { font-size:clamp(24px,2.2vw,30px); font-weight:700; letter-spacing:-.01em; line-height:1.1; margin-bottom:14px; min-height:2.2em; }
  .how p { font-size:15px; line-height:1.6; margin:0 0 24px; flex:1; }
  .how a.b { display:inline-flex; align-items:center; justify-content:center; align-self:flex-start; height:50px; padding:0 24px; border-radius:100px; font-weight:600; font-size:16px; white-space:nowrap; background:#fff; }
  .how .h1 { background:var(--sage-d); } .how .h1 a.b { color:var(--sage-d); }
  .how .h2 { background:#E3A08F; } .how .h2 a.b { color:#E3A08F; }
  .how .h3 { background:#fff; color:var(--char); border:1.5px solid var(--line); }
  .how .h3 .k { color:#7a827d; } .how .h3 p { color:#5c645f; }
  .how .h3 a.b { background:#00C2E8; color:#fff; }
  .how .h3 a.b:hover { background:#00a9ca; color:#fff; }

  .white { background:#fff; }
  .fav-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:20px; }
  .fav { border-radius:24px; overflow:hidden; background:var(--cream); }
  .fav .im { aspect-ratio:4/3; background:#eee9e0; }
  .fav .tx { padding:18px 20px 20px; }
  .ttl { display:flex; justify-content:space-between; align-items:baseline; gap:12px; }
  .ttl b { font-weight:600; font-size:17px; }
  .ttl em { font-style:normal; font-weight:700; color:var(--sage-d); font-size:17px; white-space:nowrap; }
  .desc { font-size:13.5px; color:#7a827d; margin-top:6px; line-height:1.5; }

  .about-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr)); gap:20px; padding-bottom:clamp(48px,6vw,72px); }
  .about-img { border-radius:32px; min-height:360px; overflow:hidden; }
  .about-dark { border-radius:32px; background:var(--char); color:#fff; padding:clamp(32px,4vw,48px); display:flex; flex-direction:column; justify-content:space-between; gap:32px; }
  .about-dark h2 { font-size:clamp(28px,2.8vw,36px); font-weight:700; letter-spacing:-.02em; line-height:1.1; margin:0 0 18px; }
  .about-dark p { font-size:16px; line-height:1.65; color:#c9d0cc; margin:0; }
  .about-dark .kicker { margin-bottom:16px; }
  .pill { font-weight:600; font-size:15px; padding:13px 22px; border-radius:100px; display:inline-block; }
  .pill-w { background:#fff; color:var(--char); } .pill-w:hover { background:#f1eee8; color:var(--char); }
  .pill-o { border:1.5px solid rgba(255,255,255,.4); color:#fff; } .pill-o:hover { border-color:#fff; color:#fff; }

  /* menu */
  .menu-top { padding-top:clamp(48px,6vw,80px); padding-bottom:20px; }
  .menu-top .flex { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; flex-wrap:wrap; }
  .menu-top h2 { font-size:clamp(38px,5vw,64px); font-weight:700; letter-spacing:-.025em; line-height:1; }
  .menu-top p { font-size:15px; color:#6b736e; margin:0; max-width:420px; line-height:1.5; }
  .chips-bar { position:sticky; top:var(--hdr,67px); z-index:40; background:rgba(246,243,238,.94); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border-bottom:1px solid #e8e3da; }
  .chips { padding-top:12px; padding-bottom:12px; display:flex; gap:8px; overflow-x:auto; white-space:nowrap; scrollbar-width:none; }
  .chips::-webkit-scrollbar { width:0; height:0; }
  .chip { flex:none; padding:10px 18px; border-radius:100px; background:#fff; color:#4a524d; font-size:14px; font-weight:600; border:1px solid var(--line); }
  .chip:hover { border-color:var(--sage); color:var(--sage-d); }
  .chip[aria-pressed="true"] { background:var(--char); color:#fff; border-color:var(--char); }
  .menu-body { padding-top:16px; padding-bottom:clamp(48px,6vw,80px); }
  .mcat { padding:clamp(28px,4vw,48px) 0 8px; }
  .mcat-head { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:22px; }
  .mcat-head h3 { margin:0; font-size:clamp(28px,3vw,38px); font-weight:700; letter-spacing:-.02em; }
  .mcat-head .bl { font-size:14px; color:#7a827d; margin-top:4px; }
  .szpill { font-size:13px; font-weight:600; color:var(--sage-d); background:#fff; border:1px solid var(--line); border-radius:100px; padding:8px 14px; }
  .items { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:18px; }
  .item { border-radius:22px; overflow:hidden; background:#fff; box-shadow:0 8px 24px -14px rgba(0,0,0,.12); display:flex; flex-direction:column; position:relative; }
  .item .im { aspect-ratio:4/3; background:#eee9e0; }
  .item .tx { padding:16px 18px 18px; display:flex; flex-direction:column; gap:6px; flex:1; }
  .item .ttl b { font-size:16.5px; line-height:1.2; }
  .item .ttl em { font-size:16px; }
  .item .desc { margin-top:0; }
  .nou { position:absolute; top:12px; left:12px; background:#E3A08F; color:#fff; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; padding:5px 10px; border-radius:100px; }
  .sizes { display:flex; gap:6px; margin-top:6px; flex-wrap:wrap; }
  .sizes span { font-size:12px; font-weight:600; background:var(--cream); border-radius:100px; padding:5px 10px; color:#4a524d; }
  .menu-cta { margin-top:48px; background:var(--sage-d); color:#fff; border-radius:28px; padding:clamp(28px,3vw,40px); display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; }
  .menu-cta b { display:block; font-size:clamp(22px,2.4vw,30px); font-weight:700; letter-spacing:-.01em; }
  .menu-cta span { display:block; font-size:15px; opacity:.92; margin-top:6px; }
  .menu-cta a { background:#fff; color:var(--sage-d); font-weight:700; font-size:18px; padding:14px 26px; border-radius:100px; white-space:nowrap; }
  .menu-note { font-size:12.5px; color:#9a9d98; margin:22px 0 0; line-height:1.5; }
  .state { padding:48px 0; color:#7a827d; text-align:center; }

  /* about */
  .about1 { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr)); gap:clamp(28px,4vw,56px); align-items:center; padding-top:clamp(48px,6vw,80px); padding-bottom:clamp(36px,5vw,64px); }
  .about1 .kicker { margin-bottom:12px; }
  .about1 h2 { font-size:clamp(38px,4.6vw,60px); font-weight:700; letter-spacing:-.025em; margin-bottom:22px; line-height:1.02; }
  .about1 p { font-size:17px; line-height:1.65; color:#5c645f; margin:0 0 16px; }
  .about1 .arch { border-radius:260px 260px 32px 32px; aspect-ratio:4/5; max-height:620px; overflow:hidden; }
  .tl { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:18px; padding-top:clamp(48px,6vw,72px); padding-bottom:clamp(48px,6vw,72px); }
  .tl > div { background:var(--cream); border-radius:24px; padding:28px; }
  .tl .y { font-size:34px; font-weight:700; color:var(--sage-d); letter-spacing:-.02em; line-height:1; }
  .tl .tt { font-weight:600; font-size:18px; margin:14px 0 8px; }
  .tl .tx { font-size:14.5px; color:#6b736e; line-height:1.55; }
  .vals { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr)); gap:18px; padding-top:clamp(48px,6vw,72px); padding-bottom:clamp(48px,6vw,72px); }
  .vals > div { border-radius:28px; padding:clamp(28px,3vw,36px); color:#fff; }
  .vals .tt { font-size:30px; font-weight:700; letter-spacing:-.01em; line-height:1.1; margin-bottom:12px; }
  .vals p { font-size:15px; line-height:1.6; margin:0; }
  .v1 { background:#E3A08F; } .v2 { background:var(--sage-d); } .v3 { background:var(--char); } .v3 p { color:#c9d0cc; }

  /* gallery */
  .gal-wrap { padding-top:clamp(48px,6vw,80px); padding-bottom:clamp(48px,6vw,80px); }
  .gal-wrap h2 { font-size:clamp(38px,5vw,64px); font-weight:700; letter-spacing:-.025em; margin-bottom:32px; line-height:1; }
  .gal { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); grid-auto-rows:220px; grid-auto-flow:dense; gap:16px; }
  .gal > div { border-radius:22px; overflow:hidden; background:#eee9e0; }

  /* contact */
  .ct-wrap { padding-top:clamp(48px,6vw,80px); padding-bottom:clamp(48px,6vw,80px); }
  .ct-wrap h2 { font-size:clamp(38px,5vw,64px); font-weight:700; letter-spacing:-.025em; margin-bottom:32px; line-height:1; }
  .ct-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr)); gap:18px; }
  .ct-grid > div { border-radius:28px; padding:clamp(28px,3vw,36px); }
  .ct-grid .k { font-size:13px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; margin-bottom:16px; }
  .c1 { background:var(--sage-d); color:#fff; }
  .c1 .big { display:block; font-size:clamp(30px,3vw,40px); font-weight:700; color:#fff; letter-spacing:-.01em; line-height:1; }
  .c1 .sm { font-size:15px; opacity:.92; margin-top:12px; line-height:1.6; }
  .c1 .ml { display:inline-block; margin-top:22px; color:#fff; font-weight:600; border-bottom:1.5px solid rgba(255,255,255,.6); padding-bottom:2px; }
  .c2 { background:#fff; border:1.5px solid var(--line); }
  .c2 .k { color:#7a827d; }
  .c2 .hr { display:flex; justify-content:space-between; gap:12px; padding:12px 0; border-bottom:1px solid #eee9e0; font-size:16px; }
  .c2 .hr span:first-child { font-weight:500; }
  .c2 .hr span:last-child { color:var(--sage-d); font-weight:600; }
  .c2 .note { font-size:14px; color:#6b736e; margin-top:14px; line-height:1.5; }
  .c3 { background:#E3A08F; color:#fff; }
  .c3 .ad { font-size:clamp(22px,2.2vw,28px); font-weight:700; line-height:1.15; }
  .c3 .bs { display:flex; gap:10px; margin-top:22px; flex-wrap:wrap; }
  .c3 .bs a { font-weight:600; font-size:15px; padding:12px 20px; border-radius:100px; }
  .c3 .bs a:first-child { background:#fff; color:#E3A08F; }
  .c3 .bs a:last-child { border:1.5px solid rgba(255,255,255,.7); color:#fff; }
  .map { margin-top:18px; border-radius:28px; overflow:hidden; height:420px; background:var(--line); }
  .map iframe { width:100%; height:100%; border:0; display:block; }
  .soc { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr)); gap:18px; margin-top:18px; }
  .soc a { background:#fff; border:1.5px solid var(--line); border-radius:22px; padding:22px 26px; display:flex; justify-content:space-between; align-items:center; color:var(--char); font-weight:600; }
  .soc a:hover { border-color:var(--sage); color:var(--char); }
  .soc a i { font-style:normal; color:var(--sage-d); }

  /* legal */
  .legal { max-width:860px; margin:0 auto; padding:clamp(48px,6vw,80px) clamp(20px,4vw,48px); }
  .legal h2 { font-size:clamp(34px,4vw,52px); font-weight:700; letter-spacing:-.025em; margin-bottom:36px; line-height:1; }
  .legal .card { background:#fff; border-radius:24px; padding:clamp(24px,3vw,36px); margin-bottom:16px; border:1.5px solid var(--line); }
  .legal h3 { font-size:24px; font-weight:700; margin:0 0 12px; letter-spacing:-.01em; }
  .legal p { font-size:15.5px; line-height:1.7; color:#5c645f; margin:0; }
  .legal .links { display:flex; gap:12px; flex-wrap:wrap; margin-top:8px; }
  .legal .links a { background:#fff; border:1.5px solid var(--line); border-radius:100px; padding:12px 20px; font-weight:600; color:var(--char); font-size:14px; }

  /* footer */
  footer { background:var(--sage-d); color:#fff; }
  footer a { color:#fff; }
  footer a:hover { color:#fff; text-decoration:underline; }
  .ft { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); gap:36px; padding-top:clamp(44px,5vw,64px); padding-bottom:36px; border-bottom:1px solid rgba(255,255,255,.25); }
  .ft img { height:44px; width:auto; margin-bottom:16px; }
  .ft p { font-size:15px; line-height:1.6; margin:0; max-width:300px; }
  .ft h4 { font-size:12px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; margin:0 0 12px; }
  .ft div > div { font-size:15px; line-height:1.9; }
  .fb { display:flex; justify-content:space-between; gap:12px; padding-top:20px; padding-bottom:28px; font-size:13px; flex-wrap:wrap; }
  .fb span { display:flex; gap:14px; }

  /* cookie notice */
  .ck { position:fixed; left:16px; right:16px; bottom:16px; z-index:60; display:flex; justify-content:center; pointer-events:none; }
  .ck[hidden] { display:none; }
  .ck > div { pointer-events:auto; background:var(--char); color:#fff; border-radius:20px; padding:16px 18px 16px 22px; display:flex; align-items:center; gap:18px; max-width:720px; box-shadow:0 20px 50px -20px rgba(0,0,0,.5); flex-wrap:wrap; }
  .ck span { font-size:14px; line-height:1.5; flex:1; min-width:220px; }
  .ck a { color:var(--salmon); }
  .ck button { background:var(--sage-d); color:#fff; border:0; font-weight:600; font-size:14px; padding:11px 18px; border-radius:100px; }

  .totop { position:fixed; right:20px; bottom:20px; z-index:55; width:50px; height:50px; border-radius:50%; border:0; background:var(--sage-d); color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 10px 28px -8px rgba(46,52,49,.5); opacity:0; visibility:hidden; transform:translateY(14px); transition:opacity .35s ease, transform .35s ease, visibility 0s linear .35s, bottom .3s ease, background .15s; }
  .totop.show { opacity:1; visibility:visible; transform:none; transition:opacity .35s ease, transform .35s ease, visibility 0s, bottom .3s ease, background .15s; }
  .totop:hover { background:#5f8a81; }
  body.has-ck .totop { bottom:96px; }
  @media (max-width:560px) { .hdr .wrap { gap:12px; } .nav { order:3; width:100%; justify-content:space-between; gap:8px; } }
  @media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .totop { transition:none; } .cat-card { transition:none; } }

  .center { text-align:center; margin-top:34px; }
