/*
Theme Name: Mirai_1
Theme URI: https://example.com/mirai
Author: Mirai Studio
Author URI: https://example.com
Description: A refined, single-page-first theme for accounting, tax and advisory firms. Light and airy, with a serif headline that cycles through your values, a photographic hero, an accordion of services, an interactive three-year forecast, and a Customizer panel that edits every homepage section. Includes blog templates, custom logo, menus, footer widgets and block editor support.
Version: 1.0.2
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: mirai
Tags: blog, one-column, custom-logo, custom-menu, editor-style, featured-images, threaded-comments, translation-ready, wide-blocks, block-styles, theme-options
*/

/* Fonts are bundled locally (SIL Open Font License 1.1). */
@font-face{font-family:'Newsreader';font-style:normal;font-weight:300;font-display:swap;src:url(assets/fonts/newsreader-latin-300-normal.woff2) format('woff2')}
@font-face{font-family:'Newsreader';font-style:italic;font-weight:300;font-display:swap;src:url(assets/fonts/newsreader-latin-300-italic.woff2) format('woff2')}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/newsreader-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Newsreader';font-style:italic;font-weight:400;font-display:swap;src:url(assets/fonts/newsreader-latin-400-italic.woff2) format('woff2')}
@font-face{font-family:'Jost';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/jost-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Jost';font-style:normal;font-weight:500;font-display:swap;src:url(assets/fonts/jost-latin-500-normal.woff2) format('woff2')}

:root{--og:'Ogg','Ogg Italic','Playfair Display',Georgia,serif;--ink:#17132a;--v:#5a3796;--l:#f4f0fb;--pe:#f7dccb;--mu:#6b6580;--ln:#e9e5f1;--e:cubic-bezier(.16,.8,.2,1);
--d:'Newsreader',Georgia,'Times New Roman',serif;--s:'Jost','Helvetica Neue',Helvetica,sans-serif;
color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
*,*:before,*:after{box-sizing:inherit}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;background:#fff;color:var(--ink);font:400 18px/1.6 var(--s);overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--v);outline-offset:4px;border-radius:4px}
.w{max-width:1240px;margin:0 auto;padding:0 clamp(20px,5vw,64px)}
h1,h2,h3{font-family:var(--d);font-weight:300;margin:0;letter-spacing:-.03em}
em{font-style:italic;color:var(--v)}
#mirai-bar{position:fixed;top:0;left:0;height:2px;width:100%;background:var(--v);transform:scaleX(0);transform-origin:left;z-index:70}
.site-nav{position:fixed;top:0;left:0;right:0;z-index:60;padding-top:env(safe-area-inset-top,0px);background:rgba(255,255,255,.8);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--ln);transition:transform .7s var(--e)}
.site-nav.h{transform:translateY(-101%)}
.site-nav .w{display:flex;align-items:center;justify-content:space-between;height:86px}
.logo{display:flex;align-items:center}
.logo img{height:58px;width:auto;display:block}
.nl{display:flex;gap:34px;font-size:15px;font-weight:500}
.nl a{position:relative;padding:4px 0}
.nl a:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--v);transform:scaleX(0);transform-origin:right;transition:transform .6s var(--e)}
.nl a:hover:after{transform:scaleX(1);transform-origin:left}
.bt{display:inline-flex;align-items:center;gap:10px;padding:14px 28px;border-radius:99px;background:var(--ink);color:#fff;border:1px solid var(--ink);font:500 15px var(--s);cursor:pointer;position:relative;overflow:hidden;isolation:isolate;transition:color .6s var(--e),transform .5s var(--e)}
.bt:before{content:"";position:absolute;inset:0;background:var(--v);transform:translateY(101%);border-radius:50% 50% 0 0;transition:transform .7s var(--e),border-radius .7s var(--e);z-index:-1}
.bt:hover:before{transform:none;border-radius:0}
.bt.g{background:transparent;color:var(--ink);border-color:#cfc8de}
.bt.g:hover{color:#fff;border-color:var(--v)}
.bt.sm{padding:10px 22px}
.hero{min-height:calc(100svh + 8vh);display:grid;align-items:center;padding:120px 0 120px;position:relative;overflow:hidden}
@keyframes bgin{from{opacity:0}}
.scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.88) 24%,rgba(255,255,255,.5) 44%,rgba(255,255,255,0) 64%),linear-gradient(0deg,#fff 0%,rgba(255,255,255,0) 10%)}
.hero .w{position:relative;z-index:2;width:100%}
.hero h1{font:300 clamp(38px,6.4vw,104px)/.98 var(--d);letter-spacing:-.035em;font-optical-sizing:auto}
.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.1em}
.hero h1 .ln>span{display:block;transform:translateY(105%);animation:up 1.3s var(--e) forwards}
.hero h1 .ln:nth-child(2)>span{animation-delay:.1s}
@keyframes up{to{transform:none}}
.cyc{display:inline-grid;overflow:hidden;vertical-align:bottom;color:var(--v);font-style:italic;padding:.12em .08em .16em 0;margin:-.12em 0 -.16em}
.cyc span{grid-area:1/1;transform:translateY(160%);transition:transform .9s var(--e)}
.cyc span.on{transform:none}
.cyc span.out{transform:translateY(-160%)}
.cyc span.rs{transition:none}
.sub{max-width:440px;color:#2d2745;font-weight:400;font-size:21px;margin:30px 0 40px;opacity:0;animation:fd 1.2s .6s var(--e) forwards}
.cta{display:flex;gap:12px;flex-wrap:wrap;opacity:0;animation:fd 1.2s .8s var(--e) forwards}
@keyframes fd{to{opacity:1}}
section{position:relative}
.stm{padding:clamp(90px,14vw,200px) 0 clamp(60px,8vw,110px)}
.stm h2{font-size:clamp(38px,6vw,96px);line-height:1.04;max-width:13em}
.stm h2 .x{opacity:.15;transition:opacity .6s}
.stm h2 .x.on{opacity:1}
.lead{display:flex;justify-content:space-between;align-items:flex-end;gap:28px 60px;flex-wrap:wrap;margin-top:clamp(40px,5vw,64px);padding-top:32px;border-top:1px solid var(--ln)}
.lead p{margin:0;max-width:27em;font:300 clamp(22px,2.2vw,30px)/1.35 var(--d);letter-spacing:-.01em;color:var(--ink)}
.lk{font-weight:500;font-size:16px;border-bottom:1px solid var(--v);padding-bottom:3px;transition:color .4s,letter-spacing .6s var(--e)}
.lk:hover{color:var(--v);letter-spacing:.02em}
.sv{padding:40px 0 clamp(80px,10vw,150px)}
.hd{display:flex;justify-content:space-between;align-items:end;gap:30px;flex-wrap:wrap;margin-bottom:50px}
.hd h2{font-size:clamp(36px,5vw,72px);line-height:1.02;max-width:11em}
.hd p{margin:0;color:var(--mu);max-width:300px}
.lst{border-top:1px solid var(--ln)}
.it{border-bottom:1px solid var(--ln)}
.it>button{all:unset;box-sizing:border-box;width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:26px 0;cursor:pointer;font:300 clamp(26px,3vw,44px)/1.1 var(--d);letter-spacing:-.02em;transition:color .5s,padding .7s var(--e)}
.it>button:hover{color:var(--v);padding-left:14px}
.it>button:focus-visible{outline:2px solid var(--v)}
.pl{width:20px;height:20px;position:relative;flex:none}
.pl:before,.pl:after{content:"";position:absolute;left:0;top:50%;width:100%;height:1px;background:currentColor;transition:transform .7s var(--e)}
.pl:after{transform:rotate(90deg)}
.it.o .pl:after{transform:rotate(0)}
.it.o .pl:before{transform:rotate(180deg)}
.pn{display:grid;grid-template-rows:0fr;transition:grid-template-rows .8s var(--e)}
.it.o .pn{grid-template-rows:1fr}
.pn>div{overflow:hidden;opacity:0;transition:opacity .6s}
.it.o .pn>div{opacity:1;transition-delay:.15s}
.pi{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;padding:0 0 32px}
.pi p{margin:0;max-width:28em;color:var(--mu);font-size:18px}
.pi ul{list-style:none;margin:0;padding:0;display:flex;gap:8px;flex-wrap:wrap;align-content:start;max-width:380px}
.pi li{border:1px solid var(--ln);background:var(--l);border-radius:99px;padding:6px 16px;font-size:14px;font-weight:500}
.md{padding:0 0 clamp(80px,10vw,150px)}
.card{background:var(--l);border-radius:28px;padding:clamp(24px,5vw,72px);display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(30px,5vw,80px);align-items:center}
.card h2{font-size:clamp(34px,4.4vw,64px);line-height:1.04}
.card>div>p{color:var(--mu);margin:18px 0 0;max-width:24em}
.ctl{margin-top:34px;display:grid;gap:22px}
.ctl label{display:flex;justify-content:space-between;font-size:14px;font-weight:500;margin-bottom:10px}
.ctl output{font-family:var(--d);font-size:22px;color:var(--v);line-height:1}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:2px;background:#cfc6e4;border-radius:2px;outline:0;cursor:pointer}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:#fff;border:1.5px solid var(--v);box-shadow:0 4px 14px rgba(90,55,150,.25);transition:transform .4s var(--e)}
input[type=range]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#fff;border:1.5px solid var(--v)}
input[type=range]:active::-webkit-slider-thumb{transform:scale(1.25)}
.ch{background:#fff;border-radius:20px;padding:24px 24px 16px}
.ch svg{width:100%;height:auto;display:block;overflow:visible}
.ch .tot{font:300 clamp(40px,5vw,68px)/1 var(--d);color:var(--ink)}
.ch .tot+span{display:block;color:var(--mu);font-size:14px;margin-bottom:10px}
#ln{fill:none;stroke:var(--v);stroke-width:2;transition:d .8s var(--e)}
#ar{fill:url(#gr);transition:d .8s var(--e)}
.ch text{font:500 12px var(--s);fill:var(--mu)}
.pr{padding:0 0 clamp(80px,10vw,150px)}
.stp{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,64px);position:relative;padding-top:40px}
.stp:before{content:"";position:absolute;top:0;left:0;width:100%;height:1px;background:var(--v);transform:scaleX(var(--p,0));transform-origin:left}
.stp h3{font-size:36px;margin:0 0 10px}
.stp p{margin:0;color:var(--mu)}
.stp span{display:block;font:italic 400 20px var(--d);color:var(--v);margin-bottom:14px}
.ct{padding:clamp(70px,9vw,130px) 0 70px;background:var(--l)}
.ct .w{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,100px)}
.ct h2{font-size:clamp(42px,6vw,92px);line-height:1}
.ct .in{color:var(--mu);max-width:24em;margin:26px 0 0}
.ct .in a{color:var(--ink);border-bottom:1px solid var(--v)}
.rv{opacity:0;transform:translateY(28px);transition:opacity 1.1s var(--e),transform 1.1s var(--e)}
.rv.in{opacity:1;transform:none}
.pv{padding:clamp(50px,8vw,120px) 0 clamp(70px,9vw,130px)}
.pv .top{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,6vw,100px);align-items:end}
.pv small{display:block;font:500 15px var(--s);color:var(--v);margin-bottom:24px}
.pv h2{font-size:clamp(46px,7.2vw,116px);line-height:.96}
.pv .top p{margin:0;font:300 clamp(21px,2vw,28px)/1.4 var(--d);max-width:23em}
.qt{margin:clamp(60px,8vw,110px) 0;padding:clamp(20px,3vw,40px) 0 clamp(20px,3vw,40px) clamp(22px,4vw,64px);border-left:2px solid var(--v)}
.qt span{font:500 15px var(--s);color:var(--v)}
.qt blockquote{margin:16px 0 0;font:italic 300 clamp(30px,4.6vw,72px)/1.08 var(--d);letter-spacing:-.025em;max-width:17em}
.tri{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,64px)}
.tr{border-top:1px solid var(--ln);padding-top:28px;position:relative;transition:opacity .7s var(--e),transform 1.1s var(--e)}
.tr:before{content:"";position:absolute;top:-1px;left:0;width:100%;height:1px;background:var(--v);transform:scaleX(0);transform-origin:left;transition:transform 1.4s var(--e) .2s}
.tr.in:before{transform:scaleX(1)}
.tr b{display:block;font:italic 300 clamp(44px,4.4vw,66px)/1 var(--d);color:var(--v);margin-bottom:20px;transition:transform .9s var(--e)}
.tr:hover b{transform:translateX(12px)}
.tr h3{font-size:clamp(28px,2.6vw,38px);line-height:1.08;margin:0 0 12px}
.tr p{margin:0;color:var(--mu);max-width:22em}
.tri:hover .tr:not(:hover){opacity:.4}

