/* ============================================================
   infinity.css
   Palette: White #FFFFFF กค Electric Blue #0057FF กค Black #000000
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--blue:#0057FF;--blue-light:#3d7eff;--black:#000000;--white:#ffffff;--off-white:#f5f7ff;--muted:rgba(0,0,0,0.55);--border:rgba(0,87,255,0.15)}
html{scroll-behavior:smooth}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;background:var(--white);color:var(--black);line-height:1.6}
a{color:inherit;text-decoration:none}
.container{max-width:1000px;margin:0 auto;padding:0 2rem}
.hero{background:var(--black);min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 60%,rgba(0,87,255,0.3) 0%,transparent 65%);pointer-events:none;animation:heroGlow 8s ease-in-out infinite}
.hero::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0%,rgba(0,87,255,0.07) 0%,transparent 55%);pointer-events:none}
@keyframes heroGlow{0%,100%{opacity:1}50%{opacity:0.6}}
.hero-inner{position:relative;z-index:1;padding:4rem 2rem;animation:fadeUp 1.2s ease both}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
.logo-mark{font-size:5rem;color:var(--blue);line-height:1;margin-bottom:1rem;text-shadow:0 0 40px rgba(0,87,255,0.6),0 0 80px rgba(0,87,255,0.2);animation:logoBreath 4s ease-in-out infinite}
@keyframes logoBreath{0%,100%{text-shadow:0 0 40px rgba(0,87,255,0.6),0 0 80px rgba(0,87,255,0.2)}50%{text-shadow:0 0 60px rgba(0,87,255,0.9),0 0 120px rgba(0,87,255,0.35)}}
.hero h1{font-size:clamp(3rem,8vw,6rem);font-weight:900;color:var(--white);letter-spacing:-0.02em;line-height:1;margin-bottom:1rem}
.hero-tagline{font-size:0.85rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--blue);margin-bottom:1.25rem}
.hero-sub{font-size:1.2rem;color:rgba(255,255,255,0.7);max-width:440px;margin:0 auto 2.5rem;line-height:1.6}
.hero-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
.btn-primary{display:inline-block;padding:0.85rem 2.25rem;background:var(--blue);color:var(--white);font-weight:700;font-size:0.9rem;letter-spacing:0.06em;text-transform:uppercase;border:2px solid var(--blue);transition:background 0.2s,border-color 0.2s,box-shadow 0.2s}
.btn-primary:hover{background:var(--blue-light);border-color:var(--blue-light);box-shadow:0 0 20px rgba(0,87,255,0.5)}
.btn-secondary{display:inline-block;padding:0.85rem 2.25rem;background:transparent;color:var(--white);font-weight:700;font-size:0.9rem;letter-spacing:0.06em;text-transform:uppercase;border:2px solid rgba(255,255,255,0.3);transition:border-color 0.2s,box-shadow 0.2s}
.btn-secondary:hover{border-color:var(--white);box-shadow:0 0 16px rgba(255,255,255,0.15)}
.rating-strip{background:var(--blue);color:var(--white);text-align:center;padding:0.75rem 2rem;font-size:0.9rem;font-weight:600;letter-spacing:0.04em;display:flex;align-items:center;justify-content:center;gap:0.75rem;flex-wrap:wrap}
.rating-strip .stars{color:#FFE033;font-size:1rem;letter-spacing:0.05em}
.rating-strip .divider{opacity:0.5}
.intro{padding:5rem 2rem;background:var(--white);border-bottom:1px solid var(--border)}
.intro-text{font-size:1.25rem;line-height:1.75;color:rgba(0,0,0,0.75);max-width:700px;margin:0 auto;text-align:center;font-style:italic}
.section-title{font-size:0.75rem;font-weight:700;letter-spacing:0.2em;text-transform:uppercase;color:var(--blue);margin-bottom:2.5rem}
.reviews{padding:5rem 2rem;background:var(--off-white)}
.review-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:2rem}
.review-card{background:var(--white);padding:1.75rem;border:1px solid var(--border);border-top:3px solid transparent}
.review-card.highlight{border-top:3px solid var(--blue)}
.stars-sm{color:#FFB800;font-size:0.95rem;letter-spacing:0.05em;margin-bottom:0.85rem}
.review-text{font-size:0.95rem;line-height:1.7;color:rgba(0,0,0,0.8);font-style:italic;margin-bottom:1.25rem}
.review-footer{display:flex;flex-direction:column;gap:0.2rem}
.reviewer{font-size:0.85rem;font-weight:700;color:var(--black)}
.review-scores{font-size:0.75rem;color:var(--muted);letter-spacing:0.04em}
.google-note{text-align:center;font-size:0.85rem;color:var(--muted)}
.google-note a{color:var(--blue);font-weight:600}
.google-note a:hover{text-decoration:underline}
.why-section{padding:5rem 2rem;background:var(--black)}
.why-section .section-title{color:var(--blue)}
.why-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem}
.why-card{padding:2rem 1.5rem;border:1px solid rgba(0,87,255,0.2);background:rgba(0,87,255,0.04)}
.why-icon{font-size:1.75rem;margin-bottom:1rem}
.why-card h3{font-size:0.9rem;font-weight:700;color:var(--white);letter-spacing:0.06em;text-transform:uppercase;margin-bottom:0.75rem}
.why-card p{font-size:0.9rem;color:rgba(255,255,255,0.6);line-height:1.65}
.location-section{padding:5rem 2rem;background:var(--white)}
.location-wrap{display:grid;grid-template-columns:1fr auto;gap:3rem;align-items:start}
.info-row{display:flex;gap:1.5rem;padding:1rem 0;border-bottom:1px solid var(--border);align-items:baseline}
.info-label{font-size:0.7rem;font-weight:700;letter-spacing:0.15em;text-transform:uppercase;color:var(--blue);min-width:70px;flex-shrink:0}
.info-value{font-size:0.95rem;color:rgba(0,0,0,0.8);line-height:1.5}
.info-value a{color:var(--blue);font-weight:600}
.map-btn{display:inline-block;margin-top:1.5rem;padding:0.7rem 1.5rem;background:var(--blue);color:var(--white);font-size:0.85rem;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;transition:background 0.2s}
.map-btn:hover{background:var(--blue-light)}
.promo-box{background:var(--black);padding:2rem 1.75rem;text-align:center;min-width:200px}
.promo-label{font-size:0.7rem;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:rgba(255,255,255,0.5);margin-bottom:0.75rem}
.promo-code{font-size:2rem;font-weight:900;color:var(--blue);letter-spacing:0.08em;margin-bottom:0.5rem;text-shadow:0 0 20px rgba(0,87,255,0.4)}
.promo-sub{font-size:0.75rem;color:rgba(255,255,255,0.45);line-height:1.5;max-width:160px;margin:0 auto}
.site-footer{background:var(--black);padding:3rem 2rem;text-align:center;border-top:1px solid rgba(0,87,255,0.2)}
.footer-logo{font-size:1.5rem;font-weight:900;color:var(--blue);letter-spacing:0.05em;margin-bottom:0.5rem}
.footer-address{font-size:0.85rem;color:rgba(255,255,255,0.45);margin-bottom:1rem}
.footer-address a{color:rgba(255,255,255,0.6)}
.footer-address a:hover{color:var(--white)}
.footer-credit{font-size:0.75rem;color:rgba(255,255,255,0.25)}
.footer-credit a{color:rgba(255,255,255,0.35)}
.footer-credit a:hover{color:rgba(255,255,255,0.6)}
@media(max-width:700px){.location-wrap{grid-template-columns:1fr}.promo-box{min-width:unset}.info-row{flex-direction:column;gap:0.25rem}.hero-actions{flex-direction:column;align-items:center}}