/*
Theme Name: Omokage
Theme URI: https://omokage.okinawa/
Description: 株式会社おもかげ リメイクテーマ。ピンクベース・明朝体・スクロールアニメーション（全ページ共通）
Version: 1.0
Text Domain: omokage
*/
:root{--bg:#fde8ee;--rose:#e58d94;--rd:#b5424f;--wn:#4f1f2b;--am:#f2c27b;--b2:#f8e9e4;--ln:#ecd9d3;--ease:cubic-bezier(.16,1,.3,1);--ink:#4a2a38;--dim:#8a5f6e;--line:rgba(120,60,85,.2);color-scheme:light;box-sizing:border-box}
html{scroll-behavior:smooth}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",serif;line-height:2.1;letter-spacing:.06em;overflow-x:hidden;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);background:rgba(253,232,238,.75);backdrop-filter:blur(8px);z-index:30}
a{color:inherit;text-decoration:none}
#progress{position:fixed;left:0;top:0;height:3px;width:100%;background:linear-gradient(90deg,var(--rose),var(--am));transform-origin:left;transform:scaleX(0);z-index:95}
.sec{position:relative;padding:22vh 8vw;isolation:isolate;overflow:clip}
/* header */
.site-header{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;z-index:80;display:flex;justify-content:space-between;align-items:center;height:76px;padding:0 5vw;transition:background .5s,box-shadow .5s,transform .6s var(--ease)}
.site-header.solid{background:rgba(252,247,242,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--ln)}
.site-header.hide{transform:translateY(-110%)}
.site-header .logo{display:block;line-height:0;position:relative;z-index:3}
.site-header .logo img{display:block;height:38px;width:auto}
@media(max-width:760px){.site-header .logo img{height:32px}}
.burger{display:none;align-items:center;gap:12px;background:none;border:0;cursor:pointer;color:var(--ink);padding:0;position:relative;z-index:3;font:inherit;font-weight:600;font-size:20px;-webkit-tap-highlight-color:transparent}
.burger .lb{position:relative;display:block;overflow:hidden;height:1.5em;line-height:1.5;min-width:2.6em;text-align:right}
.burger .lb span{display:block;transition:transform .8s var(--ease)}
.burger .lb span:nth-child(2){position:absolute;right:0;top:100%}
.nav-open .burger .lb span{transform:translateY(-100%)}
.burger .ci{position:relative;width:54px;height:54px;border:1.5px solid var(--rd);border-radius:50%;display:block;overflow:hidden;background:#fff}
.burger .ci::before{content:"";position:absolute;inset:-1px;border-radius:50%;background:var(--rd);transform:scale(0);transition:transform .7s var(--ease)}
.burger:hover .ci::before,.nav-open .burger .ci::before{transform:scale(1)}
.burger .ci i{position:absolute;left:16px;right:16px;height:1.5px;background:var(--rd);transition:transform .8s var(--ease),top .8s var(--ease),left .8s var(--ease),background .4s;z-index:1}
.burger .ci i:nth-child(1){top:22px}.burger .ci i:nth-child(2){top:30px;left:22px}
.burger:hover .ci i,.nav-open .burger .ci i{background:#fff}
.burger:hover .ci i:nth-child(2){left:16px}
.nav-open .burger .ci i:nth-child(1){top:26px;transform:rotate(45deg)}
.nav-open .burger .ci i:nth-child(2){top:26px;left:16px;transform:rotate(-45deg)}
.nav-foot{display:none}
.gnav .menu{list-style:none;margin:0;padding:0;display:flex;gap:30px;align-items:center;font-size:13.5px;letter-spacing:.1em}
.gnav li{position:relative}
.gnav .menu>li>a{position:relative;display:block;padding:6px 0}
.gnav .menu>li>a::after{content:"";position:absolute;left:50%;bottom:-4px;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--rose);transform:scale(0);transition:transform .5s var(--ease)}
.gnav .menu>li>a:hover::after{transform:scale(1)}
.gnav .menu>li:last-child>a{background:var(--rd);color:#fff;border-radius:999px;padding:11px 26px;transition:background .4s,transform .5s var(--ease)}
.gnav .menu>li:last-child>a::after{display:none}
.gnav .menu>li:last-child>a:hover{background:var(--wn);transform:translateY(-2px)}
.gnav .sub-menu{list-style:none;margin:0;padding:12px;position:absolute;left:-18px;top:100%;min-width:290px;background:#fff;border:1px solid var(--ln);border-radius:22px;box-shadow:0 20px 50px -20px rgba(120,50,60,.3);opacity:0;visibility:hidden;transform:translateY(10px) scale(.98);transform-origin:top left;transition:.5s var(--ease);font-size:13.5px;letter-spacing:.04em}
.gnav li:hover>.sub-menu,.gnav li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none}
.gnav .sub-menu a{display:block;padding:10px 16px;border-radius:14px;transition:background .3s,color .3s}
.gnav .sub-menu a:hover{background:var(--b2);color:var(--rd)}
.totop{position:fixed;right:clamp(14px,3vw,36px);bottom:clamp(14px,3vw,32px);width:64px;height:64px;z-index:75;display:grid;place-items:center;font:inherit;font-size:15px;font-weight:600;color:var(--rd);background:none;border:0;padding:0;cursor:pointer;opacity:0;transform:translateY(20px) scale(.8);pointer-events:none;transition:opacity .5s,transform .7s var(--ease)}
.totop.show{opacity:1;transform:none;pointer-events:auto}
.totop svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.totop circle{fill:rgba(252,247,242,.92);stroke:var(--ln);stroke-width:2}
.totop .pg{fill:none;stroke:var(--rd);stroke-dasharray:138.23;stroke-dashoffset:138.23;stroke-linecap:round}
.totop span{position:relative;transition:transform .5s var(--ease)}
.totop:hover span{transform:translateY(-3px)}
@media(max-width:980px){
.burger{display:flex}
.nav-open .site-header,.nav-open .site-header.solid{backdrop-filter:none;-webkit-backdrop-filter:none;background:transparent;box-shadow:none;transform:none}
.gnav{position:fixed;inset:0;z-index:1;background:var(--b2);padding:116px clamp(24px,6vw,56px) 32px;overflow:auto;display:flex;flex-direction:column;justify-content:space-between;clip-path:circle(0px at calc(100% - clamp(48px,7vw,76px)) 44px);visibility:hidden;transition:clip-path 1.1s var(--ease),visibility 0s 1.1s}
.nav-open .gnav{clip-path:circle(160vmax at calc(100% - clamp(48px,7vw,76px)) 44px);visibility:visible;transition:clip-path 1.2s var(--ease),visibility 0s}
.nav-open{overflow:hidden}
.gnav .menu{flex-direction:column;align-items:flex-start;gap:0;font-size:clamp(24px,7vw,40px);letter-spacing:.04em;font-weight:600}
.gnav .menu>li{width:100%;border-bottom:1px solid var(--ln);padding:10px 0;opacity:0;transform:translateY(36px);transition:opacity .6s ease,transform .9s var(--ease)}
.nav-open .gnav .menu>li{opacity:1;transform:none;transition-delay:calc(.45s + var(--i,0)*.08s)}
.gnav .menu>li>a{display:inline-block}
.gnav .menu>li>a::after{display:none}
.gnav .menu>li:last-child>a{background:none;color:var(--rd);padding:10px 0;border-radius:0}
.gnav .menu>li:last-child>a:hover{background:none;transform:none}
.gnav .sub-menu{position:static;opacity:1;visibility:visible;transform:none;background:none;border:0;border-radius:0;box-shadow:none;padding:0 0 10px 4px;min-width:0;display:flex;flex-wrap:wrap;gap:4px 24px;font-size:14px;font-weight:500}
.gnav .sub-menu a{padding:4px 0;color:var(--dim)}.gnav .sub-menu a:hover{background:none}
.nav-foot{display:block;margin-top:40px;font-size:13px;color:var(--dim);opacity:0;transition:opacity .8s ease}
.nav-open .nav-foot{opacity:1;transition-delay:1s}
.nav-foot a{display:block;font-weight:600;font-size:36px;color:var(--rd);margin-bottom:6px}
.totop{width:54px;height:54px}
}
@media(prefers-reduced-motion:reduce){.gnav,.gnav .menu>li,.burger .ci i,.burger .lb span{transition:none}}
/* hero */
.hero{height:230svh;padding:0}
.hero-stick{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:0 8vw;overflow:clip;isolation:isolate}
.hero-txt{will-change:opacity}
.hero-stick{transition:background-color .25s ease-out}
.hero-stick>*:not(.hero-txt){transition:opacity .3s ease-out!important}
.hero-stick.zf>*:not(.hero-txt){opacity:0!important}
.haze{position:absolute;width:70vmax;height:70vmax;left:50%;top:50%;margin:-35vmax 0 0 -35vmax;border-radius:50%;background:radial-gradient(closest-side,#f9d3df 0,#f9d3df 55%,rgba(249,211,223,0) 100%);opacity:.7;pointer-events:none;z-index:-1;transition:transform 1.1s cubic-bezier(.2,.7,.2,1),opacity 1.1s;will-change:transform}
.hero h1{will-change:transform,color;transform-origin:50% 50%;transition:color .1s linear;margin:0;font-weight:400;font-size:clamp(34px,7.4vw,96px);line-height:1.25;letter-spacing:.14em}
.hero h1 span,.ttl span{display:inline-block;opacity:0;filter:blur(14px);transform:translateY(24px);animation:in 2.2s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes in{to{opacity:1;filter:none;transform:none}}
.hero p{margin:36px 0 0;font-size:clamp(14px,1.6vw,19px);color:var(--dim);opacity:0;animation:in 2s 1.9s forwards}
.scroll{position:absolute;bottom:5vh;left:50%;width:1px;height:70px;background:linear-gradient(var(--ink),transparent);transform-origin:top;animation:drop 2.6s 2.6s infinite;opacity:0}
@keyframes drop{0%{opacity:0;transform:scaleY(0)}30%{opacity:.8}100%{opacity:0;transform:scaleY(1)}}
/* backgrounds: bloom (3 places), sweep (flowing wave), orbs, flow lines */
.bloom,.bloomup{position:absolute;left:50%;top:0;border-radius:50%;z-index:-1;pointer-events:none;transform:translate(-50%,-50%) scale(0);transition:transform 1.2s cubic-bezier(.2,.7,.2,1);will-change:transform}
.ribbons{position:absolute;inset:0;z-index:-1;pointer-events:none}
.rb{position:absolute;left:-2%;width:104%;clip-path:inset(0 100% 0 0);transition:clip-path 1.4s cubic-bezier(.2,.7,.2,1)}
.rb svg{display:block;width:100%;height:100%;fill:var(--c,#f6c6d6);transition:fill 1s}
.diamond{position:absolute;left:50%;top:50%;z-index:-1;pointer-events:none;transform:translate(-50%,-50%) rotate(45deg) scale(0);transition:transform 1.2s cubic-bezier(.2,.7,.2,1);will-change:transform}
.sweep{position:absolute;left:0;top:0;height:100%;width:150%;z-index:-1;pointer-events:none;transform:translateX(-80%);transition:transform 1.2s cubic-bezier(.2,.7,.2,1);will-change:transform}
.sweep svg{display:block;width:100%;height:100%}
.orb{position:absolute;border-radius:50%;z-index:-1;pointer-events:none;filter:blur(36px);opacity:.65;transition:transform 1.6s cubic-bezier(.2,.7,.2,1);will-change:transform}
.flow{position:absolute;left:0;right:0;bottom:0;height:42%;z-index:-1;overflow:hidden;pointer-events:none}
.flow svg{position:absolute;left:0;top:0;width:200%;height:100%;animation:fl linear infinite}
@keyframes fl{from{transform:translateX(-50%)}to{transform:none}}
/* top page */
.manifesto{min-height:260vh;padding:0;overflow:visible}
.wave-top{position:absolute;left:0;right:0;bottom:100%;margin-bottom:-1px;height:clamp(70px,12vw,150px);overflow:hidden;pointer-events:none}
.wave-top svg{position:absolute;left:0;top:0;width:200%;height:100%;animation:fl linear infinite;animation-duration:80s}
.manifesto .stick{position:sticky;top:0;height:100svh;display:flex;align-items:center;justify-content:center;padding:0 8vw}
.manifesto .q{word-break:auto-phrase;text-wrap:balance;font-size:clamp(16px,2.3vw,30px);line-height:2.2;text-align:center;max-width:34em;margin:0 auto}
.w{opacity:.15;transition:opacity .5s,filter .5s;filter:blur(1.5px)}
.w.on{opacity:1;filter:none}
.ask{display:block;color:var(--dim);font-size:clamp(15px,2vw,22px)}
.split{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:6vw;align-items:start}
.split h2{margin:0;font-weight:500;font-size:clamp(26px,3.7vw,56px);line-height:1.6;position:sticky;top:20vh}
.split .body p{margin:0 0 2.4em;color:#6b4552;font-size:clamp(15px,1.5vw,18px)}
.h2{font-weight:400;font-size:clamp(22px,3vw,36px);margin:0 0 8vh;line-height:1.7}
.chs span{display:inline-block;opacity:0;transform:scale(.4)}
.chs.on span{animation:pop 1.5s cubic-bezier(.2,.7,.2,1) var(--d,0s) forwards}
@keyframes pop{0%{opacity:0;transform:scale(.4)}45%{opacity:1;transform:scale(var(--s1))}100%{opacity:1;transform:scale(1)}}
.tiles{position:absolute;inset:0;z-index:-1;display:grid;pointer-events:none}
.tile{perspective:260px}
.tile i{display:block;width:100%;height:100%;position:relative;transform-style:preserve-3d;transition:transform .25s linear}
.tile i::before,.tile i::after{content:"";position:absolute;inset:-1px;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.tile i::before{background:var(--a)}
.tile i::after{background:var(--b)}
.tile.y i::after{transform:rotateY(180deg)}
.tile.x i::after{transform:rotateX(180deg)}
.vline{width:1px;height:0;background:var(--ink);opacity:.4;margin:0 auto;transition:height 1.8s ease}
.vline.on{height:18vh}
.list{margin:0;padding:0;list-style:none}
.list li{display:flex;justify-content:space-between;gap:20px;align-items:baseline;padding:30px 0;border-top:1px solid var(--line);font-size:clamp(20px,3.2vw,38px);transition:padding .6s,color .6s;color:#94697a}
.list li:last-child{border-bottom:1px solid var(--line)}
.list li small{font-size:13px;letter-spacing:.1em;color:var(--dim);text-align:right}
.list li.on{color:var(--ink)}.list li:hover{padding-left:24px;color:var(--ink)}
.voices{padding:0}
.vstick{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;justify-content:center;overflow:clip}
.voices .h2{margin:0 8vw 10vh}
.track{display:flex;gap:6vw;padding:0 8vw;width:max-content;will-change:transform}
.card{width:min(78vw,520px);flex:none;border-left:1px solid var(--line);padding:6px 0 6px 32px}
.card p{margin:0 0 20px;font-size:clamp(15px,1.5vw,18px);line-height:2.1}
.card cite{font-style:normal;font-size:13px;color:var(--dim)}
.media{margin:0;padding:0;list-style:none}
.media li{padding:20px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:9em 1fr;gap:20px;font-size:15px;color:#7a5160}
.media li time{color:var(--dim)}
.radio{text-align:center}
.radio h2{font-weight:400;font-size:clamp(22px,3.4vw,40px);margin:0 0 20px}
.radio p{color:var(--dim);margin:0}
.contact{height:240svh;padding:0;--wv:clamp(40px,6vw,80px);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 80' preserveAspectRatio='none'%3E%3Cpath d='M0,40C100,8 200,8 300,40S500,72 600,40S800,8 900,40S1100,72 1200,40V80H0Z'/%3E%3C/svg%3E") 0 0/1200px var(--wv) repeat-x,linear-gradient(#000,#000) 0 var(--wv)/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 80' preserveAspectRatio='none'%3E%3Cpath d='M0,40C100,8 200,8 300,40S500,72 600,40S800,8 900,40S1100,72 1200,40V80H0Z'/%3E%3C/svg%3E") 0 0/1200px var(--wv) repeat-x,linear-gradient(#000,#000) 0 var(--wv)/100% 100% no-repeat;animation:wvm 40s linear infinite}
@keyframes wvm{to{-webkit-mask-position:-1200px 0,0 var(--wv);mask-position:-1200px 0,0 var(--wv)}}
.contact-stick{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;text-align:center;padding:0 8vw 7vh}
.bloomup{transition:none}
.contact .tel{font-size:clamp(34px,8vw,92px);letter-spacing:.12em;margin:10px 0 40px;display:block}
.contact p{margin:0;color:var(--dim);font-size:14px}
.btn{display:inline-block;margin-top:46px;padding:16px 56px;border:1px solid #b9778c;border-radius:14px;font-size:15px;letter-spacing:.3em;transition:background .6s,color .6s,border-color .6s}
.btn:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}
/* all other pages / posts */
.page-top{min-height:56svh;display:flex;flex-direction:column;justify-content:flex-end;padding:0 8vw 10vh}
.ttl{margin:0;font-weight:400;font-size:clamp(28px,5.4vw,64px);line-height:1.4;letter-spacing:.12em}
.meta{margin:12px 0 0;color:var(--dim);font-size:14px}
.entry{padding:14vh 8vw 22vh}
.entry>*{max-width:46em;margin-left:auto;margin-right:auto}
.entry h2{font-weight:500;font-size:clamp(22px,2.8vw,32px);line-height:1.7;margin-top:3.4em;margin-bottom:1em;padding-left:1em;border-left:1px solid var(--ink)}
.entry h3{font-weight:500;font-size:clamp(18px,2.2vw,24px);margin-top:2.6em;margin-bottom:.8em}
.entry p{margin-top:0;margin-bottom:2em;color:#6b4552}
.entry a{border-bottom:1px solid #d79ab0}
.entry img{max-width:100%;height:auto;border-radius:3px}
.entry ul,.entry ol{padding-left:1.4em;color:#6b4552}
.entry table{width:100%;border-collapse:collapse;font-size:15px}
.entry th,.entry td{border-top:1px solid var(--line);padding:14px 10px;text-align:left;vertical-align:top}
.entry .alignwide,.entry .wp-block-table{max-width:70em}
.entry .post-row{display:grid;grid-template-columns:9em 1fr;gap:20px;padding:26px 0;border-top:1px solid var(--line);border-bottom:0}
.post-row strong{display:block;font-weight:500;font-size:20px}
.post-row em{display:block;font-style:normal;color:var(--dim);font-size:14px;margin-top:4px}
.entry .nav-links{display:flex;gap:20px;justify-content:center;padding-top:40px}
.entry .nav-links a{border:0}
.site-footer{background:#4f1f2b;color:#ffffff;padding:72px 0 28px;position:relative;z-index:3}
.site-footer .wrap{max-width:1240px;margin:0 auto;padding:0 clamp(20px,5vw,56px)}
.ft{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:48px;margin-bottom:56px}
.ft h4{font-size:20px;letter-spacing:.08em;color:#ffc9cd;margin:0 0 16px;font-weight:500}
.ft p,.ft li{font-size:13.5px;margin:0}
.ft strong{color:#fff;font-size:18px;font-weight:600}
.ft ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ft a{transition:color .4s}.ft a:hover{color:var(--am)}
.copy{border-top:1px solid rgba(255,255,255,.18);padding-top:24px;font-size:11.5px;letter-spacing:.14em;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}
@media(max-width:980px){.ft{grid-template-columns:1fr}}
/* fade-in (shared by every page) */
.js .rev{opacity:0;transform:translateY(30px);transition:opacity 1.6s ease,transform 1.6s cubic-bezier(.2,.7,.2,1)}
.js .rev.on{opacity:1;transform:none}
.js .cx{opacity:0;transform:translateY(30px);transition:opacity 1.4s ease,transform 1.4s cubic-bezier(.2,.7,.2,1)}
.js .ready .cx,.js .cx.ready{opacity:1;transform:none;transition-delay:var(--cd,0s)}
:focus-visible{outline:1px solid var(--ink);outline-offset:6px}
@media(max-width:760px){.split{grid-template-columns:1fr;gap:5vh}.split h2{position:static}.media li,.entry .post-row{grid-template-columns:1fr;gap:2px}.list li{flex-direction:column;gap:4px}.list li small{text-align:left}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.hero h1 span,.hero p,.ttl span,.js .rev{opacity:1;filter:none;transform:none}.w{opacity:1;filter:none}.chs span{opacity:1;transform:none}.vline{height:18vh}.flow svg{transform:none}}

/* ---- loading screen ---- */
#loader{display:none}
.js #loader{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:#ee9fb1;overflow:hidden;opacity:0;visibility:hidden;transition:opacity .5s ease,visibility .5s}
.js #loader.show{opacity:1;visibility:visible}
.js #loader.show.done{opacity:0;visibility:hidden;transition:opacity 1.1s ease,visibility 1.1s}
#loader.done{opacity:0;visibility:hidden}
html.loading,html.loading body{overflow:hidden}
.lg{position:absolute;border-radius:50%;filter:blur(64px);opacity:.7;animation:lgf 9s ease-in-out infinite alternate}
.lg1{width:46vmax;height:46vmax;left:-12vmax;top:-10vmax;background:#fff}
.lg2{width:40vmax;height:40vmax;right:-10vmax;bottom:-12vmax;background:#f4a9c0;animation-duration:11s}
.lg3{width:30vmax;height:30vmax;left:32%;top:38%;background:#ffd6e0;animation-duration:7s}
@keyframes lgf{0%{transform:translate(0,0) scale(1);opacity:.5}100%{transform:translate(4vmax,-3vmax) scale(1.18);opacity:.85}}
.lc{position:relative;text-align:center}
.ic{position:relative;width:min(42vw,190px);aspect-ratio:543/629;margin:0 auto 32px;animation:bob 4.5s ease-in-out infinite}
.ic::before{content:"";position:absolute;inset:-34%;border-radius:50%;background:radial-gradient(closest-side,rgba(255,255,255,.9),rgba(255,214,224,.45) 55%,transparent 80%);animation:halo 3.4s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-9px)}}
@keyframes halo{0%,100%{transform:scale(.92);opacity:.7}50%{transform:scale(1.08);opacity:1}}
.ic-w{position:absolute;inset:0;filter:drop-shadow(0 10px 14px rgba(110,40,60,.35))}
.ic-base,.ic-gold b{position:absolute;inset:0;display:block;-webkit-mask:url(icon.png) center/contain no-repeat;mask:url(icon.png) center/contain no-repeat}
.ic-base{background:#fff}
.ic-gold{--pc:-16;position:absolute;inset:0;display:block;-webkit-mask-image:linear-gradient(to top,#000 calc(var(--pc)*1%),transparent calc(var(--pc)*1% + 16%));mask-image:linear-gradient(to top,#000 calc(var(--pc)*1%),transparent calc(var(--pc)*1% + 16%))}
.ic-gold b{background:linear-gradient(115deg,#9E8F66 0%,#BDB08A 28%,#9E8F66 50%,#BDB08A 72%,#9E8F66 100%);background-size:240% 100%;animation:shine 5s linear infinite}
@keyframes shine{to{background-position:-240% 0}}
.lt,.ls{width:max-content;margin-left:auto;margin-right:auto;color:#fff;-webkit-text-fill-color:#fff;font-weight:700;text-shadow:0 1px 8px rgba(150,50,75,.65),0 0 2px rgba(130,40,65,.55)}
.lt{margin-top:0;margin-bottom:0;font-size:16px;letter-spacing:.32em;padding-left:.32em}
.dots i{font-style:normal;animation:dt 1.4s infinite}.dots i:nth-child(2){animation-delay:.2s}.dots i:nth-child(3){animation-delay:.4s}
@keyframes dt{0%,100%{opacity:.2}40%{opacity:1}}
.ls{margin-top:8px;margin-bottom:0;font-size:12px;letter-spacing:.25em}
.ls b{font-weight:700;display:inline-block;min-width:2em;text-align:right}
html.loading .hero h1 span,html.loading .hero p,html.loading .scroll,html.loading .ttl span{animation-play-state:paused}
[hidden]{display:none!important}
.view{animation:vin .9s ease}
@keyframes vin{from{opacity:0}}
/* ---- inner page components (company / FAQ / blog / contact) ---- */
.entry .lead{font-size:clamp(17px,2vw,22px);line-height:2.2;color:var(--ink)}
.entry .btn{border-bottom:1px solid #b9778c;border-radius:14px}
.ticks{list-style:none;padding:0!important;margin-bottom:2em}
.ticks li{position:relative;padding:16px 0 16px 34px;border-top:1px solid var(--line);font-size:15.5px;color:#6b4552}
.ticks li:last-child{border-bottom:1px solid var(--line)}
.ticks li::before{content:"";position:absolute;left:6px;top:29px;width:9px;height:9px;border-radius:50%;background:var(--rose)}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:2em}
.entry>.chips{max-width:72em}
.chips span,.entry .chips a{padding:8px 18px;border:1px solid var(--rose);border-radius:999px;font-size:13.5px;background:rgba(255,255,255,.6);transition:background .4s,color .4s}
.entry .chips a:hover{background:var(--rd);color:#fff;border-color:var(--rd)}
.tl{margin:0 auto 2em}
.tl dt{font-size:clamp(22px,3vw,34px);margin-top:1.4em;color:var(--rd);letter-spacing:.1em;line-height:1.5}
.tl dd{margin:0;padding:9px 0;border-top:1px solid var(--line);font-size:14.5px;color:#6b4552;line-height:1.9}
.info{width:100%;border-collapse:collapse}
.info th{width:7em;color:var(--rd);font-weight:500;white-space:nowrap}
.info th,.info td{padding:18px 10px;border-top:1px solid var(--line);text-align:left;vertical-align:top}
.info tr:last-child th,.info tr:last-child td{border-bottom:1px solid var(--line)}
.qa{border-top:1px solid var(--line)}
.qa:last-child{border-bottom:1px solid var(--line)}
.qa summary{list-style:none;cursor:pointer;display:flex;gap:18px;align-items:baseline;padding:22px 4px;font-size:clamp(16px,1.8vw,19px);line-height:1.8;transition:color .4s}
.qa summary::-webkit-details-marker{display:none}
.qa .q{flex:none;width:34px;height:34px;border-radius:50%;background:var(--rd);color:#fff;display:grid;place-items:center;font-size:15px;line-height:1;align-self:flex-start;margin-top:3px}
.qa summary i{margin-left:auto;flex:none;position:relative;width:18px;height:18px;align-self:center}
.qa summary i::before,.qa summary i::after{content:"";position:absolute;left:0;right:0;top:8px;height:1.5px;background:var(--rd);transition:transform .5s var(--ease)}
.qa summary i::after{transform:rotate(90deg)}
.qa[open]:not([data-closing]) summary i::after{transform:rotate(0)}
.qa summary i{transition:transform .5s var(--ease)}
.qa[open]:not([data-closing]) summary i{transform:rotate(180deg)}
.qa summary:hover{color:var(--rd)}
.qa .a{padding:0 4px 26px 52px;color:#6b4552;font-size:15px}
.qa .a p{margin:0;color:inherit}
@keyframes qa{from{opacity:0;transform:translateY(-8px)}}
.entry>.cards{max-width:72em;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:22px;margin-bottom:3em}
.cards>a{display:flex;flex-direction:column;background:rgba(255,255,255,.78);border:1px solid var(--ln);border-radius:22px;padding:26px 26px 22px;transition:transform .6s var(--ease),box-shadow .6s var(--ease),background .4s,opacity 1.6s ease}
.entry .cards>a{border-bottom:1px solid var(--ln)}
.cards>a:hover{transform:translateY(-6px);box-shadow:0 24px 50px -26px rgba(120,50,60,.45);background:#fff}
.cards time{font-size:12px;color:var(--dim);letter-spacing:.14em}
.cards b{font-weight:500;font-size:18px;line-height:1.7;margin:8px 0}
.cards p{margin:0 0 14px;font-size:13.5px;color:var(--dim);line-height:1.95}
.cards em{font-style:normal;margin-top:auto;font-size:12px;color:var(--rd);letter-spacing:.14em}
.callbox{display:flex;flex-wrap:wrap;align-items:center;gap:20px 34px;padding:34px 38px;border-radius:28px;background:#fff;border:1px solid var(--ln);margin-top:3em;margin-bottom:2em}
.entry a.tel{font-size:clamp(30px,5vw,52px);letter-spacing:.1em;color:var(--rd);border:0;line-height:1.4}
.note{font-size:13px;color:var(--dim)!important;line-height:2.1}
.cf{display:grid;gap:26px;margin-bottom:2.5em}
.cf label,.cf .lb{display:block;font-size:14px;color:var(--rd);letter-spacing:.14em;margin-bottom:8px}
.cf input[type=text],.cf input[type=email],.cf input[type=tel],.cf textarea,.cf select,.wpcf7 input:not([type=submit]):not([type=file]):not([type=radio]):not([type=checkbox]),.wpcf7 textarea,.wpcf7 select{width:100%;font:inherit;font-size:16px;padding:16px 20px;border:1px solid var(--ln);border-radius:16px;background:#fff;color:var(--ink);transition:border-color .4s,box-shadow .4s}
.cf input:focus,.cf textarea:focus,.wpcf7 input:focus,.wpcf7 textarea:focus{outline:0;border-color:var(--rose);box-shadow:0 0 0 5px rgba(229,141,148,.22)}
.cf textarea,.wpcf7 textarea{min-height:200px;resize:vertical}
.cf input[type=file]{font:inherit;font-size:14px;color:var(--dim)}
.opts{display:flex;flex-wrap:wrap;gap:10px}
.opts label{margin:0;cursor:pointer;position:relative}
.opts input{position:absolute;opacity:0}
.opts span{display:block;padding:10px 20px;border:1px solid var(--rose);border-radius:999px;font-size:14px;color:var(--ink);letter-spacing:.06em;transition:background .4s,color .4s}
.opts input:checked+span{background:var(--rd);border-color:var(--rd);color:#fff}
.opts input:focus-visible+span{outline:1px solid var(--ink);outline-offset:4px}
.cf button,.wpcf7 input[type=submit]{justify-self:start;font:inherit;font-size:15px;letter-spacing:.3em;padding:18px 64px;border:0;border-radius:999px;background:var(--rd);color:#fff;cursor:pointer;transition:background .4s,transform .5s var(--ease)}
.cf button:hover,.wpcf7 input[type=submit]:hover{background:var(--wn);transform:translateY(-2px)}
.thanks{padding:40px;border-radius:24px;background:#fff;border:1px solid var(--ln);text-align:center}
/* ON AIR flowing text (radio block) */
.mq{display:flex;width:max-content;margin:-8vh 0 9vh -8vw;font-family:"Quicksand","Zen Maru Gothic",sans-serif;font-weight:700;font-size:clamp(40px,7vw,100px);line-height:1.2;white-space:nowrap;color:rgba(244,169,192,.4);animation:mqL 80s linear infinite}
.mq span{padding-right:.6em}
.mq .o{color:transparent;-webkit-text-stroke:1.5px rgba(229,141,148,.55)}
@keyframes mqL{to{transform:translateX(-50%)}}

/* loading text: gold fill follows progress, like the icon */
.tx{position:relative}
.tx .tg{position:absolute;left:0;top:0;width:100%;height:100%;padding-left:inherit;box-sizing:border-box;white-space:nowrap;text-shadow:none;-webkit-text-fill-color:transparent;color:transparent;background:linear-gradient(115deg,#9E8F66 0%,#BDB08A 28%,#9E8F66 50%,#BDB08A 72%,#9E8F66 100%) 0 0/240% 100%;-webkit-background-clip:text;background-clip:text;animation:shine 5s linear infinite;--tp:-14;-webkit-mask-image:linear-gradient(to right,#000 calc(var(--tp)*1%),transparent calc(var(--tp)*1% + 14%));mask-image:linear-gradient(to right,#000 calc(var(--tp)*1%),transparent calc(var(--tp)*1% + 14%))}
.tx .tb{display:inline}
/* loading text: same gold as the icon, always */
.lt,.ls{text-shadow:none}
.tx{filter:drop-shadow(0 2px 6px rgba(110,40,60,.35))}
.tx .tb{display:inline;-webkit-text-fill-color:transparent;color:transparent;background:linear-gradient(115deg,#9E8F66 0%,#BDB08A 28%,#9E8F66 50%,#BDB08A 72%,#9E8F66 100%) 0 0/240% 100%;-webkit-background-clip:text;background-clip:text;animation:shine 5s linear infinite}
.tx .tg{display:none}

/* voices: cards drift gently up and down, each at its own pace */
.track .card{animation:fb 6.5s ease-in-out infinite;will-change:transform}
.track .card:nth-child(2){animation-duration:8s;animation-delay:-2.4s}
.track .card:nth-child(3){animation-duration:7s;animation-delay:-4.6s}
.track .card:nth-child(4){animation-duration:9s;animation-delay:-1.2s}
.track .card:nth-child(5){animation-duration:7.5s;animation-delay:-5.8s}
@keyframes fb{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-14px) rotate(.4deg)}}

/* media list: show latest 5, expand to all */
.media li a{display:flex;gap:14px;justify-content:space-between;align-items:baseline;border:0}
.media li a i{font-style:normal;color:var(--rd);flex:none;opacity:.5;transition:transform .5s var(--ease),opacity .4s}
.media li a:hover{color:var(--rd)}.media li a:hover i{opacity:1;transform:translate(3px,-3px)}
.media li.more{display:none}
.media.open li.more{display:grid}
.media-more{text-align:center;margin-top:34px}
.btn-more{font:inherit;letter-spacing:.2em;font-size:14px;cursor:pointer;color:var(--rd);background:rgba(255,255,255,.7);border:1px solid #b9778c;border-radius:14px;padding:14px 38px;display:inline-flex;gap:8px;align-items:center;transition:background .4s,color .4s}
.btn-more:hover{background:var(--rd);color:#fff}
.btn-more i{width:8px;height:8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translate(-2px,-2px);transition:transform .5s var(--ease);margin-left:6px}
.btn-more[aria-expanded=true] i{transform:rotate(-135deg) translate(-2px,-2px)}
/* blog: search + month filter */
.blog-tools{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;margin-bottom:30px}
.blog-tools form{display:flex;gap:0;flex:1 1 280px;max-width:30em}
.blog-tools input[type=search]{flex:1;min-width:0;font:inherit;font-size:15px;padding:12px 20px;border:1px solid #d79ab0;border-right:0;border-radius:14px 0 0 14px;background:#fff;color:var(--ink);outline:0}
.blog-tools input[type=search]:focus{border-color:var(--rd)}
.blog-tools button.sb{font:inherit;font-size:14px;letter-spacing:.2em;padding:0 22px;border:1px solid var(--rd);background:var(--rd);color:#fff;border-radius:0 14px 14px 0;cursor:pointer}
.blog-tools select{font:inherit;font-size:15px;padding:12px 40px 12px 18px;border:1px solid #d79ab0;border-radius:14px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23b5424f' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 16px center;color:var(--ink);-webkit-appearance:none;appearance:none;cursor:pointer;max-width:100%}
.blog-note{margin:0 auto 20px;color:var(--dim);font-size:14px}
.blog-empty{padding:40px 0;text-align:center;color:var(--dim)}
.entry .nav-links .page-numbers{border:0;padding:4px 10px}
.entry .nav-links .current{color:var(--rd);border-bottom:1px solid var(--rd)}
/* single: prev / next */
.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:5em!important;max-width:46em}
.post-nav a{display:flex;flex-direction:column;gap:6px;border:1px solid var(--ln);border-radius:18px;background:rgba(255,255,255,.78);padding:20px 24px;transition:transform .6s var(--ease),box-shadow .6s var(--ease),background .4s;position:relative}
.post-nav a:hover{transform:translateY(-4px);box-shadow:0 22px 44px -26px rgba(120,50,60,.45);background:#fff}
.post-nav small{font-size:12px;letter-spacing:.18em;color:var(--rd);display:flex;gap:8px;align-items:center}
.post-nav b{font-weight:500;font-size:15.5px;line-height:1.8;color:var(--ink)}
.post-nav .next{text-align:right}.post-nav .next small{justify-content:flex-end}
.post-nav .arr{display:inline-block;transition:transform .5s var(--ease)}
.post-nav .prev:hover .arr{transform:translateX(-5px)}.post-nav .next:hover .arr{transform:translateX(5px)}
.post-nav .none{visibility:hidden}
.post-back{text-align:center;margin-top:30px!important;max-width:46em}
.post-back a{display:inline-block;border:1px solid #b9778c;border-radius:14px;padding:12px 34px;font-size:14px;letter-spacing:.2em;color:var(--rd)}
.post-back a:hover{background:var(--rd);color:#fff}
@media(max-width:760px){.post-nav{grid-template-columns:1fr}.post-nav .next{text-align:left}.post-nav .next small{justify-content:flex-start}.blog-tools form{max-width:none}}

/* radio: YouTube playlist */
.radio .yt{position:relative;width:min(100%,860px);margin:44px auto 0;aspect-ratio:16/9;border-radius:18px;overflow:hidden;background:#000;box-shadow:0 30px 60px -34px rgba(120,50,60,.5)}
.radio .yt iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.radio .yt-link{margin-top:6px}
.radio .yt-link .btn{margin-top:30px}

/* ===== Contact / forms inside page content (Contact Form 7, MW WP Form, WPForms, plain HTML) ===== */
.entry form{max-width:46em;margin:3em auto 0;padding:clamp(24px,4vw,48px);background:rgba(255,255,255,.78);border:1px solid var(--ln);border-radius:26px;box-shadow:0 30px 60px -44px rgba(120,50,60,.4)}
.entry form table,.entry form tbody,.entry form tr,.entry form th,.entry form td{display:block;width:100%;border:0;padding:0;margin:0;background:none}
.entry form tr{margin-bottom:26px}
.entry form th{font-weight:500;font-size:14px;color:var(--rd);letter-spacing:.14em;margin-bottom:8px;text-align:left}
.entry form p{margin:0 0 24px}
.entry form label{display:block;font-size:14px;color:var(--rd);letter-spacing:.14em;margin-bottom:8px;line-height:1.8}
.entry form input[type=text],.entry form input[type=email],.entry form input[type=tel],.entry form input[type=url],.entry form input[type=number],.entry form input[type=date],.entry form input[type=password],.entry form textarea,.entry form select{width:100%;box-sizing:border-box;font:inherit;font-size:16px;letter-spacing:.04em;padding:16px 20px;border:1px solid #e3c4cd;border-radius:16px;background:#fff;color:var(--ink);transition:border-color .4s,box-shadow .4s;-webkit-appearance:none;appearance:none}
.entry form select{padding-right:48px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23b5424f' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 20px center;cursor:pointer}
.entry form textarea{min-height:220px;resize:vertical;line-height:1.9}
.entry form input:focus,.entry form textarea:focus,.entry form select:focus{outline:0;border-color:var(--rose);box-shadow:0 0 0 5px rgba(229,141,148,.22)}
.entry form ::placeholder{color:#c3a1ad}
.entry form input[type=file]{width:100%;box-sizing:border-box;font:inherit;font-size:14px;color:var(--dim);padding:14px 16px;border:1px dashed #d79ab0;border-radius:16px;background:rgba(255,255,255,.6);cursor:pointer}
.entry form input[type=file]::file-selector-button{font:inherit;font-size:13px;letter-spacing:.1em;margin-right:14px;padding:8px 18px;border:1px solid #b9778c;border-radius:12px;background:#fff;color:var(--rd);cursor:pointer;transition:background .4s,color .4s}
.entry form input[type=file]::file-selector-button:hover{background:var(--rd);color:#fff}
/* radio / checkbox -> pills */
.entry form .wpcf7-radio,.entry form .wpcf7-checkbox,.entry form .mwform-radio-field-text,.entry form .horizontal-item{display:flex;flex-wrap:wrap;gap:10px}
.entry form .wpcf7-list-item{margin:0}
.entry form .wpcf7-list-item label,.entry form .mwform-radio-field label,.entry form .mwform-checkbox-field label{display:inline-block;margin:0;cursor:pointer;position:relative;color:var(--ink);letter-spacing:.06em;font-size:14px}
.entry form input[type=radio],.entry form input[type=checkbox]{position:absolute;opacity:0;width:1px;height:1px}
.entry form .wpcf7-list-item-label,.entry form .mwform-radio-field-text,.entry form .mwform-checkbox-field-text,.entry form label>span:not(.req){display:inline-block}
.entry form .wpcf7-list-item-label,.entry form .mwform-radio-field-text,.entry form .mwform-checkbox-field-text{padding:10px 20px;border:1px solid var(--rose);border-radius:999px;background:rgba(255,255,255,.7);font-size:14px;color:var(--ink);transition:background .4s,color .4s,border-color .4s}
.entry form input:checked+.wpcf7-list-item-label,.entry form input:checked+.mwform-radio-field-text,.entry form input:checked+.mwform-checkbox-field-text{background:var(--rd);border-color:var(--rd);color:#fff}
.entry form input:focus-visible+.wpcf7-list-item-label,.entry form input:focus-visible+.mwform-radio-field-text{outline:1px solid var(--ink);outline-offset:4px}
/* required badge */
.entry form .req,.entry form .required,.entry form .wpcf7-required,.entry form .must{display:inline-block;margin-left:10px;padding:1px 9px;border-radius:999px;background:var(--rd);color:#fff;font-size:11px;letter-spacing:.1em;vertical-align:middle;line-height:1.8}
/* submit */
.entry form input[type=submit],.entry form button[type=submit],.entry form .wpcf7-submit,.entry form .mw_wp_form input[type=submit],.entry form .wpforms-submit{display:block;margin:34px auto 0;font:inherit;font-size:15px;letter-spacing:.3em;padding:18px 72px;border:0;border-radius:14px;background:var(--rd);color:#fff;cursor:pointer;-webkit-appearance:none;appearance:none;transition:background .4s,transform .5s var(--ease),box-shadow .5s var(--ease)}
.entry form input[type=submit]:hover,.entry form button[type=submit]:hover{background:var(--wn);transform:translateY(-3px);box-shadow:0 18px 34px -18px rgba(120,50,60,.6)}
.entry form input[type=button],.entry form button:not([type=submit]){font:inherit;font-size:14px;letter-spacing:.2em;padding:14px 36px;border:1px solid #b9778c;border-radius:14px;background:#fff;color:var(--rd);cursor:pointer;transition:background .4s,color .4s}
.entry form input[type=button]:hover,.entry form button:not([type=submit]):hover{background:var(--rd);color:#fff}
/* messages */
.entry .wpcf7-not-valid-tip,.entry .error{display:block;margin-top:6px;font-size:13px;color:#c0394b;letter-spacing:.06em}
.entry .wpcf7-not-valid{border-color:#e2909b!important}
.entry .wpcf7-response-output{margin:24px 0 0!important;padding:16px 22px!important;border:1px solid var(--rose)!important;border-radius:16px;background:#fff;font-size:14px;text-align:center}
.entry .wpcf7-spinner{display:none}
.entry .wpcf7 form.sent .wpcf7-response-output{border-color:#7fb89a!important}
/* phone image / call-out and notes on the contact page */
.entry p>a>img[src*="tel"],.entry a[href^="tel"]>img{display:block;margin:0 auto;border-radius:18px;transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.entry a[href^="tel"]>img:hover{transform:translateY(-4px);box-shadow:0 22px 40px -24px rgba(120,50,60,.5)}
.entry a[href^="tel"]{border-bottom:0}
.entry form small,.entry .note{display:block;margin-top:8px;font-size:12.5px;color:var(--dim);line-height:1.9}
@media(max-width:760px){.entry form{border-radius:20px}.entry form input[type=submit],.entry form button[type=submit]{width:100%;padding:18px 20px}}

/* blog search: keep it out of the contact-form card styles, and make it fluid */
.entry .blog-tools{max-width:46em}
.entry .blog-tools form{display:flex;flex:1 1 280px;width:auto;min-width:0;max-width:30em;margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none}
.entry .blog-tools form input[type=search]{flex:1 1 auto;width:auto;min-width:0;box-sizing:border-box;padding:12px 18px;border:1px solid #d79ab0;border-right:0;border-radius:14px 0 0 14px;background:#fff;-webkit-appearance:none;appearance:none;font-size:16px}
.entry .blog-tools form button.sb{flex:none;display:block;margin:0;width:auto;padding:0 22px;border:1px solid var(--rd);border-radius:0 14px 14px 0;background:var(--rd);color:#fff;font-size:14px;letter-spacing:.2em;transform:none;box-shadow:none}
.entry .blog-tools form button.sb:hover{background:var(--wn);transform:none;box-shadow:none}
.entry .blog-tools select{flex:0 1 auto;min-width:0;max-width:100%;box-sizing:border-box}
@media(max-width:760px){.entry .blog-tools{flex-direction:column;align-items:stretch;gap:12px}.entry .blog-tools form{flex:none;width:100%;max-width:none}.entry .blog-tools select{width:100%;font-size:16px}}
