@import url('https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@300;400;500;600&family=Playfair+Display:ital,wght@0,400;0,500;1,400;1,500&display=swap');
:root{--ink:#344239;--paper:#faf8f2;--taupe:#907c65;--line:#deddd2;--sage:#e8eadd}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.8 'Be Vietnam Pro',sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}header{height:100px;display:flex;align-items:center;justify-content:space-between;padding:0 6%;border-bottom:1px solid var(--line);gap:25px}.brand img{width:90px;height:80px;object-fit:contain;mix-blend-mode:multiply}nav{display:flex;gap:36px}nav a:hover{color:var(--taupe)}.button{background:var(--ink);color:white;border:1px solid var(--ink);display:inline-flex;align-items:center;justify-content:space-between;gap:32px;padding:16px 25px;font-size:13px}.button:hover{background:#526351}.small{padding:10px 18px}.hero{display:grid;grid-template-columns:1.1fr 1fr;min-height:630px}.hero-copy{padding:75px 8% 25px 11%}.eyebrow{font-size:10px;letter-spacing:2.5px;font-weight:500}.hero h1{font:500 clamp(48px,5.5vw,83px)/1.2 'Playfair Display',serif;margin:30px 0;color:#334636}em{font-family:'Playfair Display',serif;font-weight:400;color:var(--taupe)}.intro{font-size:16px;color:#6e756a;line-height:2;margin:25px 0 35px}.hero-foot{margin-top:65px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.7px}.hero-art{background:#e5e8dc;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;flex-direction:column}.hero-art img{width:72%;mix-blend-mode:multiply;z-index:1;filter:sepia(.15)}.hero-art p{font:italic 26px/1.5 'Playfair Display',serif;text-align:center;z-index:1;margin:0 0 45px}.orbit{position:absolute;width:82%;height:90%;border:1px solid #bec6b4;border-radius:50% 50% 0 0;top:45px}.vertical{position:absolute;right:15px;writing-mode:vertical-rl;font-size:9px;letter-spacing:3px}.ribbon{display:flex;justify-content:space-evenly;align-items:center;gap:20px;padding:23px 7%;background:#f0eee4;color:#6c7566;font-size:12px}.ribbon b{font-size:22px;font-weight:400}.section{padding:85px 6%}.section-head{display:flex;justify-content:space-between;gap:30px;align-items:center;margin-bottom:30px}.section-head>p{max-width:330px;color:#788073}h2{font:400 clamp(32px,3.5vw,48px)/1.35 'Playfair Display',serif;margin:15px 0 25px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.service-card{border-top:1px solid #b9bfaf;padding-top:20px}.service-art{height:220px;display:grid;place-items:center;background:#e5e7db;margin-bottom:25px;position:relative;overflow:hidden}.service-card:nth-child(2) .service-art{background:#eee6db}.service-card:nth-child(3) .service-art{background:#e0e6df}.service-art span{font:140px Georgia;color:#87977b}.service-art:after{content:'';position:absolute;border:1px solid #adb7a2;border-radius:50%;width:160px;height:180px;transform:rotate(30deg)}.service-card h3{font:25px/1.4 'Playfair Display',serif}.service-card p{color:#73796e}.card-actions{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:18px 0}.text-button{border:0;background:none;padding:6px 0;color:var(--ink);text-decoration:underline;text-underline-offset:5px}.fine{font-size:11px;color:#778070}.philosophy{background:#e9ecdf;display:grid;grid-template-columns:1fr 1fr;gap:8%;padding:65px 10%;align-items:center}.leaf-art{font:270px Georgia;color:#8d9c80;text-align:center}.philosophy p:not(.eyebrow){max-width:470px;color:#6c7665}.values{display:flex;gap:45px;margin-top:35px;color:#7d8975;font-size:11px}.values strong{color:var(--ink);font-weight:400;font-size:14px}.filters{display:flex;align-items:end;gap:16px;background:#efeee6;padding:22px;margin:30px 0 15px;flex-wrap:wrap}.filters label{flex:1;min-width:145px}label{display:block;font-size:12px}select,input,textarea{display:block;width:100%;padding:12px;background:var(--paper);border:1px solid #ced2c4;border-radius:0;color:var(--ink);margin-top:7px}textarea{resize:vertical}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.empty{grid-column:1/-1;text-align:center;border:1px dashed #c3c8b8;padding:45px;color:#78816e}.review-card{border:1px solid var(--line);padding:25px}.stars{color:#958164;letter-spacing:3px}.review-card small{color:#75806c}.closing{background:#344739;color:#f3f1e5;text-align:center;padding:60px 20px}.closing em{color:#c3c8ae}.closing .button{border-color:#b1b99c}footer{padding:35px 6%;display:flex;justify-content:space-between;gap:20px;font-size:11px}dialog{border:0;padding:45px;width:min(680px,92vw);max-height:90vh;overflow:auto;background:var(--paper);color:var(--ink)}dialog::backdrop{background:#1f3024a8;backdrop-filter:blur(4px)}.close{position:absolute;right:15px;top:10px;border:0;background:none;font-size:30px;color:var(--ink)}form label{margin-bottom:15px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.consent{display:flex;gap:10px;align-items:start;font-size:11px}.consent input{width:auto;margin-top:7px}.honeypot{display:none}ol{padding-left:22px}li{padding:7px}.detail-actions{display:flex;gap:15px;flex-wrap:wrap;margin-top:25px}:focus-visible{outline:3px solid #aa8252;outline-offset:4px}.admin{max-width:900px;margin:50px auto;padding:25px}.admin .review-card{margin:20px 0}.admin-actions{display:flex;gap:15px}
@media(max-width:760px){header{height:85px;padding:0 5%;gap:10px}header>.button{display:none}nav{gap:18px;font-size:11px}.brand img{width:65px}.hero{grid-template-columns:1fr}.hero-copy{padding:45px 7% 25px}.hero h1{font-size:56px}.hero-foot{margin-top:35px}.hero-art{min-height:400px}.hero-art img{width:60%;max-width:340px}.orbit{width:75%;height:90%;top:25px}.hero-art p{font-size:22px}.ribbon{font-size:9px;padding:15px 4%;gap:10px}.section{padding:55px 6%}.section-head{align-items:start;flex-direction:column;gap:0}.service-grid,.review-grid{grid-template-columns:1fr}.service-art{height:190px}.philosophy{grid-template-columns:1fr;padding:45px 8%}.leaf-art{font-size:140px;line-height:1}.values{gap:30px}.filters{gap:12px;padding:15px}.filters label{min-width:120px}footer{flex-direction:column;gap:5px}.form-row{grid-template-columns:1fr}dialog{padding:35px 22px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.fine,.empty,.section-head>p,.review-card small,.service-card p,.intro{color:#5e6859}.philosophy p:not(.eyebrow),.values{color:#58644f}.ribbon{color:#58634f}input,select,textarea{border-color:#828b76}.review-card p{white-space:pre-line}.closing :focus-visible{outline-color:#e9d1a7}

/* Brand updated from the user-supplied LàDiệp logo, 14 October 2026. */
:root{--taupe:#93705b;--brand:#c9a48c}.brand img{width:108px;height:90px}.hero-art{background:#f0e7df}.hero-art img{filter:none;width:72%;max-width:400px;mix-blend-mode:multiply}.orbit{border-color:#d7c2af}.hero-art p{color:#765c4d}.closing em{color:#dfc2ae}@media(max-width:760px){.brand img{width:78px;height:76px}.hero-art img{width:68%;max-width:290px}}
.category-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:25px 0 30px}.category-tab{padding:12px 18px;border:1px solid var(--line);background:transparent;color:var(--ink);font-size:12px}.category-tab[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.service-card .service-price{font-weight:600;color:var(--ink);font-size:15px}.full-prices{margin:30px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0}.full-prices summary{cursor:pointer;font-weight:500}.full-prices h3{margin-top:30px;font:26px 'Playfair Display',serif}.price-table-wrap{overflow-x:auto;margin:20px 0;max-width:100%}.price-table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}.price-table caption{text-align:left;font-size:11px;margin-bottom:10px;color:var(--ink)}.price-table th,.price-table td{padding:13px 10px;border-bottom:1px solid var(--line)}.price-table thead{background:var(--sage)}.price-table th{font-weight:500}.price-table td{white-space:nowrap;font-variant-numeric:tabular-nums}.price-table tbody th{min-width:120px}.service-grid{align-items:start}
@media(max-width:760px){.category-tabs{gap:8px}.category-tab{font-size:11px;padding:10px 12px}.price-table{font-size:11px}.price-table th,.price-table td{padding:10px 7px}header nav{gap:12px;font-size:10px}}