/* ---------- Hero image (img based) ---------- */
.bg{position:absolute;inset:-3% -2%;will-change:transform;transition:transform .9s var(--e);animation:bgin 2.2s var(--e);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 42%);mask-image:linear-gradient(90deg,transparent 0,#000 42%)}
.bg img{position:absolute;right:0;top:0;height:100%;width:auto;max-width:none;display:block}
/* ---------- Accessibility ---------- */
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}
.screen-reader-text:focus{background:#fff;clip:auto!important;clip-path:none;color:var(--ink);display:block;font-size:1rem;height:auto;left:8px;padding:14px 22px;top:8px;width:auto;z-index:100000}
/* ---------- Core WordPress ---------- */
img{max-width:100%;height:auto}
.alignleft{float:left;margin:0 1.5em 1em 0}.alignright{float:right;margin:0 0 1em 1.5em}.aligncenter{display:block;margin:0 auto 1em}
.alignwide{max-width:1240px}.alignfull{max-width:none}
.wp-caption{max-width:100%}.wp-caption-text,.gallery-caption,figcaption{font-size:14px;color:var(--mu)}
.sticky,.bypostauthor{display:block}
.gallery{display:grid;gap:14px}
/* ---------- Header ---------- */
.logo img,.custom-logo-link img{height:58px;width:auto;display:block}
.logo,.custom-logo-link{display:flex;align-items:center}
ul.nl{list-style:none;margin:0;padding:0}
.menu-toggle{display:none;background:none;border:0;padding:12px;cursor:pointer;color:var(--ink)}
.menu-toggle .bars,.menu-toggle .bars:before,.menu-toggle .bars:after{display:block;width:24px;height:1.5px;background:currentColor;position:relative;transition:transform .5s var(--e),background .3s}
.menu-toggle .bars:before,.menu-toggle .bars:after{content:"";position:absolute;left:0}
.menu-toggle .bars:before{top:-8px}.menu-toggle .bars:after{top:8px}
.site-nav.open .bars{background:transparent}.site-nav.open .bars:before{transform:translateY(8px) rotate(45deg)}.site-nav.open .bars:after{transform:translateY(-8px) rotate(-45deg)}
/* ---------- Homepage details ---------- */
.it .pn{visibility:hidden;transition:grid-template-rows .8s var(--e),visibility 0s .8s}
.it.o .pn{visibility:visible;transition-delay:0s}
.cform .in{margin-top:22px}.cform .in a{border-bottom:1px solid var(--v)}
.cform input:not([type=submit]):not([type=checkbox]):not([type=radio]),.cform textarea,.cform select{width:100%;border:0;border-bottom:1px solid #cfc6e4;background:transparent;padding:14px 0;font:400 18px var(--s);color:var(--ink);border-radius:0;outline:0;margin-bottom:12px}
.cform input:focus,.cform textarea:focus,.cform select:focus{border-bottom-color:var(--v)}
.cform input[type=submit],.cform button[type=submit]{background:var(--ink);color:#fff;border:1px solid var(--ink);border-radius:99px;padding:14px 28px;font:500 15px var(--s);cursor:pointer;transition:background .5s var(--e)}
.cform input[type=submit]:hover,.cform button[type=submit]:hover{background:var(--v)}
/* ---------- Inner pages ---------- */
.page-wrap{padding-top:150px;padding-bottom:clamp(60px,9vw,120px)}
.page-wrap.narrow{max-width:900px}
.page-title,.entry-title{font-size:clamp(34px,5vw,68px);line-height:1.04;margin-bottom:.4em}
.entry-title a:hover{color:var(--v)}
.entry-meta,.entry-footer{font-size:14px;color:var(--mu)}
.entry-footer{margin-top:40px;padding-top:20px;border-top:1px solid var(--ln)}
.entry-content>*{max-width:760px;margin-left:auto;margin-right:auto}
.entry-content>.alignwide{max-width:1240px}.entry-content>.alignfull{max-width:none}
.entry-content p,.entry-content li{font-size:19px;line-height:1.7}
.entry-content h2,.entry-content h3{margin:1.6em auto .5em}
.entry-content a,.entry-summary a{color:var(--v);border-bottom:1px solid currentColor}
.entry-content blockquote{border-left:2px solid var(--v);padding-left:24px;font:italic 300 26px/1.3 var(--d)}
.entry-thumb{display:block;margin:0 0 24px}.entry-thumb img{width:100%;border-radius:4px}
.posts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:44px 36px;margin-top:40px}
.posts-grid .entry-title{font-size:30px}
.page-header{margin-bottom:20px}
.navigation.pagination,.post-navigation,.comments-pagination{margin-top:56px}
.nav-links{display:flex;gap:16px;flex-wrap:wrap;justify-content:space-between}
.pagination .page-numbers{padding:8px 16px;border:1px solid var(--ln);border-radius:99px}.pagination .current{background:var(--ink);color:#fff;border-color:var(--ink)}
.search-form{display:flex;gap:10px;margin:24px 0;flex-wrap:wrap}
.search-form label{flex:1;min-width:200px}
.search-field{width:100%;border:0;border-bottom:1px solid #cfc6e4;padding:12px 0;font:400 18px var(--s);background:transparent;outline:0}
.search-submit{background:var(--ink);color:#fff;border:0;border-radius:99px;padding:12px 26px;font:500 15px var(--s);cursor:pointer}
.comments-area{max-width:760px;margin:70px auto 0}
.comment-list{list-style:none;padding:0}.comment-list .children{list-style:none;padding-left:28px}
.comment-body{padding:22px 0;border-bottom:1px solid var(--ln)}
.comment-author img{border-radius:50%;margin-right:12px;vertical-align:middle}
.comment-form input[type=text],.comment-form input[type=email],.comment-form input[type=url],.comment-form textarea{width:100%;border:1px solid #cfc6e4;padding:12px;font:400 17px var(--s);border-radius:4px}
.comment-form .submit{background:var(--ink);color:#fff;border:0;border-radius:99px;padding:14px 28px;font:500 15px var(--s);cursor:pointer}
/* ---------- Footer ---------- */
.ctbtns{display:flex;gap:14px;flex-wrap:wrap}
.bt.lav{background:var(--v);border-color:var(--v);color:#fff}
.bt.lav:before{background:#43296f}
.totop{position:fixed;right:clamp(16px,3vw,32px);bottom:clamp(16px,3vw,32px);width:52px;height:52px;border-radius:50%;background:#fff;border:1px solid var(--v);color:var(--v);display:grid;place-items:center;cursor:pointer;z-index:55;opacity:0;transform:translateY(14px) scale(.9);pointer-events:none;transition:opacity .5s var(--e),transform .5s var(--e),background .4s,border-color .4s;box-shadow:0 10px 26px rgba(23,19,42,.12)}
.totop.show{opacity:1;transform:none;pointer-events:auto}
.totop:hover{background:var(--v);color:#fff}
.totop svg{width:18px;height:18px}
.totop path{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
@media(prefers-reduced-motion:reduce){.totop{transition:opacity .3s,background .3s,border-color .3s}}
.site-footer{padding:44px 0 34px;background:var(--l);border-top:1px solid var(--ln);color:var(--mu);font-size:14px}
.footer-widgets{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:30px;margin-bottom:40px}
.widget-title{font-size:22px;margin-bottom:12px;color:var(--ink)}
.footer-main{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.site-footer .logo img,.site-footer .custom-logo-link img{height:82px}
.site-footer .r{text-align:right}
.site-footer .tag{margin:0;font:italic 300 20px var(--d);color:var(--ink)}
.footer-menu{list-style:none;display:flex;gap:18px;justify-content:flex-end;padding:0;margin:8px 0}
.site-footer .copy{display:block;margin-top:4px}

@media(max-width:900px){.pv .top,.tri{grid-template-columns:1fr}.tri{gap:40px}.scrim{background:linear-gradient(180deg,rgba(255,255,255,.95) 0%,rgba(255,255,255,.84) 55%,rgba(255,255,255,.35) 100%)}.logo img{height:48px;width:auto}.hero .w,.card,.ct .w{grid-template-columns:1fr}.stp{grid-template-columns:1fr}.stp:before{display:none}.stm p{margin-left:0}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition-duration:.01s!important}.hero h1 .ln>span{transform:none}.sub,.cta,.arch small{opacity:1}.rv{opacity:1;transform:none}.stm h2 .x{opacity:1}}
@media(max-width:900px){
.menu-toggle{display:block;margin-left:auto}
.site-nav .nav-cta{display:none}
.site-nav .nl{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:#fff;border-bottom:1px solid var(--ln);padding:10px clamp(20px,5vw,64px) 20px}
.site-nav.open .nl{display:flex}.site-nav .nl a{display:block;padding:14px 0;font-size:18px}
.bg img{width:100%;object-fit:cover;object-position:68% 50%}.bg{-webkit-mask-image:none;mask-image:none}
.site-footer .r{text-align:left}.footer-menu{justify-content:flex-start}
}
