
:root{--bg:#f8f4ed;--ink:#4b3e35;--muted:#786d60;--line:#d9cbb8;--brown:#78604c;--gold:#a58a60;--serif:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;font-size:15px;line-height:2;letter-spacing:.05em}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}img{max-width:100%;display:block}p{margin:0 0 1.5em}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.6}h1{font-size:clamp(34px,4.2vw,58px);letter-spacing:.14em;margin:20px 0 24px}h2{font-size:clamp(27px,3vw,38px);letter-spacing:.11em;margin:14px 0 32px}h3{font-size:23px}header{position:sticky;top:0;z-index:20;background:#f8f4edf2;backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.header-inner{max-width:1400px;padding:18px 40px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{line-height:1.3;font-family:Georgia,serif;letter-spacing:.14em;font-size:23px}.brand small{display:block;font-family:sans-serif;font-size:9px;letter-spacing:.25em;margin-top:8px}nav{display:flex;align-items:center;gap:23px;font-size:12px}nav a{white-space:nowrap}nav a:hover,nav a.active{color:var(--brown);box-shadow:0 1px 0 var(--gold)}.nav-apply{border:1px solid var(--brown);padding:7px 16px}.menu-toggle{display:none;border:0;background:none;font-size:12px;padding:10px}.wrap{max-width:1160px;margin:auto;padding:0 40px}.eyebrow{font-size:11px;letter-spacing:.25em;color:var(--muted);text-transform:uppercase}.hero{position:relative;overflow:hidden;background:radial-gradient(ellipse at 80% 55%,#e7dac6 0,transparent 60%),#f3eee5}.hero-inner{min-height:680px;display:grid;grid-template-columns:1.07fr 1fr;gap:35px;align-items:center;padding-top:70px;padding-bottom:80px}.hero .lead{max-width:450px;font-size:15px;color:var(--muted);line-height:2.3}.hero-art{height:460px;position:relative;isolation:isolate}.orbit{position:absolute;border:1px solid #b99c7170;width:400px;height:400px;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}.orbit:before{content:"";position:absolute;inset:28px;border:1px solid #b99c7140;border-radius:50%}.orbit:after{content:"✧";position:absolute;right:15px;top:35px;font-size:40px;color:var(--gold)}.hero-card{position:absolute;width:190px;border-radius:9px;box-shadow:0 18px 40px #59432f32;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3}.hero-card.side-left{width:145px;left:21%;top:57%;transform:translate(-50%,-50%) rotate(-15deg);z-index:2}.hero-card.side-right{width:145px;left:78%;top:48%;transform:translate(-50%,-50%) rotate(14deg);z-index:2}.art-caption{position:absolute;bottom:0;left:0;right:0;text-align:center;font-family:Georgia,serif;font-size:12px;letter-spacing:.2em;color:var(--muted)}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;background:var(--brown);color:white;padding:14px 28px;font-size:13px;min-height:52px;border:1px solid var(--brown);transition:background .2s}.button:hover{background:#5b4739}.button.ghost{background:transparent;color:var(--brown)}.button.ghost:hover{background:#eadfce}.buttons{display:flex;gap:12px;flex-wrap:wrap;margin:32px 0 10px}.hero-note{font-size:11px;color:var(--muted)}.ribbon{border-bottom:1px solid var(--line);padding:23px 0;background:#ede4d7}.ribbon .wrap{display:flex;justify-content:space-between;gap:20px;font-size:12px}.section{padding:90px 0}.section.soft{background:#eee6da}.section.center{text-align:center}.center .intro{max-width:750px;margin:auto}.intro{max-width:780px;line-height:2.3}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.editorial-img{max-height:450px;object-fit:contain;margin:auto}.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin-top:50px}.pillar{border-top:1px solid var(--gold);padding:25px 0}.number{font-family:Georgia,serif;font-size:13px;color:var(--gold);letter-spacing:.15em}.pillar p{font-size:14px;color:var(--muted)}.strip{display:flex;gap:22px;justify-content:center;margin:42px 0}.strip img{width:calc((100% - 88px)/5);max-width:160px;border-radius:7px;box-shadow:0 8px 24px #57463220}.price-box{border:1px solid var(--line);padding:42px;background:#fcf9f4}.price{font-family:Georgia,serif;font-size:50px;line-height:1.2;margin:20px 0}.price small{font-size:13px;font-family:sans-serif}.meta-list{margin:25px 0;padding:0;list-style:none}.meta-list li{border-bottom:1px solid var(--line);padding:12px 0;font-size:14px}.meta-list strong{font-weight:500;display:inline-block;min-width:90px}.note{font-size:12px;color:var(--muted)}.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.quote{margin:0;padding:32px;background:#fcf9f4;border-top:1px solid var(--gold);font-family:var(--serif);font-size:17px;line-height:2}.quote:before{content:"“";display:block;color:var(--gold);font-family:Georgia,serif;font-size:45px;line-height:1}.page-top{padding:65px 0 45px;border-bottom:1px solid var(--line);background:#eee6da}.page-top h1{font-size:40px}.page-top p{max-width:700px;color:var(--muted)}.reading{max-width:830px;margin:auto;padding:65px 40px}.reading h2{font-size:28px}.reading p{line-height:2.2}.reading .text-block{margin-bottom:45px}.reading hr{border:0;border-top:1px solid var(--line);margin:50px 0}.full-image{width:100%;margin:40px auto;border:1px solid var(--line)}.image-guide{max-width:800px;margin:30px auto}.accordion{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line);padding:21px 0}summary{font-family:var(--serif);font-size:18px;cursor:pointer;list-style:none;position:relative;padding-right:30px}summary:after{content:"＋";position:absolute;right:0;color:var(--gold)}details[open] summary:after{content:"−"}.answer{padding:24px 0 4px;font-size:14px}.gallery{display:grid;grid-template-columns:repeat(5,1fr);gap:28px;padding-top:30px}.card-button{border:0;background:transparent;padding:0;cursor:pointer;text-align:left}.card-button img{width:100%;border-radius:6px;transition:transform .2s;box-shadow:0 8px 20px #58412c20}.card-button:hover img{transform:translateY(-6px)}.card-button span{display:block;font-size:10px;letter-spacing:.12em;margin-top:12px;color:var(--muted)}dialog{border:0;padding:0;background:#f8f4ed;max-width:min(90vw,650px);max-height:90vh}dialog::backdrop{background:#30261fcf}.dialog-content{padding:22px;text-align:center}.dialog-content img{max-height:72vh;margin:auto}.dialog-close{border:1px solid var(--line);background:transparent;margin-bottom:16px;padding:7px 20px;cursor:pointer}.sample{border-bottom:1px solid var(--line);padding:35px 0}.sample .two-col{grid-template-columns:1fr 1.6fr;gap:40px}.sample img{max-height:380px}.contact-box{border:1px solid var(--line);padding:40px;margin:25px 0}.contact-box iframe{display:block;width:100%;height:760px;border:0;background:white;margin-top:30px}.steps{counter-reset:step}.step{padding:25px 0;border-bottom:1px solid var(--line)}.step h3{margin:0 0 15px}.step h3:before{counter-increment:step;content:"0" counter(step) " / ";font-family:Georgia,serif;color:var(--gold)}footer{padding:60px 0 28px;background:#e9dfd0}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:35px}footer a{font-size:12px;display:block;margin:7px 0}.footer-brand{font-family:Georgia,serif;font-size:27px;letter-spacing:.14em}.copyright{border-top:1px solid #cabaa4;padding-top:24px;margin-top:42px;font-size:10px;color:var(--muted)}.backtop{font-size:12px;display:block;margin-top:30px}.profile-name{font-family:var(--serif);font-size:29px}.voice-list blockquote{margin:0 0 25px;padding:25px 30px;border-left:2px solid var(--gold);background:#fcf9f4}.weather-label{border:1px solid var(--line);padding:15px 20px;font-size:13px;margin-bottom:30px}.partner{margin-top:35px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}:focus-visible{outline:2px solid #735943;outline-offset:5px}@media(max-width:1100px){.header-inner{padding:18px 24px}nav{gap:13px;font-size:11px}.brand{font-size:19px}.hero-card{width:165px}.hero-card.side-left,.hero-card.side-right{width:125px}.orbit{width:340px;height:340px}}@media(max-width:850px){.menu-toggle{display:block}nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--bg);padding:20px 25px;border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;gap:18px}nav.open{display:grid}.wrap{padding:0 25px}.hero-inner{grid-template-columns:1fr;gap:10px;padding-top:50px;padding-bottom:35px}.hero h1{font-size:36px}.hero-art{height:380px;margin-top:20px;max-width:440px;width:100%;margin-left:auto;margin-right:auto}.hero .lead{max-width:100%}.ribbon .wrap{flex-wrap:wrap;gap:8px 20px}.section{padding:60px 0}.two-col{grid-template-columns:1fr;gap:30px}.pillars{grid-template-columns:1fr;gap:5px;margin-top:25px}.quotes{grid-template-columns:1fr}.quote{font-size:16px}.strip{gap:9px}.strip img{width:calc((100% - 36px)/5)}.price-box{padding:25px}.gallery{grid-template-columns:repeat(3,1fr);gap:20px 12px}.reading{padding:45px 25px}.page-top{padding:40px 0 25px}.page-top h1{font-size:30px}.sample .two-col{grid-template-columns:1fr}.sample img{max-height:280px}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}.contact-box{padding:20px}.contact-box iframe{height:800px}.button{padding:13px 20px;gap:20px;font-size:12px}.intro{text-align:left}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.hero-service-title{font-family:var(--serif);font-size:20px;line-height:1.9;letter-spacing:.07em;color:#913b70;font-weight:600;margin:0 0 20px;padding-bottom:16px;border-bottom:1px solid #bda68a80}@media(max-width:850px){.hero-service-title{font-size:18px}}

.hero-art.hero-art-replacement{height:auto}.hero-reading-image{width:100%;height:auto;display:block;border-radius:5px;box-shadow:0 12px 35px #59432f14}@media(max-width:850px){.hero-art.hero-art-replacement{height:auto;max-width:600px;margin-top:25px}}

.featured-section{background:#eee5d8;padding:70px 0}.featured-review{position:relative;border:1px solid #baa383;padding:50px 65px;background:#fcf9f4;max-width:960px;margin:auto}.featured-review:before{content:"✧";position:absolute;top:-20px;left:50%;transform:translateX(-50%);padding:0 20px;background:#eee5d8;color:#a58a60;font-size:27px}.featured-review .eyebrow{display:block;text-align:center}.featured-review h2{text-align:center;font-size:clamp(27px,3.1vw,40px);line-height:1.85;margin:24px 0 34px}.featured-excerpt{max-width:700px;margin:auto;text-align:center;font-family:var(--serif);font-size:17px;line-height:2.3}.featured-review details{margin-top:30px}.featured-review summary{text-align:center;font-family:inherit;font-size:13px}.featured-review .answer{font-family:var(--serif);font-size:16px;line-height:2.2;max-width:720px;margin:auto}.featured-full{margin-bottom:50px}.featured-full .answer{padding-top:10px}.featured-full h2{font-size:27px}@media(max-width:850px){.featured-section{padding:50px 0}.featured-review{padding:35px 24px}.featured-excerpt{font-size:15px;text-align:left}.featured-review h2{font-size:27px}.featured-review .answer{font-size:15px}.featured-full{padding:30px 22px}}

/* Soft botanical pattern for the opening invitation. */
.hero::before{content:"";position:absolute;inset:0;background-image:url("assets/floral-pattern.svg");background-size:720px 620px;background-position:center top;opacity:.22;pointer-events:none}.hero-inner{position:relative;z-index:1}@media(max-width:850px){.hero::before{background-size:540px 465px;opacity:.18}}
