@font-face{font-family:Manrope;src:url('assets/fonts/manrope-500.ttf') format('truetype');font-style:normal;font-weight:400 600;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/fonts/manrope-700.ttf') format('truetype');font-style:normal;font-weight:700 900;font-display:swap}
:root{--paper:#f4f7f8;--white:#fff;--ink:#122d3b;--muted:#63737e;--blue:#235ee8;--blue-dark:#194bbd;--navy:#0d2939;--line:#d8e1e6;--ice:#e8f0f9;--aqua:#a2e0e5;--font:Manrope,'Hiragino Kaku Gothic ProN','Hiragino Sans','Yu Gothic',Meiryo,sans-serif;--ease:cubic-bezier(.2,.7,.2,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.85;-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{display:block;width:100%;height:auto}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-weight:700;line-height:1.5}ul,ol{padding:0;margin:0}li{list-style:none}button{border:0}::selection{background:var(--blue);color:white}:focus-visible{outline:3px solid var(--blue);outline-offset:5px}section[id],div[id]{scroll-margin-top:110px}.wrap{width:min(1248px,calc(100% - 112px));margin-inline:auto}.section{padding:132px 0}.skip-link{position:fixed;z-index:100;top:8px;left:8px;transform:translateY(-150%);background:white;padding:10px 20px;border:2px solid var(--blue)}.skip-link:focus{transform:translateY(0)}
/* Navigation */
.site-header{height:94px;padding:0 4%;display:flex;align-items:center;justify-content:space-between;gap:30px;position:sticky;z-index:30;top:0;background:rgba(244,247,248,.95);border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s}.site-header.is-scrolled{border-color:var(--line);box-shadow:0 5px 30px #10293805}.logo{display:inline-flex;align-items:center;gap:11px;font-size:24px;letter-spacing:-1.2px;font-weight:800;white-space:nowrap;line-height:1.2}#navigation{display:flex;align-items:center;gap:30px}#navigation>a{font-size:13px;font-weight:700;position:relative;white-space:nowrap}#navigation>a:not(.nav-contact):after{content:'';position:absolute;height:1px;background:var(--blue);left:0;right:0;bottom:-5px;transform:scaleX(0);transform-origin:left;transition:transform .25s}#navigation>a:hover:after{transform:scaleX(1)}.nav-contact{border-radius:999px;padding:12px 24px;background:var(--ink);color:white;display:flex;align-items:center;gap:24px;transition:background .25s}.nav-contact:hover{background:var(--blue)}.menu-button{display:none}
/* Hero — three real projects, an open canvas */
.hero{overflow:clip;position:relative}.hero-inner{display:grid;grid-template-columns:.98fr 1fr;column-gap:38px;padding-top:68px;padding-bottom:30px;position:relative}.hero-copy{position:relative;z-index:2;padding-top:10px}.hero-kicker{display:flex;align-items:center;gap:11px;font-size:12px;font-weight:700;letter-spacing:.12em;color:var(--blue);margin-bottom:30px}.hero h1{font-size:clamp(42px,4.8vw,69px);font-weight:800;letter-spacing:-.055em;line-height:1.48;white-space:nowrap}.web-word{letter-spacing:-.045em}.hero-description{margin-top:18px;color:var(--muted);font-size:15px;line-height:2}.hero-actions{display:flex;align-items:center;gap:26px;margin-top:34px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;border-radius:999px;min-height:59px;padding:16px 29px;font-size:14px;font-weight:700;transition:background .25s,transform .25s;line-height:1.4}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--blue);color:white}.button-primary:hover{background:var(--blue-dark)}.button-dark{background:var(--ink);color:white}.button-dark:hover{background:var(--blue)}.text-link{display:inline-flex;align-items:center;gap:20px;font-size:14px;font-weight:700;padding-block:10px;border-bottom:1px solid currentColor}.text-link:hover{color:var(--blue)}.hero-visual{min-width:0;height:570px;position:relative;align-self:center;--parallax:0px;transform:translateY(var(--parallax))}.hero-photo-inner{overflow:hidden;border-radius:9px}.hero-photo-sea{width:84%;top:21px;left:0;transform:rotate(-5deg);z-index:3}.hero-photo-sea .hero-photo-inner{height:274px}.hero-photo-sea img{object-position:42% center}.hero-photo-night{width:65%;right:-3%;bottom:9px;transform:rotate(7deg);z-index:4}.hero-photo-night .hero-photo-inner{height:244px}.hero-photo-night img{object-position:center 54%}.hero-photo-resin{width:39%;left:-8px;bottom:29px;transform:rotate(-9deg);z-index:5}.hero-photo-resin .hero-photo-inner{height:169px;background:white}.hero-photo-resin img{object-fit:cover;scale:1.15}.hero-photo-resin:hover img{scale:1.21}.hero-bottom{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:65px;padding:22px 0;border-top:1px solid var(--line)}.hero-bottom>p{font-size:11px;letter-spacing:.12em;font-weight:700}.hero-bottom>a{display:flex;align-items:baseline;gap:10px;font-size:12px}.hero-bottom strong{font-size:24px;letter-spacing:-.06em;line-height:1.2}.hero-bottom strong small{font-size:14px}
/* Shared section rhythm */
.section-label{display:flex;align-items:center;gap:26px;font-size:12px;font-weight:700;line-height:1.4;letter-spacing:.13em;color:var(--blue);margin-bottom:24px}.section-label>span+span{font-size:11px;font-weight:500;letter-spacing:0;color:var(--muted)}.section-heading{margin-bottom:60px}.section-heading h2,.approach-intro h2,.values-heading h2,.about-layout h2{font-size:clamp(30px,3.15vw,46px);line-height:1.6;letter-spacing:-.025em}.section-intro{font-size:15px;line-height:2;color:var(--muted);margin-top:22px}.heading-row{display:flex;align-items:center;justify-content:space-between;gap:40px}.works-section{padding-top:95px;background:white}.works-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px 40px}.work{min-width:0}.work-image{position:relative;display:block;overflow:hidden;border-radius:16px;background:#f1f5f7;aspect-ratio:1.62}.work-image img{height:100%;object-fit:cover;transition:transform .85s var(--ease)}.work-image:hover img{transform:scale(1.045)}.image-link{position:absolute;right:20px;bottom:20px;border-radius:999px;padding:11px 17px;display:flex;align-items:center;gap:22px;font-size:10px;font-weight:700;letter-spacing:.05em;background:white;transition:background .25s,color .25s}.work-image:hover .image-link{background:var(--blue);color:white}.work-copy{padding:25px 0 0}.work-meta{display:flex;justify-content:space-between;gap:18px;font-size:11px;color:var(--muted);letter-spacing:.025em}.work-meta>span:last-child{font-size:10px;letter-spacing:.08em}.work-copy h3{font-size:25px;letter-spacing:-.03em;margin-top:12px}.work-copy h3 a{display:flex;justify-content:space-between;align-items:center;gap:20px}.work-copy>p:not(.work-meta){font-size:14px;line-height:2;color:var(--muted);margin-top:15px;max-width:45em}.work-features{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px}.work-features li{font-size:11px;padding:4px 11px;border:1px solid var(--line);border-radius:999px;color:#49606d}.work-1{grid-column:1/-1;display:grid;grid-template-columns:1.45fr 1fr;gap:55px;align-items:center}.work-1 .work-image{aspect-ratio:1.52}.work-1 .work-copy{padding:0}.work-1 .work-copy h3{font-size:34px;margin-top:18px}.work-1 .work-copy>p:not(.work-meta){margin-top:25px;font-size:15px}.work-1 .work-features{margin-top:27px}.work-2 .work-image img{object-fit:cover;transform:scale(1.08)}.work-2 .work-image:hover img{transform:scale(1.13)}.work-3 .work-image img{object-position:center 54%}
/* Services */
.services-section{background:var(--navy);color:white;position:relative;overflow:hidden}.services-heading{display:grid;grid-template-columns:1fr 1fr;gap:20px 80px;align-items:end;margin-bottom:75px}.services-heading>.section-label{grid-column:1/-1;color:var(--aqua);margin-bottom:12px}.services-heading .section-label>span+span{color:#90a8b8}.services-heading h2{font-size:clamp(64px,8.7vw,122px);letter-spacing:-.06em;font-weight:500;line-height:1.04}.services-heading h2 span{color:var(--aqua)}.services-heading>div{padding-bottom:6px}.services-heading>div>p:last-child{color:#a9beca;font-size:14px;line-height:2}.service-row{display:grid;grid-template-columns:36px 1.06fr 1fr 52px;gap:30px;align-items:center;padding:37px 0;border-top:1px solid #ffffff28}.service-row:last-child{border-bottom:1px solid #ffffff28}.service-number{font-size:12px;color:#99b3c5;align-self:start;padding-top:8px}.service-title>p{font-size:13px;color:var(--aqua);letter-spacing:.015em;margin-bottom:9px}.service-title h3{font-size:21px;line-height:1.7}.service-body{color:#b4c6d1;font-size:14px;line-height:2}.service-link{width:49px;height:49px;border:1px solid #ffffff40;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .3s,color .3s}.service-link:hover{background:var(--aqua);color:var(--navy)}.services-section :focus-visible{outline-color:var(--aqua)}
/* Conversations and values */
.approach-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:100px}.approach-intro>p:not(.section-label){color:var(--muted);margin-top:25px;font-size:16px}.approach-intro>.text-link{margin-top:30px}.problem-list article{display:grid;grid-template-columns:25px 1fr;gap:22px;padding:0 0 29px;margin-bottom:29px;border-bottom:1px solid var(--line)}.problem-list article:last-child{margin-bottom:0}.problem-list article>span{font-size:11px;color:var(--blue);padding-top:5px}.problem-list h3{font-size:18px}.problem-list p{font-size:14px;color:var(--muted);line-height:2;margin-top:10px}.values-block{margin-top:115px;padding-top:70px;border-top:1px solid var(--line);display:grid;grid-template-columns:.8fr 1.6fr;gap:70px}.values-heading h2{font-size:32px}.values-list{display:grid;grid-template-columns:1fr 1fr;gap:34px 35px}.values-list article{position:relative;padding-top:32px}.value-index{position:absolute;top:0;left:0;font-size:11px;color:var(--blue)}.values-list h3{font-size:16px;margin-bottom:10px}.values-list p{font-size:13px;color:var(--muted);line-height:1.95}
/* Pricing */
.pricing-section{background:white}.base-plan{display:grid;grid-template-columns:1fr 1fr;background:var(--ice);border-radius:22px;overflow:hidden}.base-main{padding:52px 55px 55px}.base-main .section-label{margin-bottom:21px}.base-main h3{font-size:31px;letter-spacing:-.03em}.base-main>p:not(.section-label){color:var(--muted);font-size:14px;line-height:1.9;margin-top:14px}.base-price{margin-top:30px}.base-price>span{font-size:12px;display:block;color:var(--muted);margin-bottom:7px}.base-price>strong{display:block;font-size:clamp(50px,5.9vw,82px);letter-spacing:-.06em;line-height:1.1;font-weight:500}.base-price>strong>small{font-size:.38em;letter-spacing:0;padding-right:5px}.base-monthly{display:flex;align-items:baseline;gap:11px;font-size:12px;margin-top:15px}.base-monthly strong{font-size:24px;letter-spacing:-.04em}.base-monthly>span{color:var(--muted)}.base-main>.button{margin-top:30px;min-width:240px}.base-includes{background:#f1f5fb;padding:60px 50px;display:flex;flex-direction:column;justify-content:center}.base-includes h4{font-size:19px;margin-bottom:23px}.check-list li{position:relative;padding-left:25px;font-size:14px;line-height:1.8;margin-bottom:13px}.check-list li:before{content:none;position:absolute;left:0;color:var(--blue);font-size:14px}.includes-note{font-size:12px;color:var(--muted);margin-top:14px;line-height:1.9}.pricing-build{margin:67px 0}.pricing-build>.section-label{margin-bottom:27px}.price-equation{display:grid;grid-template-columns:1fr 30px 1fr 30px 1fr;align-items:center;gap:20px;border-bottom:1px solid var(--line);padding:0 0 28px}.price-equation>div>span{color:var(--muted);font-size:12px}.price-equation h3{font-size:24px;margin-top:8px}.price-example{margin-top:23px;display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;font-size:12px;color:var(--muted)}.price-example>p:first-child{flex-basis:100%}.price-example>p:first-child>span{display:inline-block;border:1px solid var(--line);padding:1px 11px;border-radius:99px;margin-right:10px;color:var(--ink)}.price-example strong{font-size:21px;letter-spacing:-.03em;color:var(--ink);margin-left:5px}.example-divider{margin:0 14px;color:#a2b2bc}.price-example>small{font-size:11px}.options-accordion{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}summary{list-style:none;cursor:pointer}summary::-webkit-details-marker{display:none}.options-accordion>summary{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:34px 0}.options-accordion>summary>span:first-child{display:flex;align-items:center;gap:40px}.options-accordion .section-label{margin:0}.option-summary-title{font-size:25px;font-weight:700;letter-spacing:-.02em}.plus-icon{display:block;width:17px;height:17px;position:relative;flex-shrink:0}.plus-icon:before,.plus-icon:after{content:'';width:100%;height:1px;background:currentColor;position:absolute;left:0;top:8px;transition:transform .25s}.plus-icon:after{transform:rotate(90deg)}details[open]>summary .plus-icon:after{transform:rotate(0)}.options-note{font-size:12px;color:var(--muted);margin-bottom:15px}.options-table{padding-bottom:20px}.option-row{display:grid;grid-template-columns:1fr 150px 145px;gap:25px;align-items:center;padding:25px 0;border-top:1px solid var(--line)}.option-detail h4{font-size:15px}.option-detail p{font-size:12px;line-height:1.9;color:var(--muted);margin-top:5px;max-width:55em}.option-price{padding-left:12px;text-align:right}.option-price span{display:block;font-size:10px;color:var(--muted);margin-bottom:3px}.option-price strong{font-size:20px;letter-spacing:-.025em;font-weight:500;white-space:nowrap}.monthly-heading{margin-top:95px;margin-bottom:36px}.monthly-heading>.section-label{margin-bottom:18px}.monthly-heading h3{font-size:32px;letter-spacing:-.025em}.monthly-heading>p:last-child{font-size:14px;color:var(--muted);margin-top:17px}.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.monthly-plan{background:var(--paper);border-radius:16px;padding:34px 30px;display:flex;flex-direction:column;min-width:0}.monthly-plan h4{font-size:19px;letter-spacing:-.02em;min-height:29px}.plan-intro{font-size:12px;color:var(--muted);margin-top:12px;min-height:45px}.monthly-price{font-size:39px;line-height:1.4;letter-spacing:-.05em;margin:22px 0 24px;padding-bottom:26px;border-bottom:1px solid var(--line);white-space:nowrap}.monthly-price small{font-size:13px;font-weight:500;letter-spacing:0;margin-left:8px;color:var(--muted)}.monthly-plan .check-list li{font-size:12px;padding-left:19px;margin-bottom:12px}.plan-note{font-size:11px;color:var(--muted);line-height:1.95;margin-top:6px;margin-bottom:30px}.plan-link{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px;font-weight:700;margin-top:auto;padding-top:24px}.plan-link:hover{color:var(--blue)}.featured{background:var(--navy);color:white}.featured .plan-intro,.featured .plan-note,.featured .monthly-price small{color:#afc4d1}.featured .monthly-price{border-color:#ffffff30}.featured .check-list li:before{color:var(--aqua)}.featured .plan-link:hover{color:var(--aqua)}.plans-footnote{text-align:center;font-size:12px;color:var(--muted);margin-top:21px}.custom-plan{display:grid;grid-template-columns:1fr 1.1fr;gap:80px;padding-top:65px;border-top:1px solid var(--line);margin-top:80px}.custom-plan h3{font-size:29px;line-height:1.65}.custom-plan>div>p:not(.section-label){font-size:13px;color:var(--muted);margin-top:20px;line-height:2}.custom-plan .text-link{margin-top:20px}.custom-plan dl{margin:0}.custom-plan dl>div{display:flex;justify-content:space-between;gap:20px;padding:19px 0;border-bottom:1px solid var(--line);font-size:13px}.custom-plan dl>div:first-child{padding-top:0}.custom-plan dd{margin:0;white-space:nowrap;font-weight:700}
/* Process and questions */
.flow-list{display:grid;grid-template-columns:repeat(5,1fr);gap:28px}.flow-list li{position:relative;border-top:1px solid var(--line);padding-top:24px}.flow-list li:before{content:'';position:absolute;top:-4px;left:0;width:7px;height:7px;border-radius:50%;background:var(--blue)}.step{font-size:35px;color:var(--blue);font-weight:500;letter-spacing:-.06em}.flow-list h3{font-size:16px;margin-top:20px;min-height:48px;line-height:1.7}.flow-list p{color:var(--muted);font-size:13px;line-height:2;margin-top:14px}.faq-section{background:white;padding-top:100px;padding-bottom:100px}.faq-layout{display:grid;grid-template-columns:.78fr 1.4fr;gap:70px}.faq-list{border-top:1px solid var(--line)}.faq-list details{border-bottom:1px solid var(--line)}.faq-list summary{display:flex;align-items:center;gap:20px;padding:24px 0}.faq-index{font-size:14px;font-weight:700;color:var(--blue)}.faq-list h3{font-size:14px;flex:1;line-height:1.85}.faq-answer{padding:0 36px 26px 43px}.faq-answer p{font-size:14px;color:var(--muted);line-height:2}.faq-list summary:hover h3{color:var(--blue)}
/* Studio and contact */
.about-layout{display:grid;grid-template-columns:1fr 1fr;gap:85px}.about-layout h2{font-size:35px;line-height:1.85}.about-copy>p{font-size:14px;color:var(--muted);line-height:2.15}.about-copy>p+p{margin-top:21px}.business-info{margin:34px 0 0}.business-info>div{display:grid;grid-template-columns:100px 1fr;gap:15px;border-top:1px solid var(--line);padding:17px 0;font-size:12px}.business-info dt{color:var(--muted)}.business-info dd{margin:0}.contact-section{background:var(--blue);color:white;padding:115px 0}.contact-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px;align-items:start}.contact-copy{position:sticky;top:140px}.contact-copy .section-label{color:#dce7ff;letter-spacing:.12em}.contact-copy h2{font-size:64px;line-height:1.45;letter-spacing:-.035em;margin-top:34px}.contact-copy>p:not(.section-label){font-size:15px;line-height:2;margin-top:32px;color:#e0e9ff}.contact-annotation{position:relative;font-size:11px;color:#dce7ff;padding-left:18px;margin-top:50px;line-height:1.9}.contact-form{background:white;color:var(--ink);padding:38px 38px 36px;border-radius:18px;min-width:0}.form-heading{font-size:19px;font-weight:700;margin-bottom:25px}.form-field{margin-bottom:19px}.form-field label{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:700;margin-bottom:8px}.form-field label>span{font-size:10px;color:var(--blue);font-weight:500}.form-field label>.optional{color:var(--muted)}.form-field input,.form-field textarea{width:100%;border:1px solid var(--line);border-radius:6px;background:#f7f9fa;color:var(--ink);padding:12px 14px;font-size:16px;line-height:1.5;transition:border-color .2s,background .2s}.form-field input::placeholder,.form-field textarea::placeholder{font-size:13px;color:#7c8b94}.form-field input:focus,.form-field textarea:focus{border-color:var(--blue);background:white}.form-field textarea{resize:vertical;min-height:130px}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-pair>.form-field{margin-bottom:8px}.field-help,.form-note{font-size:11px;color:var(--muted);line-height:1.9}.field-help{margin-bottom:19px}.form-note{margin-bottom:17px}.contact-form>.button{width:100%;min-height:56px}.button:disabled{cursor:default;opacity:.5;transform:none}.form-feedback{background:var(--ice);border-radius:8px;margin-top:22px;padding:20px;font-size:12px;line-height:1.9;overflow-wrap:anywhere}.form-feedback strong{font-size:13px}.form-feedback p{margin-top:9px;white-space:pre-wrap}.form-feedback[hidden]{display:none}.site-footer{background:var(--navy);color:white;padding:55px 0 25px}.footer-top{display:flex;align-items:center;gap:40px;padding-bottom:40px;border-bottom:1px solid #ffffff25}.footer-top>.logo{font-size:28px}.footer-top>p{font-size:13px;color:#b2c7d5}.back-top{margin-left:auto;width:44px;height:44px;border-radius:50%;border:1px solid #ffffff40;display:flex;align-items:center;justify-content:center;font-size:24px;transition:background .2s}.back-top:hover{background:var(--blue)}.footer-bottom{display:flex;justify-content:space-between;gap:20px;margin-top:25px;color:#adc1ce;font-size:10px;letter-spacing:.04em}.footer-bottom>span{font-size:9px;letter-spacing:.13em}
/* Progressive enhancement: content never depends on animation to be visible. */
@keyframes riseIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes photoIn{from{opacity:0;translate:0 40px}to{opacity:1;translate:0 0}}@keyframes scrollLine{0%{transform:translateY(-12px)}70%,100%{transform:translateY(35px)}}
@media(prefers-reduced-motion:no-preference){.hero-copy>*,.hero-bottom{animation:riseIn .9s var(--ease) both}.hero-kicker{animation-delay:.04s}.hero h1{animation-delay:.12s}.hero-description{animation-delay:.27s}.hero-actions{animation-delay:.34s}.hero-bottom{animation-delay:.45s}.hero-photo-sea{animation-delay:.16s}.hero-photo-night{animation-delay:.32s}.hero-photo-resin{animation-delay:.48s}[data-reveal].reveal-arrived{animation:riseIn .65s var(--ease) both}}
/* Tablet */
@media(min-width:1600px){.hero-inner{padding-top:88px;padding-bottom:50px}.hero-visual{height:605px}.hero-photo-sea .hero-photo-inner{height:300px}.hero-photo-night .hero-photo-inner{height:265px}}
@media(max-width:1150px){.wrap{width:calc(100% - 72px)}.site-header{padding:0 36px;height:85px}#navigation{gap:20px}.logo{font-size:22px}.nav-contact{padding:11px 20px;gap:18px}.hero-inner{column-gap:20px;padding-top:48px}.hero h1{font-size:4.75vw}.hero-kicker{font-size:10px;letter-spacing:.1em}.hero-description{font-size:14px}.hero-actions{gap:18px}.hero-actions>.button{padding-inline:22px;font-size:13px;gap:18px}.hero-actions>.text-link{font-size:12px;gap:12px}.hero-visual{height:495px}.hero-photo-sea .hero-photo-inner{height:235px}.hero-photo-night .hero-photo-inner{height:215px}.hero-photo-resin .hero-photo-inner{height:145px}.section{padding:100px 0}.hero-bottom{margin-top:48px}.work-1{gap:35px}.service-row{gap:22px;grid-template-columns:26px 1fr 1fr 44px}.service-title h3{font-size:18px}.service-link{width:43px;height:43px}.approach-layout{gap:60px}.values-block{gap:40px}.base-main{padding:42px 38px}.base-includes{padding:42px 35px}.monthly-plan{padding:29px 22px}.monthly-plan h4{font-size:16px}.monthly-price{font-size:32px}.contact-layout{gap:50px}.contact-copy h2{font-size:54px}.contact-form{padding:30px}.flow-list{gap:22px}.flow-list h3{font-size:14px}.about-layout{gap:60px}.about-layout h2{font-size:31px}}
@media(max-width:900px){.site-header{height:auto;min-height:78px;flex-wrap:wrap;padding-block:20px}.site-header .logo{font-size:22px}#navigation{gap:22px;flex-wrap:wrap}.js .menu-button{display:flex;align-items:center;gap:12px;background:transparent;color:var(--ink);padding:10px 0 10px 14px;font-size:11px;letter-spacing:.1em;font-weight:700;min-height:44px}.menu-lines{position:relative;display:block;width:23px;height:14px}.menu-lines:before,.menu-lines:after{position:absolute;content:'';height:1px;width:100%;left:0;background:var(--ink);transition:transform .25s,top .25s}.menu-lines:before{top:3px}.menu-lines:after{top:11px}.menu-button[aria-expanded=true] .menu-lines:before{top:7px;transform:rotate(45deg)}.menu-button[aria-expanded=true] .menu-lines:after{top:7px;transform:rotate(-45deg)}.js #navigation{position:fixed;left:0;right:0;top:84px;bottom:0;overflow-y:auto;background:var(--paper);padding:35px 36px 60px;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;visibility:hidden;opacity:0;transform:translateY(-8px);transition:opacity .25s,transform .25s,visibility .25s;pointer-events:none}.js #navigation.open{visibility:visible;opacity:1;transform:translateY(0);pointer-events:auto}.js #navigation>a{font-size:22px;padding:22px 0;border-bottom:1px solid var(--line);white-space:normal}.js #navigation>.nav-contact{justify-content:space-between;font-size:18px;border-radius:0;background:none;color:var(--blue);margin-top:10px}.js #navigation>a:after{display:none}.hero-inner{grid-template-columns:1fr 1fr;gap:20px;padding-top:40px}.hero h1{font-size:4.7vw}.hero-kicker{font-size:9px;letter-spacing:.035em;gap:6px}.hero-description{font-size:13px}.hero-actions{align-items:flex-start;flex-direction:column;gap:12px;margin-top:27px}.hero-actions>.button{min-height:53px}.hero-visual{height:470px}.hero-photo-sea{top:40px;width:92%;left:0}.hero-photo-sea .hero-photo-inner{height:208px}.hero-photo-night{width:75%;right:-4%;bottom:22px}.hero-photo-night .hero-photo-inner{height:190px}.hero-photo-resin{width:43%;left:-5%;bottom:50px}.hero-photo-resin .hero-photo-inner{height:122px}.hero-bottom{gap:15px;margin-top:35px}.hero-bottom>p{font-size:9px}.hero-bottom>a{font-size:11px}.section{padding:85px 0}.section-heading{margin-bottom:45px}.works-grid{gap:50px 25px}.work-1{gap:28px;grid-template-columns:1.15fr 1fr}.work-1 .work-copy h3{font-size:26px}.work-1 .work-copy>p:not(.work-meta){font-size:13px;margin-top:15px}.work-meta{font-size:10px}.work-meta>span:last-child{display:none}.work-features li{font-size:10px}.work-copy h3{font-size:21px}.work-copy>p:not(.work-meta){font-size:13px}.image-link{bottom:14px;right:14px;padding:9px 13px;font-size:9px;gap:15px}.services-heading{gap:30px 45px;margin-bottom:50px}.services-heading>div>p:last-child{font-size:12px}.service-row{grid-template-columns:25px 1fr 44px;gap:16px 22px}.service-title{grid-column:2}.service-body{grid-column:2;font-size:13px;max-width:50em}.service-link{grid-column:3;grid-row:1/3}.service-number{grid-row:1/3}.service-title h3{font-size:21px}.approach-layout{grid-template-columns:1fr;gap:43px}.approach-intro h2{font-size:32px}.approach-intro>p:not(.section-label){font-size:14px}.problem-list{display:grid;grid-template-columns:1fr 1fr;gap:28px}.problem-list article{gap:13px;margin:0;padding-bottom:25px}.problem-list h3{font-size:16px}.problem-list p{font-size:13px}.values-block{grid-template-columns:1fr;margin-top:75px;padding-top:50px;gap:35px}.values-heading h2 br{display:none}.values-list{grid-template-columns:repeat(3,1fr);gap:30px}.values-list h3{font-size:15px}.base-main{padding:38px 30px}.base-main h3{font-size:25px}.base-includes{padding:38px 28px}.base-includes h4{font-size:16px}.base-includes .check-list li{font-size:12px}.base-price>strong{font-size:57px}.base-main>.button{min-width:0;width:100%;font-size:12px;padding-inline:20px;gap:18px}.option-row{grid-template-columns:1fr 120px 110px;gap:18px}.option-price strong{font-size:17px}.options-accordion>summary>span:first-child{gap:26px}.option-summary-title{font-size:23px}.monthly-plan{padding:26px 18px}.monthly-plan h4{font-size:15px;min-height:46px}.monthly-price{font-size:29px}.monthly-price small{font-size:11px;margin-left:5px}.plan-grid{gap:13px}.plan-intro{font-size:11px;min-height:42px}.monthly-plan .check-list li{font-size:11px}.plan-note{font-size:10px}.custom-plan{gap:42px}.custom-plan dl>div{font-size:12px}.flow-list{grid-template-columns:repeat(3,1fr);gap:40px 30px}.flow-list h3{min-height:0;font-size:15px}.flow-list p{margin-top:12px}.faq-layout{grid-template-columns:1fr;gap:0}.faq-layout .section-intro br{display:none}.about-layout{gap:45px}.about-layout h2{font-size:27px}.about-copy>p{font-size:13px}.contact-layout{grid-template-columns:.75fr 1fr;gap:35px}.contact-copy h2{font-size:42px}.contact-copy>p:not(.section-label){font-size:13px}.contact-copy .section-label{font-size:10px}.contact-form{padding:25px}.form-pair{grid-template-columns:1fr;gap:8px}.footer-top{gap:25px}.footer-top>.logo{font-size:24px}}
/* Phone */
@media(max-width:640px){html{scroll-padding-top:90px}.wrap{width:calc(100% - 44px)}.site-header{min-height:73px;padding:14px 22px;gap:16px}.site-header .logo{font-size:21px;gap:9px}.js #navigation{top:73px;padding:25px 26px 50px}.js #navigation>a{font-size:21px}.hero-inner{display:flex;flex-direction:column;gap:0;padding-top:30px;padding-bottom:0}.hero-copy{padding-top:0}.hero-kicker{font-size:9px;letter-spacing:.11em;gap:9px;margin-bottom:21px}.hero h1{font-size:clamp(32px,9.4vw,55px);line-height:1.52;letter-spacing:-.045em}.hero-description{font-size:13px;line-height:1.95;margin-top:15px}.hero-actions{flex-direction:row;align-items:center;gap:20px;margin-top:25px}.hero-actions>.button{font-size:12px;padding:15px 20px;min-height:51px;gap:23px}.hero-actions>.text-link{font-size:11px;gap:12px;white-space:nowrap}.hero-visual{width:100%;height:405px;margin-top:40px;align-self:auto;max-width:460px;margin-inline:auto;transform:none}.hero-photo-sea{width:82%;left:2%;top:0}.hero-photo-sea .hero-photo-inner{height:190px}.hero-photo-night{width:62%;right:0;bottom:5px}.hero-photo-night .hero-photo-inner{height:175px}.hero-photo-resin{width:39%;left:0;bottom:18px}.hero-photo-resin .hero-photo-inner{height:124px}.hero-photo-inner{border-radius:7px}.hero-bottom{margin-top:30px;display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:21px 0 27px}.hero-bottom>p{font-size:9px;letter-spacing:.13em}.hero-bottom>a{width:100%;font-size:11px;gap:8px}.hero-bottom strong{font-size:26px}.section{padding:73px 0}.section-label{font-size:10px;letter-spacing:.12em;gap:20px;margin-bottom:20px}.section-label>span+span{font-size:10px}.section-heading{margin-bottom:34px}.section-heading h2,.approach-intro h2,.values-heading h2{font-size:28px;line-height:1.65;letter-spacing:-.035em}.section-intro{font-size:13px;line-height:2;margin-top:18px}.works-grid{display:block}.work{margin-bottom:42px}.work:last-child{margin-bottom:0}.work-1{display:block}.work-image,.work-1 .work-image{aspect-ratio:1.45;border-radius:12px}.work-1 .work-copy,.work-copy{padding-top:18px}.work-copy h3,.work-1 .work-copy h3{font-size:24px;margin-top:9px}.work-copy>p:not(.work-meta),.work-1 .work-copy>p:not(.work-meta){font-size:13px;margin-top:12px}.work-features,.work-1 .work-features{margin-top:15px;gap:6px}.work-features li{font-size:10px;padding:3px 10px}.work-meta{font-size:10px}.image-link{font-size:8px;padding:9px 12px;bottom:12px;right:12px}.services-heading{display:block;margin-bottom:38px}.services-heading>.section-label{margin-bottom:27px}.services-heading h2{font-size:77px;line-height:1.03}.services-heading>div{margin-top:32px}.services-heading>div>p:last-child{font-size:12px}.service-row{grid-template-columns:20px 1fr 38px;gap:13px;padding:27px 0}.service-number{font-size:10px;padding-top:3px}.service-title>p{font-size:11px;margin-bottom:7px}.service-title h3{font-size:17px}.service-body{font-size:12px;line-height:1.95}.service-link{width:37px;height:37px;align-self:start;margin-top:22px}.approach-layout{gap:37px}.approach-intro>p:not(.section-label){font-size:13px;margin-top:20px}.approach-intro>.text-link{margin-top:18px;font-size:12px}.problem-list{display:block}.problem-list article{padding-bottom:22px;margin-bottom:22px;grid-template-columns:22px 1fr;gap:12px}.problem-list article:last-child{margin-bottom:0}.problem-list h3{font-size:16px}.problem-list p{font-size:12px;line-height:2;margin-top:8px}.values-block{margin-top:54px;padding-top:44px;gap:27px}.values-heading h2{font-size:26px}.values-heading h2 br{display:block}.values-list{grid-template-columns:1fr;gap:0}.values-list article{display:grid;grid-template-columns:28px 1fr;gap:7px 8px;padding:18px 0;border-top:1px solid var(--line)}.value-index{position:static;font-size:10px;padding-top:3px}.values-list h3{font-size:15px;margin:0}.values-list p{grid-column:2;font-size:12px}.base-plan{grid-template-columns:1fr;border-radius:15px}.base-main{padding:29px 27px 34px}.base-main .section-label{margin-bottom:18px}.base-main h3{font-size:28px}.base-main>p:not(.section-label){font-size:13px}.base-price{margin-top:25px}.base-price>strong{font-size:65px}.base-monthly{gap:8px;font-size:11px}.base-monthly strong{font-size:23px}.base-main>.button{width:auto;min-width:230px;margin-top:24px;font-size:12px}.base-includes{padding:28px 27px}.base-includes h4{font-size:16px}.base-includes .check-list li{font-size:12px;margin-bottom:12px;padding-left:23px}.includes-note{font-size:11px}.pricing-build{margin:42px 0}.price-equation{gap:6px;grid-template-columns:1fr 15px 1fr 15px 1fr;padding-bottom:22px}.price-equation>div>span{font-size:9px}.price-equation h3{font-size:16px;letter-spacing:-.04em;margin-top:7px;white-space:nowrap}.price-example{font-size:11px;gap:8px;margin-top:18px}.price-example>p:first-child{line-height:2.1}.price-example>p:first-child>span{margin-right:6px;padding:0 8px}.price-example strong{font-size:21px;margin-left:3px}.example-divider{margin:0 8px}.price-example>small{flex-basis:100%;font-size:10px}.options-accordion>summary{padding:26px 0;gap:20px}.options-accordion>summary>span:first-child{display:block}.options-accordion .section-label{font-size:9px;margin-bottom:12px}.option-summary-title{font-size:23px}.options-note{font-size:11px;margin-bottom:14px}.option-row{grid-template-columns:1fr 1fr;gap:14px 20px;padding:23px 0}.option-detail{grid-column:1/-1}.option-detail h4{font-size:14px}.option-detail p{font-size:11px;margin-top:8px}.option-price{padding-left:0;text-align:left;display:flex;align-items:baseline;gap:9px}.option-price span{font-size:9px;margin:0;white-space:nowrap}.option-price strong{font-size:18px}.monthly-heading{margin-top:55px;margin-bottom:28px}.monthly-heading>.section-label{margin-bottom:17px}.monthly-heading h3{font-size:26px;letter-spacing:-.045em}.monthly-heading>p:last-child{font-size:12px;line-height:2;margin-top:15px}.plan-grid{grid-template-columns:1fr;gap:18px}.monthly-plan{padding:29px 27px;border-radius:13px}.monthly-plan h4{font-size:21px;min-height:0}.plan-intro{font-size:12px;min-height:0;margin-top:9px}.monthly-price{font-size:43px;margin-top:19px;margin-bottom:23px;padding-bottom:20px}.monthly-price small{font-size:12px;margin-left:9px}.monthly-plan .check-list li{font-size:12px;margin-bottom:12px;padding-left:23px}.plan-note{font-size:11px;margin-bottom:9px}.plan-link{font-size:12px;padding-top:21px}.plans-footnote{font-size:11px;line-height:1.9;margin-top:18px}.custom-plan{grid-template-columns:1fr;gap:35px;padding-top:40px;margin-top:44px}.custom-plan h3{font-size:27px}.custom-plan>div>p:not(.section-label){font-size:12px}.custom-plan .text-link{font-size:12px;margin-top:15px}.custom-plan dl>div{font-size:12px;padding:16px 0;gap:12px}.custom-plan dl>div:first-child{padding-top:16px;border-top:1px solid var(--line)}.flow-list{grid-template-columns:1fr;gap:0}.flow-list li{display:grid;grid-template-columns:42px 1fr;gap:7px 17px;padding:24px 0}.flow-list li:before{display:none}.flow-list li:last-child{border-bottom:1px solid var(--line)}.step{grid-row:1/3;font-size:31px;line-height:1.3}.flow-list h3{font-size:16px;margin:0}.flow-list p{font-size:12px;margin:0}.faq-list summary{padding:21px 0;gap:13px}.faq-list h3{font-size:13px}.faq-index{font-size:12px;flex-shrink:0}.faq-list .plus-icon{width:13px;height:13px}.faq-list .plus-icon:before,.faq-list .plus-icon:after{top:6px}.faq-answer{padding:0 22px 23px 33px}.faq-answer p{font-size:12px}.about-layout{grid-template-columns:1fr;gap:30px}.about-layout h2{font-size:28px;line-height:1.85}.about-copy>p{font-size:13px}.business-info{margin-top:27px}.business-info>div{font-size:11px;grid-template-columns:80px 1fr;gap:12px;padding:15px 0}.contact-section{padding:65px 0}.contact-layout{grid-template-columns:1fr;gap:34px}.contact-copy{position:static}.contact-copy .section-label{font-size:10px}.contact-copy h2{font-size:45px;margin-top:23px}.contact-copy>p:not(.section-label){font-size:13px;margin-top:21px}.contact-annotation{font-size:10px;margin-top:23px}.contact-form{padding:26px 22px;border-radius:13px}.form-heading{font-size:18px;margin-bottom:23px}.form-field{margin-bottom:17px}.form-field label{font-size:12px}.form-field input,.form-field textarea{padding:12px;font-size:16px}.form-field input::placeholder,.form-field textarea::placeholder{font-size:12px}.form-pair{gap:8px}.field-help,.form-note{font-size:10px}.contact-form>.button{font-size:12px;min-height:53px}.site-footer{padding:37px 0 23px}.footer-top{gap:20px;flex-wrap:wrap;padding-bottom:28px;position:relative}.footer-top>.logo{font-size:25px}.footer-top>p{font-size:11px;flex-basis:100%;order:2}.back-top{position:absolute;top:0;right:0;width:37px;height:37px;font-size:21px}.footer-bottom{flex-wrap:wrap;font-size:9px;gap:7px 16px;margin-top:20px}.footer-bottom>span{flex-basis:100%;font-size:8px;margin-top:3px}}
@media(max-width:360px){.wrap{width:calc(100% - 36px)}.site-header{padding-inline:18px}.hero-actions{gap:13px}.hero-actions>.button{font-size:11px;padding-inline:17px;gap:17px}.hero-actions>.text-link{font-size:10px;gap:8px}.hero-visual{height:355px}.hero-photo-sea .hero-photo-inner{height:164px}.hero-photo-night .hero-photo-inner{height:153px}.hero-photo-resin .hero-photo-inner{height:103px}.section-heading h2,.approach-intro h2{font-size:25px}.price-equation h3{font-size:14px}.price-equation>div>span{font-size:8px}.base-main,.base-includes{padding-inline:23px}.base-price>strong{font-size:58px}.option-price{gap:6px}.option-price strong{font-size:16px}.monthly-heading h3{font-size:23px}.contact-form{padding-inline:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.hero-visual{transform:none!important}}
/* Keep meaningful copy comfortably readable on smaller screens. */
@media(max-width:640px){.hero-description,.section-intro,.work-copy>p:not(.work-meta),.work-1 .work-copy>p:not(.work-meta),.approach-intro>p:not(.section-label),.problem-list p,.values-list p,.flow-list p,.faq-answer p,.about-copy>p,.service-body{font-size:14px}.services-heading>div>p:last-child{font-size:13px}.option-detail p,.plan-note,.custom-plan>div>p:not(.section-label){font-size:12px}.contact-annotation,.field-help,.form-note{font-size:11px}.footer-bottom,.footer-bottom>span{font-size:10px}}

/* Editorial refinement: typography, photographs, and useful controls. */
.logo { gap:0; letter-spacing:-.06em; }
.nav-contact, .button { border-radius:3px; justify-content:center; }
.button { padding-inline:30px; font-size:14px; }
.button:hover { transform:none; }
#navigation>a { font-size:14px; }
.hero-inner { column-gap:65px; padding-top:54px; align-items:center; }
.hero-copy { padding:0; }
.hero-kicker { font-size:14px; letter-spacing:.025em; font-weight:500; color:var(--muted); margin-bottom:29px; }
.hero h1 { font-size:clamp(38px,4.3vw,62px); line-height:1.58; letter-spacing:-.05em; }
.hero-description { margin-top:30px; max-width:30em; font-size:16px; line-height:2; }
.hero-actions { gap:26px; margin-top:34px; }
.hero-actions>.text-link { font-size:14px; }
.hero-visual { margin:0; height:auto; min-width:0; transform:none; align-self:auto; }
.hero-feature { display:block; height:clamp(400px,39vw,565px); overflow:hidden; background:var(--navy); }
.hero-feature img { width:100%; height:100%; object-fit:cover; object-position:center 63%; transition:transform .8s var(--ease); }
.hero-feature:hover img { transform:scale(1.02); }
.hero-visual figcaption { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:8px 16px; padding-top:15px; font-size:12px; color:var(--muted); }
.hero-visual figcaption a { display:inline-flex; align-items:center; gap:8px; color:var(--ink); padding:5px 0; }
.hero-bottom { width:100%; margin-top:42px; }
.hero-bottom>p { font-size:12px; letter-spacing:0; font-weight:500; }
.hero-bottom>a { font-size:14px; }
.hero-bottom>a>span { font-size:12px; }
.external-icon { position:relative; display:inline-block; width:11px; height:11px; color:currentColor; flex-shrink:0; }
.external-icon:before { content:''; position:absolute; left:1px; top:5px; width:12px; height:1px; background:currentColor; transform:rotate(-45deg); }
.external-icon:after { content:''; position:absolute; top:0; right:0; width:6px; height:6px; border-top:1px solid; border-right:1px solid; }
.section-label { font-size:12px; letter-spacing:.08em; color:var(--muted); font-weight:500; }
.section-intro { font-size:16px; }
.work-image { border-radius:2px; }
.image-link { border-radius:2px; font-size:12px; gap:13px; letter-spacing:0; font-weight:500; }
.work-meta { font-size:12px; }
.work-copy>p:not(.work-meta), .work-1 .work-copy>p:not(.work-meta) { font-size:16px; }
.work-features { gap:8px 0; }
.work-features li { border:0; padding:0 12px; border-radius:0; font-size:12px; line-height:1.3; }
.work-features li:first-child { padding-left:0; }
.work-features li+li { border-left:1px solid var(--line); }
.services-heading { grid-template-columns:1fr 1fr; gap:20px 40px; align-items:start; margin-bottom:54px; }
.services-heading h2 { font-size:clamp(30px,3.15vw,46px); font-weight:700; line-height:1.6; letter-spacing:-.025em; }
.services-heading>div { padding:0; }
.services-heading>div>p:last-child, .service-body { font-size:16px; }
.service-row { grid-template-columns:30px 1.05fr 1.15fr 74px; gap:24px; }
.service-number { font-size:12px; }
.service-title h3 { font-size:20px; }
.service-link { width:auto; height:44px; border:0; border-bottom:1px solid #ffffff60; border-radius:0; font-size:14px; white-space:nowrap; }
.service-link:hover { background:none; color:var(--aqua); border-color:var(--aqua); }
.problem-list p, .values-list p, .flow-list p, .faq-answer p, .about-copy>p { font-size:16px; }
.problem-list article>span, .value-index { font-size:12px; }
.approach-intro>.text-link, .custom-plan .text-link { font-size:14px; }
.values-list h3 { font-size:17px; }
.base-plan, .monthly-plan, .contact-form, .form-feedback { border-radius:4px; }
.base-main>p:not(.section-label) { font-size:16px; }
.base-includes h4 { margin-bottom:15px; }
.check-list li, .base-includes .check-list li, .monthly-plan .check-list li { padding:12px 0; margin:0; border-top:1px solid var(--line); font-size:14px; }
.check-list li:before { content:none; }
.featured .check-list li { border-color:#ffffff25; }
.includes-note { font-size:12px; }
.pricing-build-title { font-size:18px; margin-bottom:25px; }
.price-equation { grid-template-columns:repeat(3,1fr); gap:25px; }
.price-equation h3 { font-size:21px; margin:0; }
.price-equation>div+div { border-left:1px solid var(--line); padding-left:25px; }
.price-example { font-size:14px; }
.price-example>small { font-size:12px; }
.price-example>p:first-child>span { border:0; border-radius:0; padding:0; }
.option-detail h4 { font-size:16px; }
.option-detail p, .options-note, .option-price span { font-size:12px; }
.monthly-plan h4 { min-height:0; }
.plan-intro { font-size:14px; min-height:52px; }
.monthly-price { margin-bottom:0; border:0; }
.plan-note { font-size:12px; }
.plan-link, .plans-footnote { font-size:14px; }
.monthly-heading>p:last-child, .custom-plan>div>p:not(.section-label) { font-size:16px; }
.custom-plan dl>div { font-size:14px; }
.flow-list h3 { min-height:0; font-size:17px; }
.flow-list li:before { display:none; }
.faq-list h3, .form-field label { font-size:14px; }
.about-layout h2 { font-size:clamp(28px,3vw,42px); }
.business-info>div { font-size:14px; }
.contact-copy h2 { font-size:clamp(32px,4vw,54px); }
.contact-copy .section-label { font-size:12px; }
.contact-copy>p:not(.section-label) { font-size:16px; }
.contact-annotation { padding:0; font-size:12px; }
.form-field label>span, .field-help, .form-note { font-size:12px; }
.back-top { width:auto; height:auto; min-height:44px; border:0; border-bottom:1px solid #ffffff40; border-radius:0; font-size:12px; }
.back-top:hover { background:none; color:var(--aqua); }
.footer-top>p { font-size:12px; }
.footer-bottom, .footer-bottom>span { font-size:12px; letter-spacing:0; }
@media(prefers-reduced-motion:no-preference) { .hero-visual { animation:riseIn .8s var(--ease) both; animation-delay:.15s; } }
@media(max-width:1150px) {
  .hero-inner { column-gap:35px; }
  .hero-actions { gap:20px; }
  .hero-actions>.button { font-size:14px; padding-inline:23px; }
  .hero h1 { font-size:4.5vw; }
  .service-row { grid-template-columns:25px 1fr 1fr 70px; gap:20px; }
  .service-title h3 { font-size:18px; }
  .services-heading>div>p:last-child, .service-body { font-size:14px; }
}
@media(max-width:900px) {
  .hero-inner { column-gap:28px; }
  .hero-kicker { font-size:12px; }
  .hero h1 { font-size:4.7vw; }
  .hero-feature { height:450px; }
  .hero-actions { flex-direction:column; align-items:flex-start; }
  .services-heading { gap:20px 25px; }
  .service-row { grid-template-columns:25px 1fr 70px; }
  .service-link { margin:0; align-self:center; }
  .values-list { grid-template-columns:1fr 1fr; }
  .monthly-plan h4 { min-height:48px; }
  .plan-intro { min-height:78px; }
  .custom-plan { grid-template-columns:1fr; gap:35px; }
  .contact-layout { grid-template-columns:1fr 1.2fr; }
  .contact-copy>p:not(.section-label) br { display:none; }
}
@media(max-width:640px) {
  .hero-inner { padding-top:34px; }
  .hero-kicker { font-size:12px; margin-bottom:24px; }
  .hero h1 { font-size:clamp(32px,9vw,50px); line-height:1.58; }
  .hero-description { font-size:16px; margin-top:24px; }
  .hero-actions { flex-direction:row; align-items:center; gap:22px; margin-top:28px; flex-wrap:wrap; }
  .hero-actions>.button { font-size:14px; padding:17px 22px; }
  .hero-actions>.text-link { font-size:14px; }
  .hero-visual { margin-top:36px; max-width:none; width:100%; }
  .hero-feature { height:auto; aspect-ratio:4/3; }
  .hero-visual figcaption { font-size:12px; line-height:1.7; padding-top:11px; }
  .hero-visual figcaption a { min-height:32px; }
  .hero-bottom { margin-top:28px; gap:12px; align-items:flex-start; }
  .hero-bottom>p { font-size:12px; }
  .hero-bottom>a { font-size:14px; flex-wrap:wrap; gap:8px; }
  .hero-bottom>a>span { font-size:12px; }
  .section-label { font-size:12px; }
  .section-intro { font-size:16px; }
  .work-image,.work-1 .work-image { border-radius:2px; }
  .work-meta { font-size:12px; }
  .work-copy>p:not(.work-meta), .work-1 .work-copy>p:not(.work-meta) { font-size:16px; }
  .work-features li { font-size:12px; }
  .image-link { font-size:12px; padding:11px 14px; }
  .services-heading { display:block; }
  .services-heading h2 { font-size:28px; }
  .services-heading>div { margin-top:20px; }
  .services-heading>div>p:last-child, .service-body { font-size:16px; }
  .services-heading>div>p:last-child br { display:none; }
  .service-row { grid-template-columns:20px 1fr; gap:14px; padding:28px 0; }
  .service-number { grid-row:1; padding-top:5px; font-size:12px; }
  .service-title h3 { font-size:18px; }
  .service-body { grid-column:2; }
  .service-link { grid-column:2; grid-row:auto; justify-self:start; padding-inline:0; height:38px; font-size:14px; }
  .approach-intro>p:not(.section-label), .problem-list p, .values-list p, .flow-list p, .faq-answer p, .about-copy>p { font-size:16px; }
  .problem-list h3 { font-size:17px; }
  .values-list { grid-template-columns:1fr; }
  .value-index, .problem-list article>span { font-size:12px; }
  .values-list h3 { font-size:17px; }
  .base-main>.button { min-width:0; width:100%; font-size:14px; }
  .base-main>p:not(.section-label) { font-size:16px; }
  .base-monthly { font-size:14px; flex-wrap:wrap; }
  .check-list li, .base-includes .check-list li, .monthly-plan .check-list li { font-size:14px; padding:12px 0; margin:0; }
  .includes-note { font-size:12px; }
  .price-equation { grid-template-columns:repeat(3,1fr); gap:10px; }
  .price-equation h3 { font-size:14px; white-space:normal; }
  .price-equation>div+div { padding-left:10px; }
  .price-example { font-size:14px; }
  .price-example>small { font-size:12px; }
  .option-detail h4 { font-size:16px; }
  .option-detail p, .option-price span, .options-note { font-size:12px; }
  .option-price { flex-wrap:wrap; gap:3px 8px; }
  .monthly-heading>p:last-child { font-size:16px; }
  .monthly-plan h4, .plan-intro { min-height:0; }
  .plan-intro, .plan-link, .plans-footnote { font-size:14px; }
  .plan-note { font-size:12px; }
  .custom-plan>div>p:not(.section-label) { font-size:16px; }
  .custom-plan dl>div { font-size:14px; flex-wrap:wrap; }
  .faq-list h3 { font-size:14px; }
  .business-info>div { font-size:14px; }
  .contact-layout { grid-template-columns:1fr; }
  .contact-copy h2 { font-size:35px; }
  .contact-copy>p:not(.section-label) { font-size:16px; }
  .contact-copy .section-label, .contact-annotation, .field-help, .form-note { font-size:12px; }
  .form-field label, .contact-form>.button { font-size:14px; }
  .footer-top { padding-right:0; }
  .footer-top>.logo { font-size:24px; }
  .footer-top>p { font-size:12px; padding-right:0; }
  .back-top { position:static; font-size:12px; width:auto; height:auto; margin-left:auto; }
  .footer-bottom, .footer-bottom>span { font-size:12px; }
}
.js .menu-button { font-size:14px; letter-spacing:0; }

/* Portfolio: the actual interfaces, presented within the page. */
.hero-ui .hero-feature { height:auto; aspect-ratio:16/9; background:#e4e9ec; border:1px solid var(--line); }
.hero-ui .hero-feature img { object-fit:contain; object-position:center; }
.hero-ui .hero-feature:hover img { transform:none; }
.hero-ui figcaption { margin-top:4px; }
.case-navigation { display:flex; flex-wrap:wrap; gap:12px 32px; border-block:1px solid var(--line); padding:17px 0; margin-bottom:65px; }
.case-navigation a { padding:8px 0; font-size:14px; border-bottom:1px solid transparent; }
.case-navigation a:hover { color:var(--blue); border-color:var(--blue); }
.case-study { margin-top:82px; padding-top:70px; border-top:1px solid var(--line); scroll-margin-top:110px; }
.case-study:first-child { margin-top:0; padding-top:0; border-top:0; }
.case-header { display:grid; grid-template-columns:1fr 1fr; align-items:end; gap:48px; margin-bottom:32px; }
.case-category { font-size:12px; color:var(--muted); margin-bottom:11px; }
.case-name h3 { font-size:32px; letter-spacing:-.035em; }
.case-header>p { font-size:16px; color:var(--muted); line-height:1.95; }
.case-presentation { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(230px,.8fr); gap:40px; align-items:start; }
.case-gallery { min-width:0; }
.screen-frame { border:1px solid var(--line); background:#fff; }
.screen-frame-bar { display:flex; justify-content:space-between; gap:20px; align-items:center; padding:11px 16px; background:#f0f3f5; border-bottom:1px solid var(--line); font-size:12px; color:var(--muted); }
.screen-strip { position:relative; display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:#acbcc8 #f4f7f8; overscroll-behavior-x:contain; }
.screen-slide { position:relative; flex:0 0 100%; width:100%; min-width:0; margin:0; scroll-snap-align:start; scroll-snap-stop:always; }
.screen-open { position:relative; width:100%; padding:0; margin:0; display:block; background:#edf1f3; color:var(--ink); cursor:zoom-in; }
.screen-open:disabled { cursor:default; opacity:1; }
.screen-open img { width:100%; height:auto; aspect-ratio:16/9; object-fit:contain; }
.screen-zoom-label { position:absolute; right:12px; bottom:12px; padding:7px 11px; border:1px solid var(--line); background:white; font-size:12px; line-height:1.5; pointer-events:none; }
.screen-open:disabled .screen-zoom-label { display:none; }
.screen-open:hover .screen-zoom-label { background:var(--ink); color:white; border-color:var(--ink); }
.screen-slide figcaption { display:flex; align-items:baseline; gap:22px; padding:22px; border-top:1px solid var(--line); }
.screen-number { white-space:nowrap; font-size:12px; color:var(--muted); }
.screen-slide figcaption h4 { font-size:17px; line-height:1.7; margin-bottom:8px; }
.screen-slide figcaption p { font-size:14px; line-height:1.9; color:var(--muted); }
.gallery-controls, .gallery-index, .gallery-help { display:none; }
.gallery-ready .gallery-controls { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:14px; }
.gallery-controls button { background:none; color:var(--ink); padding:10px 0; min-height:44px; font-size:14px; border-bottom:1px solid var(--line); }
.gallery-controls button:hover:not(:disabled) { color:var(--blue); border-color:var(--blue); }
.gallery-controls button:disabled { opacity:.35; cursor:default; }
.gallery-controls p { font-size:12px; color:var(--muted); }
.gallery-ready .gallery-index { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
.gallery-index button { background:none; color:var(--muted); border:1px solid var(--line); padding:9px 11px; min-height:42px; font-size:12px; display:flex; align-items:center; gap:8px; text-align:left; }
.gallery-index button[aria-pressed=true] { border-color:var(--ink); color:var(--ink); background:#f2f5f7; }
.gallery-index button:hover { color:var(--ink); border-color:#8b9fab; }
.gallery-index button>span { font-size:12px; font-weight:700; }
.gallery-ready .gallery-help { display:block; margin-top:15px; font-size:12px; color:var(--muted); line-height:1.8; }
.case-design { padding-top:4px; }
.case-design>h4 { font-size:17px; margin-bottom:16px; }
.case-design>p { font-size:16px; color:var(--muted); line-height:2; }
.case-design dl { margin:26px 0 0; }
.case-design dl>div { padding:15px 0; border-top:1px solid var(--line); }
.case-design dt { font-size:12px; color:var(--muted); margin-bottom:5px; }
.case-design dd { font-size:14px; margin:0; }
.case-functions { margin-top:40px; }
.case-functions>h4 { font-size:20px; margin-bottom:22px; }
.case-functions dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px 32px; margin:0; }
.case-functions dl>div { border-top:1px solid var(--line); padding-top:19px; }
.case-functions dt { font-size:16px; font-weight:700; line-height:1.7; }
.case-functions dd { font-size:14px; color:var(--muted); line-height:2; margin:11px 0 0; }
.portfolio-note { font-size:12px; color:var(--muted); border-top:1px solid var(--line); margin-top:65px; padding-top:25px; }
/* One reusable viewer. All navigation stays on the portfolio page. */
body.screen-view-open { overflow:hidden; }
.screen-dialog { width:min(1440px,calc(100% - 36px)); max-width:none; max-height:94vh; max-height:94dvh; padding:22px; border:0; border-radius:3px; color:var(--ink); background:var(--paper); }
.screen-dialog[open] { display:flex; flex-direction:column; }
.screen-dialog::backdrop { background:#071824cf; }
.screen-dialog>header { display:flex; justify-content:space-between; align-items:center; gap:24px; flex-shrink:0; margin-bottom:17px; }
#screen-dialog-project { font-size:12px; color:var(--muted); margin-bottom:4px; }
#screen-dialog-title { font-size:21px; line-height:1.6; }
.screen-dialog button { padding:10px 16px; background:white; color:var(--ink); border:1px solid var(--line); border-radius:2px; font-size:14px; min-height:44px; }
.screen-dialog button:hover:not(:disabled) { border-color:var(--ink); }
.screen-dialog button:disabled { cursor:default; opacity:.35; }
.screen-dialog-stage { min-height:0; overflow:auto; overscroll-behavior:contain; background:#e2e8ec; flex:1 1 auto; border:1px solid var(--line); }
.screen-dialog-stage img { width:100%; max-width:1280px; height:auto; margin-inline:auto; }
.screen-dialog-stage.is-zoomed img { width:1280px; max-width:none; margin:0; }
.screen-dialog-controls { display:flex; align-items:center; gap:14px; margin-top:15px; flex-shrink:0; }
#screen-dialog-count { min-width:45px; text-align:center; font-size:12px; }
#screen-dialog-zoom { margin-left:auto; }
#screen-dialog-zoom[aria-pressed=true] { background:var(--ink); color:white; border-color:var(--ink); }
#screen-dialog-caption { font-size:14px; line-height:1.8; color:var(--muted); padding-top:12px; flex-shrink:0; }
@media(max-width:1000px) {
  .case-presentation { grid-template-columns:minmax(0,1fr); gap:30px; }
  .case-design { display:grid; grid-template-columns:1fr 1fr; column-gap:40px; align-items:start; }
  .case-design>h4 { grid-column:1; }
  .case-design>p { grid-column:1; }
  .case-design>dl { grid-column:2; grid-row:1/3; margin:0; }
  .case-functions dl { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:640px) {
  .hero-ui .hero-feature { aspect-ratio:16/9; }
  .case-navigation { gap:6px 20px; margin-bottom:40px; }
  .case-navigation a { font-size:14px; padding:9px 0; }
  .case-study { margin-top:60px; padding-top:43px; scroll-margin-top:92px; }
  .case-header { grid-template-columns:1fr; gap:16px; margin-bottom:23px; }
  .case-name h3 { font-size:26px; }
  .case-category { font-size:12px; margin-bottom:9px; }
  .case-header>p { font-size:16px; }
  .screen-frame-bar { padding:10px 12px; gap:10px; font-size:12px; }
  .screen-frame-bar>span:last-child { font-size:12px; white-space:nowrap; }
  .screen-zoom-label { right:8px; bottom:8px; padding:5px 8px; font-size:12px; }
  .screen-slide figcaption { display:block; padding:17px 16px; }
  .screen-number { display:block; margin-bottom:9px; }
  .screen-slide figcaption h4 { font-size:17px; }
  .screen-slide figcaption p { font-size:14px; }
  .gallery-controls { gap:12px; }
  .gallery-controls button { font-size:14px; }
  .gallery-index button { font-size:12px; }
  .case-design { display:block; }
  .case-design>h4 { font-size:18px; margin-bottom:13px; }
  .case-design>p { font-size:16px; }
  .case-design dl { display:grid; grid-template-columns:1fr 1fr; gap:0 22px; margin-top:22px; }
  .case-design dl>div:last-child { grid-column:1/-1; }
  .case-functions { margin-top:28px; }
  .case-functions>h4 { font-size:19px; }
  .case-functions dl { grid-template-columns:1fr; gap:20px; }
  .case-functions dd { font-size:16px; line-height:1.95; margin-top:9px; }
  .portfolio-note { margin-top:40px; line-height:1.9; }
  .screen-dialog { width:calc(100% - 16px); max-height:96vh; max-height:96dvh; padding:15px 12px; }
  .screen-dialog>header { gap:12px; margin-bottom:14px; }
  #screen-dialog-title { font-size:17px; }
  #screen-dialog-project { font-size:12px; }
  .screen-dialog button { padding:10px 12px; font-size:14px; }
  #screen-dialog-close { flex-shrink:0; }
  .screen-dialog-controls { flex-wrap:wrap; gap:8px; margin-top:12px; }
  #screen-dialog-count { min-width:36px; }
  #screen-dialog-zoom { margin-left:auto; }
  #screen-dialog-caption { font-size:14px; line-height:1.8; max-height:25vh; overflow:auto; }
  .screen-dialog-stage { min-height:160px; }
}
@media(prefers-reduced-motion:reduce) { .screen-strip { scroll-behavior:auto; } }

/* TURTLE LAB: real websites, with the path from discovery to booking visible. */
.logo { flex-direction:column; align-items:flex-start; gap:5px; letter-spacing:-.045em; }
.logo small { font-size:12px; font-weight:500; letter-spacing:.12em; }
.hero-inner { grid-template-columns:minmax(0,1fr) minmax(0,1.08fr); gap:0 54px; padding-top:62px; }
.hero h1 { font-size:clamp(48px,5.3vw,76px); line-height:1.24; letter-spacing:-.045em; white-space:normal; }
.hero h1>span { color:var(--blue); }
.hero-kicker { font-size:13px; letter-spacing:.07em; margin-bottom:24px; }
.hero-subheading { font-size:clamp(18px,1.65vw,24px); line-height:1.7; font-weight:700; margin-top:27px; }
.hero-description { font-size:16px; line-height:1.95; margin-top:16px; max-width:32em; }
.hero-showcase { min-width:0; padding-top:8px; }
.hero-showcase a { display:block; min-width:0; background:#fff; border:1px solid var(--line); transition:border-color .2s; }
.hero-showcase a:hover { border-color:var(--blue); }
.hero-showcase img { aspect-ratio:16/9; object-fit:contain; border-bottom:1px solid var(--line); }
.showcase-main>span { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 17px; }
.showcase-main strong { font-size:16px; }
.showcase-main small { font-size:12px; color:var(--muted); }
.showcase-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:16px; }
.showcase-pair a>span { display:block; padding:10px 13px; font-size:14px; font-weight:700; }
.showcase-pair small { display:block; font-size:12px; font-weight:500; color:var(--muted); margin-top:2px; }
.hero-bottom { margin-top:40px; }
.case-introduction>p { font-size:16px; color:var(--muted); line-height:1.95; }
.case-introduction .case-headline { font-size:20px; font-weight:700; color:var(--ink); line-height:1.65; margin-bottom:10px; }
.case-header { grid-template-columns:.8fr 1.2fr; }
.case-journey { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:0 0 30px; padding:0; border-block:1px solid var(--line); }
.case-journey li { display:flex; align-items:baseline; gap:13px; padding:19px 18px; font-size:14px; line-height:1.7; background:var(--paper); }
.case-journey li+li { border-left:1px solid var(--line); }
.case-journey span { color:var(--blue); font-size:12px; font-weight:700; flex-shrink:0; }
.case-presentation { grid-template-columns:minmax(0,2fr) minmax(230px,1fr); gap:36px; }
.case-design dd { font-size:16px; line-height:1.9; }
.case-design dt { font-size:14px; }
.case-design .text-link { margin-top:20px; line-height:1.8; font-size:14px; }
.gallery-ready .gallery-index { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; }
.gallery-index button { display:flex; flex-direction:column; align-items:stretch; padding:0; gap:0; overflow:hidden; font-size:12px; }
.gallery-index button>img { aspect-ratio:16/9; object-fit:contain; }
.gallery-index button>span { padding:8px; font-weight:500; font-size:12px; line-height:1.6; }
.gallery-index button[aria-pressed=true] { border-color:var(--blue); box-shadow:0 0 0 1px var(--blue); background:var(--ice); }
.case-functions { border-block:1px solid var(--line); }
.case-functions summary { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:21px 0; font-size:18px; font-weight:700; cursor:pointer; list-style:none; }
.case-functions summary::-webkit-details-marker { display:none; }
.case-functions summary span { color:var(--blue); font-size:14px; font-weight:500; }
.case-functions[open] summary span { font-size:0; }
.case-functions[open] summary span::after { content:'閉じる'; font-size:14px; }
.case-functions dl { padding-bottom:28px; }
.case-functions dd { font-size:16px; }
.case-page { background:var(--paper); }
.breadcrumbs { padding:27px 0; color:var(--muted); font-size:14px; }
.breadcrumbs ol { display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; }
.breadcrumbs li+li { border-left:1px solid var(--line); padding-left:16px; }
.breadcrumbs a { text-decoration:underline; text-underline-offset:4px; }
.case-page-intro { padding:44px 0 0; }
.case-page-intro .section-label { color:var(--blue); margin-bottom:24px; }
.case-page-intro h1 { font-size:clamp(32px,4vw,56px); line-height:1.4; letter-spacing:-.03em; }
.case-page-intro h1 span { display:block; font-size:clamp(21px,2.3vw,32px); margin-top:18px; line-height:1.65; }
.case-page-description { font-size:17px; max-width:48em; line-height:2; color:var(--muted); margin-top:24px; }
.case-tags { display:flex; flex-wrap:wrap; gap:9px; margin:24px 0 38px; }
.case-tags li { font-size:14px; padding:5px 12px; border:1px solid var(--line); }
.case-cover { width:100%; height:auto; aspect-ratio:16/9; object-fit:contain; border:1px solid var(--line); }
.case-overview { display:grid; grid-template-columns:.9fr 1.1fr; gap:70px; padding:85px 0 64px; }
.case-overview h2,.case-screen-stories h2,.case-project-fit h2 { font-size:clamp(26px,3vw,40px); line-height:1.6; letter-spacing:-.025em; }
.case-overview dl { margin:0; }
.case-overview dl>div { border-top:1px solid var(--line); padding:23px 0; }
.case-overview dt { font-size:16px; font-weight:700; }
.case-overview dd { margin:12px 0 0; color:var(--muted); line-height:2; font-size:16px; }
.case-flow { padding-bottom:65px; }
.case-flow h2 { font-size:22px; margin-bottom:24px; }
.case-flow .case-journey { margin:0; }
.case-flow .case-journey li { background:#fff; }
.case-screen-stories { padding-top:60px; border-top:1px solid var(--line); }
.screen-story { display:grid; grid-template-columns:minmax(0,.75fr) minmax(0,1.6fr); gap:50px; align-items:center; padding-bottom:60px; margin-bottom:60px; border-bottom:1px solid var(--line); }
.story-number { color:var(--blue); font-size:13px; letter-spacing:.07em; }
.screen-story h3 { font-size:24px; line-height:1.65; margin:15px 0; }
.screen-story-copy>p { font-size:16px; line-height:2; color:var(--muted); }
.screen-story .text-link { margin-top:15px; }
.screen-story figure { margin:0; min-width:0; }
.screen-story figure img { border:1px solid var(--line); aspect-ratio:16/9; object-fit:contain; }
.screen-story figure>a { display:block; cursor:zoom-in; }
.screen-story figcaption { font-size:14px; color:var(--muted); line-height:1.9; margin-top:16px; }
.case-feature-section h2 { font-size:28px; margin-bottom:30px; }
.detail-feature-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; margin:0; }
.detail-feature-grid>div { border-top:1px solid var(--line); padding-top:22px; }
.detail-feature-grid dt { font-size:17px; line-height:1.7; font-weight:700; }
.detail-feature-grid dd { font-size:16px; line-height:2; color:var(--muted); margin:13px 0 0; }
.case-project-fit { padding:55px; margin-top:65px; background:var(--navy); color:#fff; }
.case-project-fit .section-label { color:var(--aqua); }
.case-project-fit>p:not(.section-label) { margin:20px 0 28px; color:#c8d9e2; line-height:2; font-size:16px; }
.related-works { padding:70px 0 90px; }
.related-works h2 { font-size:26px; margin-bottom:30px; }
.related-works>div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px; }
.related-works img { aspect-ratio:16/9; object-fit:contain; border:1px solid var(--line); }
.related-works a>span { display:block; font-size:13px; color:var(--muted); margin-top:17px; }
.related-works h3 { font-size:22px; margin-top:6px; }
.related-works p { font-size:16px; color:var(--muted); margin-top:9px; }
.related-works>.text-link { margin-top:32px; }
@media(max-width:1100px) {
  .hero-inner { gap:0 32px; }
  .hero-subheading { font-size:19px; }
  .hero-actions { flex-wrap:wrap; gap:14px 24px; }
  .case-presentation { grid-template-columns:minmax(0,1fr); }
  .case-design .text-link { grid-column:1/-1; justify-self:start; }
  .screen-story { gap:30px; grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr); }
}
@media(max-width:900px) {
  .hero-inner { grid-template-columns:1fr; padding-top:38px; }
  .hero h1 { font-size:clamp(48px,8vw,70px); }
  .hero-showcase { margin-top:35px; max-width:720px; }
  .hero-subheading { font-size:22px; }
  .hero-description { max-width:40em; }
  .case-header { grid-template-columns:1fr; gap:18px; }
  .case-overview { gap:35px; }
  .screen-story { grid-template-columns:1fr; gap:24px; }
  .screen-story-copy { max-width:48em; }
  .screen-story h3 { margin-top:8px; }
  .detail-feature-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:640px) {
  .hero h1 { font-size:clamp(44px,12vw,62px); }
  .hero-kicker { margin-bottom:19px; font-size:12px; }
  .hero-subheading { font-size:18px; margin-top:22px; }
  .hero-description { font-size:16px; }
  .desktop-break { display:none; }
  .hero-actions { margin-top:25px; }
  .hero-actions>.button { font-size:14px; }
  .hero-actions>.text-link { font-size:14px; }
  .showcase-main>span { padding:10px 12px; }
  .showcase-main small { font-size:12px; }
  .showcase-pair { gap:10px; margin-top:10px; }
  .showcase-pair a>span { padding:9px; font-size:12px; }
  .showcase-pair small { font-size:12px; }
  .hero-bottom { margin-top:28px; }
  .case-introduction .case-headline { font-size:19px; }
  .case-journey { grid-template-columns:1fr; }
  .case-journey li { padding:12px 15px; font-size:14px; }
  .case-journey li+li { border-left:0; border-top:1px solid var(--line); }
  .gallery-ready .gallery-index { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
  .gallery-index button>span { padding:7px; }
  .case-functions summary { font-size:16px; gap:14px; }
  .case-functions summary span { font-size:12px; white-space:nowrap; }
  .case-design dl { display:block; }
  .breadcrumbs { font-size:12px; padding:22px 0; }
  .breadcrumbs ol { gap:6px 10px; }
  .breadcrumbs li+li { padding-left:10px; }
  .case-page-intro { padding-top:24px; }
  .case-page-intro .section-label { font-size:12px; line-height:1.8; }
  .case-page-description { font-size:16px; }
  .case-tags { margin-bottom:27px; }
  .case-tags li { font-size:12px; padding:5px 9px; }
  .case-overview { grid-template-columns:1fr; gap:28px; padding:48px 0 30px; }
  .case-flow { padding-bottom:42px; }
  .case-flow h2 { font-size:19px; }
  .case-screen-stories { padding-top:42px; }
  .screen-story { margin-bottom:36px; padding-bottom:36px; }
  .screen-story h3 { font-size:22px; }
  .detail-feature-grid { grid-template-columns:1fr; gap:24px; }
  .case-feature-section h2 { font-size:24px; }
  .case-project-fit { padding:30px 23px; margin-top:42px; }
  .case-project-fit>p br { display:none; }
  .case-project-fit .button { font-size:14px; width:100%; padding-inline:18px; line-height:1.7; }
  .related-works { padding:44px 0 55px; }
  .related-works>div { grid-template-columns:1fr; gap:32px; }
}

/* Direct LINE contact; no form or intermediary submission step. */
.button-line { background:#087c46; color:#fff; }
.button-line:hover { background:#056236; }
.line-contact-card { padding:42px; background:#fff; color:var(--ink); border-radius:3px; }
.line-contact-label { font-size:14px; color:var(--muted); margin-bottom:20px; }
.line-contact-card h3 { font-size:28px; line-height:1.6; }
.line-contact-card>p:not(.line-contact-label):not(.line-contact-note) { margin-top:20px; font-size:16px; line-height:2; color:var(--muted); }
.line-contact-card>.button { width:100%; margin-top:28px; font-size:16px; }
.line-contact-card .line-contact-note { margin-top:14px; font-size:12px; color:var(--muted); text-align:center; }
.case-cta-actions { display:flex; align-items:center; flex-wrap:wrap; gap:20px 28px; }
.case-pricing-link { font-size:14px; text-decoration:underline; text-underline-offset:5px; }
@media(min-width:901px) { .service-row { grid-template-columns:30px 1.05fr 1.15fr 94px; } }
@media(min-width:641px) and (max-width:900px) { .service-row { grid-template-columns:25px 1fr 94px; } }
@media(max-width:640px) {
  .contact-copy h2 { font-size:clamp(26px,7.5vw,35px); }
  .line-contact-card { padding:28px 23px; }
  .line-contact-card h3 { font-size:23px; }
  .case-cta-actions { align-items:stretch; gap:20px; }
}

/* System development: real capabilities explained with fictional sample data. */
.hero-bottom p a { text-decoration:underline; text-underline-offset:4px; }
.systems-section { border-top:1px solid var(--line); }
.systems-heading { display:grid; grid-template-columns:1.1fr 1fr; gap:40px; align-items:end; margin-bottom:54px; }
.systems-heading h2 { font-size:clamp(28px,3.15vw,46px); line-height:1.6; letter-spacing:-.025em; }
.systems-heading>p { font-size:16px; color:var(--muted); line-height:2; }
.system-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:52px 36px; }
.system-card { min-width:0; }
.system-card-preview { background:#e7eef2; padding:24px; border:1px solid var(--line); }
.system-card-copy { padding-top:24px; }
.system-project { font-size:13px; color:var(--muted); line-height:1.8; }
.system-card h3 { font-size:clamp(20px,2vw,27px); line-height:1.6; margin-top:12px; }
.system-card h3 a:hover { color:var(--blue); }
.system-card-copy>p:not(.system-project) { color:var(--muted); font-size:16px; line-height:2; margin-top:14px; }
.system-tags { display:flex; flex-wrap:wrap; gap:8px; margin:20px 0 12px; }
.system-tags li { font-size:13px; line-height:1.8; padding:4px 10px; border:1px solid var(--line); }
.systems-illustration-note { font-size:13px; line-height:1.9; color:var(--muted); margin-top:22px; }
.systems-contact { display:flex; align-items:center; justify-content:space-between; gap:30px; border-top:1px solid var(--line); margin-top:48px; padding-top:36px; }
.systems-contact h3 { font-size:22px; }
.systems-contact p { margin-top:12px; color:var(--muted); font-size:16px; line-height:2; }
.systems-contact .button { flex-shrink:0; }
.system-diagram { background:#fff; border:1px solid var(--line); min-width:0; }
.system-diagram-bar { padding:14px 20px; display:flex; align-items:center; flex-wrap:wrap; gap:6px 16px; justify-content:space-between; border-bottom:1px solid var(--line); }
.system-diagram-bar>p { font-size:14px; font-weight:700; }
.system-sample-label { color:var(--muted); font-size:12px; }
.system-mini-flow { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:22px 20px 16px; }
.system-mini-flow span { font-size:14px; font-weight:700; }
.system-mini-flow span+span { display:flex; align-items:center; gap:10px; }
.system-mini-flow span+span::before { content:''; width:16px; height:1px; background:var(--blue); flex-shrink:0; }
.system-mini-table { margin:0 20px; border:1px solid var(--line); }
.system-mini-table>div { display:grid; grid-template-columns:1fr 1.3fr .7fr; font-size:14px; }
.system-mini-table>div:first-child { color:var(--muted); background:var(--paper); }
.system-mini-table>div+div { border-top:1px solid var(--line); }
.system-mini-table span,.system-mini-table strong { padding:7px 12px; font-weight:500; }
.system-mini-table>div:last-child { background:#ecf4ff; }
.system-preview-caption { color:var(--muted); font-size:13px; padding:18px 20px; }
.system-mini-bars,.system-report-bars { display:grid; gap:12px; margin:8px 20px 0; }
.system-mini-bars>div,.system-report-bars>div { display:grid; grid-template-columns:30px minmax(0,1fr) 80px; gap:12px; align-items:center; font-size:13px; }
.system-mini-bars strong,.system-report-bars strong { font-weight:500; text-align:right; }
.system-bar-track { height:12px; background:#eef2f5; display:block; }
.system-bar-track>span { height:100%; display:block; background:var(--blue); }
.system-mini-message { margin:0 20px; background:#f0f6fa; padding:14px; }
.system-mini-message>p { font-size:14px; }
.system-mini-message dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:14px 0 0; }
.system-mini-message dt { font-size:12px; color:var(--muted); }
.system-mini-message dd { margin:2px 0 0; font-size:14px; }
.system-mini-inbox { margin:0 20px; }
.system-mini-inbox li { display:flex; flex-wrap:wrap; justify-content:space-between; gap:4px 12px; padding:8px 0; border-bottom:1px solid var(--line); font-size:13px; }
.system-mini-inbox strong { font-weight:500; color:#23544b; }
.system-page-intro { padding:42px 0 54px; max-width:960px; }
.system-page-intro h1 { font-size:clamp(32px,4vw,56px); line-height:1.5; letter-spacing:-.03em; }
.system-page-intro>p:not(.section-label) { margin-top:24px; max-width:48em; color:var(--muted); font-size:17px; line-height:2; }
.system-page-intro .system-tags { margin-top:26px; }
.system-change { border-top:1px solid var(--line); padding:44px 0 60px; }
.system-change h2,.system-flow-section h2,.system-feature-section h2,.system-related h2 { font-size:28px; line-height:1.6; margin-bottom:28px; }
.system-change>div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.system-change article { padding:28px 32px; background:#fff; border:1px solid var(--line); }
.system-change article+article { border-top:3px solid var(--blue); padding-top:26px; }
.system-change-label { font-size:13px; color:var(--muted); margin-bottom:14px; }
.system-change h3 { font-size:18px; line-height:1.9; }
.system-change-benefit { color:var(--blue); font-size:17px; line-height:1.9; font-weight:700; margin-top:22px; }
.system-flow-section { padding-bottom:65px; }
.system-flow { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; border-block:1px solid var(--line); }
.system-flow li { padding:26px; }
.system-flow li+li { border-left:1px solid var(--line); }
.system-flow li>span { font-size:13px; color:var(--blue); }
.system-flow h3 { margin:12px 0; font-size:19px; }
.system-flow p { font-size:16px; color:var(--muted); line-height:2; }
.system-visual-section { padding:54px 0 65px; border-top:1px solid var(--line); }
.system-visual-section .section-heading { margin-bottom:34px; }
.system-workspace { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr); }
.system-source-panel,.system-result-panel { min-width:0; padding:32px; }
.system-source-panel { background:#eef4f8; border-right:1px solid var(--line); }
.system-panel-label { font-size:13px; color:var(--muted); margin-bottom:10px; }
.system-workspace h3 { font-size:22px; margin-bottom:24px; }
.system-field-list { margin:0; }
.system-field-list>div { display:grid; grid-template-columns:1fr 1.3fr; gap:12px; padding:12px 0; border-bottom:1px solid var(--line); font-size:15px; }
.system-field-list dt { color:var(--muted); }
.system-field-list dd { margin:0; font-weight:700; }
.system-panel-note { color:var(--muted); font-size:14px; line-height:1.9; margin-top:20px; }
.system-table-scroll { overflow-x:auto; max-width:100%; margin-top:20px; }
.system-table-scroll table { border-collapse:collapse; width:100%; font-size:14px; white-space:nowrap; text-align:left; }
.system-table-scroll caption { text-align:left; color:var(--muted); font-size:13px; padding-bottom:12px; }
.system-table-scroll th,.system-table-scroll td { padding:14px 12px; border-bottom:1px solid var(--line); }
.system-table-scroll thead th { background:var(--paper); font-weight:500; color:var(--muted); }
.system-table-scroll tbody th { font-weight:500; }
.system-highlight-row { background:#ecf4ff; }
.system-file-list li { display:flex; flex-direction:column; gap:3px; padding:16px 0; border-bottom:1px solid var(--line); font-size:16px; }
.system-file-list small { font-size:13px; color:var(--muted); }
.system-report-summary { border-left:3px solid var(--blue); padding-left:20px; margin-bottom:28px; }
.system-report-summary p { font-size:13px; color:var(--muted); }
.system-report-summary strong { font-size:36px; letter-spacing:-.035em; font-weight:500; }
.system-report-bars { margin:0 0 28px; }
.system-report-bars>div { font-size:14px; gap:16px; }
.system-report-bars .system-bar-track { height:16px; }
.system-message { margin:0; padding:23px; border:1px solid var(--line); background:#fff; font-size:16px; line-height:2; }
.system-confirm-note { margin-top:24px; padding:20px; background:#eef4f8; }
.system-confirm-note strong { font-size:16px; }
.system-confirm-note p { margin-top:10px; color:var(--muted); font-size:14px; line-height:2; }
.system-email-list li { padding:18px 0; border-bottom:1px solid var(--line); }
.system-email-list strong,.system-email-list span { display:block; }
.system-email-list strong { font-size:16px; }
.system-email-list span { font-size:14px; color:var(--muted); margin-top:7px; }
.system-processing { margin:0; }
.system-processing>div { padding:18px 20px; border:1px solid var(--line); margin-top:12px; }
.system-processing dt { font-size:14px; color:var(--muted); }
.system-processing dd { margin:8px 0 0; font-size:17px; font-weight:700; }
.system-modules-label { margin-top:28px; }
.system-modules { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.system-modules li { background:var(--paper); padding:10px 14px; font-size:14px; }
.system-feature-section .detail-feature-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 50px; }
.system-operation-note { margin-top:34px; border-left:3px solid var(--blue); padding:8px 0 8px 24px; }
.system-operation-note h3 { font-size:17px; }
.system-operation-note p { color:var(--muted); font-size:16px; line-height:2; margin-top:10px; }
.system-related { padding:70px 0 90px; }
.system-related>div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.system-related>div>a { display:block; border-top:1px solid var(--line); padding-top:22px; }
.system-related>div>a:hover h3 { color:var(--blue); }
.system-related>div span { font-size:13px; color:var(--muted); }
.system-related h3 { font-size:20px; margin:10px 0; }
.system-related>div p { font-size:15px; color:var(--muted); line-height:2; }
.system-related-web { margin-top:32px; display:flex; flex-wrap:wrap; gap:10px 24px; font-size:14px; }
.system-related-web a,.work-system-links a { text-decoration:underline; text-underline-offset:5px; }
.system-related>.text-link { margin-top:24px; }
.work-system-links { margin-top:44px; border-top:1px solid var(--line); padding-top:26px; }
.work-system-links h2 { font-size:22px; margin-bottom:16px; }
.work-system-links>div { display:flex; flex-wrap:wrap; gap:12px 28px; font-size:16px; }
@media(min-width:901px) { .system-card-preview .system-diagram { min-height:278px; } }
@media(max-width:1100px) {
  .systems-heading { grid-template-columns:1fr; gap:24px; }
  .system-card-preview { padding:16px; }
  .systems-contact { flex-direction:column; align-items:flex-start; }
  .system-workspace { grid-template-columns:minmax(0,.9fr) minmax(0,1.2fr); }
  .system-source-panel,.system-result-panel { padding:24px; }
}
@media(max-width:900px) {
  .system-cards { grid-template-columns:1fr; gap:40px; }
  .system-card { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:26px; align-items:start; }
  .system-card-copy { padding-top:0; }
  .system-card-preview { padding:0; border:0; }
  .system-mini-flow { flex-wrap:wrap; }
  .system-flow li { padding:20px; }
  .system-workspace { grid-template-columns:1fr; }
  .system-source-panel { border-right:0; border-bottom:1px solid var(--line); }
  .system-related>div { grid-template-columns:1fr; gap:24px; }
}
@media(max-width:640px) {
  .systems-heading { margin-bottom:32px; }
  .systems-heading>p br,.systems-contact p br { display:none; }
  .systems-heading .section-label { line-height:1.8; }
  .system-card { display:block; }
  .system-card-copy { padding-top:20px; }
  .system-card h3 { font-size:22px; }
  .system-mini-flow { flex-wrap:nowrap; }
  .system-mini-flow span { font-size:13px; }
  .systems-contact { margin-top:30px; padding-top:28px; }
  .systems-contact h3 { font-size:21px; }
  .systems-contact .button { padding:18px 22px; width:100%; line-height:1.8; justify-content:center; }
  .system-page-intro { padding:24px 0 32px; }
  .system-page-intro h1 { font-size:32px; }
  .system-page-intro .section-label { font-size:12px; line-height:1.8; }
  .system-page-intro>p:not(.section-label) { font-size:16px; }
  .system-change { padding:32px 0 40px; }
  .system-change h2,.system-flow-section h2,.system-feature-section h2,.system-related h2 { font-size:24px; }
  .system-change>div { grid-template-columns:1fr; gap:14px; }
  .system-change article { padding:24px; }
  .system-change article+article { padding-top:22px; }
  .system-change h3 { font-size:17px; }
  .system-flow-section { padding-bottom:40px; }
  .system-flow { grid-template-columns:1fr; }
  .system-flow li { padding:24px 0; }
  .system-flow li+li { border-left:0; border-top:1px solid var(--line); }
  .system-flow h3 { margin:8px 0; }
  .system-visual-section { padding:36px 0 44px; }
  .system-source-panel,.system-result-panel { padding:24px 18px; }
  .system-workspace h3 { font-size:21px; }
  .system-message { padding:18px; }
  .system-field-list>div { font-size:14px; }
  .system-processing>div { padding:16px; }
  .system-processing dd { font-size:16px; }
  .system-modules { gap:8px; }
  .system-modules li { padding:10px; font-size:13px; }
  .system-feature-section .detail-feature-grid { grid-template-columns:1fr; gap:24px; }
  .system-operation-note { padding-left:18px; }
  .system-related { padding:44px 0 55px; }
}

/* Separate pages, connected by native links and a shared site navigation. */
#navigation { gap:22px; }
#navigation>a.is-active:not(.nav-contact) { color:var(--blue); }
#navigation>a[aria-current="page"] { text-decoration:underline; text-underline-offset:6px; }
.footer-pages { display:flex; flex-wrap:wrap; gap:16px 30px; padding:28px 0; border-bottom:1px solid var(--line); }
.footer-pages a { font-size:14px; }
.footer-pages a:hover,.footer-bottom a:hover { color:var(--blue); text-decoration:underline; text-underline-offset:4px; }
.directory-intro { padding:34px 0 60px; border-bottom:1px solid var(--line); }
.directory-intro h1 { font-size:clamp(32px,4vw,54px); line-height:1.5; letter-spacing:-.025em; }
.directory-intro>p:not(.section-label) { margin-top:24px; max-width:50em; font-size:17px; line-height:2; color:var(--muted); }
.directory-page .section { padding:70px 0; }
.directory-content { padding-block:60px 45px; }
.directory-list-title { font-size:26px; margin-bottom:32px; }
.directory-heading { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:40px; }
.directory-heading h2 { font-size:clamp(27px,3vw,40px); line-height:1.65; letter-spacing:-.025em; }
.directory-heading>div>p:not(.section-label) { margin-top:18px; font-size:16px; color:var(--muted); line-height:2; }
.directory-heading>.text-link { flex-shrink:0; }
.home-projects { background:#fff; }
.project-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.project-card { min-width:0; }
.project-card-image { display:block; overflow:hidden; border:1px solid var(--line); background:var(--paper); }
.project-card-image img { aspect-ratio:16/9; object-fit:contain; transition:opacity .2s; }
.project-card-image:hover img { opacity:.85; }
.project-card-copy { padding-top:22px; }
.project-card h3 { font-size:24px; margin:9px 0 12px; }
.project-card h3 a:hover { color:var(--blue); }
.project-card-copy>p:not(.case-category) { font-size:16px; color:var(--muted); line-height:1.9; }
.project-card .system-tags { gap:6px; margin-top:18px; }
.project-card .system-tags li { font-size:12px; padding:4px 8px; }
.home-systems { border-bottom:1px solid var(--line); }
.home-system-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 48px; }
.home-system-links>a { display:flex; align-items:start; gap:23px; border-top:1px solid var(--line); padding:30px 0; }
.directory-number { color:var(--blue); font-size:13px; padding-top:6px; }
.home-system-links h3 { font-size:22px; }
.home-system-links p { font-size:16px; color:var(--muted); line-height:1.9; margin-top:13px; }
.directory-open { display:inline-block; margin-top:18px; font-size:14px; font-weight:700; border-bottom:1px solid var(--line); padding-bottom:4px; }
.home-system-links>a:hover h3,.page-guide-grid>a:hover h3 { color:var(--blue); }
.page-guide-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px 40px; }
.page-guide-grid>a { display:block; border-top:1px solid var(--line); padding-top:24px; }
.page-guide-grid>a>span:first-child { font-size:12px; color:var(--blue); letter-spacing:.08em; }
.page-guide-grid h3 { font-size:21px; margin:13px 0; }
.page-guide-grid p { font-size:16px; color:var(--muted); line-height:1.9; }
.page-consultation { padding:58px 0; background:var(--navy); color:#fff; }
.page-consultation>.wrap { display:flex; align-items:center; justify-content:space-between; gap:40px; }
.page-consultation .section-label { color:var(--aqua); }
.page-consultation h2 { font-size:30px; line-height:1.7; }
.page-consultation p:not(.section-label) { color:#c8d9e2; margin-top:16px; font-size:16px; line-height:1.9; }
.page-consultation-actions { display:flex; align-items:center; flex-direction:column; gap:14px; flex-shrink:0; }
.page-consultation .text-link:hover { color:var(--aqua); }
.page-consultation :focus-visible { outline-color:var(--aqua); }
.related-guides { padding-top:30px; padding-bottom:60px; }
.related-guides h2 { font-size:23px; margin-bottom:18px; }
.related-guides>div { display:flex; flex-wrap:wrap; gap:16px 36px; }
.preparation-section { padding-block:38px 50px; border-top:1px solid var(--line); }
.preparation-section h2 { font-size:26px; line-height:1.7; }
.preparation-section>p:not(.section-label) { max-width:50em; margin-top:20px; font-size:16px; color:var(--muted); line-height:2; }
.contact-steps { padding-block:65px 35px; }
.contact-steps h2 { font-size:28px; margin-bottom:30px; }
.contact-steps ol { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px; }
.contact-steps li { border-top:1px solid var(--line); padding-top:22px; }
.contact-steps li>span { color:var(--blue); font-size:13px; }
.contact-steps h3 { font-size:19px; margin:12px 0; }
.contact-steps li p { font-size:16px; color:var(--muted); line-height:2; }
a.system-card-preview { display:block; }
a.system-card-preview:hover { border-color:var(--blue); }
@media(min-width:901px) and (max-width:1100px) {
  .site-header { gap:20px; padding-inline:3%; }
  #navigation { gap:16px; }
  #navigation>a { font-size:13px; }
  #navigation .nav-contact { padding:12px 18px; }
}
@media(max-width:900px) {
  .directory-heading { align-items:start; flex-direction:column; gap:18px; }
  .project-cards { grid-template-columns:1fr; gap:36px; }
  .project-card { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:28px; align-items:start; }
  .project-card-copy { padding-top:0; }
  .page-guide-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .page-consultation>.wrap { align-items:flex-start; flex-direction:column; gap:28px; }
  .page-consultation-actions { align-items:flex-start; }
  .contact-steps ol { grid-template-columns:1fr; gap:26px; }
  .contact-steps li { display:flex; gap:24px; }
  .contact-steps h3 { margin-top:0; }
}
@media(max-width:640px) {
  .directory-intro { padding:22px 0 36px; }
  .directory-intro h1 { font-size:32px; }
  .directory-intro>p:not(.section-label) { font-size:16px; margin-top:18px; }
  .directory-page .section { padding:45px 0; }
  .directory-content { padding-top:40px; }
  .project-card { display:block; }
  .project-card-copy { padding-top:20px; }
  .project-card h3 { font-size:23px; }
  .home-system-links { grid-template-columns:1fr; }
  .home-system-links>a { padding:24px 0; gap:18px; }
  .page-guide-grid { grid-template-columns:1fr; gap:26px; }
  .directory-heading { margin-bottom:28px; }
  .page-consultation h2 { font-size:26px; }
  .page-consultation-actions { width:100%; }
  .page-consultation-actions .button { justify-content:center; width:100%; }
  .footer-pages { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
  .footer-pages a { font-size:13px; }
  .related-guides { padding-bottom:44px; }
  .related-guides h2 { font-size:22px; }
  .preparation-section h2 { font-size:23px; }
  .contact-steps { padding-top:44px; }
  .contact-steps h2 { font-size:24px; }
}
