/* Colours and accents follow the supplied DOREMI logo and business card. */
.story-photo-full.story-portrait{height:560px}.story-photo-full.story-portrait img{height:100%;width:100%;object-fit:contain}.pricing-children-note{max-width:800px;margin:0 auto 38px;text-align:center}.pricing-children-note h2{font-size:28px;margin-bottom:12px}.pricing-children-note p{font-size:14px;color:var(--muted)}
@media(max-width:580px){.story-photo-full.story-portrait{height:auto}.story-photo-full.story-portrait img{height:auto}.pricing-children-note h2{font-size:27px}.pricing-children-note p{font-size:13px}}
:root{--paper:#fff8f0;--ink:#493426;--muted:#806958;--accent:#744e34;--blush:#f6dce0;--line:#e8d9cc;--lilac:#ead7ee}
.site-header{height:104px;background:#fff8f0f7}.header-inner{gap:24px}.brand img{width:95px;height:72px}.brand-type{font-size:8px;padding-left:12px;letter-spacing:1.5px}.nav{gap:21px}.nav a:not(.btn){font-size:11px;white-space:nowrap}.nav .btn{font-size:11px;padding:11px 13px;margin-left:0;gap:8px}.nav a:last-child{font-weight:600}.opening-ribbon{background:linear-gradient(100deg,#f7d6df,#fce9df 55%,#e9d7ef);border-bottom:1px solid #ecd9d8;font-size:11px;line-height:1.6;padding:11px 0}.opening-ribbon>.wrap{display:flex;align-items:center;justify-content:space-between;gap:20px}.opening-ribbon button{border:0;background:transparent;font-size:11px;font-weight:600;display:flex;align-items:center;gap:9px;padding:0;flex:none}.opening-ribbon button svg{width:16px;height:16px}.hero{padding-top:42px}.hero-grid{grid-template-columns:1.07fr .93fr;gap:65px}.hero h1{font-size:clamp(48px,5.1vw,72px)}.hero h1 em{color:#a37372}.hero .lead{max-width:460px;font-size:16px}.hero .lead strong{font-weight:550}.hero-private-note{margin-top:29px;color:var(--muted);font-size:12px;line-height:1.8;max-width:420px}.hero-visual.full-photo-frame{padding:0 15px 0 0;max-width:100%;position:relative}.hero-visual:before{inset:18px -4px -12px -18px;background:linear-gradient(160deg,#f4d3df,#e9d9ed);border-radius:16px;transform:rotate(2deg)}.hero-photo.full-photo{height:550px;width:100%;object-fit:contain;border-radius:12px;background:#f5e5dc;object-position:center}.little-star{color:#ab8296;top:-13px;left:-25px;font-size:53px}.instrument-strip{background:#69492f;color:#fff3e5}.strip-inner .star{color:#e5bbca}.instrument-image{background:#f3e2d7;height:265px}.instrument-image img{object-fit:cover;object-position:center}.instrument-image.show-full-guzheng{display:flex;align-items:center;background:#eee3d4}.show-full-guzheng img{object-fit:contain!important;width:100%;height:100%;object-position:center!important}.instrument-grid .instrument-card:nth-child(3) img{object-position:center}.instrument-grid .instrument-card:nth-child(2) img{object-position:48% center}.story{background:linear-gradient(115deg,#f8eee5,#f7e8ec)}.story-photo-full{border-radius:12px;background:#f0e0d5;overflow:hidden;align-self:center}.story-photo-full img{width:100%;height:auto;object-fit:contain}.performance{background:#493426}.performance h2{font-size:45px}.performance .text-link{color:#f7d8e3;border-color:#a47d70}.performance .small{font-size:12px}.performance .btn.light:hover{background:#edc4d7}.teacher-full .teacher-portrait.full-photo{object-fit:contain;background:#f4e5db;border-radius:12px;height:560px}.rental-photo.full-photo{width:100%;height:550px;object-fit:contain;border-radius:12px;background:#efe1d7}.subtle-band{background:linear-gradient(120deg,#fff1e7,#f9e5e8 55%,#f0e3f1)}.cta{background:linear-gradient(110deg,#f7d9df,#fce8df 60%,#ead7ed)}.cta p{color:#806051}.btn.outline:hover{background:#f0ddd4}.price-tabs{background:#f0e3da}.price-table th{background:#f5eade}.price-table .featured td{background:#f9e7e8}.price-table{background:#fffbf6}.price-table td{border-color:#eee0d4}.price-table .description{color:#8b6f5b}.price-panel-intro{margin-bottom:25px}.price-panel-intro h2{font-size:35px;margin-bottom:12px}.price-panel-intro p{font-size:13px;color:var(--muted)}.pricing-intro{background:linear-gradient(110deg,#f8dce1,#f9e6db 65%,#eadbf0);align-items:center;padding:35px 38px}.pricing-intro h2{font-size:36px;margin-top:18px}.pricing-intro p{max-width:660px;color:#775d4d;line-height:1.7}.opening-offers h2{font-size:45px;max-width:640px}.offers-intro{max-width:620px;color:var(--muted);font-size:15px}.offers-grid{grid-template-columns:repeat(2,1fr);gap:22px;margin:35px 0 25px}.offer{position:relative;border:1px solid #e2cabe;background:#fff9f0b3;border-radius:12px;padding:29px 28px}.offer-figure{font-size:40px!important;color:#744e34}.offer h3{font-size:27px}.offer p{font-size:14px}.starter-offer{background:#f5dfe9;border-color:#ddbbc9}.offer-sticker{display:inline-block;background:#744e34;color:#fff4e8;font-size:10px;letter-spacing:1px;text-transform:uppercase;padding:6px 11px;border-radius:5px;font-weight:600}.starter-offer .offer-sticker{margin-bottom:16px}.footer-grid{grid-template-columns:1fr .8fr 1.05fr 1fr 1.3fr;gap:30px}.footer-col p{font-size:11px;color:var(--muted);line-height:1.8}.footer-col .email{font-size:11px}.footer-col a{font-size:11px}.footer-col .phone{font-size:16px;color:var(--ink)}.footer-col svg{display:inline;width:14px;height:14px;vertical-align:middle}.footer-brand img{width:120px;margin-top:-13px}.footer-brand p{font-size:11px}.studio-footer-preview{border:1px dashed #dac6b8;border-radius:7px;padding:14px 10px;background:#f5e8df;line-height:1.6}.studio-footer-preview span{display:block;font-size:23px;color:#b4907d;margin-bottom:4px}.studio-section{border-top:1px solid var(--line)}.studio-photo-spaces{display:grid;grid-template-columns:1.3fr 1fr;gap:25px}.studio-photo-placeholder{height:250px;border:1px dashed #c5a693;background:linear-gradient(120deg,#f6e7df,#f5e7ed);border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#8b6d5d}.studio-photo-placeholder>span{font-size:37px;color:#b69085;line-height:1;margin-bottom:18px}.studio-photo-placeholder p{font-family:var(--serif);font-size:23px;margin-bottom:10px}.studio-photo-placeholder small{font-size:11px}.gigs-hero{padding-top:55px}.contact-page-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:95px;align-items:start}.contact-list .contact-detail{padding:27px 0}.contact-list .contact-detail:first-child{padding-top:10px;border:0}.contact-phone{font-family:var(--serif);font-size:43px!important;line-height:1.2}.contact-detail .button-row{margin-top:18px;gap:22px}.contact-detail>p{margin-bottom:12px;font-size:16px}.contact-detail>p.small{font-size:12px;margin-bottom:0}.contact-detail>a svg{display:inline;width:15px;height:15px;vertical-align:middle}.wechat-card{background:linear-gradient(145deg,#f8dce4,#fcf0e5 55%,#ecd9ed);border:1px solid #ecd8d0;border-radius:15px;text-align:center;padding:35px 30px}.wechat-card .eyebrow{justify-content:center}.wechat-card h2{font-size:34px}.wechat-qr{width:225px;max-width:100%;height:auto;margin:25px auto 20px;border-radius:8px}.wechat-label{font-size:10px;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:7px}.wechat-id{display:block;font-size:18px;letter-spacing:.5px;margin-bottom:20px}.social-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-top:30px}.social-card{background:#fff9f1b8;padding:35px;border:1px solid #e8cfc7;border-radius:12px}.social-name{display:block;font-size:11px;text-transform:uppercase;letter-spacing:2px;margin-bottom:20px}.social-card h3{font-size:31px;overflow-wrap:anywhere}.social-card p{font-size:13px;color:var(--muted)}.shop-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px}.shop-item{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fffbf6}.shop-item>div:last-child{padding:28px}.shop-item h2{font-size:30px;margin-bottom:15px}.shop-item p{font-size:14px;color:var(--muted)}.shop-illustration{height:180px;background:linear-gradient(125deg,#f4dce1,#f4e7dc 65%,#e8d7eb);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px}.shop-illustration span{font-size:60px;color:#9a6a62;font-family:var(--serif);line-height:1}.shop-illustration small{font-size:9px;letter-spacing:2px;text-transform:uppercase;color:#8b6e5c}.rental-section{background:#f7e9e7}.inquiry-fields{margin:0;padding:0;border:0;min-inline-size:0}.inquiry-fields[hidden]{display:none}.inquiry-form{background:#f8ede4;border-color:#e7d6c8}.field input,.field select,.field textarea{background:#fffaf3;border-color:#dbc7b6;color:#493426}.field input::placeholder,.field textarea::placeholder{color:#998270}.field select{appearance:auto;position:relative}.email-preview{background:#fffbf5;color:#745744}.contact-aside{background:#f2e1dc}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.promo-launcher{position:fixed;bottom:22px;right:24px;z-index:24;background:#744e34;border:1px solid #f7e0d4;color:#fff4e7;padding:13px 20px;border-radius:50px;font-size:12px;box-shadow:0 5px 22px #4c2b2125}.promo-launcher:hover{background:#573825}dialog#opening-promo{width:min(640px,calc(100% - 36px));max-height:calc(100dvh - 42px);overflow:auto;border:1px solid #ecd5ce;border-radius:18px;padding:43px 42px;background:linear-gradient(135deg,#fff4e6,#f9e7e6 65%,#ead7ed);color:var(--ink);box-shadow:0 25px 100px #39251e40}dialog::backdrop{background:#34241c88;backdrop-filter:blur(4px)}.dialog-close{position:absolute;top:15px;right:17px;width:32px;height:32px;border:1px solid #dbc3b8;border-radius:50%;background:#fff8ef;font-size:14px}.dialog-close:hover{background:#f0d5da}#opening-promo .eyebrow{font-size:9px;letter-spacing:1.6px;margin-top:2px}#opening-promo h2{font-size:43px;margin-bottom:20px}#opening-promo h2 em{color:#9d6972}#opening-promo>p:not(.form-help){font-size:15px;line-height:1.7}.promo-gift{display:flex;gap:18px;background:#f3d3df;border:1px solid #dcb9c8;border-radius:10px;padding:20px;margin:23px 0}.gift-mark{font-size:38px;line-height:1.3;color:#9f6175}.promo-gift strong{display:block;font-family:var(--serif);font-size:25px;line-height:1.2}.promo-gift p{font-size:12px;line-height:1.7;margin-top:9px}.promo-small-offers{display:grid;grid-template-columns:1fr 1fr;gap:23px;padding-bottom:18px;font-size:11px;color:#795947}.promo-small-offers strong{display:block;color:#493426;font-size:13px;margin-bottom:5px}#opening-promo .button-row{gap:15px;margin-top:23px}#opening-promo .btn{font-size:12px;padding:12px 16px;gap:15px}#opening-promo .text-link{font-size:11px;gap:8px}.opening-offers .pricing-note{max-width:850px}.reveal{animation:none}
@media(min-width:1440px){.hero-photo.full-photo{height:595px}.hero h1{font-size:77px}}
@media(max-width:1200px){.brand-type{display:none}.nav{gap:20px}.header-inner{gap:18px}.hero-grid{gap:43px}.footer-grid{grid-template-columns:1fr .8fr 1.1fr 1fr;gap:30px}.footer-col:last-child{grid-column:2/-1}.footer-col:last-child a{display:inline-block;margin-right:20px}.footer-col:last-child h4{margin-bottom:13px}.hero h1{font-size:61px}}
@media(max-width:950px){.nav{gap:14px}.nav a:not(.btn){font-size:10px}.nav .btn{font-size:10px;padding:10px;gap:5px}.brand img{width:82px}.header-inner{gap:15px}.opening-ribbon{font-size:10px}.opening-ribbon button{font-size:10px}.hero-grid{grid-template-columns:1.1fr .9fr;gap:35px}.hero h1{font-size:51px}.hero-photo.full-photo{height:480px}.hero .lead{font-size:15px}.hero-private-note{font-size:11px}.hero .button-row{gap:17px}.hero .text-link{font-size:12px}.contact-page-grid{gap:45px}.wechat-card{padding:28px 22px}.wechat-card h2{font-size:30px}.instrument-image{height:230px}}
@media(max-width:800px){.site-header{height:82px}.nav{gap:0}.nav a:not(.btn){font-size:14px}.nav .btn{font-size:13px;padding:12px 16px}.nav a:last-child{margin-top:8px}.opening-ribbon>.wrap{align-items:start;gap:18px}.opening-ribbon span{max-width:460px}.opening-ribbon button{max-width:110px;text-align:left}.hero h1{font-size:48px}.hero-grid{gap:28px}.hero-photo.full-photo{height:470px}.hero .lead{font-size:14px}.hero .button-row .btn{padding-inline:12px;gap:12px;font-size:12px}.hero .button-row{gap:14px}.hero .text-link{font-size:11px;gap:8px}.footer-grid{grid-template-columns:1fr 1fr 1fr}.footer-brand{grid-column:1/-1;display:flex;align-items:center;gap:30px}.footer-brand img{width:115px;margin:0}.footer-col:last-child{grid-column:1/-1}.pricing-intro{padding:30px}.pricing-intro h2{font-size:30px}.pricing-intro .btn{font-size:11px;gap:12px;padding:13px 15px}.pricing-intro p{font-size:12px}.teacher-full .teacher-portrait.full-photo{height:470px}.contact-page-grid{grid-template-columns:1fr 1fr;gap:30px}.wechat-card h2{font-size:27px}.contact-phone{font-size:36px!important}.wechat-id{font-size:15px}.shop-item>div:last-child{padding:23px}.shop-item h2{font-size:27px}.shop-grid{gap:25px}.performance h2{font-size:42px}.inquiry-layout .contact-intro{display:block}}
@media(max-width:580px){.opening-ribbon>.wrap{display:block}.opening-ribbon span{display:block;font-size:10px}.opening-ribbon button{max-width:none;margin-top:5px;font-size:10px;gap:8px}.hero{padding-top:30px;padding-bottom:42px}.hero-grid{grid-template-columns:1fr;gap:27px}.hero h1{font-size:49px;line-height:1.1}.hero .lead{font-size:15px;max-width:none}.hero-private-note{font-size:11px;margin-top:24px}.hero .button-row .btn{font-size:12px;padding:14px 16px}.hero .text-link{font-size:11px}.hero-visual.full-photo-frame{padding:0;margin:0 13px;max-width:calc(100% - 26px)}.hero-photo.full-photo{width:100%;height:auto;max-height:none;aspect-ratio:2/3;object-fit:contain;border-radius:10px}.hero-visual:before{inset:12px -10px -10px -10px}.little-star{left:-20px;top:-12px;font-size:43px}.instrument-image{height:260px}.instrument-image.show-full-guzheng{height:auto;aspect-ratio:3/2}.instrument-image.show-full-guzheng img{height:auto}.story-photo-full{border-radius:10px}.performance h2{font-size:37px}.performance .button-row{gap:20px}.opening-offers h2{font-size:36px}.offers-grid{grid-template-columns:1fr;gap:18px;margin-top:27px}.offer{padding:25px 22px}.offer-figure{font-size:36px!important}.offer h3{font-size:26px}.offer p{font-size:13px}.pricing-intro{padding:25px 22px}.pricing-intro h2{font-size:31px}.pricing-intro .btn{font-size:12px}.price-tabs{gap:3px}.price-tab{font-size:11px;padding:11px 7px}.price-table th{font-size:8px}.price-table td{font-size:12px}.price-panel-intro h2{font-size:30px}.price-panel-intro p{font-size:12px}.price-table .description{font-size:10px}.teacher-full .teacher-portrait.full-photo{height:auto;max-height:none;aspect-ratio:2/3;object-fit:contain}.footer-grid{grid-template-columns:1fr 1fr;gap:30px 24px}.footer-brand{gap:25px}.footer-brand p{font-size:11px}.footer-col h4{font-size:9px;letter-spacing:1.3px}.footer-col a{font-size:11px}.footer-col .email{font-size:12px}.footer-col:last-child{grid-column:1/-1}.footer-col:last-child a{display:block;margin-right:0}.footer-col:nth-child(4){grid-column:1/-1;max-width:none}.studio-footer-preview{display:flex!important;align-items:center;gap:15px;max-width:100%;padding:15px}.studio-footer-preview span{display:inline;font-size:23px;margin:0}.footer-bottom{padding-bottom:55px}.studio-photo-spaces{grid-template-columns:1fr;gap:18px}.studio-photo-placeholder{height:210px}.studio-photo-placeholder:nth-child(2){height:165px}.studio-photo-placeholder p{font-size:22px}.contact-page-grid{grid-template-columns:1fr;gap:35px}.contact-phone{font-size:43px!important}.wechat-card{padding:30px 24px}.wechat-card h2{font-size:35px}.wechat-id{font-size:18px}.social-grid{grid-template-columns:1fr}.social-card{padding:28px}.social-card h3{font-size:29px}.shop-grid{grid-template-columns:1fr;gap:25px}.shop-illustration{height:150px}.rental-photo.full-photo{height:auto;aspect-ratio:2/3;max-height:none}.promo-launcher{bottom:15px;right:15px;font-size:11px;padding:12px 16px}dialog#opening-promo{padding:39px 23px 25px;width:calc(100% - 26px);border-radius:14px;max-height:calc(100dvh - 26px)}#opening-promo .eyebrow{font-size:8px;letter-spacing:1px;padding-right:10px}#opening-promo h2{font-size:34px}#opening-promo>p:not(.form-help){font-size:13px}.promo-gift{padding:17px 14px;gap:12px;margin-block:20px}.gift-mark{font-size:29px}.promo-gift strong{font-size:25px}.promo-gift p{font-size:11px}.promo-small-offers{gap:16px;font-size:10px}.promo-small-offers strong{font-size:12px}#opening-promo .button-row{gap:18px}#opening-promo .form-help{font-size:10px}.gigs-hero{padding-top:36px}}

.form-status{font-size:14px;line-height:1.7;margin:18px 0 0;overflow-wrap:anywhere}.form-status:empty{display:none}.form-status[data-state="error"]{color:#913d36}.form-status[data-state="success"]{color:#65432e;font-weight:550}.inquiry-form button:disabled{cursor:default;opacity:.7;transform:none}.inquiry-form[aria-busy="true"] button[type="submit"]{cursor:progress}

/* Product catalogue */
.shop-catalogue{padding-bottom:85px}.shop-arrival{display:flex;align-items:center;gap:22px;padding:25px 30px;background:#f4e0e7;border:1px solid #e4c5d0;border-radius:12px;margin:0 0 28px}.arrival-mark{font-size:38px;color:#956572}.shop-arrival strong{font-family:var(--serif);font-size:27px;font-weight:400;line-height:1.3}.shop-arrival p{font-size:14px;margin:6px 0 0;color:var(--muted)}.shop-categories{display:flex;flex-wrap:wrap;gap:9px;padding-bottom:34px;border-bottom:1px solid var(--line)}.shop-categories a{font-size:12px;padding:9px 14px;border:1px solid #d9c7b9;border-radius:30px;text-decoration:none;transition:background .15s}.shop-categories a:hover,.shop-categories a:focus-visible{background:#eed8de;color:var(--ink)}.shop-category{padding-top:58px;scroll-margin-top:130px}.category-heading{margin-bottom:25px}.category-heading h2{font-size:36px;margin-bottom:9px}.category-heading h2 span{font-size:22px;display:inline-block}.category-heading p{font-size:14px;color:var(--muted);margin:0}.product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.product-card{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fffbf6}.product-photo{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:contain;background:#f7eee4}.product-info{display:flex;flex:1;flex-direction:column;align-items:flex-start;padding:22px 19px}.product-info h3{font-size:24px;line-height:1.2;margin:0 0 14px}.product-info h3 span{display:block;font-family:var(--sans);font-size:13px;line-height:1.6;color:var(--muted);margin-top:6px}.product-price{font-size:18px;font-weight:600;color:#744e34;margin:0 0 14px}.product-stock{font-size:11px;letter-spacing:.6px;text-transform:uppercase;color:#586947;margin:0 0 6px}.product-sizes{font-size:12px;line-height:1.7;color:var(--muted);margin:0 0 20px}.product-info>.text-link{font-size:12px;margin-top:auto;gap:12px}.string-prices{width:100%;border-collapse:collapse;font-size:12px;margin-bottom:22px}.string-prices caption{text-align:left;font-size:11px;color:var(--muted);margin-bottom:8px}.string-prices th,.string-prices td{padding:6px 0;border-bottom:1px solid var(--line);text-align:left;font-weight:400}.string-prices thead th{font-size:10px;color:var(--muted)}.string-prices td:last-child,.string-prices th:last-child{text-align:right}.shop-order-note{border-top:1px solid var(--line);margin-top:60px;padding-top:35px;max-width:760px}.shop-order-note h2{font-size:32px}.shop-order-note p{font-size:14px;color:var(--muted)}.shop-order-note .text-link{font-size:12px;gap:8px}#rental{scroll-margin-top:120px}#nail-size-field[hidden]{display:none}
@media(max-width:1000px){.product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.product-info{padding:19px 15px}.product-info h3{font-size:22px}.category-heading h2{font-size:32px}.category-heading h2 span{font-size:19px}.shop-arrival{padding:22px;gap:16px}.shop-arrival strong{font-size:25px}}
@media(max-width:420px){.product-grid{grid-template-columns:1fr}.product-photo{max-height:430px}.product-info h3{font-size:27px}.product-info h3 span{font-size:14px}.product-info{padding:24px}.shop-arrival{align-items:flex-start;padding:20px 17px}.arrival-mark{font-size:28px}.shop-arrival strong{font-size:24px}.shop-arrival p{font-size:12px}.shop-categories a{font-size:11px;padding:8px 12px}.category-heading h2{font-size:30px}.category-heading h2 span{display:block;font-size:17px;margin-top:8px}.shop-category{padding-top:43px}.shop-catalogue{padding-bottom:55px}}
